年末各大網際網路企業結構調整(裁員)的訊息一經放出,“資本寒冬”和“程式設計師如何渡過中年危機”又被關注。掘金、知乎上也能看到類似的討論文章。作為一個準大齡程式設計師,自然我也同樣有著焦慮和思考。
是轉型管理還是鑽研技術?又或者乾脆考個公務員上岸?相信答案因人而異。最近在有幸當了回面試官,在面試了幾位前端之後,我也有了一些自己的感悟。儘管沒能找到渡過中年危機的答案,但是似乎發現了為何會陷入危機的原因——放棄了思考。
前來面試的前端大多在 30 歲左右,大都有著 3 以上的工作經驗,專案的經驗也都不少,從 jQuery 的時代到 如今 MVVM 的時代。然而卻都倒在了框架的原理、高階用法以及 JS 的基礎上,其中一些印象令人深刻。
- 有在專案中用了 React 和 React-router 卻不明白前端路由和後端路由的區別以及弄混 render 和 DidMount 順序的
- 有對於前端是否應該瞭解 Restful 規範表示疑問的
- 有對於 Array.map 返回值不確定的
- 有未來規劃成為前端架構師卻說還沒了解過 Node 的
- 有把 Promise 認為就是 fetch 的
而在 閉包、作用域、Redux/Vuex、Event-Loop 等這些基礎問題上,更是沒有一個人能回答上來的,哪怕是最淺層次的概念。以至於我都被人當成是“鑽牛角尖”了。
當被問到上面的一些問題時,面試者的反應基本都是“我平時在用,但是沒怎麼注意”。究其原因,便是這個沒注意,而沒注意的背後就是沒有思考的體現。
“為什麼這個專案用了 Redux/Vuex ?”、“為什麼 DOM 操作要放在 DidMounted/Created 裡做?”、“Promise 為什麼會取代 Callback?” 等等。如果我們在做專案的時候多帶個問號,相信在面對這些面試題時也不會是完全沒有頭緒。
有趣的是,當我們在玩 Dota、LOL 或者“農藥”的時候,往往一局過後無論輸贏都會覆盤和總結一下,看看自己的資料然後想想自己的亮點與失誤。如此往復,你就在不知不覺間從鑽石成長為了星耀,從星耀成長為了王者。Coding 也是同樣的道理,不是嗎?
曾經看到一句簽名,大意是:
以現在人的努力程度,還根本還輪不到拼天賦
我想這裡的“努力”可能就是指在工作生活中自己的思考。這一次的經歷也是很好的一面鏡子,提醒著我思考的重要性。儘管程式設計師如何渡過中年危機的答案依舊未知,但至少知道了如果平時可以多問自己幾個為什麼的話,就能超越那些沒有去思考的人。