關於程式設計師在30歲、35歲之後怎麼辦的新思考
最近感覺自己身體確實不如五年前了,不如20歲的時候了。那時候學習到2、3點才睡覺,第二天早上繼續開工,沒有問題。最近感覺熬不動了,晚上十一、二點就困的不行了,早上也起不來,起來的話,上午就有點精力不夠。
我給自己的定位就是技術,我對純的管理也不感冒,技術經理,架構師,首席架構師,技術總監,如果有機會的話,可能是這個發展路線。目前來說,就是個技術經理,正在向架構師轉變,發現需要學習的東西更多了,精力還真是不太夠用的。還有就是思考的角度要轉變,不能以程式設計師的角度思考軟體,要站的高一點,要全面,自己還要看過(最好是做過)很多這方面的東西。首先從整體來思考系統,然後分解,逐步分解、細化,最細的就是程式設計師的程式碼了,那個由他們來按照規範編寫,要去把握整體的結構,整體的設計,整體的模式。
另外一個我認為較為重要的就是,需要對團隊的開發人員做培訓。最近我也發現了,雖然我們用的都是面向物件的語言。但是程式碼一點都不面向物件,除了寫了class,因為不寫class也沒有辦法程式設計啊。但是很多時候大家對於類的設計都沒有認真的思考,而且大家的認識也不夠深入,有必要在這方面提高大家的水平。封裝、繼承、多型,不是簡單的類、繼承、寫個介面,就真的是那麼回事了,很多時候我們還需要深入一點,越是基礎越重要。還是那句話:出來混,遲早要還的。
公司每天都在抱怨進度為什麼慢,我也在思考為什麼慢呢?每天都在加班,週末也在加班,就是快不起來,都很努力了,沒有人偷懶,為什麼沒有產出呢?我覺得就是這個面向物件的能力沒有提高,寫程式碼的時候卡住了,業務清楚了,流程清楚了,覺得程式碼也就是兩天,為什麼5天了,還是差一點呢?我決定就是程式碼功力不夠造成的,如何提升呢?一是要靠自己多思考,下班多花點功夫練習,不是單純的練習手敲程式碼的速度,而是對自己的程式碼重構,模式,思考怎麼提高程式碼複用性,怎麼才能讓自己寫的程式碼不是改來改去呢,要做之前先想一想,設計一下。只有在這方面下工夫了,才能真正的提高開發效率,減少加班的頻率。二就是公司要組織這方面的訓練,抽出一半天的時間,來個面向物件的頭腦風暴,出幾個小題目,大家一起討論,在完成的過程中學習,鍛鍊思考能力,設計能力。三就是專事由專人來做。我不推薦讓程式設計師參與業務討論和定位,因為做業務和開發是兩種不同的思維方式。做開發是很嚴謹的,業務則是很靈活的。四就是不要外行領導內行,會很慘的,至少進度會拖後很多。
難道這就是大家說的30歲之後要轉型嗎?在國內30歲之後真的寫不動了嗎?於是這幾天順便就做了一個思考。發現了一個驚天大祕密(哈哈)。發現了為什麼30歲就寫不動了呢?為什麼國外的程式設計師,很多都是40、50還可以繼續寫呢?而且寫的很享受的樣子,我們就需要轉型到管理呢?但是管理就像是金字塔,越往上越小,需要的人越少,不是每個人都可以做到管理的位置,況且不是每個人都適合做管理的。難道寫程式沒有出路嗎?不是的,這純屬是有些人的謬論,誤導了不知道多少人啊,至少我是這麼認為的。
大家也許會說是環境因素、社會問題。是的,這些因素是影響到了我們程式設計師的生涯,但是他們不是主要因素,而且這些不是一天兩天可以改變的,也不是我們一個兩個就可以改變的,就像革命一樣,需要時間,需要人來犧牲,需要前赴後繼,積累到一定程度才可以變革。
我覺得我們可以控制的,又是主要因素的就是我們自己。至於30歲以後寫程式沒有前途的論調,可以用一句話解釋。
30(35)歲寫20歲的程式。
怎麼解釋呢?就是說30歲寫的程式還是20歲的時候寫出來的樣子,沒有發展,沒有變化。那肯定幹不過20的小夥子了,他們可以加班、熬夜,但是我們怎麼辦,身體根本不允許你那麼幹了,肯定就不行了。老闆就覺得要30歲的還不如要20歲的呢?20歲的還可以更少的工資,更好忽悠,30歲的老油條,不好忽悠,而且產出也不行了,那就辭掉吧。
其實是我們自己斷了自己的後路,是我們自己沒有成長,還在寫20歲時候寫的程式碼,沒有長進。在程式碼的設計(且不說架構設計)方面沒有長進,所以寫出來的還是較為混亂的,牽一髮而動全身的程式碼。如果讓年輕人改,他可以熬夜該,但是我們就不行了,所以都說30歲就不能寫程式了。其實決定權在我們自己,要在20-30歲之間,提升自己,就算不想做架構,只想寫程式,也要越寫越精煉,要有自己的一套,要提升程式碼的功力。要學習設計模式,重構,要思考程式碼的結構,不是一上來就寫一大丟,然後推到重新來過,那樣肯定幹不過年輕人的,哪有那個精力啊,是不是呢?
只想寫程式也可以,但是一定要想辦法,在30歲的時候不要在寫20歲的程式碼,否則就真的沒有前途了,甚至要早點回家了,因為你幹不過20歲的小夥子啊。
希望大家不要在30歲的感慨,希望大家作出改變。改變這個潛規則。
我這個觀點一出來,肯定會有很多人贊成,也會有很多人反對,歡迎大家一起討論。