為什麼你的前端工作經驗不值錢?
本文轉載自網易實踐者社區
作者:馬超(網易高級前端技術經理)
每年的三月到六月,都是招聘高峰,除了大量的應屆畢業生湧入社會之外,還有一些工作了一兩年尚未找到穩定歸屬感的人,也會開始投遞簡歷(沒錯,基本都是在拿了年終獎之後)。
作為前端技術主管,有幸,或者說是不幸,我需要在這些投遞過來簡歷的人中,耗費大量精力來篩選符合公司要求、團隊發展、技術基礎三方面條件的人選。
我不是一個擅長技巧的面試官,儘管公司HR也給我們培訓過招聘的原則、技巧,但是真正的體驗和感受,卻是在做了大量面試之後自然而然悟出來的。常見的招聘要求中,基本都有「工作經驗」的要求,而且都是以年作為單位。但是實際情況卻告訴我,工作經驗往往不是以年衡量的,甚至有些時候跟時間沒有關係。
今天想要分享的一點,是關於「為什麼你的工作經驗不值錢」,或者「怎麼樣才能讓工作經驗值錢」。庸俗,卻能讓每個人提起精神。
從一個小小的面試題目入手:
編寫一個javscript函數 fn,該函數有一個參數 n(數字類型),其返回值是一個數組,該數組內是 n 個隨機且不重複的整數,且整數取值範圍是 [2, 32]。
如果願意,請先暫停閱讀文章,自己動手寫一下這個函數。是的,老簡單了。我可以等你五分鐘。
~~~ 華麗的五分鐘過去了 ~~~
現在假設你的工作時間為 y 年,經驗係數默認為 1,即工作經驗是:Y = 1 * y。從現在開始,以下的錯誤,你要是遇到了,請自行調整經驗係數。
可用
作為一段需要滿足需求的代碼來說,它最核心的、最低的要求:可用。
如果你沒有產出一個函數( fn ),或者產生了語法錯誤,那就請設置 經驗係數為 0,然後去面壁思過;
請將代碼在控制台運行,並執行 fn(3),看看是否輸出一個數組,數組中包含了三個隨機且不同且在[2,32]的整數,如果不是,請將 經驗係數 * 0;
一個參考的半偽代碼是:
其中 getRand 、checkInArr 還另有講究,後面會提到。當然思路和方法不止一個,後面也會提到。
有相當多的面試者,包括不少工作時間為2年以內的同學,都會在這一步犯錯,非常遺憾。
健壯
代碼是否老道,過了「可用」這一關後,就開始見分曉了。
所謂「健壯」,即最基本的兼容性處理、邊界處理,異常處理、用戶輸入校驗。很多時候,需求方不會明確告訴你這些邏輯怎麼處理,但並不意味著你不需要處理。
健壯的程序,一定會將這些兼容性、邊界、異常、輸入做處理,以保證核心功能的正確輸出。當然,如果你的代碼沒有任何輸入並不考慮兼容性(可能嗎?)或者僅僅是內部函數,那這一步要求可以降低,並不意味著你可以完全不做。
好,回過頭看代碼:
——如果你沒有對 n 的取值範圍做校驗(n必須是 1 到 31 之間的整數),請將 經驗係數 * 0.3;
——如果你沒有對 n 是否為數字做校驗,請將 經驗係數 * 0.5;
——如果你沒有對 n 是否存在做校驗,請將 經驗係數 * 0.7;
——如果上述校驗都做了,但是沒有校驗對,請將 經驗係數 * 0.9;你需要多練習,仔細認真的。
可靠
大多數面試者都止步於前兩關,鮮有進入第三關的:可靠。
javascript沒有強數據類型,函數的返回值也無法強制返回的數據格式。但是作為「可靠」的要求,儘可能在任何情況下,都返回一個可靠的結果,哪怕是異常情況下。是的,這一步很簡單,幾乎不耗費幾個位元組的代碼,但是會讓 fn 的返回值變得可靠:
如果你留意到並處理可靠返回值的問題,那請將經驗係數 * 1.2;
另外,一個牽涉的話題就是:異常情況下,是否要拋出 Error,或 console.error ?
關於這個話題,似乎沒有定論,需要自己衡量。我的觀點是:如果異常情況下不會造成太大影響的話(包括定位錯誤),就不用拋錯或提示。但同樣的,這個衡量仍然是經驗性的。此處不再展開討論。
寬容
如果在你的日常開發中注意「可用」、「健壯」、「可靠」原則的話,你的工作經驗就會大於你的工作時間,也就會更容易受到重視,自己所挖的坑就會少。而我近期面試的人中,甚至包括5、6年工作時間的,幾乎都止步於此。
如果你要想成為一個受歡迎的技術人員,「寬容」是第一步: 對需求寬容、對用戶寬容、對調用者寬容、對維護者寬容。
回到代碼:
——如果 n 是一個字元串數字,是否可以允許進入處理流程? 如果是,請將經驗係數 * 1.1;
——如果 n 是一個含有小數的數字,比如 3.000001,是否允許進入處理流程?如果是,請將經驗係數 * 1.1;
——你的代碼中,是否有足夠多且清晰的注釋? 如果是,請將經驗係數 * 1.2;
——如果需求調整了 [2, 32] 的範圍,你的代碼是否可以快速調整,甚至不用調整? 如果是,請將經驗係數 * 1.2;
一個參考的半偽代碼是:
精益求精
恭喜你完成了前四關!
如果你在實際開發中,時時刻刻留意這些原則,這足夠讓你的工作經驗擴大化,並給你帶來更多的認可,這些認可來自於需求方(或許是那個曾經非常蠻橫的產品狗)、用戶以及你的同事。但不應該包括你自己,你還需要更進一步。
寬容是寬以待人,精益求精是嚴以律己。內外兼修才是高手。當你將這五個原則(可用、健壯、可靠、寬容、精益求精)變成你自己的開發習慣,你的工作經驗就跟你的工作時間沒有關係了。
看到這裡,不知道你的經驗係數是多少,對自己的前端學習or求職是不是有了更多的感悟~ 本周三,我們邀請了網易資深前端開發工程師鄭海波與大家分享前端開發相關的工作經驗。
分享主題:5個經典的前端面試問題
分享人:鄭海波(網易資深前端開發工程師)
分享時間:3月8日 20:00
解決問題:
——了解目前前端招聘行情及趨勢;
——了解前端面試官最喜歡考察的5個經典問題;
——掌握技術面試技巧;
——了解前端學習過程中需要重點掌握的方向;
——了解企業對前端開發工程師的要求;
如果想要第一時間獲得以上免費直播課程的收聽地址,歡迎大家掃碼加入網易前端開發QQ群。
另外,網易雲課堂的《前端開發工程師》微專業正在進行團購活動,支付1元加入學習團,就可以享受學費最低價!進群除了免費聽直播外,還能了解活動最新動態哦~
※軟體開發中最頂級的17個平台和工具
※2016年十大頂級開源項目
※如何寫出優雅的CSS代碼?
※國外的公司都是如何對待大齡程序猿的?
※從Hello World說程序運行機制
TAG:程序猿 |
※為什麼你的Web前端工作經驗不值錢?
※經驗!什麼時候找工作最容易?
※你工作多年,卻找不到像樣工作,你所謂的經驗也許根本不值錢
※經驗告訴你為什麼在工作場所那什麼不是個好主意
※關於寫作,沒有什麼比這些作家經驗更值得學習的了
※應屆生的痛點:沒有工作經驗,怎樣找到工作?
※找不到夢想的工作?別再把鍋扔給「沒經驗」了!
※技術大牛但沒管理經驗?對不起,你還真管不了產品經理
※新手玩家玩玉最怕什麼?從「吃藥」中積累經驗好還是不好?
※這都是血與淚的經驗教訓啊!你要養多肉怎麼可以不看?
※婆婆帶孩子經驗豐富,聽她的錯不了,那還要我這個媽幹什麼?
※經驗什麼的都是扯淡!孕期怎麼補快聽專家怎麼說
※沒有工作經驗如何回答HR的問題!
※懷孕後不想抽二手煙怎麼辦?這些過來人的經驗值得你學習
※經驗|行情再差,什麼樣的人才,永遠搶手?
※前任,給你留下了哪些值得一提的經驗教訓?
※經驗丨立夏了,這些多肉度夏的經驗你不得不知!
※如何利用知識與經驗賺錢?快看別人是怎麼做到的!
※育兒經驗真的會行之有效嗎,媽媽們不要再被坑了