我是霖哥磷账,一個(gè)因興趣入行的商學(xué)院畢業(yè)的程序員峭沦。最近有不少人,來(lái)問(wèn)我逃糟,想學(xué)編程吼鱼,但是又不知怎么開(kāi)始。所以绰咽,我想把我8年前影響我一生的10天自學(xué)編程的經(jīng)歷菇肃,毫無(wú)保留的分享出來(lái)。
如果看到這標(biāo)題取募,會(huì)讓你覺(jué)得琐谤,讀完一篇文章就能快速的掌握編程技術(shù)的話,這可能會(huì)讓你失望玩敏,這里甚至沒(méi)有一行代碼斗忌。
霖哥想分享的,是霖哥最初自學(xué)編程的經(jīng)歷和心法旺聚。
1.決定
(圖為2008年的白色蘋(píng)果筆記本)
2009年初飞蹂,一個(gè)潮濕、骯臟翻屈、背靠竹林的大學(xué)宿舍里陈哑,其中一張書(shū)桌,放著一臺(tái)與環(huán)境格調(diào)不一致的純白色的蘋(píng)果Macbook電腦。她是霖哥課余時(shí)間最好的朋友惊窖。
霖哥讀的是商學(xué)院金融專業(yè)刽宪,在度過(guò)了逍遙放縱頹廢的半年大學(xué)一年級(jí)生活后,總覺(jué)得要學(xué)點(diǎn)什么技能界酒,賺一點(diǎn)錢(qián)圣拄。
所以,霖哥做了一個(gè)現(xiàn)在看起來(lái)對(duì)人生產(chǎn)生重大影響的重要決定:
用10天毁欣!系統(tǒng)地學(xué)習(xí)一遍網(wǎng)站編程庇谆!
那一年霖哥19歲,卻有著如今看起來(lái)可笑的狂妄自大凭疮,總覺(jué)得在將來(lái)會(huì)跟別人活得不一樣饭耳。
現(xiàn)在回憶起來(lái),當(dāng)初的霖哥純粹只是一個(gè)電腦用得比別人好的學(xué)渣而已执解,也不知道當(dāng)年進(jìn)水的腦袋哪來(lái)的自信寞肖,真是too young too naive。
大學(xué)一年級(jí)的時(shí)候衰腌,雖然個(gè)人電腦已經(jīng)走入千家萬(wàn)戶新蟆,但是創(chuàng)業(yè)、互聯(lián)網(wǎng)右蕊,還沒(méi)有像今天那么吵的火熱朝天的琼稻,移動(dòng)互聯(lián)網(wǎng)的概念還沒(méi)有形成。
計(jì)算機(jī)技術(shù)在外行人看起來(lái)更多還是技術(shù)的世界饶囚,沒(méi)有誰(shuí)張口閉口就跟你聊融資帕翻、產(chǎn)品、市場(chǎng)坯约、運(yùn)營(yíng)。
父母資助給霖哥買(mǎi)了一臺(tái)蘋(píng)果電腦莫鸭,這在當(dāng)時(shí)還算是一件難能可貴的事情闹丐。接近五位數(shù)的價(jià)格,拿到手這么一臺(tái)電腦被因,當(dāng)時(shí)霖哥是有多感動(dòng)啊卿拴,霖哥說(shuō):我以后絕逼不再玩游戲了,我要好好學(xué)習(xí)梨与。
一臺(tái)不能玩游戲的破電腦堕花,拿來(lái)干嘛?學(xué)習(xí)使用各種軟件或者學(xué)編程唄粥鞋。
就這樣缘挽,萌生了系統(tǒng)地自學(xué)編程的想法。在商學(xué)院畢業(yè)前,也沒(méi)有經(jīng)過(guò)面試壕曼,霖哥卻糊里糊涂的苏研,進(jìn)入了一家老牌大型上市軟件公司(并且還是小時(shí)候曾經(jīng)那個(gè)憧憬向往的公司),成為了一名程序員腮郊。
這一切摹蘑,都起源于2009年的那系統(tǒng)地自學(xué)編程的10天。
2.基礎(chǔ)
(圖為小時(shí)候轧飞,用來(lái)畫(huà)畫(huà)的LOGO編程語(yǔ)言)
在講述那10天的自學(xué)編程經(jīng)歷前衅鹿,得說(shuō)明霖哥的電腦基礎(chǔ)。
幼兒園的時(shí)候接觸386計(jì)算機(jī)过咬,會(huì)用MSDOS系統(tǒng)玩一個(gè)叫“波斯王子”大渤、象棋的游戲;后來(lái)開(kāi)始用Windows 3.0(從Dos那里敲段命令進(jìn)入Windows援奢,那時(shí)候還沒(méi)開(kāi)始菜單)兼犯,里面的軟件少得可憐。
小學(xué)一年級(jí)的時(shí)候集漾,剛好分配到了計(jì)算機(jī)實(shí)驗(yàn)班切黔,學(xué)校會(huì)教一個(gè)叫“認(rèn)知碼”的輸入法。輸入法也沒(méi)怎么學(xué)會(huì)具篇,倒是學(xué)會(huì)了拼音快速打字的本領(lǐng)纬霞;
小學(xué)五年級(jí)的時(shí)候用Dreamweaver、Fireworks驱显、Flash诗芜、Photoshop(網(wǎng)頁(yè)制作三劍客,三個(gè)軟件)做個(gè)人主頁(yè)埃疫,用FTP(文件傳送工具)上傳到虛擬主機(jī)做成網(wǎng)站伏恐;
之后幾年電腦游戲上癮,玩了好多年栓霜,一直沒(méi)有在技術(shù)上深究翠桦。直到高中后,開(kāi)始折騰三個(gè)PHP開(kāi)源程序胳蛮,他們是Discuz销凑、PHPWind和Wordpress,并且還運(yùn)營(yíng)了個(gè)PHPWind的校園社區(qū)仅炊。但是斗幼,并不懂得如何通過(guò)編程去開(kāi)發(fā)一個(gè)Web產(chǎn)品,只大概知道了Web產(chǎn)品是怎么煉成的抚垄。
所以說(shuō)蜕窿,在大學(xué)正式系統(tǒng)地自學(xué)編程之前谋逻,霖哥是有不錯(cuò)的電腦應(yīng)用基礎(chǔ)的。
但是渠羞,那時(shí)候斤贰,霖哥還不太系統(tǒng)的了解編程,只知道計(jì)算機(jī)軟件程序次询,是由編程語(yǔ)言控制的荧恍;只知道編程語(yǔ)言里,有很多if(如果)屯吊、 for(循環(huán))等關(guān)鍵字送巡,卻不太懂怎么去用它們做出一個(gè)軟件程序來(lái)。
3. 小目標(biāo)
要決定自學(xué)編程盒卸,首先要定個(gè)小目標(biāo)骗爆。
這非常重要!
很多計(jì)算機(jī)系畢業(yè)的本科大學(xué)生蔽介,你讓他們?nèi)プ鲆粋€(gè)簡(jiǎn)單的H5頁(yè)面摘投,他們都是做不出來(lái)的。
可能他們中的很多人的回答是虹蓄,老師沒(méi)有教啊犀呼。
是的,國(guó)內(nèi)大學(xué)的計(jì)算機(jī)課程一般以C語(yǔ)言或Java語(yǔ)言基礎(chǔ)入門(mén)薇组,然后開(kāi)始學(xué)習(xí)數(shù)學(xué)外臂、數(shù)據(jù)結(jié)構(gòu)、算法律胀。確實(shí)很大一部分人宋光,到畢業(yè)為止,都沒(méi)有教怎么做一張網(wǎng)頁(yè)炭菌。
所以有時(shí)候罪佳,程序員是一個(gè)相當(dāng)專業(yè)化的職業(yè),搞后端的不懂前端黑低,搞前端的不懂后端赘艳,搞蘋(píng)果的不會(huì)安卓,搞移動(dòng)開(kāi)發(fā)的不懂電腦開(kāi)發(fā)投储。這是很正常的第练。
不論搞什么開(kāi)發(fā)阔馋,編程語(yǔ)言玛荞,僅僅起到最最最底層基礎(chǔ)的作用。
怎么理解呢呕寝?我們可以把不同平臺(tái)的軟件開(kāi)發(fā)勋眯,想象成不同交際語(yǔ)言的寫(xiě)作:
讓你做一個(gè)蘋(píng)果iOS App,就像讓你用英語(yǔ)寫(xiě)一篇文章:你不但要學(xué)習(xí)英語(yǔ)單詞,還要學(xué)習(xí)英語(yǔ)語(yǔ)法客蹋、英語(yǔ)句式塞蹭、習(xí)慣用詞;
讓你做一個(gè)網(wǎng)頁(yè)讶坯,就像讓你用西班牙語(yǔ)寫(xiě)一篇文章:你不但要學(xué)習(xí)西班牙語(yǔ)單詞番电,還要學(xué)習(xí)西班牙語(yǔ)文化、西班牙語(yǔ)語(yǔ)法辆琅、西班牙語(yǔ)音標(biāo)......
比方說(shuō)漱办,Java語(yǔ)言,既可以開(kāi)發(fā)Android程序婉烟,也可以做網(wǎng)站后臺(tái)開(kāi)發(fā)娩井,那么,讓一個(gè)做安卓開(kāi)發(fā)的Java程序員似袁,立刻去做網(wǎng)站后臺(tái)開(kāi)發(fā)行不行洞辣?
不行,兩者還有大量的開(kāi)發(fā)條件和工具鏈是不一樣的昙衅。
因此扬霜,選擇一個(gè)小目標(biāo),自上而下的去思考和學(xué)習(xí)绒尊,就非常重要了......而我當(dāng)時(shí)的小目標(biāo)畜挥,做網(wǎng)頁(yè)——霖哥希望美化自己博客網(wǎng)站的界面(使用一個(gè)叫Wordpress的網(wǎng)站軟件搭建的博客)。
這個(gè)目標(biāo)婴谱,足夠的小蟹但。我只需要學(xué)習(xí)HTML、CSS谭羔、PHP就足夠了华糖。
這也是為什么霖哥要系統(tǒng)地學(xué)習(xí)編程的重要原因——達(dá)成這個(gè)小目標(biāo)。
4.資料
那10天里瘟裸,霖哥分別學(xué)習(xí)了什么客叉?
霖哥學(xué)習(xí)了HTML、CSS话告、PHP兼搏、MySQL四種技術(shù),籠統(tǒng)來(lái)說(shuō)沙郭,這些都是開(kāi)發(fā)一個(gè)網(wǎng)站的基本技能佛呻。
走進(jìn)圖書(shū)館的計(jì)算機(jī)相關(guān)書(shū)架,你會(huì)發(fā)現(xiàn)很多計(jì)算機(jī)相關(guān)的書(shū)籍病线,都厚得嚇人吓著,其中相當(dāng)大的篇幅鲤嫡,是前言、理論和案例绑莺,讓初學(xué)者手足無(wú)措暖眼,無(wú)從入手。
上圖纺裁,隨便拍一張身邊的3本書(shū)诫肠,分別是700頁(yè),500頁(yè)欺缘,300頁(yè)区赵!太厚了,誰(shuí)那么多時(shí)間看完浪南!
對(duì)于一個(gè)什么都不懂的初學(xué)者來(lái)說(shuō)笼才,一上來(lái)就一堆理論,只會(huì)讓人一臉懵逼络凿。
所以骡送,對(duì)于想要學(xué)習(xí)編程的初學(xué)者來(lái)說(shuō),最好的學(xué)習(xí)方式是:少看絮记,立刻動(dòng)手摔踱。
我用的是什么學(xué)習(xí)資料? 怨愤?是時(shí)候祭出我的老師了——w3schools.com
(圖:w3schools.com 2017年的截圖派敷,嘖,霖哥記得當(dāng)年撰洗,這個(gè)頁(yè)面是紅色界面的篮愉。)
很遺憾,這個(gè)國(guó)外的英文教學(xué)網(wǎng)站差导,現(xiàn)在在國(guó)內(nèi)已經(jīng)不能訪問(wèn)了试躏。一個(gè)學(xué)習(xí)的好網(wǎng)站,居然被墻了设褐,真的有點(diǎn)無(wú)奈颠蕴。
不過(guò),在很早之前助析,就有國(guó)內(nèi)的人把他抄襲了一遍:W3Schools犀被,你可以使用它。
不用懷疑外冀,當(dāng)初霖哥用的寡键,就是純英文的老外版本。(詞典軟件忙個(gè)不停)
w3schools.com是一家專門(mén)Web開(kāi)發(fā)的學(xué)習(xí)網(wǎng)站锥惋,它的特點(diǎn)就是:
少?gòu)U話昌腰、全干貨。
(圖:W3School HTML簡(jiǎn)介)
w3schools.com的教程中膀跌,幾乎沒(méi)有什么啰嗦理論遭商。比如上圖里,簡(jiǎn)單的一句介紹捅伤,HTML是用來(lái)做網(wǎng)站的劫流,然后點(diǎn)擊開(kāi)始教程了,迎面而來(lái)的丛忆,就是“實(shí)例”和“試一試”功能按鈕祠汇。
(圖:w3學(xué)校,試一試熄诡,現(xiàn)場(chǎng)體驗(yàn)代碼)
常見(jiàn)的編程語(yǔ)言入門(mén)書(shū)中可很,開(kāi)頭一般花不少的篇幅介紹如何進(jìn)行環(huán)境搭建。
比如學(xué)習(xí)C語(yǔ)言凰浮,光要讓一個(gè)Hello World跑起來(lái)我抠,就需要廢很大的勁,安裝各種開(kāi)發(fā)環(huán)境袜茧、編譯器菜拓,再學(xué)習(xí)用命令行編譯....
可能,幾個(gè)星期過(guò)去了笛厦,終于纳鼎,才把一個(gè)Hello World打印到屏幕上.....
但是使用w3schools學(xué)習(xí)編程,什么都不需要安裝裳凸,只需要在“試一試”里贱鄙,通過(guò)網(wǎng)頁(yè)瀏覽器,就能立刻體驗(yàn)編程學(xué)習(xí)的結(jié)果姨谷。
(圖:列表的形式表述理論)
而在里面贰逾,理論的表述,一般都是使用列表的形式的:用盡可能簡(jiǎn)短的文字菠秒,來(lái)把這個(gè)問(wèn)題解釋清楚疙剑。
5. 時(shí)間分配
那10天的時(shí)間里,我是怎樣把這個(gè)技能學(xué)習(xí)進(jìn)行時(shí)間分配的践叠?
- 第1天:HTML(網(wǎng)頁(yè)標(biāo)記語(yǔ)言)言缤;
- 第2 - 3天:CSS(網(wǎng)頁(yè)樣式語(yǔ)言);
- 第4 - 7天:JavaScript(網(wǎng)頁(yè)開(kāi)發(fā)語(yǔ)言)禁灼;
- 第8 - 10天:PHP/MySQL(數(shù)據(jù)庫(kù))管挟;
因?yàn)橹暗幕A(chǔ),除了MySQL數(shù)據(jù)庫(kù)部分弄捕,其他部分都比較順暢的通過(guò)僻孝。CSS导帝,看完好像很懂,但是是極度需要熟練練習(xí)的穿铆。
在學(xué)習(xí)的過(guò)程中里您单,遵循3個(gè)原則:
- 快速閱讀基本概念,不浪費(fèi)時(shí)間荞雏,進(jìn)入訓(xùn)練
- 使用提供的訓(xùn)練代碼虐秦,快速試驗(yàn),不求重頭開(kāi)始寫(xiě)凤优,只求稍作修改也能正確運(yùn)行
- 快速通讀整個(gè)教程悦陋,回去再理解一次
第一條,閱讀完基本概念的時(shí)候筑辨,你可能是似懂非懂的狀態(tài)俺驶;第二條,代碼訓(xùn)練棍辕,是來(lái)驗(yàn)證基本概念的痒钝;第三條,當(dāng)整個(gè)教程通讀一遍后痢毒,你回過(guò)頭來(lái)送矩,看那些之前沒(méi)理解的,可能已經(jīng)明白了哪替,編程的知識(shí)點(diǎn)之間栋荸,是有關(guān)聯(lián)的。
其實(shí)凭舶,在自學(xué)的過(guò)程中晌块,即使是w3schools這樣簡(jiǎn)單明了的教程,我也并沒(méi)有逐條認(rèn)真看帅霜,而是快速閱覽匆背。
當(dāng)遇到看不懂的部分時(shí),就動(dòng)手做一次身冀,做了還是不懂钝尸,也不要太浪費(fèi)時(shí)間,首先用最快的時(shí)間搂根,去把整體瀏覽一遍珍促。
宏觀有認(rèn)識(shí)和練習(xí)后,回過(guò)頭來(lái)剩愧,才發(fā)現(xiàn)猪叙,“啊原來(lái)就這樣子啊”。
有一件事,是必須刻意克服的————
英語(yǔ)穴翩,不能渣犬第!英語(yǔ),不能渣芒帕!英語(yǔ)歉嗓,不能渣!副签,
重要的事說(shuō)三遍!
有人說(shuō)基矮,學(xué)編程淆储,不是應(yīng)該理科特別好,像數(shù)學(xué)有特別好家浇,才能學(xué)得好嗎本砰?
我呸!8直点额!
在實(shí)際工作中,大部分情況莺琳,你打交道的还棱,是英語(yǔ)!英語(yǔ)惭等!英語(yǔ)珍手!
寫(xiě)代碼多了,你會(huì)發(fā)現(xiàn)辞做,寫(xiě)代碼琳要,其實(shí)就像寫(xiě)英語(yǔ)作文一樣。
那些說(shuō)看到代碼就暈的人秤茅,一般同樣會(huì)看到英語(yǔ)就暈稚补。這里說(shuō)的英語(yǔ),不一定是要英語(yǔ)成績(jī)有多好框喳,語(yǔ)法有多棒课幕,但是,不能反感看英語(yǔ)五垮,有一定的單詞量撰豺。
要學(xué)習(xí)編程,英語(yǔ)拼余,不能太差污桦。否則很難在編程的世界里走遠(yuǎn),英語(yǔ)好匙监,就打通了全世界的程序員技術(shù)之門(mén)凡橱,全世界的程序員在幫你解決問(wèn)題小作。
直到今天,工作之中90%的技術(shù)問(wèn)題稼钩,霖哥幾乎都能通過(guò)Google一下找到答案顾稀;對(duì)于新興技術(shù),去英語(yǔ)官方網(wǎng)站看看官方教程坝撑,根本不需要買(mǎi)厚厚的書(shū)籍静秆。
因此,一定要培養(yǎng)英語(yǔ)閱讀技術(shù)文檔的能力巡李。
學(xué)習(xí)編程的時(shí)候抚笔,不要死記硬背,要培養(yǎng)感覺(jué)侨拦。
因?yàn)槭獬龋词沟浇裉鞛橹梗ぷ鞯倪^(guò)程中狱从,霖哥還是會(huì)不停地通過(guò)百度和Google搜索引擎搜索“忘記掉”的語(yǔ)法和代碼膨蛮。比如,霖哥經(jīng)常會(huì)做出這樣的搜索關(guān)鍵字:
依然在用的搜索關(guān)鍵字:
“Python for循環(huán)”季研、 “Java 接口”敞葛、 “JavaScript class”,一些很基礎(chǔ)的語(yǔ)法
霖哥用過(guò)11種不同的編程語(yǔ)言來(lái)做過(guò)項(xiàng)目与涡,從來(lái)不會(huì)介意制肮,會(huì)不記得哪個(gè)函數(shù)、哪個(gè)語(yǔ)法怎么寫(xiě)了递沪〔虮牵可能學(xué)院派看到這,會(huì)覺(jué)得三觀盡毀款慨,可我們生活很多事情儒飒,都是這樣的。
比如說(shuō)檩奠,出來(lái)工作幾年的人桩了,會(huì)把小學(xué)、初中埠戳,甚至高中的數(shù)學(xué)井誉,給忘記了。到真的想用的時(shí)候整胃,又實(shí)在記不起的時(shí)候颗圣,上去百科上搜一下,很快就補(bǔ)回來(lái)了。
編程語(yǔ)法也是一樣在岂,是不用死記硬背禀梳,只要把思維養(yǎng)成了米辐,需要用的時(shí)候,再通過(guò)搜索引擎解決問(wèn)題就可以了燃箭。通過(guò)教育筛谚,我們更多得到的含懊,不是知識(shí)豹悬,而是認(rèn)知桐筏。
所以有時(shí)候,挺反感一些技術(shù)面試過(guò)程中骄恶,要求寫(xiě)出具體代碼的題目食铐,因?yàn)榫唧w的代碼,每過(guò)一段時(shí)間叠蝇,就會(huì)忘記得一干二凈了璃岳,而編程思維年缎,或者說(shuō)編程的感覺(jué)悔捶,卻是永久的烙印在腦海中。
當(dāng)我需要用到的時(shí)候单芜,我知道去哪里找到她蜕该,這就夠了。
這就像洲鸠,當(dāng)我們家里水龍頭壞了堂淡,首先想到的,是找專業(yè)的師傅扒腕,而不是立刻學(xué)習(xí)修水龍頭绢淀,是一個(gè)道理的。
代碼是一個(gè)浩瀚的世界瘾腰,死記硬背毫無(wú)意義皆的,更重要的是理解編程思維,而不是具體怎么寫(xiě)代碼蹋盆;寫(xiě)代碼的練習(xí)费薄,不單是讓技能熟練,而且培養(yǎng)的栖雾,是對(duì)編程思維的理解楞抡。
6. 實(shí)戰(zhàn)
10天以后,如果你已經(jīng)真把HTML/CSS/JavaScript教程過(guò)了一遍析藕,你就可以嘗試開(kāi)始實(shí)戰(zhàn)了召廷。
當(dāng)年,霖哥做了一件非常囧的實(shí)戰(zhàn)————
那時(shí)候是班長(zhǎng),經(jīng)常拿一些班務(wù)工作柱恤,當(dāng)做是技術(shù)實(shí)戰(zhàn)的試驗(yàn)田数初。有一次需要進(jìn)行全班同學(xué)的調(diào)查問(wèn)卷, 霖哥就決定自己動(dòng)手梗顺,做一個(gè)網(wǎng)頁(yè)泡孩。(當(dāng)年可還沒(méi)有像問(wèn)卷星,這樣的在線問(wèn)卷調(diào)查工具)
這個(gè)網(wǎng)頁(yè)寺谤,可以提供幾個(gè)選擇題仑鸥,然后按確定,提交選擇变屁。
這需要用到HTML和JavaScript眼俊。我打開(kāi)了代碼編輯器,把HTML碼上去粟关,然后用JavaScript把每次提交的結(jié)果疮胖,保存到一個(gè)數(shù)組中。
(圖:做了個(gè)很簡(jiǎn)單的選擇題網(wǎng)頁(yè))
然后闷板,把它掛到了單機(jī)網(wǎng)站服務(wù)器澎灸,然后提著筆記本電腦和iPod Touch上課去。我用那個(gè)iPod Touch打開(kāi)做好的HTML選擇題網(wǎng)頁(yè)遮晚。
然后性昭,把iPod Touch在班里的同學(xué)之間,一個(gè)一個(gè)地傳閱县遣,做好選擇并提交糜颠。
使用iPod Touch有一個(gè)弊端,如果某個(gè)同學(xué)多手按了一下中間的首頁(yè)鍵萧求,選擇題的網(wǎng)頁(yè)就不見(jiàn)了其兴,他們也不知道從哪里重新打開(kāi)這個(gè)網(wǎng)頁(yè)。怎么辦夸政?
所以我用厚厚的透明膠紙元旬,把HOME鍵貼住,讓它不能按......
7. 一理通百理明
下一步是什么酪碘?
拿當(dāng)年的例子來(lái)朋譬,在這10天后,霖哥開(kāi)始學(xué)習(xí)PHP和MySQL兴垦,并在不久之后徙赢,開(kāi)始幫學(xué)校做網(wǎng)站字柠,賺一點(diǎn)錢(qián)。
當(dāng)時(shí)的霖哥狡赐,目的就是通過(guò)編程窑业,盡快擁有做項(xiàng)目的能力,在課余賺錢(qián)枕屉。
這是一種至上而下的學(xué)習(xí)過(guò)程常柄,更快地學(xué)習(xí),通過(guò)動(dòng)手搀擂,迅速的入門(mén)一項(xiàng)技能西潘。無(wú)數(shù)計(jì)算機(jī)系的學(xué)生,在畢業(yè)的那一刻一臉懵逼的踏入職場(chǎng)哨颂,而霖哥大學(xué)一年級(jí)開(kāi)始就開(kāi)發(fā)自己的項(xiàng)目了喷市。(大四的時(shí)候還幫了幾位計(jì)算機(jī)系的兄臺(tái)做畢業(yè)設(shè)計(jì)。)
在這些過(guò)程里威恼,霖哥逐漸發(fā)現(xiàn)了“一理通百理明”的道理品姓。后來(lái)剩下的大學(xué)生涯里,把Java箫措、C#腹备、Python、Ruby等常見(jiàn)的編程語(yǔ)言和她們的框架都自學(xué)了一遍蒂破,不同的編程語(yǔ)言馏谨,他們的學(xué)問(wèn)其實(shí)是很大一部分是相通而有關(guān)聯(lián)的别渔。
隨著學(xué)習(xí)的深入附迷,當(dāng)你已經(jīng)熟悉兩三種編程語(yǔ)言,能開(kāi)發(fā)各種軟件哎媚,這時(shí)要學(xué)習(xí)一種新語(yǔ)言喇伯,學(xué)習(xí)的更多是思想,理解了思想和學(xué)習(xí)新語(yǔ)言的工具鏈后拨与,就可以開(kāi)工了稻据,完全是1-3天的事情。
因?yàn)闊o(wú)論何種編程語(yǔ)言买喧,它們基本語(yǔ)法都是條件捻悯、函數(shù)、循環(huán)淤毛、數(shù)據(jù)結(jié)構(gòu)所組成今缚。
與學(xué)院派那種自下而上的過(guò)程相比,這種自上而下的學(xué)習(xí)過(guò)程低淡,能更快的完善小目標(biāo)姓言、激發(fā)興趣和成就感瞬项。
至于一些基礎(chǔ)的底層知識(shí),霖哥對(duì)正統(tǒng)計(jì)算機(jī)課程里的數(shù)據(jù)結(jié)構(gòu)何荚、算法囱淋、計(jì)算機(jī)底層的相關(guān)知識(shí)并不牢靠,但憑借足夠的獵奇心餐塘,在隨后的工作時(shí)間里妥衣,慢慢自己地自學(xué)回來(lái)。
(圖:?jiǎn)滩妓乖L談)
喬布斯曾經(jīng)說(shuō)過(guò)戒傻,
我覺(jué)得每個(gè)人都應(yīng)該學(xué)習(xí)一門(mén)編程語(yǔ)言称鳞。學(xué)習(xí)編程教你如何思考。
不管你出來(lái)工作后稠鼻,是不是以此為職業(yè)冈止,擁有一定的編程技能,會(huì)用編程思維來(lái)思考問(wèn)題候齿,將會(huì)受用終生熙暴。
8. 導(dǎo)師
總結(jié)霖哥上述自學(xué)編程的心法:
- 先定它一個(gè)小目標(biāo)!
- 快速過(guò)一遍教程慌盯!
- 嘗試一個(gè)小實(shí)戰(zhàn)周霉!
其實(shí),記住霖哥的心法亚皂,我覺(jué)得根本不需要10天俱箱。
在2016年之前,霖哥一直把自己的一個(gè)人生格言引以為豪:
“我有2個(gè)老師灭必,1個(gè)叫谷歌狞谱,1個(gè)叫百度”。
然而禁漓,如今我不這么認(rèn)為了8啤!播歼!
當(dāng)年的霖哥伶跷,沒(méi)人輔導(dǎo),在大學(xué)利用課余時(shí)間秘狞,全靠自學(xué)叭莫,花了10天,系統(tǒng)的了解一下“網(wǎng)頁(yè)編程”烁试,往后才開(kāi)始花費(fèi)大量的時(shí)間雇初,一個(gè)接一個(gè)的去熟悉各種開(kāi)發(fā)框架。
如今廓潜,霖哥建議是抵皱,可以縮短“快速過(guò)一遍教程”的這個(gè)過(guò)程善榛。要是有一定的電腦基礎(chǔ),一天里分配比較多的時(shí)間呻畸,5天移盆,把基礎(chǔ)理論和試驗(yàn)過(guò)一遍是沒(méi)問(wèn)題的。
霖哥覺(jué)得伤为,因?yàn)槿鄙賹?dǎo)師咒循,霖哥在個(gè)人技術(shù)認(rèn)知成長(zhǎng)上,也走了很多彎路绞愚,浪費(fèi)了不少時(shí)間叙甸。
互聯(lián)網(wǎng)的發(fā)展,帶來(lái)了信息的爆炸位衩,大量的信息讓我們的世界變平了裆蒸,信息的不對(duì)稱,正在逐步被減少糖驴。
比如說(shuō)僚祷,我們購(gòu)買(mǎi)一個(gè)商品,我們會(huì)先在網(wǎng)上搜索贮缕,進(jìn)行比價(jià)辙谜,預(yù)防自己被坑。
但是每個(gè)不同的人感昼,對(duì)信息的思考和處理的結(jié)果装哆,是不一樣,這造成對(duì)同樣的信息定嗓,會(huì)有不同的認(rèn)知蜕琴,也就是認(rèn)知差距。這種認(rèn)知蜕乡,是需要導(dǎo)師去指導(dǎo)的奸绷。
比如說(shuō)梗夸,現(xiàn)在的人层玲,看一個(gè)電影,會(huì)先跑上豆瓣上看評(píng)分反症。明明一個(gè)不知所云辛块、讓人呼呼大睡的電影,怎么就很高分铅碍?雖然不懂润绵,但是因?yàn)樗芨叻郑砸廊桓福o它一個(gè)高分尘盼。
要解決這種認(rèn)知差距憨愉,與其通過(guò)在信息叢林里閱讀天量的信息,還不如找到一個(gè)認(rèn)知導(dǎo)師卿捎。
要知道配紫,霖哥整個(gè)編程生涯里,沒(méi)有遇過(guò)哪怕一個(gè)導(dǎo)師午阵,所有的知識(shí)躺孝,都是從網(wǎng)上的信息里挖來(lái)的,并且自我生成對(duì)它們的認(rèn)知底桂。
當(dāng)然這也有一個(gè)好處植袍,很多事情,霖哥會(huì)有不同的視角籽懦,去思考技術(shù)的問(wèn)題于个,盡管我并不知道這好與不好,至少現(xiàn)在回想起來(lái)暮顺,霖哥的一些見(jiàn)解是獨(dú)到和有用的览濒。
9. 學(xué)習(xí)
關(guān)于創(chuàng)業(yè),我們會(huì)見(jiàn)到這樣的段子:
我有一個(gè)價(jià)值十億的 idea拖云,只要開(kāi)發(fā)這樣一個(gè) APP贷笛,半年就會(huì)有一千萬(wàn)人用,一年就能納斯達(dá)克上市宙项。項(xiàng)目我已經(jīng)規(guī)劃的非常清楚乏苦,啟動(dòng)資金也很充足,
“萬(wàn)事俱備尤筐,就差一個(gè)程序員了汇荐!”
你那么牛,花10天自學(xué)一下的時(shí)間都不愿意盆繁,你咋不上天呢掀淘。
別忘了,無(wú)數(shù)成功的創(chuàng)業(yè)企業(yè)家油昂,他們都是程序員出身革娄,像比爾·蓋茨、馬化騰冕碟、李彥宏拦惋。
就算不懂代碼,也最起碼都懂得技術(shù)思維安寺。像喬布斯對(duì)“面向?qū)ο蟆钡纳羁汤斫?/strong>(霖哥認(rèn)為這理解超越80%的職業(yè)程序員)厕妖、1996年馬云做的中國(guó)黃頁(yè)(能看見(jiàn)別人看不見(jiàn)的一個(gè)新興技術(shù)的商業(yè)價(jià)值),都可以看出這些商業(yè)巨人對(duì)科技技術(shù)的深刻理解挑庶。
在霖哥看來(lái)言秸,編程是一門(mén)藝術(shù)软能,而不是技術(shù)。
在學(xué)校課堂里的举畸,學(xué)到的只是技術(shù)埋嵌,要把它玩成藝術(shù),還需要有豐富的經(jīng)驗(yàn)俱恶、強(qiáng)烈的好奇心和與別不同的視野雹嗦。這些都是光靠網(wǎng)上資料學(xué)習(xí),很難學(xué)到的合是。
這也是霖哥寫(xiě)下這篇文章的原因了罪,通過(guò)傳達(dá)霖哥的自學(xué)經(jīng)驗(yàn)和思考維度,可以讓更多的人在科技大爆炸時(shí)代聪全,提升自己的認(rèn)知泊藕、技術(shù)思維。
霖哥不比別人聰明难礼,但是霖哥也學(xué)到了娃圆,相信每個(gè)人都可以。
毫不夸張的說(shuō)蛾茉,這短暫的10天讼呢,改變了我的人生,讓我走上技術(shù)之路谦炬。
霖哥自學(xué)編程的經(jīng)驗(yàn)悦屏,想分享的真是太多太多了。下一篇文章键思,霖哥想具體說(shuō)說(shuō)础爬,對(duì)于想自學(xué)編程初學(xué)者,究竟學(xué)哪一種編程語(yǔ)言比較好吼鳞。
如果你覺(jué)得有用看蚜,你也想學(xué)習(xí)編程或投身科技行業(yè),但是你不知道從哪開(kāi)始赔桌,留下評(píng)論供炎,說(shuō)說(shuō)你的小目標(biāo)和故事,霖哥會(huì)持續(xù)分享自己的自學(xué)經(jīng)驗(yàn)纬乍、方法和技巧碱茁,提供綿薄之助。
我是霖哥仿贬,一個(gè)商學(xué)院畢業(yè)的程序員,通過(guò)自學(xué)編程成為一家大型上市公司的資深軟件工程師墓贿。
在《商學(xué)院畢業(yè)的程序員》專欄中茧泪,我想持續(xù)分享我自學(xué)編程的經(jīng)驗(yàn)和心法蜓氨,用通俗的話提煉我的技術(shù)思維和對(duì)科技世界的理解,希望可以幫助到你队伟。
如果覺(jué)得有用就分享給你的朋友穴吹,轉(zhuǎn)載請(qǐng)注明出處《商學(xué)院畢業(yè)的程序員》。
如果在了解或?qū)W習(xí)編程的過(guò)程中有迷惘嗜侮、或?qū)σ恍┥鷿目萍几拍畹牟唤飧哿睿昧α粞裕?/p>