《你在成長為乙個優秀的程式設計師嗎》

2022-05-09 20:58:55 字數 3674 閱讀 4186

以下是翻譯過來的原文:

在軟體開發過程中,你經歷的每件事情都會潛移默化地影響著你。隨著時間的流逝,年紀的增長,對於程式開發技術(相同/或者相關能力)以及自身的理解也會不斷沉澱,這些最終也會幫助你達成目標——成為一名優秀的程式設計師。

這裡談到的經歷不僅限於程式設計師生涯裡的里程碑,比如換工作、成為領導/經理或者自己創業。你所經歷的每乙份工作、每個專案(不論大小)、與團隊成員的每次交流、甚至你實現的每乙個程式模組,都會讓你變得比以前更優秀、更有活力、更有見地。

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

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

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

首先,除了學習新的程式語言,掌握你鍾愛的開發平台最新特性,你還需要提高自己的溝通技巧。

其次,學習如何與別人一起工作,提高自己團隊協作能力也很重要。

接著,你還需要掌握領導能力、管理能力、如何自我激勵、財務知識、行業專業知識、營銷知識和組織知識。

除此之外對所從事行業相關的內容最好也要有廣泛的認識和理解。在學習的過程中不斷將自己推向極限,最終你會不斷提公升成為優秀的程式設計師。

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

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

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

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

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

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

部落格 - @程式設計師的那些事

原文:alan skorkin 譯文:敏捷翻譯 - 唐尤華

-----------以上原文結束-------------

題外話:

這一段時間工作壓得比較近,整個工作的排期被pm們排得滿滿的,對於今年三月底剛剛入職的自己來說,如何協調好每一天的安排,真的是乙個不小的挑戰。有時候會向自己要好的同事抱怨,「這麼多工作,什麼時候是個頭…」同事說得好,你要是都幹完了,你就不用上班了。這一時期的開發,暫時由我們三個人來負責,而我負責專案的前端開發,剩下的兩個同事負責後端的開發。乙個fe負責,壓力可想而知,今天工作的安排,昨天在頭腦裡都已安排好,但是等到今天,就會發現,自己的開發任務的安排,被一堆一堆的瑣事給佔據,而正常的開發則被耽誤。需要和pm們討論和確認需求,需要協同qa來修改上一批次的bug們,需要上線發單走流程,需要,需要,,很多需要。這就是自己矛盾的地方,昨天回來的時候,感覺這一天的開發怎麼又被耽擱了,於是跟在和女朋友打**的時候就開始抱怨,女友在聽我的抱怨的時候說的一句話讓我記憶猶新,是關於修改各種bug的:「你開發的東西肯定不是完美的,上一批次的那些bug,難道需要別人去幫你擦屁股嗎??」,說的很在理,實際情況也是,上一批次的bug們,都是在我手上誕生的,現在我卻要返回再去清理它們,說句不好聽的話,活該你造這麼多bug!!

晚上無聊的情況下在瞎轉悠,猛然發現了這個好文章,讀了好幾遍,感覺很受益!!「在日常的工作當中不放過任何一點可以學習的新知識」,「歸根結底你需要自己創造成長的條件,在做事的時候需要保持創新」,我把這兩句話放到了自己的部落格的header上面,時刻提醒自己。還有就是:「我說的是重要的經驗——你不必去關心瑣碎的事情(比如每一次敲擊鍵盤是否完美),重要的是把握好每一天的安排」,經過了4,5,6,7,8,9,10月,整整七個多月的實習(雖然還要實習到明年6,7月份 - -!),越來越發現,開發也許不是工作中的難點,真正難的地方是在安排好每一天,以及如何讓每一天的工作變得有效率,如何讓每一天都可以學到東西。不想去改上一批次的bug,那就在每一批次的開發中,好好地設計,好好地構思,寫**的時候,要「三思而後敲」,提高每乙個字母的質量,切忌「急於求成」;不想去在開發的時候又去和pm討論確認需求,那就在需求階段努力地思考需求的細節問題;不想為了乙個固定要走流程而去「浪費」時間,但是有無法避免,那就想辦法用最少的時間去完成這個流程;不想去跟pm們交流時,用五句話說清楚乙個意思,那就動動腦子,用一句話搞定;不想…那就…;不想…那就…,其實,歸根到底,甚至自己都知道,這個「煩人」的事情的解決辦法,就看你用心去解決不去。

我自己的乙個一直比較熱衷的遊戲是《反恐精英》,俗稱cs,曾經苦練過一段awp,深深地被它的響聲,被它彪悍的外表,被它的殺傷力所吸引,但是它也有它的缺點,笨重,不能連發,也就是說,在中距離或者近距離作戰,一槍未擊中敵人,那麼自身就相當「難保」了。最終,在和身邊的朋友的切磋中,自己使用awp的小技得到了朋友們的「承認」,以為可以「出山」的自己,想去更大的「世界」和有同樣愛好的人們切磋,可是慢慢地發現,自己的那點小技,仍舊會被很多高手們「破掉」,甚至被打得「落花流水」,讓自己不敢再相信自己還會使用awp。我想用這個例子來說明什麼,我只是想說,永遠不要以為自己的技藝已經很高超了,因為,這個世界之大,不管你有多麼「厲害」,依然會有更「厲害」的角色,毫不留情地pk掉你。那麼不禁去問自己,你的「苦練」是在追求什麼???

「永遠保持虛心,你所擁有的和不斷在完善的技藝,不是為了一輩子得到別人的認可,僅僅因為自己喜歡它,僅僅是想去追尋完美的它。」

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

do you morph into a different programmer?你在成長為乙個優秀的程式設計師嗎 內容如下 在軟體開發過程中,你經歷的每件事情都會潛移默化地影響著你。隨著時間的流逝,年紀的增長,對於程式開發技術 相同 或者相關能力 以及自身的理解也會不斷沉澱,這些最終也會幫助你達成...

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

在軟體開發過程中,你經歷的每件事情都會潛移默化地影響著你。隨著時間流逝年紀的增長,對於程式開發技術 相同 或者相關能力 以及自身的理解也會不斷沉澱,這些最終也會幫助你達成目標 成為一名優秀的程式設計師。這裡談到的經歷不僅限於程式設計師生涯裡的里程碑,比如換工作 成為領導 經理或者自己創業。你所經歷的...

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

do you morph into a different programmer?你在成長為乙個優秀的程式設計師嗎 內容如下 在軟體開發過程中,你經歷的每件事情都會潛移默化地影響著你。隨著時間的流逝,年紀的增長,對於程式開發技術 相同 或者相關能力 以及自身的理解也會不斷沉澱,這些最終也會幫助你達成...