做爲一個程序員,你的進步徹底取決於你本身

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

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

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

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

後來我又讀過關於面向對象的編程,它點醒了我,因而我在C的基礎上增長了一些能夠取巧的對象以便利用。所以當後來C++出現的時候我已經遊刃有餘了。瀏覽器

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

當你關注的是整個行業發生了什麼,而不是隻關注你本身正在作的事情的時候,一切就天然而然的出現了。你沒辦法知道哪件事會成爲下一個大事件,可是你能夠作到讓本身對全部的事情都有了解,即便你沒辦法將它們一一嘗試。架構

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

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

能不能進步取決於你本身,你要本身去嘗試新的事物,即便它們並不重要。學習任何東西都是有用的,由於你嘗試的編程技術和工具越多,再用其餘的工具就會越容易。你所學的東西可能會沒什麼用,可是學習自己永遠不會作無用功。不論是你在寫開源代碼,或是自願的編個程,或者僅僅是在家裏寫一個別人永遠看不到的東西,都沒有關係。它訓練了你的大腦開始接受新事物。即便是僅僅瞭解了在編程的世界裏將要發生什麼,也多是有用的,由於不知道在何時,就會有老闆問到你關於這方面的問題。iphone

當我第一次據說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/

相關文章
相關標籤/搜索