EP28 - 與 Staff Engineer 一起看前端 ft. Braden Corbold

這集特別邀請到我一個很厲害的同事 Braden Corbold,目前擔任 Staff Software Engineer 研究 Next.js 可以怎麼更好的幫助我們開發下一代的 application,他有一套自己的見解而且總是可以多方面和用宏觀角度看事情給出獨特的想法,以下問題的回答會以 Braden 的第一人稱做敘述。

Braden 自我介紹

我擔任前端工程師差不多六年左右而且大部分時間都是在用 React,在我的職業生涯中我感到非常幸運有很多重無到有的專案而近兩年比較注重在架構上面來確保專案的長期投資和成功,其他不在工作時候會去滑雪和弄家裡的水族箱,因為是 podcast 沒有影片但自小時候在就很喜歡漂亮的魚和珊瑚然後就希望有朝一日可以養,只是不知道原來可以找很大隻。

React or Angular

絕對是 React,我雖然在很早時候就開始用 Angular,在當時 Angular 還是炙手可熱的框架時候也是有很多爭議的時候,所以我絕對可以說我開始用 React 時候是相對比較穩定的也對當時只知道 Angular 的我來說是非常新鮮的,不過直到今天我還是挺懷念 Observable 和當時其他做事處理方式不同。

如何開始軟體工程師工作和選擇前端領域的

我大學念的是電機系而很顯然的跟前端一點關係都沒有,大學三年級時候做了一個長達16個月的實習工作,當時他們在把 Flash UI 遷移到 Angular,那時候才讓我正式進入到前端領域知道前端做事方式和在做什麼,直到大學最後一年我才知道這是我先走的路所以在額外時間開始學習 Graphic Design、Typography、其他可以補足自己設計方面的知識最終在一間新創開始前端工程師的工作,一定要提的是在 embedded system 工作和前端工作後會了解 embeeded 工作多痛苦而且整體效率很差。

作為面試者,面試 junior 和 senior 有什麼不同的建議和方法

沒有人是知道所有問題的答案或是最好的做事方法,面試是一個表現自己強項的場合所以儘量把回答問題的方向導到自己熟悉的領域中,表達談吐中也要表現出自己的自信,別把自己逼到不擅長的東西。

Senior 也是類似的方式但因為層級比較高你除了得有一個你很擅長的東西但也要平行了解其他領域,面試中你得展現自己是有多方面涉獵不同的知識來多方面了解問題以及講講不同的解決方案,這在系統設計環節很好用。

你覺得 Leetcode 重要嗎

我覺得 Leetcode 在面試過程中可以很快速的檢測來面試的人有沒有一定的基礎,雖然並不代表這是面試最好的方法但我覺得卻是最快篩選人的方式,所以我總是跟大家說還是要刷一下畢竟這是面試的第一步但跟其他準備項目比也不需要放太多時間,尤其做 Senior 以上面試這些 Leetcode 問題幫助不大。

你是怎麼升到 Staff Engineer 的

我覺得我很幸運的可以被指派那種需要重寫或是開始全新的 app 的 project,這是一種有很多不確定性因素的地方,在這樣情況下可以好好的和其他人溝通不只技術上的事也包括為何要這麼做、這對公司會帶來什麼好處等等是我覺得我能升到 Staff 的原因,不只如此最基本的要求就是要有很多不同的知識然後怎麼運用這些知道的東西確保我做的 project 可以不管是一百、一千人都可以使用而且 project 可以在接下來的兩三年都可以繼續使用,最後就是很幸運的有很好的主管可以支援我這樣的想法。

有沒有什麼建議給剛踏入前端這行的人

先找一個自己有興趣的東西比如 library、框架、一個問題,找出一個你很 care 的東西會是最好的學習方式,我知道現在因為 Social Media 每個人都有自己的意見從而在學習初期都是讓你分心的東西,挑選一個東西好好的理解它再擴展開來看看其他東西或是看看其他人的想法。再來可以的話找到一個 mentor 帶你,尤其你覺得他的思考方式和看事情的角度是你可以學習的從而建立自己的一套系統

如果要你做個前端預言或是你有什麼願望你會說什麼

現在前端這麼複雜我滿希望可以慢下來不要這麼瘋狂,在過去幾年前端這個詞變的有點失焦了,你不只需要知道所謂的基礎也需要了解瀏覽器、渲染環境、怎麼 scale、CI / CD 怎麼假設、怎麼 containerize 等等看起來永無止境的問題,加上近期這些 meta framework 像 Next.js 讓後端前端的區別越來越小了,讓整個前端環境變的相當複雜,雖然我覺得很令人興奮但同時間也希望可以簡單一點。

如果你喜歡這內容的話幫我在 Twitter 和 Threads 上面分享給其他正在前端這條路上努力的朋友們,也別忘了訂閱我們電子報收到第一手消息喔 🚀