作為一個程序員,你的進步完全取決于你自己

jopen 10年前發布 | 9K 次閱讀 程序員

我曾經在Hacker News網站上讀過一篇帖子的評論,其中一個年輕的程序員說他們不想呆在那些只會讓思想陳舊的老程序員離開而不是對他們再次培訓的公司里,因為他明白,有一天他們也會這樣。

也許這個人的本意是好的,但是他這種說法還是讓我惱怒。首先僅僅因為一個程序員年齡較大并不能說明他思想陳舊(就像一個年輕的程序員你不能因為他年 紀輕就說他思想新潮)。我認為這個評論中最大的問題是:始終讓自己接受教育并跟上時代的發展,這應該是你自己的責任而不是公司的問題。

我做程序員已經32年了,而且我一直努力讓自己學習各種技術來保持進步。我知道很多像我這個年紀的人自從拿到計算機學士學位以后就再也沒有學習過任何新知識,因此他們最終會被淘汰。我花了6年 的時間學習化學,但是一旦當我成為一名程序員,我發現我需要了解在我工作之外發生了些什么,而且我有不斷學習的欲望并一直在嘗試各種各樣的編程。當然在當 年那個時候,所有事情都要慢得多,因為所有的學習都要靠閱讀,這是一個很大的挑戰(當時沒有網絡,你必須讀紙質版的東西!)

在我做程序員的第三年,我預見到微型計算機是未來發展的方向,因此我調整了我的工作重心,并加入了他們那個團隊。有一次,在那里我讀到一門新的語言即C語言,并說服我的經理買下它。事實證明,會用C語言意味著我的第一個啟動應用程序就可以用C語言來編寫而不再用Pascal.

后來我又讀過關于面向對象的編程,它點醒了我,于是我在C的基礎上增加了一些可以取巧的對象以便利用。因此當后來C++出現的時候我已經游刃有余了。

當我在蘋果工作了一段時間之后,我認為我需要在網上工作并去了咨詢公司使用NeXT WebObjects寫了一些被稱之為稱為objective - c的模糊的語言。一旦Java J2EE出現,我相信公司會使用它來工作,結果就真的利用Java J2EE做了第一個項目。巧合的是,當時做那個項目的公司就是現在我老板的母公司,這是他們的第一個完整的Java項目。

當你關注的是整個行業發生了什么,而不是只關注你自己正在做的事情的時候,一切就自然而然的出現了。你沒辦法知道哪件事會成為下一個大事件,但是你可以做到讓自己對所有的事情都有了解,即使你沒辦法將它們一一嘗試。

我記得2000年中期的時候有一個同事,是搞C++的頭兒,當時他的IE瀏覽器出現了一些問題,我建議他試一下firefox。結果他像看一個瘋子一樣的看著我,因為除了IE之外,他不知道還有別的瀏覽器。在那之后他也沒有興趣去嘗試一下firefox即使這并不會影響到他的工作。我沒辦法理解這種態度。你沒辦法知道下一個大事件會從何而來,拒絕承認這個世界在改變并不會真的讓世界停止改變。

我有一些獲得本科學位的朋友,當大型機退役之后他們隨之失業,當他們發現他們沒辦法再繼續當程序員的時候,他們開始抱怨說早該花點時間學些別的東 西。但是當你意識到這些的時候,一切都太晚了。認為你的老板會來培訓你無異于癡人說夢。有時候你的老板會連個通知都沒有就開了你,你會丟了工作,項目,甚 至是整個公司,然后你不得不去找份新的工作。指望老板對你進行培訓是不現實的,如果你是一個汽車生產線上的工人這還有可能,但作為一個程序員是完全不可 能。

能不能進步取決于你自己,你要自己去嘗試新的事物,即使它們并不重要。學習任何東西都是有用的,因為你嘗試的編程技術和工具越多,再用其他的工具就 會越容易。你所學的東西可能會沒什么用,但是學習本身永遠不會做無用功。不管是你在寫開源代碼,或是自愿的編個程,或者僅僅是在家里寫一個別人永遠看不到 的東西,都沒有關系。它訓練了你的大腦開始接受新事物。即使是僅僅了解了在編程的世界里將要發生什么,也可能是有用的,因為不知道在什么時候,就會有老板 問到你關于這方面的問題。

當我第一次聽說Ajax的時候(在這個術語出現了幾個月之后)我正在寫web應用程 序,然后我開始使用它;再一次的,我先把這個新東西教給我的同事們。遺憾的是這讓公司的架構團隊感到恐慌,他們認為我購買了一種未經批準使用的新技術,他 們也懷疑這種新技術能否得到支持。他們中間沒有人聽說過這個東西(其實是他們沒有去關注過),當我告訴他們這只是一種Javascript的時候他們才勉 強息怒。我在架構團隊里,與時俱進的接受新事物是我的職責所在,這也是個很痛苦的過程。

當iphone最初面世的時候,雖然還沒有任何已開發的工具包,我仍然覺得它代表著未來。我的Objective-C方面的知識再次派上了用場,這實在很讓人吃驚。

現如今要與時俱進是很荒謬的一件事。用JavaScript做 web apps的人們每周都能搞出新的大事件;即使學的再快,你也沒辦法在新的框 架覆蓋之前就學習完所有的東西。那些日子我的工作并不在這個領域(當時我只做ios),但是我仍然堅持學習,你永遠不知道未來會朝什么方向發展,也沒法知 道你會在哪里結束。

在老板給我的少數的幾堂培訓課里,我基本上沒學到什么有意義的東西,因為我那些東西我都已經了解,而且有些新技術我都已經使用過了,即使它們對我的未來沒那么重要。不過所有的事情都是這樣,你沒辦法知道哪些東西會在以后幫到你。

在研究生期間學習化學的時候我學到了APL,除了玩,我從沒用它干過別的事情,但是最后它成了我第一個產品Trapeze的基礎。在1999年之后我把Objective-C忘得干凈,但是現在它成了我的主要語言。你沒辦法知道在未來能幫到你的東西跟現在有什么關聯。

有的程序員會忽視掉他們工作方面以外的一切,這種行為深深刺激了我。我曾與一些利用4GL工具生成RPG代 碼的人一起工作。他們吹噓說他們使用的工具是世界上最好的,他們無需再了解別的什么東西。我甚至能夠想象當他們中的大多數人下崗的時候,他們會開始疑惑, 為什么他們沒辦法再找到一份新的工作。技術很少會消失,但是你的工作會減少,除了可怕的維護工作外你可能什么都做不了,然后你就變得多余,直至被掃地出 門。現如今任何人都沒辦法幫助你重新成為有用的人,除了你自己。如果你還在等待,那么等到一切都已經太遲的時候,你的事業就會遭受到毀滅性的打擊。

所以現在不要再拖延了,學點新東西吧,讓自己更好的學習新東西吧。睜大你的雙眼,你可能就會看到未來正在向你走來。當它展示在你面前的時候你會發現 這沒什么大不了的。很幸運一直以來我能夠保持專注,這讓我在三十年之后仍然能夠進行編程,能夠在一些很現代化的東西上進行工作。

所以要睜大你自己的雙眼,不要指望別人會幫助你。就像棒球投手Satchel Page所說的那樣:“別回頭,別人隨時有可能趕上你”。在編程方面你需要一直向前看,因為你背后唯一的東西是討厭的顛覆者。

原文鏈接: Fiona   翻譯: 伯樂在線 - Fiona
譯文鏈接: http://blog.jobbole.com/68875/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!