隨想錄(35歲後的程式設計師)
【 宣告:版權所有,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】
很多人都說程式設計師是青春飯的工作,35歲或者40歲之後基本上沒有程式設計師的工作。那我們自己也要思考一下,為什麼大齡程式設計師會比較危險,他們有什麼危機?
1、技術僵化
大部分程式設計師從事的工作基本上都是增、刪、查、改的一般工作,缺少技術積累,很容易被取代。試想一下,如果一個程式設計師一直從事的是公司的核心軟體開發工作,他是否還有被開除的危險呢?
2、996文化
目前網際網路公司盛行996文化,即9點上班、9點下班、每週工作6天,這樣的工作節奏對於大齡程式設計師來說是無法接受的。
3、較高的待遇要求
和剛入職的程式設計師不同,大齡程式設計師往往對薪水的要求要高一些。少則上萬,多則4,5萬一個月,當行業不景氣或者公司發展不順利的時候,為了成本上的考慮,大齡程式設計師往往優先成為那個被裁員的物件。
上面說道的這些問題都是真實存在的,那麼難道大齡程式設計師真的一無是處了,不能在業務上面更進一步了。其實也不是,我們還是可以繼續學習、繼續進步,只不過方向和重點可能要做一些改變。
a、注重基礎
新技術很多,各種各樣的程式設計技術也是五花八門,但是計算機基礎的cpu、作業系統、編譯器、網路其實沒有多大的改變。很多人迷戀於大資料、人工智慧、計算機視覺這些新概念,卻很少在基礎上面下功夫,有點得不償失。
b、關心產品和行業
不管什麼樣的技術,最終都是要有人買單的,我們的客戶可能是企業也有可能是普通的消費者。所以,對於做技術的人來說,需要有一個產品思維,我這個產品有什麼用、優點是什麼、缺點是什麼、未來改進的方向是什麼?
c、理解軟體工程和專案管理
關於軟體工程、專案管理,這方面的書很多。不管是人月神話、瀑布開發、敏捷開發,最好了然於心。現代商業上上,人與人溝通的成本有時候遠遠大於開發的成本,特別是那些眾多人員參與、但是技術難度不是很高的專案,很有可能開發本身佔用的時間只是整個專案開發時間的一小部分,溝通、協調佔了大頭,相信有過大公司工作經驗的同學應該對此十分了解。
d、培養自己軟體架構的能力
對於一個軟體產品來說,軟體架構佔有很重要的地位。特別是團隊不管成長,從小團隊、大團隊、平臺拆分慢慢發展開來,軟體架構的工作會越來越重要。軟體架構會考慮到複用性、成長性、除錯性、效能、介面特徵、安全性、部署難度,這些都不是一般工程師可以重拾的工作。
e、提高對新產品的敏感度
不管什麼公司,都會生產一批產品、研發一批產品、預研一部分產品。現有的產品由於紅海、競爭、萎縮,所以需要在現有基礎之上,增加新的特性、方法、優勢,不斷滿足客戶的需求。所以作為研發人員來說,除了要提高自身的業務素質,提高市場意識、競爭意識、產品意識也是十分重要的。
f、明確自己的定位
一般的公司,老闆都是銷售或者財務出身,所以需要一個研發經理來幫老闆實現想法,而老闆自己就是那個產品經理。一開始,他需要的可能就是能力比較強的技術員。等到有了3,5個隊伍之後,這個時候就需要一個技術leader。當然這個leader除了業務方面的工作之外,還要負責一些招聘、培訓類的工作。當然老闆不滿足一個產品的開發,這個時候可能會進行多個產品的開發,當然與之匹配的就是多個技術leader,這個時候就需要一個技術總監,負責搭建公共的技術平臺,協調各個產品的研發程序,保證產品的即時釋出。當然在產品開發的過程中,技術總監會發現程式碼質量不高、流程混亂、返工較高,這個時候就需要軟體架構師梳理整個業務流程。當然,有一些公司來說,技術總監還會細分成專案總監、工程總監、演算法總監、產品總監等,這個取決於具體的公司。最後,當公司大到一定程度的時候,就需要研發副總或者cto深度參與了,cto除了研發管理、流程搭建之外,他最重要的工作就是配合市場預研部分產品、搭建人才隊伍、持續改進現有產品滿足市場需求。
說了這麼多,對於大齡程式設計師來說,我們要問自己的就是自己應該適合哪個角色,除了編碼,我們還能做些什麼?是高階軟體開發工程師、技術經理、技術總監、cto,還是專案經理、產品經理、質量經理?每個人都要對自己有一個清晰的定位。