你在成長為一個優秀的程式設計師嗎

發表於2011-08-17

注:本文由敏捷翻譯 – 唐尤華編譯自Alan Skorkin的博文。如需轉載,請參見文章末尾處的宣告。

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

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

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

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

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

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

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

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

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

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

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

 

原文:Alan Skorkin  譯文:敏捷翻譯唐尤華

如需轉載,但請註明原文/譯文出處、譯文超連結和譯者等資訊,否則視為侵權,謝謝合作!

相關文章