程序員的路是一行一行打出來的(轉)

有一句話我一直記得很深,“當人深處迷茫之中時早已不再迷茫”。很繞很矛盾的話,也可能有人聽到後會馬上跳腳喊,我一直迷茫怎麼還是迷茫呢?呵呵。靜一下想一下再喊。

大家都這麼大了,路該怎麼走,你知道麼?作爲程序員,路該怎麼走,你知道麼?

05年入學,對IT一無所知,對程序一無所知,甚至對自己也是一無所知。路走到了今天,我感觸確實不少,寫點東西以饗來者。

科班出身的我們,從開始就按部就班的學着操作系統,數據結構,組成原理;從c到c++,彙編,java這些又是標準課程。面對紛繁複雜的IT界,你每天記住五個名詞或者縮寫,到今天我敢說你依舊很多東西不知道。難怪不知道怎麼走。我們不是選擇太少而是選擇太多。我們得到的信息不是太少而是太多。

不知道現在還有沒有人疑惑是該學c++還是學java;是該選擇.NET平臺還是java平臺;是該學通信還是學web;是好好編程還是學好軟件工程;是學python還是ruby;是學javaFX還是WPF;是專注windows開發還是去linux;是跟着大家一起SOA還是OO。。。如果這個單子繼續列下去,就像死循環一樣吧,無終無止直到崩潰。

但單子上的每一個選擇又都是那麼切身的煩惱着我們。站着說話不腰疼的人無法理解切身的痛。我是從大二下學期開始學習的,是突然之間對作爲程序員感了興趣,雖然晚了點,但遲到總比不到強。當時我就很迷茫,也不知道該學什麼,當時網上c++還是比較火的,雖然有人說它已經死去,被什麼什麼替代,但總有很多人站出來力爭並有些道理。於是熱血的我斥資買了大量c++經典,基本能叫上名來的經典我都買了吧,五本以上。當時看着書架上一片c++,心情澎湃啊,誰說c++會死掉,我跟誰玩命。可最後呢,呵呵,不好意思,沒堅持下去,除了effective c++看了一半左右,其他有的翻翻有的連動都沒有,最後把所有書半賣半送給同學了。

然後馬上轉到.NET平臺,開始學習C#,至今都不知道爲什麼,也許打了雞血,又是心潮澎湃吧。可這次基本算是堅持下去了。一如既往,書架上一片.NET,c#,圖書館的相關書籍也是不知被我借了多少本。我覺得有一點幸運的是我看的第一本.NET書籍是understanding .NET的中文譯本《.NET大局觀》。看了以後確實有了一個不錯的大局觀,雖然當時有不少地方看不懂,但足夠了。我知道.NET是平臺,C#什麼都不是。如果不理解.NET,學c#沒用。以至後來我跟同學說“java不是一種語言,c#不能獨存”,至今想想都很有道理。

於是一路沿着程序員的路走了下去,開始去理解OO,間斷的編程序,學習web,瞭解SOA,看《程序員》雜誌,總和幾個哥們高談闊論技術。其實我知道自己水平很低,但是我知道我在幹什麼,而且還有點興趣。足夠啦。

那麼再回到題目,路該怎麼走。我是那種不愛聽別人話的人,我不同場合跟人說過,別人說話都是放屁,如果你覺得香就去聽,不喜歡就算了,喜歡屁的人還是不多的。我話雖然說得很難聽,但tell the truth,我就是喜歡屁的那種人,我當面牴觸背地裏就會想人家說得到底對不對,我自己哪裏有問題。表裏不一啊。

既然是程序員的感悟,再回頭說點技術的路怎麼走。技術大牛們總是喧囂着這鼓吹着那,什麼技術的發展總是朝着更快更簡單(很多人說,孟巖也說過,他是個有爭議的牛人)想想還真對,誰不喜歡簡單點快點啊。但是從一個技術跳變到另一個技術爲什麼簡單了爲什麼快了。你知道麼?

很多人都學過c++,先不管編過多少代碼。C++中的多重繼承大家印象深刻吧,在後來的高級語言中都把這個特性砍掉了。爲什麼?我不知道。爲什麼不知道,因爲我沒用過多重繼承,它沒有給我帶來過巨大的麻煩讓我困惑不已。如果硬讓我說多重繼承帶來的麻煩就是我不知道爲什麼它被砍掉了。蠻有道理蠻有現實意味的東西。這一點我也問過SY,因爲我知道他編過不少c++的程序,而且項目還不太小。他說他也沒被多重繼承煩惱過,也無從說起它的壞來。

再說一個更有趣的,萬惡之源的goto。市面上我們接觸的語言大多都有goto,但是所有技術大牛都說不要用。那是萬惡之源啊。我用過,在彙編裏,因爲據我的水平彙編不用goto沒辦法。可是我的匯編程序小的可憐,根本不足以暴露goto的惡來,所以至今我也不恨它。

再說一下重量級和輕量級,太流行的兩個詞彙啦,或者說輕量級更流行吧。爲什麼,因爲它輕吧。哈哈。俗話說,船小怕風浪,船大難掉頭。不大不小又怕風浪有難掉頭。所以不要一直不變的以爲輕量級一定是發展方向。想要迎風破浪,沒有大船也不行。

大家看懂我要說什麼了吧。所有的技術變革都是有原因的,即使廠商們再鼓吹,都是要真的有那麼回事,他們才能煞有介事。可是我們爲什麼會對技術變革感到迷茫,對選擇感到困惑,因爲我們不瞭解前因後果,我們沒有受到上一種技術的煎熬,我們沒有感受到後一種技術帶來的便捷。那怎麼可能不困惑呢。。。

別人的經歷再豐富再有道理,但那不是你的,你依舊不會真的明瞭其中的道理。但話說話來,我還是不會用多重繼承的,我還是不會使用goto的,我還是會命名規範的。我還是會欣然接受技術變革的。斷代史的特點就是這樣。

那麼你現在還會爲選擇了python的同時ruby火了而憤怒麼?還會爲了選擇了.NET而J2EE異常流行感到遺憾麼?

其實路就在腳下,怎麼走看你自己,結果也只有你自己知道。如魚飲水啊。去經歷那些困難和麻煩,纔會知道簡單快捷的好處。去經歷迷惑才能體味清醒的快樂。還要去看技術大牛們的吹噓和感嘆。還是要自己一行一行的敲打垃圾程序。給你十年。夠不夠?

序員的路是一行一行打出來的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章