隨州網(wǎng)

 找回密碼
 注冊會員
【必看】隨州網(wǎng)APP新手指南!商家信息發(fā)布指南2019,隨州網(wǎng)最新招聘信息
隨州生活百事通隨州網(wǎng)標簽出爐,快來看看你是什么標簽?《版主手冊》申請版主的快來喲
查看: 4406|回復: 0
打印 上一主題 下一主題

[軟件 游戲] 程序員如何選擇技術方向

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2014-12-10 22:41 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

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

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

2008年秋天的一個午后,溫暖的陽光透過落地窗落在我面前這個長長的寫字桌上,桌子對面坐的是一個瘦小的程序員,他的名字叫小明,小明有些茫然,他看著我,不知道該說些什么。
程序員都是很嚴謹?shù)模也坏貌皇紫劝l(fā)出一個 System Call:

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

寫單元測試。

還有呢?

沒了,就一直寫 JUnit。

別人也寫單元測試么?

沒人愿意寫單元測試,只有我寫。


……

你為什么想來研究院呢?

我想寫一些真正的程序。

什么是真正的程序?

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

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

真的么?

真的


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

ID :攀攀

性別:男

師門:電子科技大學 98 年計算機系

職業(yè):網(wǎng)絡引擎設計者

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

武學造詣:決不要把計算機強加給人們的限制認為理所當然,人不是機器的奴隸,把了解機器的限制作為通曉計算機的標準只能是自欺欺人

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


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

評分

參與人數(shù) 1金幣 +15 貢獻 +15 收起 理由
海的聲音 + 15 + 15 哥給的不是分,是支持!

查看全部評分


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規(guī)則

QQ|合作伙伴|手機版|小黑屋|廣告報價|聯(lián)系我們|本站簡介|無圖瀏覽|隨州網(wǎng) ( 鄂ICP備11019817號-1 )

GMT+8, 2025-2-6 23:51

Powered by Discuz! X3.4

© 2001-2019 Comsenz Inc.

快速回復 返回頂部 返回列表