應徵Automattic前要刷leetcode嗎

話說這次WordCamp Taipei個人首次以會眾的身份出席,沒辦法擺攤吆喝強迫大家拿贈品雖然心裡總是癢癢的,但也因此有了很多時間跟大家聊天和參加議程,收獲滿滿。令人開心的是,這次很多人問我敝公司的就職問題,其中最常聽到的就是:「請問應徵Automattic前要刷leetcode嗎?」

答案是:不用

不是說刷leetcode沒用,我打從心底尊敬那些能刷好幾輪看到題目就背出程式碼的人,進行大量演算法練習對編程效率的提升也是毫無疑問。只是我們的評選方針比較偏好實戰導向,受試者處理實際問題的能力才是重點。所以刷leetcode對應徵a8c是沒有太大幫助的,同樣道理,去流水帳式地詳讀PHP和JS的語言手冊也一樣沒用。

簡言之,能Google到答案的東西我們都不會問。這也不是說Google得到的就一定簡單,傅立葉轉換也Google得到,對我來說就很難啊。

那該如何準備呢?以下就個人觀點列出幾點建議。

不要花時間為了應徵搞side projects

這是我自己在職涯早期也犯過的錯誤,為了讓經歷好看些,硬是去做一些與目標職位好像有些相關的side projects,但實際上這樣做通常都是反效果。原因很簡單,為了應徵而搞的side projects通常都是花兩三個月的業餘時間完成的,但是你的目標公司可都是搞相關領域搞了N年的專家,花那一丁點工夫做出來的東西有多淺根本一瞟就知道,講白了就是班門弄斧,還把自己本來更專精的領域給遮蓋掉了。

我碰過很多受試者為了來應徵,特別去摸了一下幾個星期WordPress然後說很有愛,請不要再這樣了,菜味重到透過Slack都聞得到還拿來撐場,不好看啊。

專注把自己當下的本份做到最好

如同前面說過的,我們對處理實際問題的能力較感興趣,那這要怎麼看?當然就是從受試者實際做過的專案經驗上去探索了。a8c的面試官們會針對你的工作經驗竭盡所能地挑戰各種細節,因此要能存活下來沒別招,就是把手上的工作做到通盤了然於胸。

這個過程會有點像「根源分析的五個為什麼」,例如:
「我們的web service使用了docker container發佈」
「為什麼要用docker container?」
「因為我們的service是設計成microservice架構」
「為什麼要是microservice架構?」
「為了有更好的scalability」
「為什麼這樣會有更好的scalability?」
「透過這種架構,我們可以動態針對較高負載的部分增加資源」
「為什麼會有負載不均的情形?一開始切分service components的根據為何?是否有數據證明這樣的資源調整方式比一個monolithic service更精省?省多少?」
…… etc. etc.

總之對於自己的履歷上寫的經歷以及手上在做的事至少要有被挖個3 – 5層深的信心,不然最好提都不要提。

培養使用者為本的思維

我們會觀察受試者處理問題的角度是使用者導向還是工程導向,a8c的開發文化是以使用者為本,今天會選用哪些科技都只是「剛好這是目前解決某使用者問題的合宜選擇」而已;PHP如此、ES6如此、React如此,甚至WordPress也是如此。換言之,如果今天紙本突然變成blogging最好的選擇,我們就會突然一狗票改去搞紙本。

換言之,請一定要對手頭上的工具有很務實的認識,問問自己:

  1. 我們要解決的問題是什麼?
  2. 為什麼用這項技術可以幫助我們解決這個問題?
  3. 選用這項技術有什麼取捨?

什麼PHP如詩般優美、JS統一世界之類都不是我們感興趣的答案。如果發現自己在使用某項技術純粹因為愛,或是覺得這是理所當然的唯一選擇,請練習換位思考一下。

總結

對準備敝公司的面試,總結來說我能給的最好建議就是

平日用心做,應試前睡飽

來吧,加入我們吧 https://automattic.com/work-with-us/

對「應徵Automattic前要刷leetcode嗎」的一則回應

  1. Great post, and I agree with almost everything. But I do disagree with the side-project advice for two main reasons:

    First: Many side projects are small and shallow. After working 40 hours a week, few people have more than a few hours a week to put into side-projects. Even if a side project is messy, shallow, and incomplete, I think it can still be good to show off.

    Second: Especially if you’re coming from an non-WP background, doing a small WordPress project (building a plugin or a site) can be extremely helpful. In the interview you’ll at least have a few words to say about what you like and don’t like about the ecosystem, and the experience will probably be extremely helpful for the trial phase of the interview.

    When I applied to Automattic, I showed off an incomplete plugin that I finished more than a year later. I also talked about several projects that I started and never completed.

    Of course, this is just my personal experience/opinion. Maybe I just got lucky with my interview 😀

    1. Great points, Nabeel 🙂
      I think what you said makes great sense and I should relax my opinion a bit. The case I consider problematic is that the interviewee takes the shallow side projects as the very highlight to show, instead of the professional areas that they have worked for years. So maybe the better way to put it is “You can do side projects to impress us, but please take it as the bonus, not the core." Does that make sense?

      Also, from what you had done during your time with us, I can even hardly think you were just lucky, and I still think that it’s our great lost of losing you :/

      Btw, just in case you’d be interested, WordPress.com now supports podcasting after we talked about it like two years ago https://en.support.wordpress.com/audio/podcasting/ 🙂

      Liked by 1 person

  2. So maybe the better way to put it is “You can do side projects to impress us, but please take it as the bonus, not the core.” Does that make sense?

    I can definitely agree with this statement 🙂

    One additional note / advice I would add to anyone applying to Automattic (and please correct me if things have changed and this is no longer true): After recommending several really strong developers who were immediately rejected, I came to realize that Automattic does not hire fresh graduate or junior developers.

    Again, maybe this has changed since I left, but when I was at Automattic you really needed several (at least 5) years of solid work experience. I think this is an unfortunate side-effect of a distributed organization. The story for developing the skills of junior employees isn’t quite figured out, so they lean more towards experienced developers who are more likely to be able to work independently and self-train.

    Btw, just in case you’d be interested, WordPress.com now supports podcasting after we talked about it like two years ago https://en.support.wordpress.com/audio/podcasting/ 🙂

    One of my big regrets is never finding time to work on that project with you! 😀

    1. The story for developing the skills of junior employees isn’t quite figured out, so they lean more towards experienced developers who are more likely to be able to work independently and self-train.

      I think this assessment still holds. What changed is that we has realized that we miss a big talent pool because of this. Thus, we are actually developing and experimenting on the junior developer program. Nothing has come official yet but hopefully it will be materialized soon 🙂

發表留言

Please log in using one of these methods to post your comment:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.