Full Transcript

·YouTLDR

【科技公司Offer拿到手軟】軟體工程師在北美找工作/跳槽的終極武器 |刷題是什麼?

16:07ZHTranscribed Jul 14, 2026
0:01

哈囉 YouTube 好久不見沒錯 據我上次發影片已經過了三個月的時間那這段時間我都在幹什麼呢除了在家耍廢之外我還花了時間準備了一下面試然後真的去面了幾家公司結果是出乎意料的還不錯啊那至於我面了什麼公司什麼職位還有我自己的跳槽理念呢我下次有機會再跟大家分享那今天的主題呢是講對一個想成為軟體公司非常重要的秘密武器或者是說必經之路那就是刷題

0:36

那什么是刷题呢刷题其实顾名思义就是不断的去练习那些申请软体工程师岗位尤其是在北美这些大公司里面他面试会问你的这些题目去准备就像你考试之前会做模拟考练习那样子一样重要那这些问题到底是什么题呢其实这个问题可以非常的广

0:54

从最基础的设计一个HashMap或是Stack到叫你写一个算法你要在一个Rate里面找出最优的序列组的排序组合等都有可能出现在一轮45分钟的面试里面其实这个的用意就是判断一下你有没有能力成为一个好的软体工程师的基础跟底子

1:14

然後這些題目大部分都圍繞在演算法跟數據結構這兩個topic上面假如你在學校學的是電腦科學或是資工這方面的領域那恭喜你你已經有一定的基礎因為像例如最基本的Binary Search, Heap, Quick Sort或是甚至到比較難比較複雜的Dynamic Programming這方面的基礎知識你應該都有接觸過或是甚至練習過

1:37

所以当你重新看到这些东西的时候应该不会感觉到太陌生但是假如你跟我一样上课都在鬼会这些东西早就运回给老师了或者是你不是电脑科学毕业的也不用太担心因为你完全可以在有限的时间内通过练习达到一模一样的效果但是这就比较考验你的耐心还有不轻易被挫折打败的能力

1:56

那為什麼要刷題呢?我自己有面過各種大大小小詭異的公司面試經驗並不是所有公司都會正規的考你算法、數據結構等到你需要特別去準備那個地步例如有些公司會考你怎麼設計API一些基本的REST原理或是頂多就叫你去reverse一個link list

2:16

假如你有電腦科學的基礎或是一些工作經驗這些通常都難不倒你也不需要特別去準備或甚至我遇過問我某種語言專門的知識譬如說叫我解釋JavaScript的Async Event Loop那確實跟刷題都沒什麼多大的關係

2:31

不过根据经验通常一家好的愿意支付你高于市场价格薪水的科技公司都会有至少一到两轮的这种算法数据结构的题目如果你的title是software engineer, full stack engineer或是senior software engineer那练习刷题一定会大大的提升你在这轮面试中成功的几率那假如你今天是manager这些公司还会考你算法教你写code吗其实是有可能的

2:57

我知道很多大公司在面Manager的时候至少会保留一轮的面试看你能不能写code的基本功还在不在随着你的年资跟级别的增长考这些题的数量跟难度都会慢慢的减少例如staff级别的工程师工资更看重的是你系统设计的能力还有带团队完成项目的能力一定还会考算法但是难度跟比重相对一个L3 L4的工程师来讲会低一些

3:23

By the way,如果你想知道各種級別的工程師在矽谷能賺多少錢你可以來看我之前發的這支影片裡面有詳細的介紹在我介紹刷題的方法之前我想先跟大家聊聊為什麼這些公司要考或許實際上面工作不會真正遇到的這些算法還有數據結構的問題其實當你在一家大公司工作尤其是你可能是比較底層的軟體工程師你頂多就是寫一些application

3:49

寫一些API然後在數據庫那一層寫一些query或者是在前輩已經寫好的框架上面加一些features基本上這些工作的九成都跟這些刁鑽的算法面試題沒什麼了關我到現在都還沒有真的看過有人在工作上面會自己去需要寫一個try或是在graph裡面找一個minimum spanning tree況且要是真的遇到需要這方面的知識上網google一下不就好了

