初學編程該如何選擇程式語言?

掌趣網絡 發佈 2020-01-08T14:48:55+00:00

於是我決定把我這個過來人的一些建議給到你們,希望大家少一些不必要的迷茫,多花點時間去學習該學習的東西,去做一些重要的事情。山東掌趣網絡科技​剛開始學習編程的困惑 在剛開始學習語言的時候我也很糾結學什麼語言好?

於是我決定把我這個過來人的一些建議給到你們,希望大家少一些不必要的迷茫,多花點時間去學習該學習的東西,去做一些重要的事情。

剛開始學習編程的困惑

 在剛開始學習語言的時候我也很糾結學什麼語言好?這個問題我相信很多人在最開始學習編程的時候都會糾結,到底選擇一門什麼樣的語言才能使自己在千軍萬馬的工作大軍中出奇制勝呢?總害怕選錯了語言導致自己未來競爭不占優勢。

 我把各個語言的熱度榜拉出來看了。

topn10走勢

 其實看來看去都差不多,主流語言就那些。像極了股票市場的漲跌圖,起起伏伏。不過程式語言的起伏波動沒那麼大。

 就這個問題,我還問了一些工作的學長學姐,看看他們這些過來人都有什麼樣的見解。還好我人緣好,他們都很耐心的給我講了很多,以下是他們給我的建議。

過來人的一些建議

 一個在京東做雲計算的學長語重心長的這樣和我說,學習語言要看你以後準備做什麼? 和你未來工作方向有關。簡單列幾個未來方向供你參考

如果你想從事和你自己專業(我的專業是電子信息工程)相關的方向工作的話,你可以好好學習C語言,彙編語言。因為你的專業以後工作方向在嵌入式和硬體編程方面較多。嵌入式編程講究的是嵌入,所以一定要小巧和輕量,C語言符合這個場景需要。

如果未來工作做純軟體的行業的話,你不應該局限於選擇怎樣的語言,工作需要什麼你就學習什麼語言,或者說項目需要什麼語言你就必須很快學習這個語言,不過在學校學習還是建議學好一門高級程式語言。學好指的是學到精通,精通就不用解釋了。你要對語言有所見解,而不是簡單會用。

如果你未來想算法一類的工作,你就應該把精力放在算法鑽研上,而不是語言本身。

 語言只是工具,就好比計算器一樣的工具,用計算器算題和設計、製造計算器是完全不一樣的。大多數都是計算器的使用者,而不是設計生產製造者。完成一件事情可以選擇很多種工具,就好比學生喜歡科學計算器,倉庫老闆喜歡那種很大聲的簡單加減乘除計算器就OK了。

一個阿里的學長告訴我

主流語言隨便選

學一門精一門,其他的都是觸類旁通

注重工具思想,同時也要注意工具出了問題該如何處理

 看了他們對我的話語,我得到的理解是,選擇語言之前你要確定好你的未來工作方向(工作還是很寬泛的一個詞語,人的一生大致可分為學習、生活和工作三件事,這三件事將伴隨我們一生。學習和生活我們都能很好的理解,但是工作這件事大家可能會覺得有些不符合,有些人就是一生不工作,其實不然,"一個人的工作是他在社會中所扮演的角色。"),這樣有目標的學習一門語言才能更好的幫助你未來工作,當然同時也不要局限於一門語言,畢竟技多不壓身。

 還有一個問題,當我們不是很明確未來到底從事什麼工作方向時,我們可以去找尋下自己的興趣,其實大學很重要的一點就是找到自己的興趣方向,儘量讓自己的興趣和自己工作方向相結合,能拿興趣作為工作方向是再好不過的了。就像兩個相愛的人在一起,每天都會是開開心的。如果是因為某些原因讓兩個沒有感情基礎的人在一起,那只能靠在一起之後才慢慢培養相愛的感覺。後者固然是不好的,但是為了生活很多人還是被迫選擇了後者,趁年輕,趁還有機會,我希望你能選擇前者。

 當然還有很多其他的學長學姐給了我很多不一樣的建議,但是總結下來就如下幾點。

