作為大眾認知眼裡的高薪工作,「程式設計師」這個行業的話題一直為人津津樂道,不只是工資相對各行各業高出許多,其工作內容也引發了眾多外行人士的猜測:
很多同學以為程式設計師一天到晚的工作就是寫代碼,寫代碼,寫代碼!
敲敲敲!如圖這樣
其實不是的。寫代碼只是程式設計師工作很少很少的一部分。
第一步,大部分的時候,程式設計師在:讀別人的代碼。
通常程式設計師們進入公司以後,不會是重頭開始一個項目,而是在已有代碼的基礎上進行維護或新功能的開發,所以必須「讀代碼」。
讀有「泛讀」,了解系統架構、功能模塊,對系統有一個大致的認識,各個功能能找到相應代碼實現的位置。
還有「精讀」,通常就是調試了,在fix bug的時候使用。此外還包括審核:一些規範一點的公司,都會有code review,也是精讀,但不用debug。
對於一個成熟的項目來說,讀代碼——而不是寫代碼——可能是最耗時間的工作了。
第二就是寫萬惡的注釋文檔了。
原因是:為了減少「讀代碼」的時間,不得不花時間「寫注釋」「寫文檔」——這個程式設計師最深惡痛絕的工作。所以現在「爛代碼才需要注釋」的聲音變得越來越強,但無論如何,文檔還是要寫的。(注意:要能區分注釋和文檔)
第三則是了解需求。
好了,終於到了「寫代碼」的時間了。
然而,在動手開始寫代碼之前,程式設計師們必須花時間「了解需求」。和自己寫個小程序玩玩不同,在公司,程式設計師們是為別人寫代碼,所以一定要了解別人究竟想實現什麼功能。
通常,這並沒有你想像的那麼簡單,需要反覆反覆反覆反覆反覆反覆反覆反覆反覆反覆的溝通。(手動狗頭)
當然,也有一些團隊和個人,不願意在這上面「浪費時間」,通常他們的下場就是不斷的寫代碼,然後不斷的改代碼,加班加點的做大量的無用功,整個公司怨氣衝天一地雞毛。
開發中的其他各種溝通
程式設計師們普遍都「恨」產品經理。
此前還爆出了程式設計師和產品經理溝通不和大打出手的新聞……
產品和開發大打出手
但其實產品經理只是程式設計師們最恨的人之一,他們還恨前端、後端、DBA、測試……承認吧!因為是團隊開發項目,說好的團隊精神有沒有我不知道,但各種摩擦扯皮是必須的。
比如前端要後臺給一個接口,後臺給不出來或者嫌麻煩;比如後臺跪求DBA的權限,DBA優化資料庫時說Developer都一群「傻X」;比如測試一次又一次的報bug,程式設計師們特麼想「殺人」的時候……
這些都需要溝通,也就是需要時間和精力。
其他無聊的辦公室活動
比如寫日報周報,應付各種KPI,這是所有工種都幹的活,就不多說了。
總之,程式設計師真正寫代碼的時間其實不多。個人覺得,一天能有30%的時間安安靜靜的寫代碼,就算是不錯的工作環境了。
但另一方面程式設計師們都承受著較大的加班壓力,最後大多數人都積累下了一副落病的身體,也算是「青春飯」了,畢竟35歲又要面臨失業風險。
「996福報式」工作時間是常規操作
最後,不論是我們的大學教育也好,培訓機構也罷,都只知道知識的灌輸,而忽略了程式設計師工作能力的培養。這些能力,即只能在工作中「自學」獲得,所以你看這些公司的招聘,都要求「兩年以上工作經驗」,意思就是:一般的新人,起碼要兩年的時間,才能「習得」這些起碼的工作技能。
不知道各位之前是否也對程式設計師職業充滿誤解呢?評論見!