4:14

当你还保有这些基础的状态下遇到一些特殊的问题你可以更快去反应去找到解决问题的方法举个例子我自己就曾经做过一个project需要用到Quadtree来存geolocation虽然我当时也是直接上网找一个现成的library直接用的但是假如我没有电脑科学的基础知识我可能会没办法去理解为什么要用Quadtree这种高效能的搜索数据结构而不是简单的就把所有东西存在一个list里面就好了

4:42

这时候就明显的体现了一个工程师有没有这些基础的区别再来就是为什么考演算法举一个简单的例子从一个array里面找最大值或许有十几种不同的写法但是每一种写法它的时间跟空间的复杂程度都不一样

4:58

如何在合理的时间范围内写出相对优化的时间跟空间复杂程度的代码就可以很容易看出一个工程师他的程度好不好而且你写code的style也会非常重要公司会重视说你写了code是不是一般人可以看得懂因为当你进入公司之后你写的东西肯定不是只有你一个人看而已熟悉刷题的技巧还有不间断的面试都可以大大提升你拿offer的机会其实大部分的公司都是要刷题这个套路

5:26

其实你想想就是一个很死板的考试制度就是花时间去准备甚至有些人直接靠着十倍几百道题就进了Google跟Facebook但是我觉得这些不断追求创新创意的高科技公司到现在还在用这种老旧的考试制度去面试一个软体工程师是有它的原因的第一个就是我之前提到的技术的基本面评估再来就是公司希望录取两种

5:49

第一種就是天才型的工程師這種人通常舉一可以反六他們平常可能不太需要怎麼準備就可以秒殺大部分的算法面試題平常的興趣可能就是去讀那些文章怎麼去優化數據庫的算法或是他們本身就是算法競賽的選手閉著眼睛就可以倒背如流KMP算法的那些人不過這種人大概在一萬個工程師裡面可能只存在一個再來就是像我這種普通智商的普拿疼但是就是肯勤奮努力去花時間刷題

6:18

自律充分體現了一個很重要的人格特質就是你至少可以努力學習上進心比較強這種人在團隊裡面成功的機率不一定會輸給天生的天才

6:28

你要知道一轮45分钟的面试时间方面是非常有限的面试官其实很难在这么短的时间内全方位的评估这个人是否有能力在团队里面做出杰出的贡献还有优秀的团队合作能力Google其实做过很多study这种看似实版的面试方法其实可以很有效在短时间内以低成本的方式找到他们需要的工程师当然我个人认为这绝对不是一个最好评估工程师的方法

6:54

而且每個公司都應該根據他們所需要的人才去設計一個更適合他們去評估工程師的方法但是假如你的目標是找一個高薪的工作或是進入這些數一數二科技的大廠那你就得熟悉他們的遊戲規則了刷題的方法有很多種其實本質就是你要去多練習這些題庫然後去熟悉各種題目的解決技巧還有它背後的思考方式然後找到一套適合你自己的學習方法持之以恆

7:21

很重要的一个就是千万不要死背答案因为这不仅没有达到学习的效果面试官只要稍微把题目改变一下你可能就不知道怎么解决问题了我是有遇到面试官直接把原题一字不变的复制贴上但是这种情况真的非常的少大多数都会把题目变化成我没有见过的样子但是核心的解决方法跟思路其实都是差不多的只要反复多练习掌握这些核心的概念能够举一反三的话基本上就没什么问题

7:47

而且其實能考的東西就是那些考太難沒有必要也沒有任何意義然後你能在有限時間內提出不同的解法然後最後實現相對優化的算法

7:58

之后有机会我会跟大家分享一些比较经典的题目那这些题目到底在哪里找呢?网络上其实有很多资源可以让你免费练习刷题的地方有些付了钱之后可以解锁一些特别的题目或是特殊的服务在这边我没有打广告的推荐Liqo因为它的题库还有整体的用户体验我觉得是最棒的在这个平台上你可以免费注册一个账号不需要付任何的钱就可以开始练习大部分的题库