找一門和未來工作相關的語言開始學,一定要學到精通。

要有工具思想,語言只是工具,工具是用來解決問題的。我們要做的靈活運用工具,了解工具的特性,順便如果工具除了出了問題你會修理工具,那就再好不過了。

不要在選擇語言上浪費太多時間,而應該在選擇工作方向上找到自己的興趣。

多花時間在工作方向上需要的其他技能上。

結合過來人建議之後我的選擇

 聽了過來人的建議之後,這幾句經典湧上我的心頭 "林盡水源,便得一山,山有小口,仿佛若有光。便舍船,從口入。初極狹,才通人。復行數十步,豁然開朗。"

 我的工作方向是後端開發,我也比較喜歡後端開發,加上大學本來就會開設C語言和C++語言。於是我很順理成章的選擇了C語言作為我的編程入門首選語言。

 現在作為過來人說說吧。

從學術研究上看,程式語言語法都差不多。

從原理上看,程式語言都類似,對一門程式語言掌握到透徹後,再學習其它程式語言可以觸類旁通。

針對的是學習能力較強的人。有一定基礎之後,可以快速的學習另一門技術。

 選擇語言沒必要那麼糾結,但是編程入門我首推C語言,既有低級語言的高效,又有高級語言的抽象。C語言有很多特性,比如小巧,對作業系統很友好特別是linux作業系統(不要害怕linux,你工作以後100%會接觸linux,不管你從事網際網路什麼行業,你都會或多或少的接觸到linux),運行速度快,支持彙編級別優化,可移植性好等等其他特性。當然也有缺點,比如開源框架少、不是很適合寫業務系統,面向對象支持不是很好。C語言作為入門語言會有助於你去了解作業系統的運行原理,內存控制原理,對這些的了解有助於你學習其他任何高級程式語言。至於學完C語言之後,你不用糾結接下來學什麼,接下來毫不猶豫用C語言把數據結構與算這本書學完並實現常用的數據結構與算法。

 說下為什麼學完C語言一定要去學習數據結構與算法,有以下幾點原因。

趁熱打鐵,剛好鞏固C語言的語法和一些特性。

數據結構與算法是一門必修課,與未來從事什麼方向無關(不要拿一些特殊職業出來鑽牛角尖奧)。

 為什麼我首推C語言作為編程入門的語言,而不是其他語言,並不是我覺得其他語言怎麼的。除了以上說到的C語言的特性之外,還有一個很重要的原因,C語言幾乎是所有計算機專業和相關專業都會開設的課程,作為入門語言,學習成本小,和同學、老師交流起來方便。這些因素會促使你很快學精C語言。

 學完這些之後,你需要學習和你未來方向相關的技能了,比如未來是做前端、後台、算法、AL等大領域裡面的小領域。扯遠了,繼續說選語言的事,作為一個過來人很正式的告訴你,你需要學好一門面向對象語言即可,其他的語言只需要在工作中用到的情況下花幾天時間就可以搞定,或者現學現用。因為你只要把握了一門C語言+一門面向對象的高級語言,其他語言的學習會觸類旁通,學習成本會非常小。學通了C語言,意味著你對變量類型、邏輯結構、函數棧、內存模型,程序編譯原理、彙編級別優化都會掌握(看我的關鍵詞"學通",不是簡單的學個hello world)。學完一門面向對象的高級語言,意味著你對面向對象的三大特性(繼承、封裝、多態)、抽象、設計模式有了很好的把握,這個時候工具使用已經到了很熟練的狀態了,可以試著用工具去創造內容了,比如去github找幾個項目練練手,或者用編程解決日常生活中遇到的問題。

 只要你是方向上沒錯,選擇語言很so easy。

山東掌趣網絡科技

關鍵字: