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 億用戶,你怎麼重新設計?
- 當你有不同規模的使用者時,設計這樣的平台有什麼不同?如何改進?
這些都是我安排自學時沒想到的,嗯,語法跟技術是沒有生命的,硬背真的很無聊,但使用情況是彈性跟多元的,去思考這些對我來說很有價值,我覺得這很有趣,去讓程式碼更優化,應付更多不同情況。要學的東西還有很多。