A quick review of interviews

It has been a while since my last post, and I think it is worth taking note of some of my interviews in my journey to landing a job, which I am still working on.

During the interviews, I learned a lot, especially from speaking with interviewers who have more experience in the real world and have broader perspectives and deeper views of coding.

Except for techniques, like syntax or problem-solving, they also focus on the reasons why you choose one approach over another and how you think like:

  • Why did you choose plan A rather than plan B to finish the function in your project?
    • For example, what is the difference between a filter and an interceptor, and how do you make the decision?
  • Why did you use a more complicated (or original) way to finish the task instead of using simple API or framework implementations (like JDBC instead of JPA)?
  • How do you improve yourself and make plans while self-learning, when there is no one around?
  • Or more scenario questions like:
    • What if your service becomes popular, like 1 billion users, how do you redesign it?
    • What is the difference in designing this kind of platform when you have different scales of users?
    • How do you improve it?

These are things I didn't arrange in my study plan and valuable to me, and some of them I hadn't considered before. I think it is interesting, especially when it can lead to better code designing. There is still much to learn.


距離上一篇文已經有一段時間了,我認為還滿值得記下我求職上的一些面試經歷,目前還在努力,然後也可以用中文紀錄好了,因為也可以分享給身邊的朋友比較方便 (我是用 DL 翻譯,一篇文章從英轉中,然後再把一些比較生硬的語法修掉,大概10分鐘內)。


在面試中真的學到滿多的,尤其是與面試官聊時因為他們有更多的實際工作經驗,對 coding 本身有更不一樣的看法,就是比較多樣化吧。
除了語法本身或解題技巧等,也會在意為什麼要選擇這種方法而不是另一種方法的原因,以及你是如何思考的:

  • 為什麼選擇 Plan A 而不是 Plan B 來完成專案中的功能?
    • 例如,過濾器和攔截器的差異是什麼?當初怎麼決定的
  • 為什麼要使用更複雜(或更原始)的方法來完成特定任務,而不是使用簡單的 API 或框架實作(如 JDBC 而不是 JPA)?
  • 如何在自學的同時提升自己,怎麼做計劃?

或更多的情境問題,例如

  • 如果你的服務變得很受歡迎,例如有 10 億用戶,你怎麼重新設計?
  • 當你有不同規模的使用者時,設計這樣的平台有什麼不同?如何改進?

這些都是我安排自學時沒想到的,嗯,語法跟技術是沒有生命的,硬背真的很無聊,但使用情況是彈性跟多元的,去思考這些對我來說很有價值,我覺得這很有趣,去讓程式碼更優化,應付更多不同情況。要學的東西還有很多。