PHP程序員到底是一個什麼職業

程序員到底是一個什麼職業?有人說:程序員首先是僱員、然後是工程師;比起創造力,工程能力對這個職位更爲重要。那麼他爲什麼這樣說呢?一起來看看,更多消息請關注應屆畢業生網!

PHP程序員到底是一個什麼職業

  爲什麼有人在技術造神

大家應該已經感受到,技術圈這兩年已經和娛樂圈創業圈差不多的氛圍了,這其實是有原因的。

最主要的原因是,創業公司和創業媒體越來越多,他們需要大量的程序員投身到創業這個高風險的行業中,而造神,正是讓程序員們自動跳進火坑的絕佳辦法。不是說程序員不能創業,我是說,創業媒體們故意模糊了創造和創業的界限,把程序員們的創造衝動偷換概念,鼓吹了太多不適合的人去創業。

另一個原因是,招聘成本高漲,CTO 們爲了能提升影響力,不得不頻頻出席各種大會刷臉。文筆好的再做做自媒體和技術社羣,既能強化個人品牌提高身價,又能在融資的時候提升成功率。

總之,這個行業出現了各種技術大神。

這些大神在普通人類和初級程序員眼裏是無所不能的,是他們嚮往的目標;在中級程序員和高級程序員眼裏,這些大神就是他自己,只不過他還沒紅起來而已…

於是攀比心理也開始氾濫,全國第三的架構師比比皆是,整個圈子漸漸就浮躁起來。

然而絕大部分程序員,依然是僱員

媒體們在包裝時,最喜歡按獨立開發者的路線來整。「從小就對技術有天分」、「大學時曾在某編程大賽一鳴驚人」、「寫了個 APP 玩結果一個月有了千萬用戶」、「從公司離職自立門戶三年上市」。

OK,這的確是程序員的一條職業路線圖。但是媒體們不願意告訴你的是,一:只有極少數程序員是通過這個路線成功的;二:這條線其實需要太多非程序員職位的技能,比如產品設計能力和銷售能力。

程序員的四大職業象限

這件事造成了兩個結果,一是衝動點的程序員跑去創業了,二是不那麼衝動的程序員天天覺得自己能創業,能幹大事,在現在公司屈才了。於是就有了這樣的畫面:僱員們天天抱怨僱主不能提供給他們高管或者獨立開發者級別的待遇。

如果不是你自己開的公司,那麼僱員同學,你的價值是由你對公司的貢獻來決定的。

  程序員的價值決定

  絕大部分互聯網公司的程序員職位,沒有技術門檻

然而不幸的是,絕大部分互聯網公司都不是技術驅動的公司。真的就是鳥哥說的那樣,絕大部分技術崗位,其實技術門檻都不高(門檻在工程上,後文細講)。技術不過是這些公司的護航艦,而不是破冰船。

先別打我,冷靜下來想想,到底有多少你會的那些技術,是你的同行們不會的呢?不多,對吧?

幾年前億級別的搜索還是問題,現在已經到處是通用解決方案了;幾年前千萬到億級別的網站和 APP 解決方案還在大公司手裏,現在各個架構大會都講爛啦,而且其實都差不多;就連 DeepLearning,帶 API 接口的框架也開始涌現,只需要把圖片用 REST 傳進去就能取到結果了。

很多事情,已經沒有難度,只需要持續投入。是的,對絕大部分程序員來講,他們不需要成爲科學家,而需要成爲工程師,成爲從科學家手裏接過火種,去燎原大地的人。

  怎樣纔是一個好工程師

  1)工程的.本質不是創造,而是去風險化。

工程是關於如何 低成本、高效率、按時按量完成既定任務的。所以判斷一個工程師是否優秀,並不是他多有創意多有名氣,而是看他有多穩,看他能多 GettingThingsDone,中文就是「靠譜」。

有時候一個好的解決方案,未必採用了最新的技術和框架,而是看上去樸實無華,功力都包涵在背後的細節裏。就像頂尖高手打的斯洛克檯球,每一杆都平淡無奇,只是因爲上一杆的回球太到位。

有同學問,那我工程做的太好,豈不是沒有機會遇到一些高難度挑戰了麼?放心,一般公司都僱傭了產品經理來幫你製造高危事件。

同樣的,一個好的工程師,會選擇最適合需求和團隊的方案,考慮開發效率和系統效率的均衡,從而已達到最優效果;而不是整天和別人去爭論什麼語言最好、哪些框架過時了。

  2)工程的另一個要求是進度控制和質量控制。

在項目立項之後動工之前,對要做的事項作出詳盡的規劃,對未來一到兩週的工作給出細緻的排期,這是進度控制的基礎。

代碼的及時入庫與合併,自動化測試和每日構建,CodeReview 和文檔編寫,這些看似無關緊要的習慣則決定了項目質量。

不幸的是,很多程序員把這些工程上至關重要的東西當成垃圾,視爲對他們「創造力」的壓抑。

他們總是以創造力爲藉口去尋求自身的自在,比如上班不帶胸牌不打卡,中午休息時間在公司看視頻打遊戲,最好可以遠程上班,項目到期之前再來檢查進度,公司不要用統一框架,只有傻才寫文檔。

對職業的理解偏差和工程能力上的荒蕪,培養了大批能寫代碼但死活寫不好代碼的「碼農」,反而讓那些有着彪悍工程能力和良好習慣的程序員變得奇貨可居。

最後,來說說程序員那無處安放的創造力

有了錘子想找釘子是很正常的原始衝動,但我們必須認識到,創造力對於程序員這個職業來講,是錦上添花的東西。如果你沒有強大的工程能力,那麼創造力也不過是無本之木。所以紮紮實實的把工程基礎打好,這是最根本的。

在此基礎上,我比較推薦程序員採用內外兩條線來培養自己。在公司內的項目上採取相對保守的策略,盡力把穩定性做到最好,培養出自己卓越的工程能力;然後在公司外的開源項目和自己的獨立項目上,採用一些新的技術、實踐一些新的想法、充分發揮自己的創造力,夢想還是要有的,對吧。

這樣做最明顯的好處是,你可以瞭解到新技術和激進方案的優缺點,從而在進行方案選型時,有更多的依據;還有一個職業發展上的好處:如果不是主負責人,公司的項目往往不能代表你的能力;但獨立項目卻可以作爲一個非常好的能力證明出現在你的簡歷裏邊。

你可以是一個身懷絕技的手藝人,在自己家裏你嘗試各種手法各種風格的個人作品;但當你參與頤和園這種級別的工程時,好好的把自己負責的石頭雕成總設計師要求的樣子就好 —— 畢竟這個時代一個人已經很難負責整個項目了。這就是我所理解的程序員的工匠精神。