隨州網(wǎng)

標(biāo)題: 程序員如何選擇技術(shù)方向 [打印本頁(yè)]

作者: 滴滴答    時(shí)間: 2014-12-10 22:41
標(biāo)題: 程序員如何選擇技術(shù)方向

最近寫(xiě)了「當(dāng)程序員老去」「程序員真正的價(jià)值」兩篇文章,傳播甚廣,今天是第三篇:「程序員如何選擇技術(shù)方向」,史稱「程序員三部曲」。

那之前寫(xiě)的幾篇程序員文章算什么呢?算前傳吧。以后再寫(xiě)程序員文章算什么呢?算后記吧。

2008年秋天的一個(gè)午后,溫暖的陽(yáng)光透過(guò)落地窗落在我面前這個(gè)長(zhǎng)長(zhǎng)的寫(xiě)字桌上,桌子對(duì)面坐的是一個(gè)瘦小的程序員,他的名字叫小明,小明有些茫然,他看著我,不知道該說(shuō)些什么。
程序員都是很?chē)?yán)謹(jǐn)?shù),我不得不首先發(fā)出一個(gè) System Call:

你在客戶現(xiàn)場(chǎng)這半年做什么工作?

寫(xiě)單元測(cè)試。

還有呢?

沒(méi)了,就一直寫(xiě) JUnit。

別人也寫(xiě)單元測(cè)試么?

沒(méi)人愿意寫(xiě)單元測(cè)試,只有我寫(xiě)。


(, 下載次數(shù): 217) ……

你為什么想來(lái)研究院呢?

我想寫(xiě)一些真正的程序。

什么是真正的程序?

比如 Java,比如面向?qū)ο缶幊,你總要?xiě)一些類(lèi)和各種各樣的方法,而不是一直寫(xiě) Test Case。

好的,沿著這個(gè)樓梯上三樓,那里有一群和你一樣的程序員,他們不僅寫(xiě) Java,還寫(xiě) JavaEE 相關(guān)的各種程序,你會(huì)找到自己需要的東西。

真的么?

真的


