你好,我是白也。今年是我進入編程行業的第八年。
今天分享的內容來自我下面的互動課程,趣味互動模式,聊著天學乾貨。
點擊免費體驗👇
之前後臺收到私信,有讀者問道:那麼多程式語言,該學哪一種?
要解決語言選擇這個問題,首先你要建立起對「程式語言以及編程行業」正確的看法及認知。
你為什麼要學習編程?可能有各種各樣五花八門的原因,但我猜肯定有以下幾種:
● 信息化時代,覺得編程是趨勢,想了解一下,學會也算是多了一項技能,當個「斜槓青年」也行啊!
● 工作需求,需要用程式語言解決具體的問題;
● 職業迷茫或收入不理想,聽說程式設計師平均薪資比較高,想要進入網際網路行業;
不管目的是什麼,編程已經成為大眾普遍認知的「低門檻、入門快、高收入的必備技能」,而你的終極目標就是想要找到一門適合自己、簡單易學、有發展前景且收入高的語言!
只不過,事情往往不是我們嚮往的那樣。目前已知的程式語言就有600多種,主流程式語言也有十幾種,而你獲得的建議也是五花八門:
❶前端簡單,成就感強,往後學能前後端通吃,現在也到處缺人呢~
❷人工智慧是以後的趨勢,現在 Python 挺吃香的,發展肯定好!
❸Java這麼多年都很火爆,涉及的範圍也特別廣,後面轉大數據,雲計算,都很快~
❹PHP不行了,沒什麼人用了,現在都用Java和Go語言了!
❺學什麼語言都不如學C ,這是基礎,學會了別的語言也就都會了!
聽起來好像都挺像那麼回事!然後選擇一門語言學下去,則變得相當困難。接觸一門語言,學幾天,覺得不合適再換一門,也可能成為編程初學者的一種常態。
程式設計師整體的收入很高,但這是建立在他們創造的產值和自身學習的成本上的。為適應工作的要求,不是一天兩天或一門具體的語言就能解決的。
程式設計師的修煉是一個長期的過程,不要將時間過多地用在程式語言的選擇上!這些程式語言前期的學習路徑可能有所不同,但是到了最後,殊途同歸。選擇哪一門語言入門既重要,也不重要!
為什麼這麼說呢?
要解答你的疑惑,你需要先搞明白兩個問題:
1)到底什麼是編程「語言」?
2)程式語言之間的區別是什麼?
其實很簡單,程式語言也是語言的一種(比如:我們的母語漢語),而語言本身只是一種載體,或者說是一種工具,是為溝通交流而生的。而程式語言之所以被稱為"語言",正是因為它也是一種交流的載體,是人與機器交流的一種工具!
英語、法語、德語和漢語這些人類語言,因為地域、文化、價值觀不同,表達的差別其實蠻大的;然而,程式語言就不一樣!所有的程式語言都是面向計算機的,它們的目的都是讓計算機乖乖地為人所用,因此,它們之間有非常大的相似度,是真正可以觸類旁通的。
比如,一個for循環,我就不信你「Python」寫出來的就比我「前端」寫出來的厲害!
左側是用「前端技術」實現的飛機大戰,右側是用「Python」實現的飛機大戰,其實本質上並沒有什麼不同:
此處附上不同版本的連結,你可以獲取JavaScript、Python版本飛機大戰的代碼在你的電腦上運行查看,也可以獲取在線Demo直接運行試玩!
JavaScript版:
https://github.com/Here21/aircraft-war
Python版:
https://github.com/yangshangqi/The-Python-code-implements-aircraft-warfare
在線Demo:
https://collection.inhere.top/games/aircraft/
而具體代碼,也是非常相似:
我們能用JavaScript做頁面特效,難道就不能用Python做頁面特效了嗎?
當然可以!誰也沒規定前端只能用JavaScript寫,只要你在瀏覽器上提供Python的環境,JavaScript能做的Python都能做。
提供別的語言的環境,也照樣能用別的語言去操作。同樣, JavaScript的應用也不僅限於在前端。
程式語言的基礎語法都十分相似,只要環境允許,都能讓計算機聽話!
既然程式語言都差不多,那為什麼還會出現這麼多種程式語言?它們的區別又是什麼?
每一門語言的設計都不是無的放矢,都是為了解決特定環境下的人機交流而出現,並且逐漸進行演變。
比如:JavaScript的設計初衷是為了給網頁加點特效,Java的設計初衷是為了實現電視機頂盒的交互,而Python只不過是為了更輕鬆使用C語言;它們都有各自擅長做的事情。
不過,隨著時代的改變,人們的需求也變了!比如:大哥大時代和智慧型手機時代,JavaScript都經歷過,但是手指寬的屏幕和握都握不住的屏幕,需要展示的內容以及實現的效果,肯定不一樣!所以,JavaScript這些年也在不斷地更新迭代!
程式設計師看待程式語言,就應該像使用工具一樣,不趁手或者有簡單易用的替代品時,換就行了!無論是新的語言還是原有的語言,它們的基礎語法都十分相似,區別只在於:擅長做什麼!而「擅長做什麼」,又取決於這些語言本身的設計,運行的環境和它們的幫手:庫、插件、框架。
除了以上兩點,接著我們再聊聊學習程式語言的起點和終點還有從哪裡開始學習。
學習程式語言的起點與終極
我不希望你現在就考慮程式語言具體有什麼區別,其實,學習語言的起點和終極應該是一樣的,都是「淡化差別」!
舉個例子:作為用戶的你使用手機淘寶時,關注的是它好不好用,有沒有槽點,不好用就差評,不太會考慮「它用了多麼厲害的技術」!
而作為程式設計師,用戶有問題時,你可以考慮「用什麼語言方便地解決問題」,也可以選擇「用某門語言死磕這個問題」。功能都可以實現,只是費勁不費勁的區別!
當你真的用一門語言磕不動的時候,自然而然就明白了你現在使用的語言存在局限性,也會自己尋求合適的工具解決問題。
比如:因PHP靈活性高、構建簡單快捷,也有著很好的穩定性,淘寶網在用戶量較小時使用PHP語言搭建後端架構。
但隨著用戶的不斷增多,網站對伺服器和資料庫的要求越來越高,而PHP不支持連接池的方式訪問Oracle資料庫,最終淘寶在SUN公司的幫助下,將大量的代碼用Java改寫了。
其實,並不是說PHP比Java差,現在半數以上的網站依然是用PHP構建的,它本身就是為網站應用而生的。
只是有些時候,PHP也有不適用的場景。即便是淘寶,也是在不斷地發展中根據實際業務改進和變化自己的技術棧,哪怕是推倒重來!更何況是我們一線的程式設計師呢?
因此,在選擇語言的初期,根本沒有必要糾結到底學什麼;而有了一定程度的積累,也就沒有必要再糾結用什麼語言了!也就是說,想要入行IT網際網路,選擇語言並不是最重要的,不斷地學習提升才是關鍵!
當你不用糾結語言的選擇,已經決定了要學習一門語言,那事不宜遲,可以查找看一些教程進行學習。
「博學谷回車課堂」的線上互動編程教程,嘗試敲出自己的第一行代碼!不去試,不去寫,永遠也學不會!
如果你正在學習一門語言,但沒有體系化的學習規劃和方向認知,那就期待小白老師接下來的系列專題課程吧!你想學習的都會講到。
點擊下方小程序了解
看了這篇文章後,相信你對程式語言也有了一些認識,最後對於選擇程式語言給你三點建議:
❶擺正心態,工作需要時間沉澱
❷淡化差異,語言只是工具
❸告別遲疑,迅速上手學習
如果你覺得這篇文章對你有啟發,或者對你身邊的同學朋友有價值,歡迎轉發分享,謝謝❤