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