8:24

然后他的online charge也是非常完善的就是当你把code写完交上去之后他会跑各种不同的test cases告诉你你的算法在这一道题里面是相对跟其他人递交的算法的这个速度跟用的空间是在多少的percentage里面

8:41

我覺得LECAL最有特色的一點就是它每一道題都有一個討論區討論區裡面大家都會分享自己的算法跟解題的方式然後大家可以給每個帖子投票通常最多人上載的帖子就是基本上就是最好的算法或是思路最清楚你可以點進去看它並學習它是怎麼去做出這種寫法因為通常這是最多人贊同的一個做法對於這道題來說

9:05

通常你在面试中能提出相似的思路或是正确把这个扣起出来这一轮你很有可能就被面试官设为是strong hire另外在Liqo平台上少数的题目它有提供官方的解答但是我觉得这些答案的参考价值都不高我反而更喜欢在讨论区看各路高手的解答思路还有解答方法

9:26

除了Litco之外,我还另外推荐两个平台,一个叫Linco跟HackerRank这两个平台也是相对类似Litco这样的,能让你练习刷题的地方那其实你只需要一个就够了,因为基本上Litco本身就已经有大概1700道题的题目那在Litco里面,每一道题都会分三个等级,分别是Easy,Medium跟Hard

9:50

那我會建議新手先從Easy的題目開始做因為假如你在看Easy的題目都沒辦法提出一個正確的解答方法或是完整的把code給寫出來的話那你基本上沒有必要去看Media跟Hard的題目因為這只會讓你更焦慮或是更想放棄而已

10:06

當你慢慢的把一些Easy的題目熟悉之後可能大概做了30道題50道題之後你就可以慢慢接觸Medium的題目至於Hard的題目的話我會建議一開始先做一些比較經典的題就好了因為畢竟Hard的題目在真正面試中其實不常出現而且解法跟實現相對來講要比較困難通常你如果沒有看過這道題的話很難在有限時間內提出一個相對比較優的解法甚至把它實現出來

10:33

我自己是面过一家公司他连续两轮都考我hard题那这真的是比较少见我觉得毕竟大多数的题目都是考在medium或是有时候偏easy的这个范围之内所以我推荐最好练习各种难度题目的比例大概注入在easy可能30%然后medium就是60%然后hard就是10%就可以了

10:55

至於要做多少道題才夠這個問題真的是一人而已有些人悟性非常的高他可能只要做100道題他就可以應付90%的面試以一個正常人來說我會建議以300道題這個數字為基準雖然LiCode他自己本身的題庫已經到達了1700道題但是當你徹徹底底的做完300道題之後你會發現你可以掌握大部分的解題技巧了

11:17

然後應用這些解決技巧融匯貫通的去解決更多的問題還有一個很重要的一點就是這300道題不是說你做完一遍就沒事了第一次刷題的話你可能會有很多挫折感或許在你第一次刷這300道題裡面你就看了290道題的答案自己真正獨立完成沒看答案的題數可能手指頭都數得出來我可以跟你講不用灰心這是非常正常的我要你回去重新把這300道題再做一遍這次試著盡量不要看答案看你能做多少道題

11:45

然後在做題的時候可以自己寫一些筆記去記錄一下你自己當時的思路是怎麼樣就這樣重複練習到你能看到題的時候就想到正確的思路並且在35分鐘之內把算法給實現出來我覺得很重要的是你能把這300道題練習到深刻體悟到它這題目背後要考你的東西還有解題的思路跟技巧這遠比馬馬虎虎的邊看答案邊做題硬著頭皮把1000道題寫完的效果要來強得很多

12:13

因為在刷題活動裡面最最最最最重要的是練習你解題的技巧還有正確的思路至於哪300道題呢假如你用leetcode的話它每一道題都有一個編號從1到1600多到1700基本上你可以從1到300開始做我覺得這就是一個很好的開始

