IT行業(yè)的高薪資眾所周知,這個(gè)行業(yè)也在不斷的吸引著年輕人加入,無(wú)論是剛畢業(yè)的大學(xué)生或是打算轉(zhuǎn)行的非IT業(yè)內(nèi)人士,這些初學(xué)者們都期望能用最簡(jiǎn)單最快速的方法切入進(jìn)來(lái)。那么對(duì)于程序初學(xué)者來(lái)說(shuō),如何選擇適合自己的語(yǔ)言呢?藍(lán)鷗資深講師團(tuán)隊(duì)為初學(xué)者們整理了答案,希望初學(xué)者在選擇相關(guān)的程序培訓(xùn)時(shí)能有所幫助。
初學(xué)者往往不理解,每一種語(yǔ)言里面必然有一套“通用”的特性。比如變量,函數(shù),整數(shù)和浮點(diǎn)數(shù)運(yùn)算,等等。這些是每個(gè)通用程序語(yǔ)言里面都必須有的,一個(gè)都不能少。你只要通過(guò)“某種語(yǔ)言”學(xué)會(huì)了這些特性,掌握這些特性的根本概念,就能隨時(shí)把這些知識(shí)應(yīng)用到任何其它語(yǔ)言。你為此投入的時(shí)間基本不會(huì)浪費(fèi)。所以初學(xué)者糾結(jié)要“先學(xué)哪種語(yǔ)言”,這種時(shí)間花的很不值得,還不如隨便挑一個(gè)語(yǔ)言,跳進(jìn)去。
很多初學(xué)者不了解,一個(gè)高明的程序員如果開(kāi)始用一種新的程序語(yǔ)言,他往往不是去看這個(gè)語(yǔ)言的大部頭手冊(cè)或者書(shū)籍,而是先有一個(gè)需要解決的問(wèn)題。手頭有了問(wèn)題,他可以用兩分鐘瀏覽一下這語(yǔ)言的手冊(cè),看看這語(yǔ)言大概長(zhǎng)什么樣。然后,他直接拿起一段例子代碼來(lái)開(kāi)始修改搗鼓,想法把這代碼改成自己正想解決的問(wèn)題。在這個(gè)簡(jiǎn)短的過(guò)程中,他很快的掌握了這個(gè)語(yǔ)言,并用它表達(dá)出心里的想法。
所以初學(xué)者要想事半功倍,就應(yīng)該從一種“合理”的,沒(méi)有明顯嚴(yán)重問(wèn)題的語(yǔ)言出發(fā),掌握最關(guān)鍵的語(yǔ)言特性,然后由此把這些概念應(yīng)用到其它語(yǔ)言。哪些是合理的入門(mén)語(yǔ)言呢?以下這些語(yǔ)言都可以用來(lái)入門(mén):
Scheme
C
Java
Python
JavaScript
那么相比之下,不推薦用哪些語(yǔ)言入門(mén)呢?
Shell
PowerShell
AWK
Perl
PHP
Basic
Go
總的說(shuō)來(lái),你不應(yīng)該使用所謂“腳本語(yǔ)言”作為入門(mén)語(yǔ)言,特別是那些源于早期 Unix 系統(tǒng)的腳本語(yǔ)言工具。PowerShell 雖然比 Unix 的 Shell 有所進(jìn)步,然而它仍然沒(méi)有擺脫腳本語(yǔ)言的根本問(wèn)題——他們的設(shè)計(jì)者不知道他們自己在干什么 。
采用腳本語(yǔ)言學(xué)編程,一個(gè)很?chē)?yán)重的問(wèn)題就是使得學(xué)習(xí)者抓不住關(guān)鍵。腳本語(yǔ)言往往把一些系統(tǒng)工具性質(zhì)的東西(比如正則表達(dá)式,Web 概念)加入到語(yǔ)法里面,導(dǎo)致初學(xué)者為它們浪費(fèi)太多時(shí)間,卻沒(méi)有理解編程最關(guān)鍵的概念:變量,函數(shù),遞歸,類(lèi)型……
不推薦 Go 語(yǔ)言的原因類(lèi)似,雖然 Go 語(yǔ)言不算腳本語(yǔ)言,然而他的設(shè)計(jì)者顯然不明白自己在干什么。所以使用 Go 語(yǔ)言來(lái)學(xué)編程,你不能專注于最關(guān)鍵,最好的語(yǔ)言特性。
不管是初學(xué)者還是資深程序員,應(yīng)該專注于語(yǔ)言特性,而不是糾結(jié)于整個(gè)的“語(yǔ)言品牌”。只有這樣才能達(dá)到融會(huì)貫通,拿起任何語(yǔ)言幾乎立即就會(huì)用,并且寫(xiě)出高質(zhì)量的代碼。