歡迎光臨
每天分享高質量文章

程式員啊,他又加班了

  • 1.0 加班了
  • 2.0 三明治
  • 3.0 程式設計之路
  • 4.0 程式員職業特點
  • 5.0 挑戰和提升
  • 6.0 你的生活很枯燥
  • 7.0 什麼時候離職
  • 8.0 程式員你30了
  • 9.0 後記

1.0 加班了

“前面左轉,拐入宛平南路高架橋,從盧浦大橋走,……”,加班完之後我叫了輛滴滴,已經是凌晨1點了,平時打車我都會看看高架橋上車窗外的燈火和夜景,畢竟黃浦江上燈火璀璨彰顯大城市的美麗,可是今天我只想閉上眼睛休息一會。國慶之後已經連續兩個週末加班了,21點30甚至更晚,就像今天。

為何加班?因為我是一名程式員。我在趕一個專案進度,產品所謂的花3天的時間整理出來的業務,需要我們在一星期內開發完成並上線。國慶後第一個週末我們花了一天時間過完了需求,即所謂的產品需求移交,第二週的週一我們花了一天時間拆分了業務具體到個人,然後預估了下開發週期,詳細到 人天,最後的我們發現這是項不可能的任務,除非每天不眠不休24小時。因為10幾個產品他們的需求鏈整合起來已經是一個完整的產品需求了,而不是迭代式的。這一套做完至少也需要一個月的時間。

可是產品是不會理會這些的,因為他們的需求已經給出來了,PRD也已經移交了,他們的任務已經完成,後面的工作能不能按時完成責任並不在他們這了。如果專案延期上線,上面的領導追責下來也不會到他們那。這時我就在想我當初為什麼沒選擇產品這行呢?

2.0 三明治

程式員,你是三明治。為什麼這麼說?主要是因為程式員上游有產品經理,下游有測試。產品的需求你可以挑三揀四,但是你不能拒絕。測試提的 bug 你可以說,’是不是你們操作有問題?’,但是你不能說,‘我不修’,最後還是要去自己操作一遍然後檢視日誌定位問題。兩邊你都不好得罪,因為最後妥協的肯定還是你。

其實,如果要認真的說,測試其實也很無奈,因為測試實質上是給程式員收拾爛攤子的,給程式員開發出來的產品做體檢的。專案上線前,測試也是要加班加點的。如果說程式員的加班是因為產品提的需求,那麼測試的加班則是由程式員的 Bug 量決定的。善待你的測試吧,雖然被人指錯誤是很痛苦的。

所以主要來說說產品經理吧,在這裡我沒有想詆毀產品經理,畢竟《人人都是產品經理》,也許程式員以後想轉產品經理呢,畢竟常常聽到被人勸說,”你要具有產品的思維,不要總是從程式設計的角度看問題”,確實程式員總是容易陷在自己的 code 世界裡。世界上不乏有上帝思維的產品,騰訊的微信之父 – 張小龍,網易的網易雲音樂產品經理團隊等等。每個行業都有優劣之分,但是很多產品經理也有混的嫌疑,打著 “競品有這些功能,我們也需要有”的口號,當有邏輯缺陷的時候,”讓我看看競品是什麼樣的”,甚至之前網上發生的“能不能實現主題跟著手機殼變換顏色”互毆事件等等。產品是不是也應該具備一點程式設計的思維?

3.0 程式設計之路

程式員,你當初是如何走上程式設計之路的?程式員一直都是一個備受人們關註的群體,隨著近年全國網際網路創業熱潮的興起,”網際網路+”、”雲端計算”、”人工智慧”以及”區塊鏈”等領域發展迅速,市場對程式員的需求更為旺盛。風口的網際網路、大資料和人工智慧,讓IT人才炙手可熱,行業工資水漲船高。這幾年培訓機構也是賺的盆滿缽滿,每年培訓機構向社會上傳輸的IT人員達到了百萬之多。

為何如此之多的人不斷的湧入該行業?是因為熱愛嗎?透過梳理近十年來行業工資水平變遷,以及不同城市之間的網際網路技術人才工資水平發現:

  • IT 領域的人才薪資水平已經連續3年超過金融行業,佔據榜首。
  • 一線城市的程式員的平均工資是二線城市的工資的近兩倍。
  • 湧入行業的人數很多,但是技術水平參差不齊,企業要求的高水平技術人才依舊一將難求。