12:30

那有些题它的这个被考的频率其实没有很高或是你觉得这道题对你没有特别的有帮助你可以直接skip掉那一题还有在leco上面假如你附写的话你可以解锁一个功能就是你可以看哪些公司最近刚考的题目有哪些或是这家公司最热门的100道题有哪些

12:48

这些在你面试前的两三天去准备我觉得是非常有帮助的比如说你今天在面Google之前你去看一下Google所有的高频题有什么但是我个人认为就是你应该先把基本功打好而不是先去特别看哪些公司要考什么

13:02

能在面试中被选为strong hire刷题绝对不是唯一你需要准备的东西但是绝对是一个比较基础并且可以快速提升你在面试中成功机遇的葵花宝典在一轮面试里面公司也会非常看重你的soft skill 乱实力

13:17

例如跟面试官的交流能力你有没有可以虚心接受批评的态度有没有团队意识跟合作能力都是面试里面评判的标准再来就是随着你的级别上升公司会越来越看重你系统设计的能力这个其实也是有办法去准备的

13:34

我下次有机会会另外再发一个影片来特别介绍一下系统设计的面试跟准备但通常这种系统设计的面试都会需要一些真正的工作经验累积来加强不像刷题那样子可以靠类似应付考试的方法去准备好啦我在这边总结一下今天讲的还有自己的刷题经验其实我很羡慕那些在大学的时候就意识到刷题重要性的那些人因为我自己不是读电脑或者是职工这方面的领域

14:01

所以我在大學的時候根本就不懂這些東西我是進入這行之後才發現自己基本功不好然後靠著自己一點一點跌跌撞撞摸索出來的試機呢我大概自己是做了400道題其中有80%以上的題目我大概都做了三四遍以上

14:16

其實刷題並不難難的是在能持之以恆因為我相信很多都像我一樣想要去更好的公司或是拿更好的待遇但是因為現在自己有本身的工作要做只有下班的時候才有時間去刷題準備然後你下班通常都會很累然後你可能又有其他亂七八糟的事情你要處理所以其實真的能做到持之以恆刷題是非常困難的

14:37

但是我可以跟你保證這是一個絕對非常值得的投資假如你接下來幾年都想要做這個行業刷題不僅大大的提升了我面試的成功率還有自信也大大的提升了我平常在寫扣的功力我很明顯的感覺到我寫扣更簡單更容易被人家讀懂

14:53

而且在review别人的code的时候我也很自然的可以联想到一些可以优化的建议而且以长远的角度来看能去更好的公司拿更高的薪水更快的往上爬这个报酬远远超过几个月的血汗努力虽然刷题不是那种你只要人生做一次就可以完全免疫的事情

15:12

因为假如你今天两年前刷过1000道题但是你现在想换工作你还是得回去复习一下因为这些东西其实说真的蛮容易忘记的但是之前你已经做过了所以下次复习的时候就不会比上一次做那么痛苦只会越来越轻松另外一个还有很重要的就是当你在真正要面试的前几天我会建议你找一个朋友或是有经验的人当你的面试官来模拟一下实际面试的这个体验跟经验

15:37

然後一定要計時因為你平常在刷題的時候絕對沒有你上戰場那種緊張的氣氛還有時間給你的壓力那種感覺加上你如果是新手的話然後面試官又不是非常的友善那你可能真的會很緊張到你沒辦法發揮平常練習的狀態那就會很可惜

15:53

最後我想講的是像我這樣智商浮虎以前國高中有時候都是吊車尾的人也不是資工電腦科學畢業出來的人通過努力練習現在可以做到秒殺面試官領序出Hard題的狀態我相信你也可以

More transcripts

Explore other videos transcribed with YouTLDR.

Get the TLDR of any YouTube video

Transcribe, summarize, and repurpose videos in 125+ languages — free, no signup required.

Try YouTLDR Free