在軟件開發過程當中,你經歷的每件事情都會潛移默化地影響着你。隨着時間的流逝,年紀的增加,對於程序開發技術(相同/或者相關能力)以及自身的理解也會不斷沉澱,這些最終也會幫助你達成目標——成爲一名
優秀的程序員。
這裏談到的經歷不只限於程序員生涯裏的里程碑,好比換工做、成爲領導/經理或者本身創業。你所經歷的每一份工做、每一個項目(不論大小)、與團隊成員的每次交流、甚至你實現的每個程序模塊,都會讓你變得比之前更優秀、更有活力、更有見地。
在平常的工做當中不放過任何一點能夠學習的新知識,會讓你成爲更加出色的程序員。我說的是重要的經驗——你沒必要去關心瑣碎的事情(好比每一次敲擊鍵盤是否完美),重要的是把握好每一天的安排。若是你出去旅遊歸來發現兩手空空毫無收穫,你確定認爲這是在浪費時間。對於程序員生涯也是如此。若是你在完成一個項目或者實現了一個程序功能以後本身沒有收穫(好比,對軟件開發的理解沒有提升而且也沒有學到什麼新的技術),這一樣也是一種浪費。
你可能會說,有些必須完成的工做對你而言是無聊的重複勞動,從中學不到任何東西。事實可能的確如此,可是這取決於你如何看待它。歸根結底你須要本身創形成長的條件,在作事的時候須要保持創新。
從每一次的經歷中汲取養分。
首先,除了
學習新的編程語言,掌握你鍾愛的開發平臺最新特性,你還須要提升本身的溝通技巧。
其次,學習如何與別人一塊兒工做,提升本身團隊協做能力也很重要。
接着,你還須要掌握領導能力、管理能力、如何自我激勵、財務知識、行業專業知識、營銷知識和組織知識。
除此以外對所從事行業相關的內容最好也要有普遍的認識和理解。在學習的過程當中不斷將本身推向極限,最終你會不斷提高成爲優秀的程序員。
我想說的是,不管你作什麼,均可以從上面列舉的這些方面來對照本身,看哪些方面能夠有所提升。有的時候你的機遇很好,接觸的是最新的技術,採用的是對你而言嶄新的開發流程,這時你情不自禁地就開始學習和吸取新知識。而有的時候工做確實很乏味,若是你不會本身創造條件自我提高(從上面列舉的方面找到能夠提升的地方),你就只能作着機械勞動白白浪費了一次提升本身的好機會,以及本身寶貴的時間。
下面我經過一個例子來講明如何從平凡的工做中提升本身。好比說你是一個SQL大牛,有一項工做須要完成不少SQL,只有你是最佳人選。你很精於此道,表面上這項工做很枯燥並且你也不能從中學到什麼。可是若是進一步來看,也許這項任務須要與別人配合完成,而你可能並不十分擅長與別人搭檔或者溝通,這就是你提升本身的絕佳機會,你要作的就是發現這個機會。或者也許你也十分擅長與別人搭檔工做,可是假如此次你的搭檔可能連新手都算不上,這就是你提升培訓技巧的絕佳機會,捎帶地也讓這位新人快速成長。
也許這些都沒有發生,你在作着一件你閉着眼睛均可以完成的工做,爲何不嘗試去更深刻地瞭解和提升你使用的技術呢?也許你也能夠就此機會提升一下你的打字技巧,這確定沒有什麼壞處。若是你實在不想作這件無聊的工做,能夠嘗試和老闆溝通一下把事情推掉,雖然這不在咱們上面的討論範圍以內,你也能夠嘗試一下。也許溝通不能達到目的,可是你能夠從嘗試溝通當中鍛鍊一下本身的機智和勇氣(如何在尷尬的情形下保持鎮定),畢竟你不會爲了推掉任務而去惹惱你的經理/領導:)。因此,若是你能從不一樣的角度看待一個任務,忽然之間你會發如今成爲優秀程序員的路上又邁進了一步。
若是你在原地踏步該怎麼辦?
有的時候你一直沒法擺脫一些事情(彷佛這些事情原本就是如此)。即便從各個角度看也沒法從中找到一點能夠提升的地方,這個時候你該怎們辦?這個問題問的很好,但你應該問的不是這個問題。若是你真的以爲不能從工做中學習和成長,爲何你還在作這樣的工做呢(這個纔是你應該問的)?若是是由於經濟的緣由(好比你如今的收入很高),那麼必定要確保不會爲了短時間利益而損害了將來的前途。若是是由於你捨不得團隊裏一塊兒工做的同事,那麼只要分析一下利弊就會知道,即便你不在這裏工做了,大家依然仍是好朋友。你只是離開了公司,但大家的友誼沒有結束。
若是不是上述的緣由,那你爲何還在作這樣的工做呢?你應該意識到,你會所以喪失寶貴的機會。請記住,對你所作的每一件事情給出評價,看它是否能給你帶來改變或者加深你對程序開發技術的理解。若是答案是否認的,你能夠立刻離開;若是答案是確定的,那麼(作這件事的時候)你不但可以從中得到知足感,並且每一天(而不只僅是每年)都會在技術和人格上朝着完美的境界邁進。
-----------以上原文結束-------------
題外話:
這一段時間工做壓得比較近,整個工做的排期被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掉你。那麼不由去問本身,你的「苦練」是在追求什麼???
「永遠保持虛心,你所擁有的和不斷在完善的技藝,不是爲了一生獲得別人的承認,僅僅由於本身喜歡它,僅僅是想去追尋完美的它。」