原創(chuàng)|行業(yè)資訊|編輯:龔雪|2014-08-11 10:09:00.000|閱讀 612 次
概述:本文內容摘選自知乎,原問題是“非科班出身程序員比較容易缺乏哪些技能?用什么方法彌補比較好?”
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
這是最近知乎上的一個熱門問答,大部分答案都應該是出自科班的程序員,而我是一個典型非正統(tǒng)科班的無證程序員,不能說成功轉型,至少在一線碼農(nóng)崗位上持續(xù)工作了8年,即將邁入第9個年頭,希望可以用自身經(jīng)歷給樓主參考。
我大學本科文學院廣播電視新聞專業(yè),記者班,純粹的文科,所有課程都是寫作與拍片,沒有任何理工科相關課程,整個大學都是在分析吳忠憲與白巖松的電視節(jié)目中度過,作業(yè)皆是300字剖析《霸王別姬》、《我猜我猜我猜猜猜猜》、《小莉看世界》。所以是純正得不能再純正的非科班,連理工科一點邊都不沾。
作為一個民科,我并不贊同大部分科班出身同學的答案,轉型并不靠讀書或者補充理論知識,我自己走上程序員這條路的唯一方法,就是無比勤奮地堆砌代碼量。
碼農(nóng)作為一個工程職業(yè),其核心并不是什么高深的理論或者牛逼的算法,真正重要的是你踩了多少坑,你是否踩過足夠多的坑。除了極少數(shù)真正需要頂尖理論知識的算法,絕大部分日常開發(fā),依靠的都是經(jīng)驗,特別是工程經(jīng)驗??匆槐緯?,可能你看完就O了,可是你真的懂了?第一高分的答案說看完那些書要2~3年,可是你看完了那些書,就真的會寫程序了?
作為一個非科班的程序員,你要說服別人你寫的程序比科班要好,只有你真的比科班的人寫得好!因為你沒有學位,沒有系統(tǒng)的課程,只有真正從實戰(zhàn)中越過學位這個坎兒,靠的就是你擁有超強的寫代碼的能力。而這種能力,只有靠寫大量的程序和代碼,積累經(jīng)驗,切實鍛煉出比大部分科班同學更強的coding skill的能力。
我在大學的時候,基本上每天都寫十幾個小時代碼,天天背著筆記本上課,藏在抽屜底下,不上課,就悶頭寫。晚上也寫,有時候一直寫到凌晨2-3點(我自己一個人住學校附近)。一開始很困難,因為沒有理論知識,所以有很多問題不懂。我建議遇到不懂,才查書,才查資料,而不是一開始沒帶著問題就虛無縹緲地看書,這樣效率很低。
曾經(jīng)我這樣建議過別人寫大量代碼,別人會問,到底寫什么?
寫自己感興趣的東西!你先創(chuàng)造出一個需求,你可以先作為用戶,想一下你需要什么功能,一開始即使是無聊的,即使是已經(jīng)有的,即使是別人寫爛了的,都可以作為自己的題目,然后圍繞著寫。我推薦你參考一個很成熟的、很經(jīng)典的軟件(當然不需要很專業(yè)或者很難),模仿它做出你能做的所有功能。針對每一種功能,自己去思考一種做法,試圖猜想別人會用什么方法實現(xiàn)。在你做完之后,可以搜索一下網(wǎng)上的資料,進行印證,不斷修正自己的設計思路和代碼架構想法。
這是一種極好的習慣,養(yǎng)成這種猜別人思路的習慣會讓你越來越熟悉各種軟件的架構方式,也越來越熟悉如何去通過軟件的表象猜出它內里的設計思路。我現(xiàn)在的主業(yè)是游戲引擎設計,基本上我看了一下游戲引擎的一些表象,已經(jīng)可以猜出大部分它的設計細節(jié)。
而熟悉別人思路還有一個重要的作用,就是把自己的思維模式向正統(tǒng)工程學靠攏。遇到一個問題,如何剖析,如何抽取重點,如何平衡利弊,最后架構解決方案,在軟件工程方面解決這些問題的思路都有一套正統(tǒng)的想法,雖然你沒有經(jīng)歷過ACM訓練,雖然你沒有上過軟件工程的課,雖然你沒有讀過這方面的著作,但你熟悉了主流軟件世界對這些問題的一貫思路,你也會逐漸變得像他們一樣思考,你會遵循這種思維模式解決問題——肯定比你大學上四年課程,考幾次試,讀十本二十本所謂的好書,要管用得多。
但最后你還是要回歸——在用野路子讓你獲得一般科班程序員都無法媲美的coding skill、以及已經(jīng)可以熟練運用主流軟件工程思維解決軟件架構問題之后,你需要回歸到正統(tǒng)理論中來,這時候可以讀一些著作,而這些書在網(wǎng)上可以一搜一大把,隨便讀,隨便看。反正這時候你補充理論只會讓你更強,而且你理解得更加透徹,更精準,絕對比上課聽老師照本宣科要更加深入理解。
如果你能夠充分利用4年本科時間,基本上你可以足夠堆砌出幾十萬行代碼,而如果你又不是特別笨,你應該可以秒殺大部分渾渾噩噩玩dota過的計算機本科生。如果你還可以在某一個領域——比如圖形、或者編譯、操作系統(tǒng)之類的,有比較深入的修為,而又稍微比一般人聰明一點,你還可以直接干掉80%的985/211研究生。那些幫老板干活,只是每天上班打卡、作業(yè)應付、考試抄襲的人,是遠遠干不過拼死拼活堆砌代碼量的實戰(zhàn)非科班生的。
而最最最后,你需要的是自信,非科班生絕對可以做得比科班生要牛逼。寫個程序而已,有多高深?非得讀個幾年書?你讀書的那會兒,我寫的代碼量絕對比你屌多了,我讀的paper比你多多了。反正說白了,只要你肯不要命的、勤奮地寫代碼,你會出頭的,我保證!
列一個書單,僅供參考:
整理自
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網(wǎng)