林奇現在學的只是其中的很小一部分,只是學了其中的一門程式語言,c語言。
如今的人們決定學習任何一門語言之前,都要先考察這個語言有什麼成功專案。
唯獨c語言沒有必要問,因為世界上太多的重要系統中,都有c語言的身影。比如作業系統核心、高階語言底層,還有流行的資料庫軟體等等。
這是一門時間悠久,但是一直到現在也還是在程式語言排行榜排前三名的一個語言。
林奇從網上買了一本《cprimerplus第6版中文版》,仔細研讀。
從開啟記事本,寫下第一行程式碼之時,不對,應該說是從下單買這本書的時候,林奇就走向了一條不歸之路。
程式設計裡面有些術語很奇怪,比如「x=8」,這個東西,如果沒有學過程式設計的人,看了這個第一印象肯定是,x等於8,x是一個未知數。
但是在程式設計學過程式設計的人眼裡,這個其實是一個賦值語句:把8這個int型別的資料賦值給變數x。
入門程式第一個難點就是,知道這個是賦值,而不是一個方程式。
林奇寫出了第一個程式「helloworld!」心情無比的激動,就像自己上小學的時候會寫第一個漢字「一」一樣。
然後就是if、else、while、for、switch、case這些常見的判斷迴圈語句,能熟練地應用這些語句,再加上內建的很多的函式,還有一些別人寫好的公共的庫的函式,見識的多了,知道他們是怎麼和判斷、迴圈、賦值語句配合之後,就能寫出來簡單的程式。
不過在學習c語言的過程中,林奇發現了一個規律。
在寫了很多簡單的程式後,就能慢慢的寫一些比較中等的,在之後就是比較大的專案了。
通讀完全書,林奇感覺到c語言的設計肯定也是一個懂藝術的人。
越研究,林奇越覺得程式設計是一門藝術,程式設計是美的。
學完了書上的知識,也研究了一些github上的開源專案,林奇覺得已經算是入行了。
提高自己的程式設計水平有很多方法,最有效的就是又從github(全球最大的開源的程式碼站,裡面世界各地的人上傳的各種各樣的程式),找到一些非常有名的開源專案來學習研究,比如nginx。
後來林奇還上網看還能怎麼繼續提高自己,無意中看到一個帖子,裡面介紹說,寫程式不管是任何的語言,都要會演算法。
於是林奇又買了一本《演算法導論》英文原版,之所以買英文的原版,是因為聽說翻譯後的有的東西不好理解,還是看英文原版的更好一些,主要是林奇的英文水平高,要不然即使翻譯的再不好也比看不懂要好很多。
學習這本書的時候,林奇的感覺是,苦中有樂,樂中有苦,時而被裡面的精彩演算法迷的不行不行的,時而被裡面的演算法搞的半死不活的。
演算法重不重要,有一個例子,網上有人說的:寫程式就像開一輛車,當你不懂太多資料結構跟演算法的時候,憑藉豐富的實踐經驗你也可以將這輛車開好;但是,當有一天這輛車出問題跑不起來的時候,你不懂它內部的執行機制,你要怎麼排除和解決問題?
其實現在已經不需要爭辯演算法重不重要了,你開啟boss直聘直接搜演算法工程師,看看現在的待遇,看看企業的要求,就知道這個東西到底有沒有用了。
人工智慧的興起,也帶動了演算法工程師(主要是人工智慧的演算法,不過和普通的演算法還是有些關聯的)變得炙手可熱。
林奇學完了《演算法導論》,準備找些東西練練手,於是就上網找資料,在一個討論演算法的論壇裡面發現了一個演算法大賽,林奇興致勃勃的報了名。