天天看點

你在成長為一個優秀的程式員嗎

       譯文出處:伯樂線上譯文連結:http://www.jobbole.com/entry.php/1268原文:Alan Skorkin

        在軟體開發過程中,你經曆的每件事情都會潛移默化地影響着你。随着時間流逝年紀的增長,對于程式開發技術(相同/或者相關能力)以及自身的了解也會不斷沉澱,這些最終也會幫助你達成目标——成為一名優秀的程式員。這裡談到的經曆不僅限于程式員生涯裡的裡程碑,比如換工作、成為上司/經理或者自己創業。你所經曆的每一份工作、每個項目(不論大小)、與團隊成員的每次交流、甚至你實作的每一個程式子產品,都會讓你變得比以前更優秀、更有活力、更有見地。

 在日常的工作當中不放過任何一點可以學習的新知識,會讓你成為更加出色的程式員。我說的是重要的經驗——你不必去關心瑣碎的事情(比如每一次敲擊鍵盤是否完美),重要的是把握好每一天的安排。如果你出去旅遊歸來發現兩手空空毫無收獲,你肯定認為這是在浪費時間。對于程式員生涯也是如此。如果你在完成一個項目或者實作了一個程式功能之後自己沒有收獲(比如,對軟體開發的了解沒有提高并且也沒有學到什麼新的技術),這同樣也是一種浪費。

    你可能會說,有些必須完成的工作對你而言是無聊的重複勞動,從中學不到任何東西。事實可能的确如此,但是這取決于你如何看待它。歸根結底你需要自己創造成長的條件,在做事的時候需要保持創新。

     從每一次的經曆中汲取營養

  首先,除了 學習新的程式設計語言,掌握你鐘愛的開發平台最新特性,你還需要提高自己的溝通技巧。其次,學習如何與别人一起工作,提高自己團隊協作能力也很重要。接着,你還需要掌握上司能力、管理能力、如何自我激勵、财務知識、行業專業知識、營銷知識群組織知識。除此之外對所從事行業相關的内容最好也要有廣泛的認識和了解。在學習的過程中不斷将自己推向極限,最終你會不斷提升成為優秀的程式員。

  我想說的是,無論你做什麼,都可以從上面列舉的這些方面來對照自己,看哪些方面可以有所提高。有的時候你的機遇很好,接觸的是最新的技術,采用的是對你而言嶄新的開發流程,這時你不由自主地就開始學習和吸收新知識。而有的時候工作确實很乏味,如果你不會自己創造條件自我提升(從上面列舉的方面找到可以提高的地方),你就隻能做着機械勞動白白浪費了一次提高自己的好機會,以及自己寶貴的時間。

  下面我通過一個例子來說明如何從平凡的工作中提高自己。比如說你是一個SQL大牛,有一項工作需要完成很多SQL,隻有你是最佳人選。你很精于此道,表面上這項工作很枯燥而且你也不能從中學到什麼。但是如果進一步來看,也許這項任務需要與别人配合完成,而你可能并不十分擅長與别人搭檔或者溝通,這就是你提高自己的絕佳機會,你要做的就是發現這個機會。或者也許你也十分擅長與别人搭檔工作,但是假如這次你的搭檔可能連新手都算不上,這就是你提高教育訓練技巧的絕佳機會,捎帶地也讓這位新人快速成長。

  也許這些都沒有發生,你在做着一件你閉着眼睛都可以完成的工作,為什麼不嘗試去更深入地了解和提高你使用的技術呢?也許你也可以就此機會提高一下你的打字技巧,這肯定沒有什麼壞處。如果你實在不想做這件無聊的工作,可以嘗試和老闆溝通一下把事情推掉,雖然這不在我們上面的讨論範圍之内,你也可以嘗試一下。也許溝通不能達到目的,但是你可以從嘗試溝通當中鍛煉一下自己的機智和勇氣(如何在尴尬的情形下保持鎮定),畢竟你不會為了推掉任務而去惹惱你的經理/上司:)。是以,如果你能從不同的角度看待一個任務,突然之間你會發現在成為優秀程式員的路上又邁進了一步。

   如果你在原地踏步該怎麼辦?

  有的時候你一直無法擺脫一些事情(似乎這些事情本來就是如此)。即使從各個角度看也無法從中找到一點可以提高的地方,這個時候你該怎們辦?這個問題問的很好,但你應該問的不是這個問題。如果你真的覺得不能從工作中學習和成長,為什麼你還在做這樣的工作呢(這個才是你應該問的)?如果是因為經濟的原因(比如你現在的收入很高),那麼一定要確定不會為了短期利益而損害了未來的前途。如果是因為你舍不得團隊裡一起工作的同僚,那麼隻要分析一下利弊就會知道,即使你不在這裡工作了你們依然還是好朋友。你隻是離開了公司但你們的友誼沒有結束。

  如果不是上述的原因,那你為什麼還在做這樣的工作呢?你應該意識到,你會是以喪失寶貴的機會。請記住,對你所做的每一件事情給出評價,看它是否能給你帶來改變或者加深你對程式開發技術的了解。如果答案是否定的,你可以馬上離開;如果答案是肯定的,那麼(做這件事的時候)你不但能夠從中獲得滿足感,而且每一天(而不僅僅是每一年)都會在技術和人格上朝着完美的境界邁進。

繼續閱讀