程式設計師是公認的技術型崗位,我們喜歡用實力說話,那麼是否技術實力強就能在職場如魚得水?
以前我覺得只要技術過硬,在哪都是香餑餑,後來發現也不盡然,公司不是研究所,在研究所里你或許可以不管不顧地只追求技術,但在成熟的公司里,如果你不懂得怎麼為人處世、協調管理,你想要的升職加薪、功成名就只會離你漸行漸遠。
我是龍叔,18年工作經驗已退休的老程式設計師,從實習生到上市公司技術總負責人,今天我來給大家分享一些我個人覺得程式設計師在職場很受用的經驗,如果你能恰當使用,可能比技術帶給你的回報會更有效,獻給已在/即將進入職場的你們。

一、程式設計師職場經驗之為人處世
1.朋友圈
不要老是一個人待在家裡,一下班就往家趕,這其實叫做「閉關鎖國」。無論是在學習階段還是工作階段,我們應該多出去走走,看看外面的世界發生了什麼,有了什麼樣的改變,多結交一些朋友,交一兩個摯友,建立並完善自己的朋友圈。
我說的朋友圈不是手機里的微信朋友圈,是結交一些脾性相投、坦誠相待的朋友,無論是做技術還是做其他的都可以,哪天有可做的事情,大家互利共贏,比如我第一次創業的時候,就是和一群外面認識的朋友們做技術外包,有人專門做技術,有專門找渠道拓展業務,最後成功積累了第一桶創業金。

展開全文
2.主動跟上級溝通
不管上級風格如何,是嚴厲型、和藹型、放羊型我們都要定期或者不定期找上級溝通工作任務的想法和意願。認真傾聽上級對自己的看法,設法獲取他的指導。職場中你最重要的資源其實就是你的直接上級。
記住一句話:在職場不光要「低頭拉車」,還要「抬頭看路」。
3.傾訴對象要想好
在職場上難免會遇到波瀾,適當的傾訴是可以的,但傾訴對象要想好,不要幼稚的把人事部門當成你的傾訴對象,站在老闆的角度想一想,他會怎麼看你的傾訴內容。

4.做好正事,少做雜事
如果一個員工做雜事做的非常好,那上司大機率會每次遇到同類雜事都會委託他去做。如果一個員工貼發票貼的不好,但是核心業務每次完成都很出色,大機率領導會把更核心的事情交個他做。
5.正確對待升職
有些人巴不得每個季度都能升職,其實對於升任新的職位,未必是好事,更高的職位意味著更高的要求,因此對備選人員要麼在原崗位已經能力有餘,要麼時間精力有餘,能聽懂嗎?

二、程式設計師職場經驗之代碼和項目
1.學習以實用為主
新手上路總是有著不錯的沖勁和憂患意識,想多學習一點東西來提高自己,這點是沒有錯的,但很多新手程式設計師上來就肯Linux內核源碼,算法導論等「底層知識」,這其實不太對。
我的建議是在初中級時先聚焦學習你用到的知識,人的精力有限,對於初中級來說底層知識不是指行業的基礎知識,因為這時候學習這種底層知識對你並勝任工作並沒有太多的幫助,例如你搞前端,你研究編譯原理對你的工作幫助不大。
但是到中高級時,這些底層知識卻又對你進一步進行性能、穩定性優化、行業技術方向判斷有重大作用,這個時候需要進行專項突破,當然你覺得自己確實時間精力比較充裕,那隨意。

2.開源
現在的年輕人可能沒有經歷過,程式設計師隨時會失業的悲慘境地。但是即使是在最黑暗的時期,凡是做開源項目的,總能在第一時間又找到工作。只要確保你寫的開原始碼和你心儀的工作相關即可。不管你信不信,這個市場很大,前景也廣闊。
3.日誌
日誌這個東西在沒出現問題時不怎麼起眼,但一旦出現問題要調試和排錯時,它就格外重要了。
這個虧我印象很深刻,那次是距離項目提交的前幾天,當時我是第一次主導項目,因為我在程序中基本沒有加什麼日誌,當時在測試的時候沒有發現什麼問題,因為在測試的情況中,很多種數據是非常難模擬出來的,只能測試常見的幾種可能性,在這幾種情況下沒有發現問題,在線上出現了問題,由於當時在功能中沒有加什麼日誌,導致非常難的去尋找問題的所在點,結果項目逾期了,還好甲方好說話,寬容了幾天才解決。
從此之後,我一直都保持一個習慣,那就是研發時必定寫好日誌。