那時(shí)候我風(fēng)華正茂,沒(méi)有現(xiàn)在這么老成持重,陽(yáng)光照在我的翹著二郎腿的腳面上,一切都顯得十分虛幻,在小明的眼里,那時(shí)的我估計(jì)很像「黑客帝國(guó)」里的墨菲斯,但是他不能確定自己是不是「The One」。小明疑惑的看了我一會(huì),最終還是上樓了。至此,他完成了第一次技術(shù)方向的選擇。在三樓,他碰到了一群同樣嚴(yán)謹(jǐn)?shù)某绦騿T,他不僅學(xué)會(huì)了寫(xiě)真正的 Java 程序,而且掌握了部分 Web 編程和服務(wù)器端編程,包括 JavaScript、JQuery、Spring、Hibernate、JMX、Web Service 等等。小明變得快樂(lè)起來(lái),漸漸擺脫了注定孤獨(dú)一生的陰影。
過(guò)了一段時(shí)間以后,小明已經(jīng)不滿足只寫(xiě) Java 相關(guān)的程序了。有一天他看到我手里的 iPhone 和 Mac,仿佛見(jiàn)到了初戀的情人,眼中重新燃起了綠油油的光芒,他知道了 iOS 開(kāi)發(fā)者這回事。很快,他花掉了所有的銀子購(gòu)買(mǎi)了 Mac 和 iPhone,開(kāi)始日夜兼程,學(xué)習(xí) iOS 開(kāi)發(fā)。他在寫(xiě) Java 的間隙編寫(xiě) Objective-C 代碼,在編譯 Web App 的同時(shí)構(gòu)建 IPA,在清晨的微光中調(diào)試程序,在每個(gè)夜晚與模擬器竊竊私語(yǔ)……他完成了第二個(gè)階段的技術(shù)方向選擇。
終于到了離別的時(shí)候,他要去尋找更大的夢(mèng)想,經(jīng)年以后,在南方的某個(gè)城市,他成了一個(gè)知名公司的 iOS 主程,并開(kāi)發(fā)出了多個(gè)著名的 iOS 應(yīng)用,比如「丁香醫(yī)生」「用藥助手」「家庭用藥」等等,難以想象,如果沒(méi)有小明,張老師怎么去見(jiàn)小姨子,馮老師何以拯救互聯(lián)網(wǎng),二爺怎么鑒書(shū),西湖何以養(yǎng)醋魚(yú)!
第一個(gè)故事講完了,主角小明利用兩次主動(dòng)的技術(shù)方向選擇,完成了從小球到小牛的逆襲,以至于現(xiàn)在連女朋友都有了。
這時(shí)候就有讀者要問(wèn)了,那些大牛是如何做技術(shù)選擇呢?
大牛不需要做技術(shù)方向的選擇,他們需要什么就學(xué)什么,學(xué)什么就成什么。他們就象掌握了「九陽(yáng)神功」的張無(wú)忌,各種類(lèi)型的技術(shù)和程序到了他們的手里都能發(fā)揮出巨大的威力。技術(shù),是他們生命中最重要的組成部分。
如果你們以為我在吹牛我就給你舉個(gè)例子。我在《MacTalk·人生元編程》中寫(xiě)過(guò)一個(gè)技術(shù)高手,他的名字叫做攀攀。很長(zhǎng)一段時(shí)間我都不知道他掌握了哪些技術(shù),因?yàn)樗募夹g(shù)是我們很多人的超集,我們遇到的所有問(wèn)題都可以在他那里得到解決,他只是叼著煙翹著腿敲下幾行代碼而已。后來(lái)我才知道,他在高中的時(shí)候已經(jīng)癡迷于計(jì)算機(jī)了,大學(xué)時(shí)代自學(xué)了大量的計(jì)算機(jī)相關(guān)的知識(shí),操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)、算法在他大學(xué)畢業(yè)之后就已了然于胸。
直到最近,我才從網(wǎng)路上拿到一份他幾年前的簡(jiǎn)介,那個(gè)時(shí)候,他的履歷是這樣的:

ID :攀攀

性別:男

師門(mén):電子科技大學(xué) 98 年計(jì)算機(jī)系

職業(yè):網(wǎng)絡(luò)引擎設(shè)計(jì)者

人物背景:精通 C, C++, Java , Pascal, Basic, Fortran, Cobol, PL/M, Perl, Python, Lisp, Prolog, Smalltalk 、 bind 、 Ldap 、 PVM 、 MPI 、編程自動(dòng)化、 Linux 核心代碼, JDK 源碼, GLibc 源碼, Apache 源碼、常見(jiàn)的網(wǎng)絡(luò)協(xié)議內(nèi)部實(shí)現(xiàn)、網(wǎng)絡(luò)通訊……是真的精通

武學(xué)造詣:決不要把計(jì)算機(jī)強(qiáng)加給人們的限制認(rèn)為理所當(dāng)然,人不是機(jī)器的奴隸,把了解機(jī)器的限制作為通曉計(jì)算機(jī)的標(biāo)準(zhǔn)只能是自欺欺人

游戲感言:IP 路由和認(rèn)證的雙重功能將是未來(lái)網(wǎng)絡(luò)游戲發(fā)展的障礙,今后的網(wǎng)絡(luò)應(yīng)該是以分布式目錄服務(wù)為基礎(chǔ)的,以網(wǎng)絡(luò)設(shè)備為中心,與具體主機(jī)無(wú)關(guān)。集成了廣泛的認(rèn)證與授權(quán)能力的網(wǎng)絡(luò)(全公司上下沒(méi)有人能聽(tīng)得懂他在說(shuō)什么,好在大伙兒都已經(jīng)習(xí)慣了)。


