9 年前,我從象牙塔裏走出來,正式踏入社會,懵懵懂懂地在一家日企開始了職業生涯。那時候,技術功底很是差,由於在學校的時候天天就一副吊兒郎當的樣子,編程天然也沒有好好學。程序員
和我同一時間入職的新人有 19 個,你們都懷着一顆敬畏的心,由於生怕本身被淘汰出局。畢竟是實習期,若是工做表現不符合預期的話,是直接被辭退的,沒有任何補償。編程
因此在籤正式的勞務合同以前,天天都緊張兮兮的。記得有一次,領導說我筆試的成績很是差,可能會被辭退,晚上躺着宿舍的牀上展轉反側,想着次日被辭退後茫然不知所措的樣子,那叫一個沮喪啊。開發
驚險的是,領導認爲我筆試差,是由於沒有看到我答在背面的答案——仍是領導的領導當着個人面提醒了領導,那一幕至今記憶猶新。博客
初入社會的我,性格內向、沉默寡言,操着一口只有本身才能聽得懂的「普通話」,之因此能留存到最後(咱們那批人被辭退了 10 個),靠的就是——日漸過硬的技術。產品
其實,程序員這行業,入門是比較難的,須要你十足的勇氣,和被 bug 無數次吞噬後仍然不折不撓的堅持。一旦你入了門,還肯花時間去讀理論知識,敲代碼實戰的話,成長是肉眼可見的——我就感受實習的那一個月,進步神速。入門
兢兢業業工做了兩年半後,我被提高爲一名 Team Leader,負責技術攻堅、新人培訓,以及代碼 Review。書籍
Team Leader 恐怕是一個最小的管理職位了,但畢竟是一個管理職位啊。你得參加各類會議,寫各類培訓資料,這都好應付,難應付的是,你得向領導彙報成員的工做表現,以及要和成員「打成一片,鼻青臉腫」。互聯網
作管理前,你全部的重心就只有代碼,你把代碼寫得完善了、優雅了,再把難點攻破了,bug 解決了,就能贏得領導的信賴,就能拿到匹配的薪資。bug
但作管理後,就不太同樣了。與人打交道是一件很複雜、很耗時間和精力的事,還有可能會出力不討好。程序
爲何這麼說呢?
每次聚會上,你得帶領小夥伴們去給領導敬酒啊、奉承啊——這是一件極其難爲情的事!不少程序員不喜歡這一套,我也不喜歡,但總有人喜歡你這樣作。
你不去作的話,某些領導可能就要給你上上課,教育一下了,批評你不通情達理,不知道人情世故,之後要多學着點,最後不忘加上一句:「否則的話,你的上升空間就頗有限了。」
這可比單純作技術難多了——不能純粹地作一名理想主義的程序員,這不是個人初衷。
5 年前,我回到了洛陽,在一家迷你型的公司作開發——沒有人須要你管理,惟一須要管理的就只有本身。
因此,個人重心又回到了代碼上,人也變得輕鬆了起來。
我天天有了大把的時間去鑽研技術,甚至還可以在 ITeye、CSDN 上寫博客,甭管開始的時候寫得有多差,總會時不時有讀者留言說:「謝謝博主啊,你的分享解決了個人問題。」
那時候,也沒有「知識付費」的概念,單純就是爲了分享,把本身在技術上遇到的坑、填的坑像記流水帳同樣記下來——這種狀態讓我心裏很是地踏實。
通常狀況下,工做了三五年的程序員,都會面臨一種選擇,要不要轉型作管理呢?
我的拙見是,有機會的話就嘗試作——技而優則仕嘛。畢竟作了管理就可以拿到更多的話語權,有了話語權就可以作更多的事,也就是所謂的大展宏圖。
崇尚技術的程序員可能會比較崇拜比爾·蓋茨,由於蓋茨的技術功底有目共睹。創辦微軟賦予了他更多的權力,也就有了創造神話的可能性——我的電腦真的「飛入了尋常百姓家」。
但假如不適合管理崗的話,仍是要儘早退出,不要陷入辦公室政治鬥爭的泥沼中。大丈夫要能屈能伸嘛,安心作技術、作開源,沒準會開闢一片新的天地。
藉此機會,厚着臉皮再吹噓一下本身。你看我,回洛陽以前,仍是一名「富有權力」的 Team Leader;回洛陽以後,喪失了繼續在管理崗上晉升的機會,但真的開闢了一片新的天地。
首先,出版了一本技術書籍,把積累的經驗和知識分享給了初學者,還能順便掙點版稅。
其次,靠着不斷地分享原創文章,在互聯網上積攢了一些名氣,讀者樂於和我交流;更多的機會也隨着而來——再光明正大地聲明一下,有項目作不完的甲方,請過來找我。
我生於八九年,算是遇上了八零後的末班車。八零後成長的三十多年,是咱們國家瘋狂造富的三十多年,經濟增加的速度能維持在 10% 左右,是絕對的奇蹟。
經濟之因此如此迅猛地發展,一方面是由於咱們的起點低,另外一方面在於咱們對將來的樂觀主義——咱們不斷地擁抱世界,拿來的同時默默地努力着、奮鬥着、改善着。
咱們程序員是幸運的,遇上了經濟發展的浪潮。而且互聯網的世界是開放的、包容的,因此咱們沒必要深諳人事、逼迫本身陷入辦公室政治的泥沼中也能體面的生存。
可能有人會說,「35 歲是程序員的年齡天花板,你能寫多長時間的代碼,要未雨綢繆」。但我想表達的是,做爲一名正兒八經的程序員,我想作一名純粹的理想主義者,天天敲敲代碼,活在程序的世界裏。
到底理想主義的程序員是什麼樣子呢?
他首先是一個單純快樂的手藝人,其次有着天真爛漫的好奇心,最後還樂於分享。他不想被管理,也不太想去管理別人,一旦需求來了,他就會立馬全情投入,直到交付一個至善的產品。
那怎樣才能作一名理想主義的程序員呢?
1)保持專一,別總去想賣個肉夾饃發點額外的財。
2)善於思考,面對一個 bug 的時候,不急躁,不慌張,可以從容地思考 bug 背後發生的緣由。
3)富有自我驅動力,哪怕剛入職的時候工資很低,依然可以全身心地投入,不被外界因素干擾,直到把本身錘鍊成不可或缺。
4)不找藉口,勇於承擔責任。
5)善於管理時間,人這一生,最缺的不是金錢,而是時間。
那程序員的理想到底應該是什麼呢?
我但願將來有一天,由於個人代碼,讓這個世界上的一些人生活的更便利,感受到一點點幸福或愉悅。無論這些人多仍是少。