4.善於藉助工具
事事親為很累的,能坐車為啥還要用腳走呢?簡簡單單一個工具卻能解決非常復雜的問題,自己在那裡一行一行地碼上去很費時費力的,你以為優秀的程式設計師都是腦子比別人快嗎?不見得,但他做起事來效率肯定要高。
5.風險計劃
當你主導項目時,建議培養風險意識,要有風險計劃,哪怕很簡單一定要有,比如項目延期風險,應對策略加強進度管理,項目超支風險加強成本管理,項目質量風險,加強質量監控。
這些看起來是廢話的句子,可能會幫助你拯救項目。

三、程式設計師職場經驗之長遠習慣
1.博客
這是我最大的遺憾,因為我自己是今年才開始寫博客,之前只是遇到問題才會上博客去找找參考,但我發現很多優秀的職場員工都在邊工作邊寫博客,比如說CSDN上面的敖丙、兔老大RabbitMQ等人,因為堅持寫博客,自己的職場及生活都得到了不錯的加分加持。
以及說有些一線大廠,技術部門會要求員工每周或者每個月都要寫一篇技術博客,然後分享給同事們。通過寫博客,你會加深自己對技術的理解,同時與許多大佬或者粉絲的互動也會收獲很多,甚至還有額外的收入。
程式設計師不要封閉在上班的圈子了,外面的世界更加精彩。

2.合理的職業規劃
進入職場後一定要做職業規劃,程式設計師不是敲代碼的機器。
第一年太多東西不懂,你可以一切聽從老大的安排,敲敲代碼,看看資料庫,測試自己和別人的代碼;但是第二年,你還是這樣嗎?不可能的,一年的經驗你完全可以入行了,是時候該學習怎麼進行需求分析,怎麼設計資料庫,怎麼寫各類文檔,怎麼寫更好的代碼?這是高級程式設計師的要求。
其次,我要說一點,你的職場規劃一定要合理,我個人不太建議定什麼五年十年的職業規劃,不切實際,為什麼?
1.五年十年太遠了,除了九年義務教育外,我很難想像出有什麼事情是大多數人都能堅持這麼多久的,如果堅持不了,這個過程中只會跟你更多的挫敗感。
2.你現在的水平是否能夠在技術疊代日新月異的當下預想到五年十年後?恐怕很少有人能做得到,那麼這個規劃的意義又在哪裡。
我個人建議,職業規劃三年之內最好,這是最為合理的,你肯定能知道現在以及未來一段時間里,什麼東西對你是有幫助的。

3.保持學習
我承認,大家的壓力都很大,白天要開會、要和產品經理撕逼,晚上要測試要改bug,回去還要研究新技術,這樣下去誰的頭發頂得住啊?
我比較喜歡一句話:「難就對了,舒服是給死人的。」雖然有點過,但從長遠來說也是有一定道理的。
我見過很多老師傅程式設計師,剛進入公司時他們會這些那些技術,兩三年後還是只會這些,比如說我主導項目時去請教他們關於新技術的問題,他們只是告訴我說「這個聽過啊,但以我的經驗,之前那個技術能做就可以了。」
一定要等到技術明擺著不能做了才嘗試新技術嗎?說白了,他們停下了學習的腳步,而我帶著自己團隊去不斷嘗試和學習,不到3年的時間,在新的技術領域,這些老師傅就已經真的「老了」。
長江後浪推前浪,一代新人卷舊人,內卷嚴重的趨勢下,但願卷的不是在座的各位。
作筆記是好習慣,給你新想法