都是98年畢業(yè)的,人和人的差距怎么那么大呢?無(wú)語(yǔ)淚千行!
兩個(gè)故事講完了,究竟如何做技術(shù)方向的選擇呢?答案就飄在風(fēng)里……
1、操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)、算法、網(wǎng)絡(luò)等基礎(chǔ)技術(shù)應(yīng)該在大學(xué)時(shí)代深入學(xué)習(xí),如果畢業(yè)了你還沒(méi)有掌握這些內(nèi)容,那就隨用隨學(xué)好了。學(xué)習(xí)這些基礎(chǔ)理論極為枯燥,只有實(shí)際工作中的需求才能給你最大的學(xué)習(xí)動(dòng)力去掌握這些艱深的內(nèi)容。
2、至少要掌握一門(mén)靜態(tài)語(yǔ)言,比如 C、C++、Java、C#、Objective-C 等。至少掌握一門(mén)動(dòng)態(tài)語(yǔ)言,比如 Python、Ruby、PHP 等。
3、推薦學(xué)習(xí)一些同時(shí)具備動(dòng)態(tài)語(yǔ)言和靜態(tài)語(yǔ)言的特性語(yǔ)言,比如 Go、Swift、Scala 等。這樣你會(huì)對(duì)面向?qū)ο缶幊獭⒚嫦蜻^(guò)程編程、編譯型、解釋型語(yǔ)言有更深入的了解。
4、系統(tǒng)的構(gòu)建自己的知識(shí)體系,而不是局限在某個(gè)點(diǎn)上。經(jīng)常有讀者問(wèn)我,我前幾年一直在寫(xiě) VBA/ActionScript/Delphi/SQL ……現(xiàn)在項(xiàng)目組突然不再采用這些語(yǔ)言了,怎么辦?很多人難以預(yù)料未來(lái)技術(shù)的走向,但是你至少要構(gòu)建自己的技術(shù)壁壘和平臺(tái)。學(xué)習(xí) Java,就應(yīng)該構(gòu)建你自己的 JavaEE 平臺(tái);Objective-C 對(duì)應(yīng) iOS/OS X 開(kāi)發(fā)平臺(tái);C#,對(duì)應(yīng) .Net 平臺(tái),SQL,對(duì)應(yīng)數(shù)據(jù)庫(kù)平臺(tái)。如果你在用 ActionScript,那你不應(yīng)該局限在 Flex 上,你對(duì)應(yīng)的是整個(gè)前端平臺(tái)。
立足平臺(tái),你會(huì)站得很穩(wěn)。立足一個(gè)點(diǎn),你可能摔的很慘,就是這樣。
5、主動(dòng)選擇技術(shù)方向比被動(dòng)等待好。根據(jù)自己的興趣和技術(shù)的發(fā)展主動(dòng)選擇,就像小明一樣,有時(shí)候放棄也意味著得到。
6、不要過(guò)于追新,不要每出一門(mén)「顛覆性」的語(yǔ)言或技術(shù)都投入精力物力。追新的后果很可能是該學(xué)的沒(méi)學(xué)會(huì),不該學(xué)的學(xué)完也忘了。我有一哥們,我們都在寫(xiě) JavaScript 的時(shí)候,他認(rèn)為 Java 新推出的 JavaFX 才是前端的未來(lái)……然后就沒(méi)有然后了。我們都用 Java 的時(shí)候,他認(rèn)為 ERlang 是才是編程語(yǔ)言的未來(lái)……然后就沒(méi)有然后了,可謂一步早,步步早,讓人扼腕嘆息。
7、也不要過(guò)于保守,比如 Go、Swift、Docker 等技術(shù),我個(gè)人以為是值得投入時(shí)間和精力的技術(shù)。
沒(méi)有 8 了,寫(xiě)到這里,冬夜已經(jīng)黑的不像樣子。站在陽(yáng)臺(tái)望出去,仿佛看著某個(gè)巨大 IDE 的黑色編碼主題,我想起了某位大牛的一句話:我不是懂得多,我只是學(xué)的快而已。






歡迎光臨 隨州網(wǎng) (http://m.infinitetetris.com/) Powered by Discuz! X3.4