首先來說一個高級程序員并非靠自己讀幾本書寫幾萬行代碼就能練就的,我更關(guān)注于低層的環(huán)境,也就是程序員實實在在的工作環(huán)境。因為程序員的高低還得從實際的工作來衡量,而非其它。所以我想說的是,中國的軟件公司的性質(zhì)直接導(dǎo)致程序員的水平的高低。而我所說的軟件公司,不是指某個或者某幾個,而是指主流的軟件公司,大眾型的軟件公司。所以我希望那些已經(jīng)步入一個理想的公司的程序員理解我這篇文章的定位。
軟件公司的無償加班對程序員的影響:
國內(nèi)的軟件公司中程序員是常常加班的,每日加,周未也常加?;谶@種性質(zhì),出現(xiàn)了一種很莫名其妙的現(xiàn)象:每天程序員的實際下班時間總是要晚于規(guī)定下班時間,至于晚一個小時還是兩個小時還是更多這就另說,總之,程序員這份工作,如果按時下班反而自己感覺自己像是做賊似的。表面上公司并沒有強迫誰加班,但實際上在潛移默化中有一種威懾力,要求你要多為公司工作幾個小時,而且表面上你所工作的這幾個小時還是你自己愿意的。正因為是“自己愿意的”,所以公司更有理由認為是無償?shù)摹?/p>
還有就是周未加班,一般周未加班是因為“忙”(關(guān)于這個帶引號的“忙”,見“軟件公司的‘忙’對程序員的影響”)。但周未加班一般是無償?shù)?,至于法律所?guī)定的那種“償”就更嘗不上了。不過一般公司是這樣規(guī)定的:周未加班可以倒休。關(guān)于倒休,一般是周未的班真的加了,倒休卻遙遙無期,原因很簡單,公司“忙” 嘛!
這種情況對程序員的影響:消極、軟弱無主見、虛偽、對前途渺茫。
軟件公司的“忙”對程序員的影響:
軟件公司的“忙”其實有時也是真忙,從原因來說,軟件公司認為是程序員(其實也有其他員工,但本文不涉及討論)造成的,程序員認為公司造成的。而根據(jù)“一個巴掌拍不響”原則來看,應(yīng)該是公司與程序員合作不協(xié)調(diào)出現(xiàn)的惡性循環(huán)造成的。深層原因大家自己研究去吧。不過從我這里的表象來看,這種“忙”有這么幾點,這幾點如果不代表大家的意見,大家可以補充:
**項目開發(fā)與計劃脫節(jié),表現(xiàn)為項目開發(fā)慢于計劃。
**突如其來的事件。
**為某種說不清道不明的原因,像是作秀。
**假忙。
**真忙。
上面說的第一種情況最常見,這涉及到軟件工程的話題,其實也是軟件公司做不大,程序員水平提不高的核心。而“軟件公司做不大”已有前輩文章《淺談:國內(nèi)軟件公司為何無法做大做強?》中說過了,而“程序員水平提不高”本文所言即是,所以這個原因大家讀完這兩篇自己體會吧。
上面說的第二種情況也常有,比如偶爾趕個標書,比如客戶那里突然出現(xiàn)了BUG,急著去改等等。
第三種情況就很讓人暈菜了,有點無病呻吟的感覺,比如不知道從哪里冒出一個會議,開到個七八點;
第四種情況很特別,也比較常見,大家同室坐、彼此各自心。一片共同耕作的美好景象,但果實見不到兩顆豆呢。這可是大家齊心虛度時光。程序員可以拿出這個時間提高自己嗎?當然不可以了,你表面上還是得干活呢。[!--empirenews.page--]
第五種情況就不說了,因為這是正根。
總之軟件公司是“忙”的,一般是以上三種“忙”,偶爾這三種都沒有了,第四種就馬上出來的。
這種情況對程序員的影響:混亂無序、怨由心生、虛偽做作、學(xué)習(xí)時間少。
軟件公司的流程不規(guī)范對程序員的影響:
無像樣的需求、無像樣的設(shè)計、沒有測試、沒有文檔、沒有維護(所謂維護也大都是客戶測試出BUG來改一改)。
其實說到需求這一塊也并非完全是軟件公司的問題,大多數(shù)情況下,客戶也是根據(jù)程序員直接上來編碼后暴露出來的問題才漸漸明白自己的需求是什么的。
“什么都沒有”的問題在于,什么也不清楚,如果寫一堆以不變應(yīng)萬變的代碼,第一,時間不允許,第二,難度太大。要是稀里糊涂去實現(xiàn),擴展與維護性又差,整個一堆豆腐渣工程,總之是沒法下手。長了一堆“打鐵”技巧,神不像神,程序員不像程序員的。
這種情況對程序員的影響:無規(guī)劃性、代碼質(zhì)量低、手忙腳亂、技術(shù)永遠停留在“打鐵”水平。
軟件公司對程序員員工的“全能型”要求對程序的影響:
裝系統(tǒng)、修打印機、寫文檔、編代碼、見客戶、掃地搬桌子、接網(wǎng)線,在國內(nèi)軟件公司中程序員做什么事都有可能。單單說技術(shù)方面,也是要求事事能做,看一下招聘要求就知道了。
這種情況對程序員影響:術(shù)業(yè)無專攻
軟件公司的工資拖欠對程序員的影響:
很悲哀,這是存在的。我向來認為一個員工與公司合作的最底線應(yīng)該是按時按量發(fā)工資。但很多公司打破了這個底線。一個朋友開玩笑地說過:“家庭有錢,誰干程序員呀!”這話雖只可信一半,但是從國內(nèi)情況來看,程序員的生活質(zhì)量還是不高的,工資的拖欠直接影響到程序員的心態(tài),甚至影響到程序員的生活。
這種情況對程序員影響:低調(diào)、迷茫、心態(tài)不穩(wěn)、思想徘徊、生活困難。
軟件公司對軟件開發(fā)的要求對程序員的影響:
軟件公司對軟件開發(fā)的要求一般是實現(xiàn)即可。如果說寫一個和記事本一樣的程序,公司感覺程序員應(yīng)該在一天內(nèi)搞定;如果寫一個WPS,公司也就感覺程序員應(yīng)該在兩到三個月搞定。這不是浮夸,事實就是這樣的。公司所著眼的點在于“就這么一點功能”,而非在于“怎么實現(xiàn)這‘一點’功能。
這種情況對程序員的影響:開發(fā)難度大、維護難度大、壓力大、難溝通。
軟件公司的承諾對程序員的影響:
國內(nèi)軟件公司一般實際行動能力差,但沒理難說話,他們也知道自己沒理,所以比較愛承諾,把實際問題拋向以后解決。然而承諾也只是口頭的,有一點“我以人格擔(dān)保”的意思。不過一般情況下,國內(nèi)的程序員還是比較有忍耐能力的(從上文來看不忍耐還能混嗎),但公司層面的“人格”卻是不可信,多承諾少兌現(xiàn),員工面試時聽到的說話到干了兩年走了都沒做到的事根本不少見。然而路遙馬乏力,日久人變心,這樣的結(jié)果往往是使公司與員工走入惡性循環(huán)。
這種情況對程序員的影響:不滿、被動、拿不起放不下、進退兩難。[!--empirenews.page--]
結(jié)論:
消極、軟弱無主見、虛偽、對前途渺茫、混亂無序、怨由心生、虛偽做作、學(xué)習(xí)時間少、無規(guī)劃性、代碼質(zhì)量低、手忙腳亂、技術(shù)永遠停留在“打鐵”水平、術(shù)業(yè)無專攻、低調(diào)、迷茫、心態(tài)不穩(wěn)、思想徘徊、生活困難、開發(fā)難度大、維護難度大、壓力大、難溝通、不滿、被動、拿不起放不下、進退兩難。
上面這些短語概括了程序員的性格、心態(tài)、生活環(huán)境、工作環(huán)境等方面,它們就像毒素一樣,日久能把一個健康的程序員毀掉。在這樣的環(huán)境下,還問為什么你的技術(shù)這么低?太搞笑了。