日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
有哪些可以提升編程技能的好書值得推薦?

本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。

提高編程技術離不開大量的練習,這是在專業(yè)上有所提高的唯一途徑。但在此之前,我們最好先掌握理論知識,再將其應用于實踐,這樣你的理解會更加深刻。

在軟件開發(fā)行業(yè)中,人們常常通過閱讀文章、書籍、參加會議、嘗試新的庫、模式和范例不斷提升自我。筆者為了提高編程技能閱讀了頗多書籍,本文為你精選了一份書單,能夠幫助你編寫簡練代碼,并在職業(yè)生涯中達到新的高度。

羅伯特·塞奇威克的《算法》

這本書講解了基本的算法,如搜索、排序和繪圖等。計算機科學的所有學生都要學習數據結構和算法,這是該領域最基礎的部分。

本書中會解釋搜索功能的實現和各種排序算法之間的差異。其中有一節(jié)是關于圖論的,讀完之后,你將清楚如何遍歷樹并找到最短的路徑。認識這些算法并應用它們,會對你下次的求職面試大有益處。一位有經驗的軟件工程師需要有能力在特定的情況下使用合適的算法,并預知其性能。

如果你不喜歡讀文字而更喜歡聽課,Coursera 上有一門由該書作者提供的免費課程值得一看。(https://www.coursera.org/learn/algorithms-part1)

史蒂夫·麥康奈爾的《代碼大全》

合上這本書時,筆者驚訝于自己從未聽人解釋過其中一些至關重要的基本概念。下面舉幾個例子。

例如,只在需要使用變量的地方聲明和初始化變量;不需要聲明變量時,只需要在代碼中賦值。變量應該具有最低可見范圍,這樣做的好處是代碼的可讀性會得到很大的提高,隊友將對此感激不盡。

另一個例子是如何有效地使用if 條件。它們用起來很簡單,但能顯著降低代碼的可讀性。

 
 
 
 
  1. if (paymentComplete) {
  2.                     if (errorCode != 0) {
  3.                        ...
  4.                     } elseif(errorCode ==422) {
  5.                        ...
  6.                     } else {
  7.                       if (showError) {
  8.                         ...
  9.                       } else {
  10.                         ...
  11.                       }
  12.                     }
  13.                   } else {
  14.                      ...
  15.                   }

示例中嵌套了太多的if條件,難以遵循和測試其邏輯。在學習編程時,人們總是關注if 條件如何工作以及何時使用,但沒有人告知我們它被濫用的情況。本書對此給出了一些建議:避免太多嵌套塊,考慮將代碼分解為函數,并檢查 switch..case 語句是否合適(編程語言是否支持)。

尼爾·福特的《功能的思考》

據維基百科,第一種函數式編程語言是在20世紀50年代后期開發(fā)出來的。從那時起,函數式編程的范例逐漸普及起來。這意味著數據開始通過函數進行轉換,可以組成多層級數據。

不過,對初級開發(fā)人員而言,構建無狀態(tài)序列很難。即使是對于經驗豐富但從未使用過函數式編程的開發(fā)人員來說,編寫高效且可維護的函數代碼也是一個挑戰(zhàn)。下面是科特林中對偶數的平方求和的例子:

 
 
 
 
  1. val input = listOf(1, 2, 3, 4, 5, 6)
  2. val result = input.filter { it % 2 == 0 }
  3.                   .map { it * it }
  4.                   .sum()

我們可以通過一般的聲明式的方法完成,但這需要編寫一些循環(huán)并保存其中間狀態(tài)。以功能性的方式編寫代碼更簡單清晰并愈發(fā)無狀態(tài)。除此之外,認識到函數的順序在性能中的作用很重要??纯词纠斍懊嬲{用 filter() 方法時,后面的函數已經在較小的數據集上操作了。

這本書解釋了最普及的函數,并介紹了該如何有效地應用它們,以及如何以函數的方式編寫簡潔的代碼。本書適合已經具有一些編碼經驗的開發(fā)人員。

圖源:unsplash

軟件工程領域從不缺少好書,筆者推薦的這三本書也是可以找到替代品的。但讀完文中這些,足以讓你交付可讀可伸縮的代碼了。


網站題目:有哪些可以提升編程技能的好書值得推薦?
分享網址:http://m.5511xx.com/article/coidocj.html