如何選擇編程入門語言?一個讓不少人糾結的問題

用心分享,共同成長前端

沒有什麼比你天天進步一點點更實在了python

本文已經收錄至個人github,歡迎你們踊躍star 和 issues。mysql

https://github.com/midou-tech/articleslinux

點關注,不迷路!!!

爲何會出這樣一篇文章?

 原本想寫點最近學習的東西,可是最近好多粉絲再問我一個問題。nginx

image-20200105164345384
image-20200105164345384

因而我決定把我這個過來人的一些建議給到大家,但願你們少一些沒必要要的迷茫,多花點時間去學習該學習的東西,去作一些重要的事情。git

剛開始學習編程的困惑

 在剛開始學習語言的時候我也很糾結學什麼語言好?這個問題我相信不少人在最開始學習編程的時候都會糾結,到底選擇一門什麼樣的語言才能使本身在千軍萬馬的工做大軍中出奇制勝呢?總懼怕選錯了語言致使本身將來競爭不佔優點。程序員

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

img
img
topn10走勢
topn10走勢

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

 就這個問題,我還問了一些工做的學長學姐,看看他們這些過來人都有什麼樣的看法。還好我人緣好,他們都很耐心的給我講了不少,如下是他們給個人建議。算法

過來人的一些建議

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

  • 若是你想從事和你本身專業(個人專業是電子信息工程)相關的方向工做的話,你能夠好好學習C語言,彙編語言。由於你的專業之後工做方向在嵌入式和硬件編程方面較多。嵌入式編程講究的是嵌入,因此必定要小巧和輕量,C語言符合這個場景須要。

  • 若是將來工做作純軟件的行業的話,你不該該侷限於選擇怎樣的語言,工做須要什麼你就學習什麼語言,或者說項目須要什麼語言你就必須很快學習這個語言,不過在學校學習仍是建議學好一門高級編程語言。學好指的是學到精通,精通就不用解釋了。你要對語言有所看法,而不是簡單會用。

  • 若是你將來想算法一類的工做,你就應該把精力放在算法鑽研上,而不是語言自己。

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

一個阿里的學長告訴我

  • 主流語言隨便選
  • 學一門精一門,其餘的都是舉一反三
  • 注重工具思想,同時也要注意工具出了問題該如何處理

 看了他們對個人話語,我獲得的理解是,選擇語言以前你要肯定好你的將來工做方向(工做仍是很寬泛的一個詞語,人的一輩子大體可分爲學習、生活和工做三件事,這三件事將伴隨咱們一輩子。學習和生活咱們都能很好的理解,可是工做這件事你們可能會以爲有些不符合,有些人就是一輩子不工做,其實否則,"一我的的工做是他在社會中所扮演的角色。"),這樣有目標的學習一門語言才能更好的幫助你將來工做,固然同時也不要侷限於一門語言,畢竟技多不壓身。 求點贊👍 求關注❤️

 還有一個問題,當咱們不是很明確將來到底從事什麼工做方向時,咱們能夠去找尋下本身的興趣,其實大學很重要的一點就是找到本身的興趣方向,儘可能讓本身的興趣和本身工做方向相結合,能拿興趣做爲工做方向是再好不過的了。就像兩個相愛的人在一塊兒,天天都會是開開心的。若是是由於某些緣由讓兩個沒有感情基礎的人在一塊兒,那隻能靠在一塊兒以後才慢慢培養相愛的感受。後者當然是很差的,可是爲了生活不少人仍是被迫選擇了後者,趁年輕,趁還有機會,我但願你能選擇前者。

 固然還有不少其餘的學長學姐給了我不少不同的建議,可是總結下來就以下幾點。

  • 找一門和將來工做相關的語言開始學,必定要學到精通。
  • 要有工具思想,語言只是工具,工具是用來解決問題的。咱們要作的靈活運用工具,瞭解工具的特性,順便若是工具除了出了問題你會修理工具,那就再好不過了。
  • 不要在選擇語言上浪費太多時間,而應該在選擇工做方向上找到本身的興趣。
  • 多花時間在工做方向上須要的其餘技能上。

結合過來人建議以後個人選擇

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

 個人工做方向是後端開發,我也比較喜歡後端開發,加上大學原本就會開設C語言和C++語言。因而我很瓜熟蒂落的選擇了C語言做爲個人編程入門首選語言。

 如今做爲過來人說說吧。

  • 從學術研究上看,編程語言語法都差很少。

  • 從原理上看,編程語言都相似,對一門編程語言掌握到透徹後,再學習其它編程語言能夠舉一反三。

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

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

 說下爲何學完C語言必定要去學習數據結構與算法,有如下幾點緣由。

  • 趁熱打鐵,恰好鞏固C語言的語法和一些特性。
  • 數據結構與算法是一門必修課,與將來從事什麼方向無關(不要拿一些特殊職業出來鑽牛角尖奧)。

 爲何我首推C語言做爲編程入門的語言,而不是其餘語言,並非我以爲其餘語言怎麼的。除了以上說到的C語言的特性以外,還有一個很重要的緣由,C語言幾乎是全部計算機專業和相關專業都會開設的課程,做爲入門語言,學習成本小,和同窗、老師交流起來方便。這些因素會促使你很快學精C語言。

 再陳述一段事實給你們。

linux操做系統是C語言寫的;流行的PHP、python只是C語言的一個擴展庫;Java和Go起初也是用C/C++編寫;之後會用到的mysql、redis、nginx都是yongC語言實現的。

網上看到一段有意思的評論,分享下。

 語言只是工具,更重要的是在於使用工具的人。C語言在大牛手裏能夠寫出來一個操做系統,在小白手裏只能寫Hello World。

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

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

img
img

 我總結了一份C語言的知識點思惟導圖,後期的文章會寫一寫關於C語言中的難點內容,好比程序的編譯運行原理、函數棧調用過程、指針、內存管理等。github上有個人寫做大綱,喜歡的能夠star 和 issues。github:https://github.com/midou-tech/articles。你們在看的過程當中遇到任何問題均可以給我發mail:2507367760@qq.com 或者 longyueshier@163.com 或者 longyueshier@gmail.com 我會每週三和週六的時候回覆你們的郵件問題(工做繁忙,本身也須要沉澱,多理解下)。

C語言知識點思惟導圖
C語言知識點思惟導圖

我喜歡那些閃光的東西,好比冬日的雪花,天上的星星,還有你的眼睛。

都看到這裏了,奮鬥中的你還不爲同行點個贊, 求點贊👍 求關注❤️

求點贊👍 求關注❤️

龍躍十二更多精彩文章:

學習linux命令,看這篇2w多字的命令詳解就夠了

HTTP就是這麼簡單

Redis基礎

頂級程序員工具集

二十多個免費高清圖片素材網站送給你

若是有人想發文章,我這裏有償徵稿(具體細則請微信聯繫),歡迎投稿或推薦你的項目。提供如下幾種方式投稿

  • 去個人github提交 issue: https://github.com/midou-tech/articles

  • 發送到郵箱: 2507367760@qq.com 或者 longyueshier@163.com 或者 longyueshier@gmail.com

  • 微信發送: 掃描下面二維碼,公衆號裏面有做者微信號。

精選文章都同步在公衆號裏面,公衆號看起會更方便,隨時隨地想看就看。微信搜索 龍躍十二 或者掃碼便可訂閱。

龍躍十二
龍躍十二
相關文章
相關標籤/搜索