淘宝前端工程师:国内前端行业十日谈(六)
第六日:碼農的宿命
【青春飯】
? ?? ?“碼農”是IT從 業(yè)者一個自嘲的稱號,也有從事沒有發(fā)展前景的軟件開發(fā)職位,靠寫代碼為生的意思。但我認為碼農是一個愛稱,編碼的農民,和農民一樣有著執(zhí)著純真樸實豪爽的 共性,僅僅分工不同而已。就好比農業(yè)社會對糧食的依賴,工業(yè)化進程對計算機應用也有著很強的依賴,大量的需求催生出這樣一群人。他們有智慧的大腦,對于編 程,設計,開發(fā)都有著熟練的技巧,但多數人看來,碼農的特點是:
1,收入低
2,工作單調
3,工作時間長
? ?? ?實際上這個描述非 常片面,或者說是外行看熱鬧。第一,全行業(yè)比較來看,軟件開發(fā)領域收入為中等偏上,第二,程序員一般都是有癖好的,沉浸在自己的癖好中是不會感覺單調的, 第三,程序員有一定的時間自由度(如果你是一名合格的程序員的話),至少不會像流水生產線工人一樣。其實,通過幾十年的發(fā)展,我們對程序員的定義更加科 學,比如很多IT企業(yè)都開始建立詳細的JM(Job Module),即職級模型,程序員沿著專業(yè)方向可以走到很高,甚至可以說,程序員是可以被當成一生的事業(yè)的。
? ?? ?然而,有一個非常 普遍的觀點是,程序員和做模特一樣是吃青春飯的,到了三十歲就要考慮轉行或者轉管理。盡管這種觀點頗具欺騙性,但至少它對一種人是適用的,即入錯了行的 人。如果你骨子里不想寫程序,就算年紀輕輕為了生計寫幾年代碼,之后肯定會另有他途。心非所屬則不必勉強,但問題是,即便如此,你知道你的心之所屬嗎?
? ?? ?我們知道,一個成 熟的產業(yè)一定需要各色崗位來支撐,若要成熟,則需要時間的沉淀,比如實體經濟制造業(yè),創(chuàng)意、生產線、高級技工、技術管理四個方面都產出大量的高級人才。因 為歷史悠久,我們能看得到。而軟件產業(yè)則不然,九成以上是剛出道的新手,并沒有太多“高級”和“資深”的具體樣板可供參照,在前端開發(fā)領域中情況更甚,絕 大部分人根本搞不清楚什么樣才是“資深”前端工程師,相比傳統(tǒng)軟件行業(yè)近四十年的進化,我不相信僅有幾年光景的前端技術崗位能產出多少貨真價實的“資 深”。但互聯網崛起速度太快,還沒有等技術基礎打牢,互聯網形態(tài)就又花樣翻新了,這種變化是一種常態(tài),而崗位的設定也在這種變化之中自然的優(yōu)勝劣汰,比如 兩年前可能還難以想象數據部門會需要前端工程師,他們甚至不直接和瀏覽器打交道。前端工程師需要適應這種變化帶來的觀念沖擊,不要以為自己只能做切頁面、 或者只會給頁面搞重構、只會搞兼容性,要把自己放在整個軟件行業(yè)來看。
? ?? ?所以,由于歷史 “不悠久”導致的崗位模糊本身不是什么大問題,崗位的演化本身就包含在互聯網的發(fā)展軌跡之中。所以,當今的互聯網IT狀況,就好比移動終端的大哥大時代、 云計算的肉雞時代、或者桌面操作系統(tǒng)的DOS時代。因此,前端工程師當前要務是要想清楚看清楚,在互聯網中我能做什么,而不是作為前端工程師我能做什么, 所以,從這個角度講,技術是一個工具,放大來看,技術也只是你職業(yè)生涯中很小的組成部分,而你的從業(yè)積累、和知識面的廣度深度才是你隨著時間的推移慢慢步 入“資深”的原因所在,而不是寫了個什么框架就變“資深”了。如果有一天互聯網形態(tài)固定了,它的崗位可能真正就定型了,才會有真正清晰的職能邊界,就像藍 色巨人IBM中的各色崗位一樣,邊界清晰,權責分明,普通程序員只能實現接口而無機會設計接口、低層級的工程師也無機會躍進式的接觸項目架構、技術經理人 也不能輕易對產品有決策性影響,到這時,人的能力才真正的被限制在方圓之內,容不得越界,這種環(huán)境下人的成長非常緩慢。根本不會有像今天互聯網亂局之中所 提倡的創(chuàng)新、革命、成長和思想解放。簡單講,一旦產業(yè)定型,就不太需要很多“創(chuàng)造”了,更多的是“維護”。所以,我個人寧愿互聯網IT“黑暗”的中世紀越 久越好,至少對于年輕氣盛程序員來說,黑暗的叢林環(huán)境才是真正的自然進化最理想的土壤,這時我想起了狄更斯在“雙城記”中的開篇。
? ?? ?“這是最好的時代,這是最壞的時代;這是智慧的時代,這是愚蠢的時代;這是信仰的時期,這是懷疑的時期;這是光明的季節(jié),這是黑暗的季節(jié);這是希望之春,這是失望之冬;人們面前有著各樣事物,人們面前一無所有;人們正在直登天堂,人們正在直下地獄”。
【半路出家的危與機】
? ?? ?然而,不管怎樣, 信心的樹立不是一蹴而就的,對于轉行做前端的人來說更是如此。俗話說,隔行入隔山。每個行業(yè)自有其道,自然不是想做就做。前端技術領域半路出家者非常多, 我們來分析一下轉行的心理。第一,看到前端技術入門簡單、互聯網對前端技術的需求缺口巨大;第二,前端技術所見即所得、感覺學習起來很快;第三,我身邊的 某某轉行作前端看上去不錯、我似乎也可以;第四,我不喜歡我現在做的工作、想換行業(yè)、正好前端技術上手較快,就選他吧;第五,我真的喜歡作Web前端,為 它付出再多都是值得的。
? ?? ?轉行者的心態(tài)比較容易走兩個極端,一是只看到新行業(yè)的好,二是只覺得原工作很糟糕。但不管是什么行業(yè)的轉行,對自己的職業(yè)規(guī)劃的思考都應當先行一步。即務必首先清晰的回答這些問題:
1,我能做什么?
2,我不能做什么?
3,我的優(yōu)勢是什么?
4,我的劣勢是什么?
5,做新行業(yè)對我有何好處?
6,換行會讓我付出何種代價?
7,如何定義轉行成功?
? ?? ?因為面試的時候一 定會被這些問題所挑戰(zhàn)。如果支支吾吾說不清楚,要么是對自己未來不負責任,要么骨子里就是草根一族,習慣做什么都蜻蜓點水淺嘗輒止,也難讓人信服你的轉行 是一個權衡再三看起來合理的選擇。我無法幫每個人回答這些問題,但至少有兩點是確定的,第一,Web前端技術是一個朝陽行業(yè),絕對值得義無反顧的堅持下 去,第二,你將經歷從未有過的枯燥、苛刻的歷練,所謂痛苦的“行弗亂其所為“階段。不過話說回來,經歷過高考的人,還怕個屁啊。
? ?? ?有心之人自有城 府、懂得放棄,看得清大勢中的危機、識得懂繁華里的機遇。尤其當立足于Web前端技術時,這種感覺就愈發(fā)強烈。因為國內外前端技術領域從2000年至今一 直非常活躍,前端技術前進的步伐也很快,對于一些人來說,不管你是在大公司供職還是創(chuàng)業(yè),不管你是在接外包項目還是自己寫開源項目,從轉行到跟得上新技術 的腳步是有一些方法和“捷徑”的。
第一,梳理知識架構
? ?? ?我們知道知識積累 有兩種思路,第一種是先構建知識面、建立技術體系的大局觀,即構建樹干,然后分別深入每一個知識點,即構建枝葉,最終形成大樹。第二種是先收集知識點,越 多越好,最后用一根線索將這些知識點串接起來,同樣形成大樹。第一種方法比較適合科班秀才,第二種方法則更適合轉行作前端的人,即實踐先行,理論升華在 后。比如對“IE6怪異模式“這條線索來說,要首先將遇到的IE6下的樣式bug收集起來,每個bug都力爭寫一個簡單的demo復現之,等到你收集到第 100個bug的時候,再笨的人都能看出一些規(guī)律,這時就會自然的理解IE的hasLayout、BFC和各種bug的原因、你就成為了IE6的hack 專家了,當你成為100個知識線索的專家的時候,你已經可以稱得上“資深”的水平了。我們知道,10個人中有9個是堅持不下來的,他們會以項目忙等各種理 由萬般推托,將自己硬生生的限制在草根一族,坐等被淘汰。所以,對于立志作前端的人來說,這種點滴積累和梳理知識非常重要。
第二,分解目標
? ?? ?將手頭的工作分解 為幾部分來看待,1,基本技能,2,項目經驗,3,溝通能力,4,主動性和影響力。想清楚做一件事情你想在哪方面得到歷練,比如,我之前在作第一次淘寶彩 票常規(guī)性重構的時候(正好是一次視覺和交互上的全新設計),我清楚的明白這次重構的目的是鍛煉自己在架構準富應用時的模塊解偶能力,尋找在其他項目中架構 的共通之處,所以我寧愿加班或花更多精力做這個事情,當然更沒打算向業(yè)務方多解釋什么,這件事情對我來說純粹是技能的鍛煉。而經過這一次重構之后,我意外 的發(fā)現對業(yè)務的理解更透徹深入、更清晰的把握用戶體驗上的瓶頸所在。如果一開始就把這次常規(guī)改版當成一個普通的項目按部就班的做,我只能說,你也能按時完 成項目,按時發(fā)布,但真真浪費了一次寶貴的鍛煉機會,項目總結時也難有“動心忍性”的體會。
? ?? ?所以,每個項目的 每個事情都應當認真對待,甚至要超出認真的對待,想清楚做好每件事對于自己哪方面有所提升?哪怕是一個bug的解決,即便不是自己的問題也不要草草踢出去 了事,而是分析出問題原因,給出方案,有目的involve各方知曉……,正規(guī)的對待每個不起眼的小事,時間久了歷練了心智,這時如果突然遇到一個p0級 的嚴重線上bug(比如淘寶首頁白屏,夠嚴重的了吧)也不會立即亂了方寸,這也是我上文提到的心有城府自然淡定萬倍,而這種淡定的氣場對身邊浮躁的人來說 也是一種震懾和療傷,影響力自然而然就形成了。
第三,作分享
? ?? ?做分享這事兒真的 是一本萬利。有心的人一定要逼著自己做分享,而且要做好。首先,自己了解的知識不叫掌握,只有理解并表達出來能讓別人理解才叫掌握,比如如果你解釋不清楚 hasLayout,多半說明自己沒理解,如果你搞不懂雙飛翼的使用場景,可能真的不知道布局的核心要素。再者,作分享絕對鍛煉知識點的提煉能力和表達能 力,我們作為工程師不知道多少次和強硬的需求方pk,被擊敗的一塌糊涂。也反映出工程師很難提煉出通俗易懂的語言將技術要點表述清楚。而做ppt和分享正 是鍛煉這種能力,將自己的觀點提煉出要點和線索,分享次數多了,自然熟能生巧。檔次也再慢慢提高。另一方面,逼迫自己站在公眾場合里大聲講話,本來就是提 高自信的一種鍛煉。
? ?? ?這時,你或許會問,我講的東西大家都明白,我講是不是多余,我第一次講講不好怎么辦,大家會不會像看玩猴似的看我“這SB,講這么爛還上來講”?要是講不好我以后再講沒人聽怎么辦,我今后怎么做人啊?
? ?? ?老實說,這是一道 坎,任何人都要跨過去的,誰都一樣,你敢鼓起勇氣在大庭廣眾之下向愛人表白,就沒勇氣對自己的職業(yè)宿命說不?其實勇敢的跨越這一步,你會意外的收獲他人的 掌聲和贊許,這些掌聲和贊許不是送給你所分享的內容,而是送給你的認真和勇氣。這個心結過不去,那就老老實實呆在自己的象牙塔里遺老終生,當一輩子工程師 里的鉆石王老五吧。
【匠人多福】
? ?? ?如果你能耐心讀到這里,心里一定有一個疑問,上面說的都是技術上能力上怎樣怎樣,那我所做項目不給力又當如何?如果項目不掙錢、黃了、裁了,我的努力不就白費了嗎?我又有什么績效和價值呢?
? ?? ?沒錯,有這種想法的人不在少數。特別是剛出道的校招同學往往更加心高氣傲,以為自己有改變世界的本事,一定要參與一個牛逼的團隊做一款光鮮靚麗受人追捧能給自己臉上貼金的項目。如果你有這種想法,趁早打消掉這個念頭,當然,我們這里先不討論創(chuàng)業(yè)的情形。
? ?? ?第一,如果你剛畢業(yè)就加入一個牛逼團隊,說難聽點,你就是團隊中其他人眼中的“豬一樣的隊友”,不創(chuàng)造價值且拖項目后腿(顯然大家都要照顧你的成長啊),按照271理論,你沒有理由不是這個1。至少相當長一段時間內是這樣。
? ?? ?第二,你在所謂牛逼團隊中的創(chuàng)造性受限,因為創(chuàng)新多來自于團隊中的“資深“和大牛們,你參與討論但觀點通常不會被采納,他們只會給你這個菜鳥分活干,想想看,你如何能花兩到三年就超越身邊的大牛們?甚至連拉近與他們的距離都難。
? ?? ?第三,如果身在牛逼團隊,自然心理對周圍的牛人們有所期待,希望他們能灌輸給你一些牛逼的知識和牛逼的理念。這種思想上的惰性在職場生涯之初是非常危險的。要知道技術和知識本身是很簡單和淳樸的,只不過披上了一個光鮮項目的外衣而讓人感覺與眾不同。
? ?? ?第四,由簡入奢易,由奢入簡難,做過一個看似光彩的項目,心理再難放平穩(wěn),去踏實的做一個看上去不那么酷的產品。這種浮躁心態(tài)會嚴重影響今后的職業(yè)發(fā)展和成長。
? ?? ?第五,光鮮靚麗的項目被各種老大關注,是難容忍犯錯誤的,傻瓜都知道犯錯誤在成長之初的重要性。
? ?? ?就我所看到的情形 看,一開始加入看似很牛的項目組,三年后得到的成長,比那些開始加入一個不被重視的項目的同學要小很多,而后者在能力上的彈性卻更大。所以,道理很簡單, 你是要把一個很酷的項目作的和之前差不多酷,還是把一個不酷的項目做的很酷?項目是不是因為你的加入而變得與眾不同了?
? ?? ?從這個角度講,不 管是轉行的新人還是剛出道的秀才,最好將自己當作“匠人”來對待,你的工作是“打磨”你的項目,并在這個過程中收獲經驗和成長。付出的是勤奮,鍛煉的是手 藝,磨練的是心智。因此,你的價值來自于你“活兒“的質量,“活兒”的質量來自于你接手的項目之前和之后的差別。做好活兒是匠人應有的職業(yè)心態(tài)。想通這一 點,內心自然少一些糾結,才會對自己對項目的貢獻度有客觀的認識,不會感覺被項目所綁架。
? ?? ?做一名多福的匠人,擁有了金剛鉆、就不怕攔不到瓷器活兒。但對于人的成長來說,如果說“項目”重要但不關鍵,那么什么才是關鍵呢?這個話題還會在接下來的“伯樂與千里馬”這篇中給出答案。
【若干年后】
? ?? ?現在,讓我們回過頭回答一下“青春飯”的問題。在“青春飯”小節(jié)中提到,“程序員到三十歲之后需要轉行或者轉管理嗎?”
? ?? ?上文提到,工業(yè)化生產的四個領域,1,創(chuàng)意,2,生產線,3,高級技工,4,技術管理。Web前端技術也是如此,可以在這四個領域找到各自的歸宿。
第一,“創(chuàng)意“
? ?? ?即和產品需求越走越近,擁有良好的產品感,對產品需求、設計交互把握準確,能夠用適當的技術方案推動產品用戶體驗,屬于“架構師”的范疇,因為職能更加靠前,偏“出主意”型的。這種人更貼近用戶,需要活躍的思維、廣闊眼界、厚實的項目經驗。更多的影響產品體驗方面的決策。
第二,“生產線“
? ?? ?即前端基礎設施建設,優(yōu)化前端開發(fā)流程,開發(fā)工具,包括開發(fā)環(huán)境、打包上線自動化、和各種監(jiān)控平臺和數據收集等,屬于“技術支持”的范疇,相比于很多企業(yè)粗獷難用的平臺工具,前端技術方面的基礎設施建設基礎還需更加夯實,因為這是高效生產的基本保證。
第三,“高級技工“
? ?? ?即高級前端開發(fā)工程師,專職做項目,將產品做精做透,用代碼將產品用戶體驗推向極致,偏“實戰(zhàn)”型的,是項目的中堅力量,直接產出成果,影響產品效益。屬于項目里的“資深”。
第四,“技術管理“
? ?? ?即做技術經理,這才是多數人所理解的“管理”,其實就是帶團隊、靠團隊拿成果。這類人具有敏感的技術情結,在技術風潮中把握方向,能夠指導培訓新人,為各個業(yè)務輸出前端人才,偏“教練”型的,促進新技術對業(yè)務的影響。并有意識的開辟新的技術領域。
? ?? ?可見,轉管理可不是想當然,也不是所謂做項目變資深了就能轉管理,轉了也不一定能做好。根據“彼得原理”,即人總是傾向于晉升到他所不能勝任的崗位,這時就又陷入“帕金森”定律所隱喻的惡性循環(huán)之中,直到你帶的團隊整個垮掉。
? ?? ?所以,轉管理應當是一件非常慎重的事情,不是所謂程序員混不下去就轉管理這么簡單。但不管怎樣,有一件事情是需要尤其要想清楚,即,轉了管理,技術就丟了嗎?我們在第七日“伯樂與千里馬”中再深入聊聊這個事兒。
轉載于:https://www.cnblogs.com/wqx-qianduan/archive/2012/09/20/2696153.html
總結
以上是生活随笔為你收集整理的淘宝前端工程师:国内前端行业十日谈(六)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 加密锁 vs. 云授权
- 下一篇: 使用SQL Server 2008 Ex