如何根據(jù)你想要的生活選擇第一門編程語言
程序員的生活輕松。工作機會眾多,而且薪資也不錯。
即使你不想從事程序員這個職業(yè),學點編程仍然是沒錯的。尤其是對于那些網(wǎng)頁設(shè)計、數(shù)字營銷、企業(yè)和IT行業(yè)的工作崗位來說。
但是你應(yīng)該學習哪門語言呢?
Udacity網(wǎng)站制作了一張很棒的信息圖(見下文),有助于你選擇。但是我還想講得更深入一點。
在它們那張信息圖的基礎(chǔ)上,我會根據(jù)你的愿望,分門別類地給出我的建議。比如,我會針對于旅行愛好者、設(shè)計師、IT人員或者其他職業(yè)的人員給出建議。
過去一年中,我面試了很多人,面試的崗位也不一樣。我經(jīng)常和其他也在招聘的技術(shù)公司交流,對比各自的筆記。這使得我比較了解技術(shù)的長遠發(fā)展方向(跟大家透露一下,我在IBM工作)。
怎么做到在任何地方能找到工作?
你熱愛旅行嗎?如果是的話,你應(yīng)該選擇像Python這樣的網(wǎng)絡(luò)開發(fā)語言,在C語言上投入的時間要少一點。
推薦一些幫助學習的云平臺:要去高水平的網(wǎng)站,比如Heroku,BlueMix和Azure。如果了解亞馬遜的AWS也不錯,但是與其他選擇相比,學習曲線比較陡。作為初學者,你應(yīng)該關(guān)注的是編程概念,而不是如何配置。
你可以在Stack Overflow Careers和Angel.co兩個網(wǎng)站上找到遠程工作機會。
如何打造出色的硬件
如果你計劃打造實實在在的東西,推薦給你兩個很棒的原型開發(fā)用板:樹莓派和Arduino。可以看這篇二者的對比文章詳細了解。
在我看來,樹莓派是一個更好的選擇,因為Python語言比C語言更容易學。但是如果你想要打造硬件,最終你是不得不學習C語言(和C++)。
但是,如果是做個人“物聯(lián)網(wǎng)”項目的話,有時候購買一臺便宜、碎屏的iPhone或Android手機會更簡單些。
通過IBM的BlueMix IoT演示項目,不需要編程,你就可以立即追蹤智能手機的3D位置和震動情況。之后,你可以修改用于演示的Python代碼,做些自己認為酷的事情。(比如說,把iPhone藏在你前任的床墊下面,看看能不能找出些規(guī)律。)
我是一名程序員,如何提高薪資水平?
除了學習一門新語言外,還有一個策略就是學習、掌握更多的利基企業(yè)系統(tǒng)。例如,你可以學習像Hadoop和Spark這樣的大數(shù)據(jù)系統(tǒng)。(網(wǎng)上有很多免費學習這些技術(shù)的地方,比如IBM的大數(shù)據(jù)大學或Edx.org)
如果我選擇的職業(yè)不是編程呢?
對于IT和網(wǎng)頁設(shè)計,我有如下建議。但是其他行業(yè)呢?有一些編程知識會不會有幫助?首先,如果你不知道sumif()是什么,那你應(yīng)該花點時間學習一門Excel課程。Excel表格比大家想象的要強大的多。大多數(shù)程序員在進行編碼之前,都會嘗試使用Excel進行計算(如果能算出來的話)。舉個例子,Excel中利用數(shù)據(jù)制作一張精美的圖表,只要幾分鐘,但是純編程的話,可能需要很多個小時(甚至幾天的時間)。
之后,你應(yīng)該學習下面這些知識:
- HTML:每一個網(wǎng)站使用了HTML。(而且,很多移動應(yīng)用現(xiàn)在也在使用。)不論你現(xiàn)在嘗試深入掌握WordPress,或者需要設(shè)置數(shù)字營銷工具,懂一點HTML都是有好處的。
- CSS:CSS,又稱為“層疊樣式表”。它是網(wǎng)站用來選擇網(wǎng)頁的字體和顏色時,所使用的一種特殊排版語言。
- JavaScript:懂一點JavaScript,在你需要給老板調(diào)整網(wǎng)站插件時是挺有用的。
- PHP、Visual Basic或者ASP.net中的一種:這些是非常容易學習的語言,可以讓你快速地做出些有用的東西來。另外,它們還是日常編寫腳本和建設(shè)網(wǎng)站時所使用的語言。懂類似Python或Java這種語言,對于解決普通員工日常碰到的編程問題沒有太大幫助。(因為它們主要用于更大規(guī)模的計算機服務(wù)器編程,網(wǎng)絡(luò)應(yīng)用開發(fā)或者是編寫系統(tǒng)腳本)。值得說明的是,了解JavaScript或者PHP之后,之后可以很容易地轉(zhuǎn)到Python語言。它們的基本概念是一致的。
我是一名IT從業(yè)人員,應(yīng)該學習哪種編程語言?
如果你是Windows管理員,那么就學HTML和PowerShell。如果你是Linux管理員,就學HTML和bash腳本。
在IT行業(yè),你不需要學習編程就可以賺大錢:擁有企業(yè)級技術(shù)證書或資質(zhì)的話,和程序員的薪資是差不多的,有時甚至更好。但是懂得如何編寫bash腳本就是一個優(yōu)勢。
網(wǎng)頁設(shè)計師應(yīng)該學習哪種編程語言?
學習SASS這種基于CSS的語言是個很好的起點。之后,重點學習JavaScript。***學習Node.js,也就是不依賴于瀏覽器運行的JavaScript。Node.js市場現(xiàn)在很火熱,之后長期都會如此。不要偏離JavaScript領(lǐng)域。相反,要專攻Node.js,深入學習。(注意,以后io.js可能會取代Node.js。所以你要與JavaScript社區(qū)保持技術(shù)上同步更新。)(譯者注:最近io.js與Node.js已經(jīng)合并了代碼庫,不過作者說的保持技術(shù)更新是沒錯的。)
關(guān)于信息圖的***一點說明
Udacity在描述JavaScript的發(fā)展趨勢時,我想他們應(yīng)該沒有把這點考慮進去,即Node.js只是不依賴瀏覽器運行的JavaScript。2005年,對Node.js工程師的需求異常的高。如果開不出6位數(shù)的薪資(截至2015年十月),很難招到一名擁有豐富Node.js經(jīng)驗的工程師。隨著越來越多的人學習Node.js,市場也許會慢慢平靜一些。***一點忠告:Node.js比原生JavaScript要難掌握的多。所以,如果你是初學者,請先學習原生JavaScript,然后再轉(zhuǎn)到Node.js。
***,奉上Udacity制作的信息圖。