其實,對於大多數人來說,相對於其他行業,程式設計的生活是枯燥的,即使是對程式設計非常有興趣的同學和朋友也會如此。很多人說看到自己開發的產品線上上平穩執行是件很有成就感的事,我只想說,”真羨慕你,你還很年輕”。當你經歷過多年的開發,被看似不斷變更實則平平無奇的業務拖累,被生活瑣事糾纏,人近30,父母見老,婚事未得而頭髮漸希,房貸未清學費又來,……,等等這些之後,是否你還能保持如此單純的想法?

大多數人,也許只是熱愛它能提供的高額收入,畢竟養活自己,支撐生活才是最重要的。究竟是否熱愛,可以問自己個問題:“當程式設計並不能為你帶來期望的薪資,或有個更有趣的事業,你是否還是願意堅持在這個行業?”

很多人說程式員薪資高,其實程式員的薪資是按小時算的,每天按時下班那是件奢侈的事情,平均折算下來又有多少。工作之後你會發現,年是按月過的,發12次工資,一年就過去了,換兩三家公司,5/6年就過去了。如此快節奏的生活,你的技術是否跟得上?很多人5年的工作經驗甚至比不上3年的實際專案經驗。程式員要懂得給自己充電。

4.0 程式員職業特點

程式員的生活很少有能打理得井井有條的,面板粗糙,頭髮蓬鬆,鼻樑上擴著鏡片,永遠的格子衫,腳上基本都是運動鞋。

1、程式員性別比例

一直以來,程式員這一群體多以男性為主,女性程式員佔極少數。這次調查發現程式員群體中男女比例還是近12:1,這和客棧在2016年調查的結果(92.62%:7.38%)驚人的相似。而如此”畸形”的男女比例也是解釋了為什麼很多程式員自嘲為”單身狗”。

其中男程式員單身比例達到了40.7%,女程式員單身比例也達到了35.6%。

2、程式員的年齡及婚姻狀況

近一半的程式員年齡在25-29歲之間,且35歲以上佔一成不到。根據搜狐科技網《中國網際網路發展簡史》顯示,中國1994年正式接入國際網際網路,最近一次中國網際網路大浪潮是在2009年,PC端網際網路轉移到移動網際網路,中國程式員數量呈井噴式發展。這也解釋為什麼中國程式員大多年齡集中在25-34歲之間。

從上圖可以看出,24歲以下程式員絕大多數都是單身,程式員群體普遍結婚較晚,且30-40歲之間竟也有兩成人未婚。

3、程式員地區分佈

因為主要的大型網際網路公司都坐落在北京,上海,深圳,以及近年來阿裡巴巴的杭州。從地圖中也可以看出,北京市(17.18%)、上海市(11.04%)、浙江省和廣東省程式員人數最多,從調查樣本資料進一步得到浙江省中杭州(13.50%)人數最多,廣東省中深圳(8.59%)和廣州(9.52%)人數最多。在程式員群體中流行這樣一句話”逃離北上廣”,與2016年客棧調查報告相比,很明顯看出杭州和深圳的程式員人數在增加。

4、程式員公司性質

近四分之三的程式員所在民營企業,近一成的程式員是自由職業者,國有企業的程式員僅佔4.2%。

5、程式員跳槽現狀

有近8成程式員都有過跳槽經歷。其中有1次跳槽經歷的15.2%,2次跳槽經歷的20.5%,3次跳槽經歷的21.1%,14.7%的程式員有過5次及以上的跳槽經歷。據調查,程式員跳槽原因主要包括缺乏發展空間,與預計的期望不符和更高的薪水。

6、近年程式員擅長語言和職業方向

擅長語言

職業方向

從調查資料可知,程式員擅長語言多為Java(41.4%)、JavaScript(38.6%)和PHP(22.4%)等,另外Python(15.2%)、C語言(14.3%)、C#(13.3%)和C++(12.9%)等也是使用較多的計算機語言。再結合程式員客棧後臺4000多名簽約開發者的職業方向,與本次調查基本符合。(註:此項為多選,總和大於100%)。

7、程式員對工作現狀滿意程度

調查顯示絕大多數程式員對自己工作現狀持一般態度,近三成程式員對自己的薪資不滿意,滿意度最高的是同事。

8、程式員兼職意願

綜上所述,國內一線城市依然是程式員的主要聚集體,一些經濟發達,科技公司密集的二線城市也聚集了大量的程式員。在計算機語言方面,中國程式員擅長Java、JavaScript、PHP和Python最多,這也符合世界計算機語言流行度。從薪資來看,中國程式員薪資相比於其他行業相對較高,平均年薪達到15w以上,近五成程式員租房租金在1.5k以上,住房條件較高。

