首先,此文主要針對0基礎(chǔ)想進(jìn)入IT行業(yè)的人。
最近經(jīng)常有親戚朋友甚至陌生人問我,軟件工程師的工作是什么樣子的。在這一行,我們有很高的聲譽(yù),薪資高,工作中的樂趣很多——至少外人是這么想的。雖然這一行的薪水沒有電影明星那么高(一些人甚至也將我們看做明星),但是因?yàn)椴诲e的收入和聲譽(yù),依然很吸引人。
所以經(jīng)常會被問到:我想學(xué)習(xí)編程,應(yīng)該從哪里開始學(xué)習(xí)呢?
這是一個有趣的問題,但是又難以回答。當(dāng)然,我可以甩給他們一本關(guān)于編程的書,但是這樣做真的好嗎?對于初學(xué)者,推薦我偏愛的編程語言合適嗎?可能不會。不要忘了他們問這個問題的真正的目標(biāo)。
當(dāng)我聽到這個問題的第一反應(yīng),就是弄清楚他們?yōu)槭裁聪雽W(xué)編程。這是一個很好地起點(diǎn)——弄清楚從中想要得到什么。我們可以根據(jù)他們的目的來回答這個問題。
“我想要通過學(xué)習(xí)編程,進(jìn)入IT行業(yè),拿到理想的薪資”
嗯,目標(biāo)很明確,很直白!如果你有一個真實(shí)世界的問題待解決,或者有一個明確的目標(biāo),那么給你行動的建議就很簡單了。
1、選一門編程語言
學(xué)編程自然要先選一門編程語言當(dāng)入口。語言都是工具,選工具前你要拍明確自己做什么東西,然后找什么語言適合做。例如做安卓應(yīng)用學(xué)Java,做IOS應(yīng)用學(xué)swift。
2、選好了語言不要糾結(jié)版本問題
第二選擇學(xué)一門語言不要糾結(jié)學(xué)什么版本,例如現(xiàn)在是安裝java6還是java7還是java8啊?學(xué)當(dāng)下最新的就行,不要老YY什么兼容問題。
新人在很長時(shí)間內(nèi)達(dá)不到要被版本區(qū)別坑的水平。而且基本上作為新人從開始學(xué)到開始能做產(chǎn)品怎么也得一兩年。到時(shí)候現(xiàn)在這個版本就是穩(wěn)定主流版本了。
3、先搞定語法
一開始不用學(xué)枯燥的計(jì)算機(jī)組成原理、設(shè)計(jì)模式之類的知識。就先學(xué)語言,也不用深究歷史啊優(yōu)點(diǎn)啊區(qū)別啊,直接學(xué)語法。
不用管那么多,先做些看得見的東西。敲代碼敲代碼一直敲代碼,感受一下控制計(jì)算機(jī)的感覺。這樣才能讓自己感到酷炫,激發(fā)一邊學(xué)一邊和小伙伴們嘚瑟的熱情。
先學(xué)好一門語言回頭再來看看歷史和做比較,看看大師們的理論,逐漸向外擴(kuò)展更多知識或許更有效率。
4、不會Linux沒有MAC就先在Windows上學(xué)
很多前輩會和你說Linux系統(tǒng)下編程多酷炫, 用mac下多優(yōu)雅,用Windows多Low。那些命令行系統(tǒng)是不是真的很高效拋開不說。
如果新人不會用Linux就先不要學(xué),不要刻意去裝個ubuntu裝個黑蘋果搞半天,裝好了不知道怎么搭建開發(fā)環(huán)境又搞半天,然后Windows習(xí)慣一時(shí)半會有揮之不去效率特別低下,各種常用軟件還沒有,還沒開始學(xué)編程先把自己的生活搞得一團(tuán)糟了。所以一開始就在Windows上搞,這是最好的。
還有就是新手資料基于Windows平臺是最多的。
5、善于尋找資源
根據(jù)你學(xué)習(xí)的熱情和進(jìn)度,可以給予一些指導(dǎo),去找一些學(xué)習(xí)的資源。
1、用google搜索,我上面鼓勵一開始直接敲代碼暫時(shí)跳過其它知識。但是學(xué)編程前先學(xué)會科學(xué)上網(wǎng)我是大大提倡的。
2、微博搜索,強(qiáng)烈推薦很多時(shí)候比google還好用,特點(diǎn)是按時(shí)間排序很新鮮,還能篩選只看關(guān)注人關(guān)于某事的微博。
3、知乎搜索,原因大致同上。