首先定義下什么樣叫體面?第一是得到和自己能力相匹配的尊重,第二得到的收入能匹配自己的貢獻,比如996有996的收入,965有965的報酬,第三是穩定,不是朝不保夕。其實這些條件不算高,我在上海,能達到上述標準的公司不算少,但相比之下也有不少公司給出的條件低于上述標準。
本人雖然目前工作達到了“體面”的標準,但之前也在小公司干過,也經歷過惶惶不可終日的日子,而且本人一直在做兼職培訓,培訓出來的學生也有不少進入體面公司干活的。古話有“窮不過三代”的說法,職業規劃也是如此,“窘況不過”三個公司。在我之前的博文里,講述了零基礎舉目無親的程序員用2年時間走上正軌的方式,同樣,如果上進,換3個工作后,程序員也可以活得很光鮮(至少讓外人看上去很光鮮)。
一、在第一份工作里,解決溫飽問題,同時入行
有不少程序員在第一份工作時就有了一個好的起點,比如從事大數據機器學習等高含金量工作,或者進入大公司,但對不少程序員而言,需要通過第一份工作把理論知識轉換成實踐技能,現在正值畢業季,所以如下的建議正好對景。
- 第一,除非有考研等重大原因,否則盡快找個工作入職。一般對畢業生而言,應該是畢業前就找好工作了,如果從7月到9月中間有兩個月處于閑置狀態這還能說得過去,如果時間再長,一方面越到后面工作越難找(校招和社招標準不同),而且閑置時間很長說明個人能力有問題,這對后面找工作也有影響。
- 第二,盡可能去大城市,也盡量進規模大點的公司,這樣能給自己一個好的起點。如果剛開始達不到也不要緊,但盡量找個和相關技能匹配的工作,比如開發,測試或IT Support等,如果沒特殊情況,盡量別找些諸如銷售之類的和IT無關的活。
- 第三,大學生活和社會工作之間有一定的落差,尤其在小公司或者人際關系復雜的公司,剛開始一定得腳踏實地。
一般來說,如果第一份工作不如意,比如進到小公司或人力外派公司或者在小城市,這問題都不大,我見過大量的低起點的程序員干個5,6年最后干得風生水起,但一定得選擇一個方向,以后就盡量別朝三暮四了,盡量朝這個方向努力。
我就拿Java后端程序員方向來說吧,因為我從事這個,而且在這方面出過書,也做過兼職培訓講師。其實如果上心再肯問肯學,最多用個半年就能上手,比如Java核心部分的集合多線程JDBC,數據庫方面的增刪改查,框架方面的SSM,經過半年應該都能用了,但絕不能停留于此。
當第一份工作也做了一年多,也能適應社會的節奏,也能適應社會人的交流溝通方式,生活上也逐漸安頓下來,技術上也有了初步的積累,這時候就應該全面觀察自己所選方向的綜合技能。我見過不少初級程序員,由于工作中只會用到范圍很小的技術,比如Java就用到SSM中里Spring,Mybatis是別人配好的,Java多線程等重要的技術平時用不到,自己也不進取,所以當有3,4年工作經驗時,技術能力和畢業生差不多。
所以當初級程序員在入行后,能應付本職工作后,就可以看些培訓學校的課程,比如看Java方向需要哪些技能,然后自己多留意,然后在有1到2年的工作經驗后,就可以考慮跳槽以進入到第二個階段了。
在解決“入行”的階段,有些程序員可能對公司沒得選,比如不得不委屈進入一些小而且不舒服的公司,比如人事關系像宮斗,或者朝不保夕,或者被外派到類似工地的甲方公司, 或者工作時間和收入嚴重不匹配。
在這種惡劣情況下,程序員更該努力上進,通過提升技術等能力以求早日脫離苦海,而不能以“求穩定”的借口長期在這種公司干,這樣的話,可能真就一直窮下去了。
二、第二份工作就可以想辦法進大中公司,同時開始學習“架構”等值錢知識
不過在畢業后的1到2年里,程序員就應該能精通手頭上用的技術,并能以此衍生,熟悉相關技能所用的時間也不會太長了,比如有2年工作經驗的Java開發,如果要用spring cloud,應該最多用1個月就能上手,所以在此階段,可以面試進入比較正規的公司,甚至可以面試大公司了。
這個階段應該找哪類公司呢?
- 如果可以,進BAT或者有一定品牌的互聯網公司,吃幾年苦,讓自己的技術飛速提升。
- 如果不行,盡量進互聯網公司,雖然此類公司加班多,但對人的幫助相當大。
- 或者進一些獨角獸公司,或者從事一些熱門的崗位,比如AI大數據分析等。
總之,在第二個階段里,至少應該少在“宮斗”環境里內耗,也別隨遇而安地坐等被調整,應該進些有一定前景的公司。
對此,我寫了不少面試文,之前的一篇博文,最近面試java后端開發的感受:如果就以平時項目經驗來面試,通過估計很難——再論面試前的準備,其實是給這個階段程序員看的。
“窮不過三代“的第二代里,應該是積累財富,并開始培養氣質,或者至少家有余糧。那么程序員在第二個發展階段應該達到什么水準呢?
- 技術方面,至少應該達到高級開發的水準,甚至架構師需要了解的分布式組件微服務等,也要開始了解了。如果有機會,盡可能多地熟悉目前比較流程的框架技術, 比如阿里系或spring cloud方面的云技術,或者高并發級別的網絡框架,或者大數據這塊。
- 成為一個組的主心骨,或者至少在某個業務方面很精通。比如可以從業務角度和產品討論技術方案,遇到中等級別的問題,可以通過排查日志或者百度等方式來解決。
- 熟悉和業務無關,但和項目管理相關的工具,比如jenkins,sonar,maven或gradle等,至少熟悉一種開發模式,比如敏捷開發,應該能在linux下部署代碼,或者能在linux環境里分析日志。
- 盡可能多地積累排查問題的經驗,比如解決消息隊列問題的經驗,或者解決OOM的經驗。
三、在第三份工作里,開始創建個人品牌
在古代,一般經過兩代的積累,至少應該達到小康水平,就可以供養第三代子弟通過科舉來嘗試為官上進的途徑了。在程序員的第三份工作里,經過前幾年的積累,應該可以進大公司了,在這個階段,除了技術之外,還應該提升如下的技能。
- 或者走項目經理到部門經理路線,提升項目管理(比如PMP)方面的經驗。
- 或者走架構師到技術總監的路線,比如達到阿里P7到P8的能力,具體需要哪些技能請看網上描述。
- 至于走自己接項目自主創業的路線,本人聽說過,但沒聽說過,也不敢擅擬。
同時可以積累自己的品牌,比如在博客園里寫博客,錄制視頻教程,多和一些大神溝通,最好是做到業內有名,或者至少能通過比較流行的視頻教程或正規出版社的圖書來露臉。
在這個階段,更需要多和大神們接觸,在大神圈子里哪怕剛開始資歷能力不夠,但有各位大神加持總比個人努力要好很多。經過三個工作狀態的迭代后,或者能在互聯網公司里獲得較多的實惠,或者能在大公司里看上去很光鮮,或者能有自己的來財渠道。但不管如何,雖然能做到人前光彩,但背后的努力只有自己知道。
四、總結,福報來自積德,光鮮來自實干
在上文里描述的是平均狀態,一般一個公司干兩年,三年迭代,通過6年達到上述目標。或者有的程序員比較勤奮,起點也高,無需這么長的時間,但對些起點低能力一般的程序員(比如我)而言,可能用的時間會長些,中間甚至還會走彎路。
但不管如何,我們先不求大富大貴,只先腳踏實地干好活,比如每天看到手頭工作,再給自己制定短期和長期的目標和學習計劃,然后盡量少圖安逸多學習多實干多復盤,每過段時間,總能看到自己顯著而踏實的進步。
不過,哪怕找到了份比較光鮮的職位,我們也需要關注更高級的目標,畢竟還有“富不過三代”的讖語。在此之后的目標要么就是在技術上進一步發展,成為公司的技術頂梁柱,或者就自己組個工作室(做大了就是公司)找幾個人接點項目然后逐漸達成財務自由這個更高級的目標。
原文出處:hsm_computer→鏈接
————END————
- 點贊
- ...
- 轉發
- ...
- 關注
- ...