在工作上,76.6%的程式員在私企工作,近一成的程式員是自由職業者。77.2%的程式員都有過跳槽的經歷,且跳槽過後的薪資相對提升。雖然中國程式員平時工作壓力很大,經常加班,但可以看出他們對自己工作現狀都比較可觀,沒有抱很大負面情緒。

5.0 挑戰和提升

IT行業是一個需要不斷自我挑戰的行業,這就讓很多人都想要進行嘗試、挑戰。IT行業的工作屬於腦力勞動,需要不斷的攻剋難關,且在工作的過程需要不斷的更新自己的技能知識,跟上時代的腳步。在該行業,從業者需要不斷的突破自己,一步步的得到自我的提升。是一個持續學習的過程。

之前有個前同事和我聊天,他現在很焦慮。兩年前我們在xx公司相聚,那是我第一次跳槽入職新公司,職位為中級,他比我早幾個月,新成立的專案組,當然意味著我們少不了加班。程式員之間相處其實很單純,沒有職場競爭,也沒有勾心鬥角,能力強的也願意攬比較難的活,有難題也相互諮詢解決。主要是我們年齡相仿,包括組長和架構師,還有我們幾個研發,年齡差在4、5之間。雖然每天都加班很晚但氛圍好,所以也不感覺累。吃飯一起,下班一起,深夜修複完bug之後等運維釋出版本的空隙時間,七零八散的葛優躺著,聊聊天打打農藥。年輕就是好。

可是不到半年時間,專案變動,走的七零八散,架構師去了陸家嘴金融公司,組長去了成都安家。我考慮到自己的技術和發展最後也走了,臨走前我花了一個星期的時間將新需求設計開發完成,我認為對於這種自願離職的最好還是完成自己的任務,不留爛攤子給後面交接的人,程式員已經這麼辛苦了,何必還為難程式員呢。

今年我們又相遇了,他沒有換工作還在原來的地方,聽他說我們離職之後,還有另外2位同事也留下來了沒有走。他抱怨,公司雖然給他升級了,但是他的薪資沒有漲多少,我和他溝通,換員之後,專案架構調整用到了哪些技術,他說我們已經換成了 Springboot,mogodb,開發工具全都統一改成了 IDEA。”就這些?”,”是啊”,他說他現在也不敢離職,說沒想到兩年沒見你能力比我強多了。其實並不是我變強了,是我一直在行走,而你在原地踏步了。

從近幾年的網際網路發展可以看到,行業一直在變化,風口也一直在變化,技術也是日新月異,如雨後春筍般冒新,13/14年大量招Java後端,基本會 Spring,mybatis,springmvc,Mysql/Oracle,再掌握點 js / Jquery 就能找到一份不錯的工作;15/16年移動網際網路盛行,導致企業大量招 Android / IOS,前後端分離思想在國內也開始流行,前端工程師也開始發力,angularJs,HTML5,後端的大資料工程師需求量爆發;17/18年,區塊鏈技術,人工智慧,Angular 2,React ,Vue,微服務框架,SpringCloud,……。

面對技術更新換代如此迅速的市場,你如果原地踏步,那就是相當於在等待被淘汰。

6.0 你的生活很枯燥

程式員的程式設計生活為什麼很枯燥,或者換句話說: 是什麼導致程式員的程式設計很枯燥的?

其實原因無非就是以下這幾種:

1.同一個環境,同一種技術

什麼意思?跟同一個世界,同一個夢想不同的是,你在一個公司待久了,使用你所知的一種技術,重覆的乾著一個專案,你說時間久了,是不是很無聊呢?如果在一個公司做一個專案,長達一年,在這一年裡,你僅僅是用你所知的技術一步一步的去實現,學不到新的技術和知識,技能得不到提高?這時候,無聊自然就會隨之而來,悄無聲息。可能對於公司來說,這是有意義的工作,但是對你來說:這是重覆的,機械的搬磚。

2.複製貼上……

其實和上邊道理差不多。工作每天都是從網上貼上複製,專案就是這樣被壘起來的。很多人離開了網路,基本上就喪失了百分之八十的程式設計能力,而剩餘的那百分之二十還是抄書。很多程式員程式設計不思考,而是簡單的貼上複製。

當然,聰明點的程式員還是會封裝的,自己就會把一些常用的工具類,一些方法,一些控制元件進行封裝,留著以後備用。在公司開發完 A 專案,然後開發 B 專案的時候,就會很簡單,把自己封裝的東西拿過來直接用,這樣機械的復用或者貼上複製是不是很無聊呢?答案是肯定的。

3.重覆的迭代和維護,以及修改 Bug

其實當一個專案進入測試階段以及後期維護和迭代階段的時候,開發人員基本上百分之九十的工作任務就是在修複 Bug ,而不是在研發新功能,學習和使用新技術。天天在維護和更新迭代這個專案的時候,其實工作是很乏味的。

4.沒有思想的程式員

其實很多時候,程式員是沒有話語權的,尤其是在小的創業公司,因為老闆基本上就是產品經理,需求說讓你做什麼,你就得做什麼?讓你去實現什麼,你就得實現什麼。不會讓你參與到產品的討論當中來的,當然,如果老闆讓你參加,估計由於產品經理是老闆,你也沒有什麼話語權和發言權。

在這樣一個沒有個人思想和獨立思考的開發環境中,你是不是很無聊呢?只是機械的去實現老闆想法的一個工具?是的,你就是一個工具,這種現狀那又該如何改變呢?是時候考慮離職了。

7.0 什麼時候離職

實事求是的說,作為一個開發者,一個程式員,我相信大多數人乾同一份工作的時間基本上不會超過兩年,換句話說就是:一個程式員在同一家公司乾同一份工作超過兩年的很少。

很多人說,程式員是一個跳槽比較頻繁的職業,每一次的跳槽都會使工資大幅度甚至成倍的增長,所以這時候就會有很多人跳出來說:程式員跳槽的目的很簡單,就是因為想漲工資了。在這裡,我想說:我並不否認,確實有很多開發者和程式員跳槽是為了漲工資,但是我相信作為一個有責任,有志向的程式員,跳槽中最大的目的並非漲薪,而是換一個更好的環境,更好的成長平臺和發展空間,漲薪只不過是跳槽過程中附帶的價值。

人往高處走,程式員也是人,當自己的能力成長達到一個瓶頸的時候,原來的公司不能提供很好的上升空間的時候,上升空間不限於技術還是管理,是可以考慮離職了。

那如果我發現跳槽可以讓自己工資上漲,那是否可以頻繁性跳呢,如果真是這樣我相信未來你肯定會失業很久或者成長停止很久。技術也是需要時間沉澱的和消化的。如果你的離職理由一直是專案不好或者領導不好,那你的眼光肯定也不好,面試是一個雙向過程,面試官在挑你的時候,你也有權利挑公司,面試的時候你可以反向提問以更多的瞭解公司是否適合自己。

程式員,技術是我們的主導力,因此,入職新公司前我們可以反向問面試官:公司的技術人員配比,入職後的專案詳情,公司的產品發展方向,以及目前主要的架構技術。這些可以讓我們快速的瞭解當前公司是否適合自己。

一般判斷自己是否可以離職,若無特殊原因,可以從以下幾個點去判斷:

  1. 公司的專案,產品邏輯是否全部瞭解,下家面試時是否可以詳細講解清楚,細到邊邊角角。
  2. 專案中所涉及的技術,是否全部已經知其然知其所以然。不要停留在錶面會用的階段,要瞭解技術原理深知其特點。
    技術是個累積的過程,你也知道技術更新快,所以儘量不要回頭學,用到一個技術就將它理解的透透的。
  3. 有更高的標的可以追求,並且認為自己現在已經有能力實現。

8.0 程式員你30了

中國古語,30而立,程式員你是否擔心你的30歲?我認為如果你在30歲之前已經做好了準備,你就沒什麼好擔心的。如果你害怕,說明你做的並不夠好。請問如果你有孫悟空的七十二變你會怕取經路上的妖魔鬼怪嗎?如果你有成是非的金剛不壞神功,你會怕江湖上的刀槍劍影嗎?請別給自己帶上了緊箍咒。未雨綢繆,是任何職業人員都需要做的。

當你在30歲之前沒有消耗自己,一直堅持著技術積累,我相信在30歲的時候你也是滿懷自信的,因為有能力的人走哪都是不懼的。

還有最後一句:量力而行。人可以有夢想,但不可以好高騖遠,不切實際。這個世界山連著山,水潺著水,人上還有人。環境不同,起點不同,自己內心過的得意,我有十兩銀子吃穿溫暖,家庭幸福又何必在意別人的百兩金子。

9.0 後記

程式員你累了嗎?那就睡一覺吧,睡醒之後又可以戰鬥了。 。

贊(0)

分享創造快樂