📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

AI 寫 Code 這麼強,工程師要怎麼生存?@kellytsaii

Terry Chen 泰瑞24:15

Transcription

哈囉大家好我是Terry,對不起,我真的嚇死好。哈囉大家好我是Terry。

哈囉我是Kelly,Kelly大家應該都認識吧?我我需要自我介紹嗎?沒有,沒有,你不需要自我介紹,因為每次你知道每次只要一發影片,影片下面留言就會有人叫你名字,哇,我下去回下去跟大家打招呼,我們的觀眾應該已經基本上都知道Kelly是誰了。不知道的話,那應該是蠻奇怪的,代表你沒有在follow Terry。

沒錯,好。對啊,今天今天主要,是想要跟大家聊一下,因為Kelly現在也在矽谷的tech大公司工作,算算蠻大的公司,中大型吧?中大型,對啊,我覺得規模已經很大了。那你也工作這麼久了,也算是多久了?三年半。三年半,所以畢業到現在三年半,你也經歷了算是COVID那段時間,我相信你應該也有在幫公司做面試對不對?嗯嗯嗯。然後你應該也知道大概矽谷的tech公司hire人的方向大概是怎樣,然後主要今天想要跟大家聊這個東西。

那你覺得so far現在三年半,這個工作你認為可以一直做下去嗎?哦,欸,這個也是大家現在很常在討論的問題,因為我覺得就是工程師現在,有一些coding skills就是可以被replace的地方越來越多了,就大家可以看到AI進步得這麼快,所以你好像那些basic coding的能力就是大家會覺得以後AI寫的代碼會越來越多。但是我們會就是在講在講說,哪些是AI沒有辦法被AI沒有辦法取代人類的地方?其實一個我,覺得比較好笑的就是AI沒有辦法背鍋,就是如果出一個bug,就是你還是需要一個人來負責這件事情,你不能把這個鍋推到AI身上。這是專案寫的,這是專案寫的,那你還是要就是會debug,就是這還是工程師的錯,你沒有看出來這個東西錯在哪。

然後除了這個之外,我覺得就是一些design的東西,客戶的需求,就是你要知道你東西的痛點在哪,然後去做like customer research,然後這些我覺得,還有一些就是比如說辦公室如果真的有politics或什麼,你知道哪些事情會benefit哪些人,這種事情是我覺得AI沒有辦法判斷的。所以我覺得就算在之後AI的coding能力越來越強之後,就是可以做這些決定,知道就是怎麼樣是客戶想要,怎麼樣是公司想要,怎麼樣是對這個business最好的,還是需要人來設計。

嗯對啊,我我覺得你想法跟我一開始的想法也是蠻aligned的。以前我們講到最早以前嘛,大家在寫code的時候可能就是拿一個notepad,就是很最基本的那時候沒有IDE,那現在我們有比如說像VS Code,對,之前有VS Code,然後更多這種plugin讓我們寫code更方便,那現在有AI有cursor,這些都會讓我們寫code更快速,但之後呢,不知道會怎麼樣,但是永遠都還是需要有人的這個在裡面。

而且我覺得面試的時候,其實現在因為就是如果講到面試的AI,其實有很多AI cheating的工具,就是大家應該都有耳聞過那種什麼interview的AI,就是他可以在你面試的時候就給你一些prompt一些答案,所以大家就是對於coding這件事情,就是有時候我我聽到的很多,我們在面試人的時候,你如果一開始就是給出一個完美的答案,就反而會想說,對對對,你會就是either你有背過答案,你就是剛好知道這一題,或者你有AI的幫助,所以就是你可能中間有展現你的思考過程,或者是你稍微碰壁一點點,然後才找出solution,或是你可以講出你設計的邏輯,不是就是哦,我的code就是這樣,就是反而比較能說服面試官。

嗯嗯嗯。欸,那你們現在interview process還是跟以前一樣嗎?呃,我覺得確實會有emphasize在就是更多coding以外的事情吧,我就除了很general的coding之外,我覺得會比較需要很specific的skills,就是我可能在找的這個職位,我蠻確定它需要哪些東西,然後我需要就是background either是match,或者是我看到你之前經驗有這些,或者是你在面試的時候就可以知道你,是這方面的的專家。比如說我們超需要一個很會AWS的某個東西的人,那你就之前做過,或者是你面試的時候可以講很多。

我覺得除了這種很specific skills之外,還有culture fit可能也看得越來越多,因為變成就是大家AI可以code之後,你可能很需要更需要跟人協作的能力,所以你跟這個company的culture,你跟這個組能不能合得來,我覺得變得越來越重要。

對,我後來有發現,就是現在是自從我們COVID結束那一波開始,開始大裁員之後,所有公司他們hire人的那個requirement都是非常精準的,大家都是要hire很specific的一個role,一個角色進來做某一件事情。嗯,我覺得這完全有被AI影響,就在可能很古早的年代嘛,就很久以前在找工作的時候,其實不會聊太多這件事,可能你到higher level還是會啦,就是你還是要很match,可是就是對於可能lower level junior engineers不會到那麼的要求,但我覺得現在慢慢的也會變成大家都找自己專精的東西。

對,而且我覺得以前,因為以往大公司很喜歡做一個就是general hire,就你只要過那個bar進來之後,你再去選組或者是幹嘛,現在好像就是比較偏向有些team會特別找某些人。對對對。而且我覺得因為就是general這件事情太容易被取代了,就是你如果什麼東西都會一點,但什麼東西都沒有很專精的話,那你就就像一個AI coding assistant一樣。

然後我覺得可能面試的時候,其實現在很多就是有些公司的policy可能會allow一點點就是AI的輔助在面試的時候,所以可能也會考就是你能不能很好的運用AI,比如說給你一題AI寫的code,讓你去debug或者是之類,就是你要知道這些協作的能力,因為現在就說真的,工程師在手寫代碼已經很少了。很少,對啊。

我覺得手寫代碼反而是效率不高的一個表現,就是有點太老了,就是你要展現你學習事情的速度吧,跟你運用這個東西你是怎麼樣流程,我覺得比較重要的,是你那個設計的mindset。因為我覺得最就是最有效率的運用AI的方法是,你所有的design都已經在腦袋裡面,然後你可以一次breakdown說我要哪些東西,然後你要講得越詳細越好,不然AI會自己hallucinate,你可能需要這個需要那個,然後可能那些別的東西,所以就是你能把你的所有requirements,跟你怎麼怎麼想設計這個架構寫得很清楚的話,AI才能很精準的meet你的需求。

對,就像你剛剛講的那個下prompt,我覺得是很重要。那很多人會覺得說OK,我們現在vibe coding,每個人都可以build一個很fancy的app,然後是不需要engineer來,所有人都可以做這件事情,但我覺得確實你,要做一個很generic的東西,就像你問AI很基本的問題,他可以給你一個很很generic的一個答案,但是你如果要build很specific的need,或是你你真的是要build一個東西是給你的customer用的,不是那麼簡單就是像大家想的,就是engineer就可以一句話就好,因為對,我覺得如果大家只是自己vibe code一個網站或什麼,你就是很多人其實可能不會在乎它背後用的架構是什麼,因為你後續也就是不一定真的需要一直maintain它或什麼。

可是我覺得還蠻容易遇到的情況就是在工作中如果用AI,然後你一開始沒有跟他講清楚的話,他給你的東西會完全不是你要的,就你至少要有辦法判斷說這個東西跟你要的架構,跟你後續maintenance有哪些pros and cons,我覺得那些是就是coding以外你必須要自己很清楚。

對,而且如果你一開始的path就就錯的話,那其實後面你要再你,會一直在你的錯上面一直再做更多奇怪的決定,所以說你要make the right call,然後你要問正確的問題,我覺得這是比較難的。

嗯嗯嗯。對啊,就比如說你現在去幫你們公司去hire人去面試,你會考他大概哪些類型的題目啊?還是還是跟以前一樣是比較偏向leetcode跟system design,就比較傳統那種,還是你會有一些比較不同的題型?呃,好像覺得leetcode system design這些就是會變成已經比較basic的東西,就是你一定要過的東西,就leetcode這種還是會因為面試,畢竟很多rounds,所以你coding的東西,然後design的東西,然後我覺得比較多的可能是如果真的已經到比如說是要面我們sister teams,我們team之類的人的話,就會變成是很specific的我們組有哪一個need,就是比如說我們組現在這個project很需要一個這樣子的人,然後會很specific,很specific的問說這個tech stack你有什麼經驗,然後或者是你會怎麼,我覺得比較偏向design類的東西,比較偏向system design的,就是在很看你的skills有沒有match,因為畢竟就我覺得senior level以上的都已經就不是說你來這裡學,就是你在面試的時候就已經需要assess說你可能你們組的,需求跟這個人有沒有match,或者隔壁組的需求跟這個人。

嗯嗯嗯。那你現在自己是在你們公司scope大概是怎麼樣?就工作的時候你會比較偏向是可能,會帶一些比較junior的engineer,還是你是比較偏向是你會去manage project多一點?自己比較常做的事情都會呃,協作的當然也有,但我覺得我合作的可能senior以上更多。Senior以上更多,對對對,因為我們我工作的算是還蠻senior heavy的組,然後我覺得我也蠻infra蠻後端,就我覺得大家我我自己感受到,就是可能偏向product team或者是這種web full-stack的年輕人會多一點點,就大家年輕人稍微更喜歡product,稍微更喜歡那種很tangible的東西,然後越硬核的越越後端越infrastructure類的,我看到的更senior的人更多,因為那些很require就是你很懂整個system,然後很懂各種,而且有時候是比較無趣的東西,就是年輕人比較不喜歡,對所以我我,覺得我自己協作的時候,跟還蠻多可能principles或至少senior以上的在協作。

你自己更喜歡哪項?你喜歡做product還是你比較喜歡focus在back-end?我覺得我自己的experience很back-end,但我沒有排斥,就是就是試試看product,因為我覺得就是你寫的東西你自己很看得到,或者是你很看得到用戶impact,這件事情還蠻有趣的,就比如說你真的是寫web的話,那你寫一個東西,你就在公司網站上看到哦,這個product有改動了,我覺得這還是一個還蠻有成就感的地方,或者是你就是你寫一個東西,然後user engagement就上升了,但這件事情在infra side比較難發生,你可能寫一個東西是比如說你很tangible,可能比如說cut cost,這已經是一個很看得到,可是你如果寫一個東西什麼優化了你內部用戶的使用體驗,這種事情就有時候很難量化。

對,所以嗯,我我覺得我自己 的experience很很後端,但是我覺得沒有排斥,就我覺得product也感覺是有它好玩的地方。

假如今天比如說你是new grad,或是你現在在找工作,你會怎麼樣去準備你下一輪的面試?比如說你離職了,然後你有一些interview lined up,你會怎麼樣去把你機變成這個職場準備好的一個狀態?哦,我覺得好像一個是要先很知道你自己在找的是什麼嗎?就你自己的專精的東西在哪裡,然後你look for的是什麼,當然這兩個東西不能差太多,就我覺得可能很early on的那種stage,很容易犯的錯就是哦,我是來學習的,可是我覺得這種在公司或者是在recruiter之類的角度,就會覺得我hire你來就是你應該本來就要會,就我不是hire你進來然後找你想要做什麼事情,我覺得這已經是跟以前不太一樣。

對,不太一樣。嗯嗯,以前是你可以表現出說我是想要來學習的,你很junior,但是現在的我覺得我知道我要什麼,然後我這個東西很強,所以你應該hire我是因為我會這個東西。對,然後或者是你頂多就是比如說這個這個job scope有100,你可以說50是match,50是哦,I'm interested,想要explore的部分,這樣可能還行,但不能是就是哦,這100都是我想學的東西這樣。

對,但怎麼prepare也是一樣,就在專精的部分之外show那個drive,就我覺得因為你就是已經在專精,已經已經對這個東西有興趣了,所以你才會想要對這個公司contribute,然後看到他們在你熟悉的那塊area可以加強的點是什麼,就是可以講出你自己能做的貢獻吧,我覺得就要很從公司的想法想說,為什麼我們要hire你,而不是我自我成長的想法。

所以說你剛剛講的那個是比較偏向就是比如說你跟這個hiring manager做一個technical deep dive的時候,你去講說為什麼你要sell你自己嗎?嗯嗯,我覺得也可以講說就是比如說問說time manager,哦,他們現在想要solve的一個challenge是什麼,然後去看說你可以怎麼樣contribute to這個東西,他們現在有一個obstacle,或者是他們產品遇到一個什麼問題,然後為什麼你的能力可以就是幫忙去解決這個問題。對,我覺得這是一個很容易stand out的一個point。面試有一個round就是你跟hiring manager,跟一個比較senior的,可能是你未來manager去聊天,那你要在這個聊天過程中怎麼讓他喜歡你?我覺得你剛剛講的就是一個很好的例子。

嗯嗯嗯。對啊,那如果是比較偏向hard skill,你會大概怎麼準備?怎麼準備哦?呃,就是leetcode當然要多刷,就是coding關你還是要先過,所以你還是要先把你那些基礎的coding的東西弄好,然後再來system design,我覺得就是要你很廣泛的接觸很多東西嗎?我自己可能比如說你上網看很多tutorials啊,或者是你自己去看一些書準備或什麼,就是我覺得要我自己 的想法是還蠻從最basic的東西build up,然後去看很多use case,就是你動不動可能看到一個東西,你就可以自己想像說哦,我如果要設計這個東西,我會怎麼講什麼,然後多跟人mock,我覺得就是有沒有有沒有練習還是有差,就是你自己腦袋想跟你講出來,或者是你coding round,你自己知道怎麼code,跟你真的邊解釋邊code出來是有差異,就很容易緊張,就失常,所以就是除了就是準備,不管是看書或者是你日常就自己想,就是另外一個就是你要很多模擬。

嗯嗯。對,我覺得system design其實還蠻吃經驗的。嗯,我如果去interview一個人,其實他沒有任何經驗我是看得出來的,但至少對一個系統是比較有很generic的一個了解,我覺得OK,那他可能比較沒那麼senior,那我就說OK了。以前的話可能比如說L3或是剛畢業的,我們會覺得說那可能不需要太知道system design,我們可以說那,那可能就是coding也過了,然後可能他coding很強,那我覺得說OK了。

但現在我們會覺得說,你今天進來,然後我們全部都是用AI在寫code,然後大家效率都非常的高,為什麼我要hire你?全部人都是非常高效率的engineer,那我hire你肯定是希望你進來就可以直接contribute,對,所以說我會想要看到對系統的一個了解程度,而且這個是我覺得是很難用AI去做弊的。我不知道你有沒有試過,但是我曾經想過要是如果考system design,我要用AI做弊怎麼去做?我不知道欸,可以怎麼做弊?完全不可能,就就你把那個問題給他,就給你一個超級generic的一個答案,然後而且是長篇大論,等於說你要坐在那邊OK,你等我讀五分鐘,你看完讀完之後你再跟他講,就就很難就完全不可能做弊,不像coding,因為你coding的話你給有正確答案,還可以假裝寫錯什麼之類的,對,但是system design就完全就是靠你腦袋的東西,就你有沒有經驗,沒有經驗的話那你怎麼樣去補足,怎麼樣靠自己去讀那些case study。

對,那像我們的就我跟Bohr出了那個,我們就給了13(現在增加到14)個我們認為應該說大家都在用的一些app,然後我們叫它現代系統設計,跟傳統的系統設計比較不太一樣的是,我們加入很多AI的東西,哦,很多AI還有一些Web3的東西。嗯嗯。對,那我覺得未來我們一定是engineer去利用AI,然後我們要怎麼去design一個AI的flow,這些我覺得都是還蠻重要的。

確實這個我覺得就是它硬實力就是真的很容易就看得出來,尤其就是如果你就是面試官可以一直follow up,所以你對整個系統架構的每一個點你都要很了解,你才不會在被deep dive某一個問題的時候被考倒。對對。

那你會來上課嗎?而且之前有人邀請我去當助教欸,好像有這麼一回事。什麼時候我才能我才能來這個客串一下?因為Kelly很厲害啦,所以說對啊,我覺得請不起是不是?有點請不起,因為我們那個budget可能沒有那麼多,因為我覺得我我覺得我們課程很便宜,我們真的就是我認為啦,就是因為因為Bohr他他也不缺錢,說實話他也不缺錢,他他其實做這個東西是他自己想要做的事情,因為他之前其實就有免費的幫大家做coaching在線上,然後我我去approach他說我跟他聊說,如果你自己在做這些東西的話,要不要你可以把這個scope變大一點,你可以reach的audience多一點,然後我們一起來設計一個真的可以幫助到大家的一個系統設計,然後他就說好,然後我們才一起來做這件事情。

就做這個東西其實我個人覺得你從裡面能得到的價值,是絕對遠遠超過我們官網上面的那個價格,而且如果你就是因為你把系統設計學好,然後land一個更好的job,那你的回報肯定是比那個價格要再多很多,可能一兩天薪水就差別就是就可以對啊,而且這個是你學完之後是可以一直apply到你rest of your career,甚至甚至你自己在做一些project的時候,你會有那些concept那些idea,那完全不一樣的,因為我自己以前也是可能沒有那個system design的概念的時候,我自己要做一個project的時候,我不會有一個很structured的一個開始,但是我如果,有那個concept的話,有system design concept的話,我很知道說我要問AI什麼問題,然後我可以告訴AI說我現在第一步要做什麼,然後第二步要做什麼,對,那這些就是你,有沒有這個background,有沒有這個context,最大的區別。

有時候真的要從這種練習的經驗得來,就沒有辦法你把什麼database什麼學好,就知道這些東西。沒錯。

你會擔心說哪一天可能被layoff還是什麼之類的嗎?哦嗯,layoff這件事情我就覺得它是一個很無法無法控制的情況,就是你擔心也沒用,所以就不如不要擔心,所以我還沒有。不過我覺得你們公司一直在hire人,最近還在hire人。嗯對對對,所以會擔心嗎?就是就覺得你掌控以外的事情你就不用去想。

還是你想要被layoff?沒有沒有欸,我我熱愛我的工作。有些人是有些人想說哦,我被layoff就算了,拿個severance,拿個幾個月薪水,然後就自己去爽一下或是休息一下,好像不會,我覺得我在我的career還是在一個還蠻想成長的階段,所以嗯還蠻想就是會想要keep我的learning rate很高,所以還想繼續工作。

所以你還是會想要繼續做engineering這個工作?嗯,我覺得就是如果有一天我達到我覺得哦一個就是我自己 的skills到一個程度,那maybe可以考慮到other options,但我覺得我現在還在一個就是成長,需要學習,然後很想接觸很多新東西的階段。

那我猜你現在應該也差不多在一個位置,就是因為三年嘛,三年半,那你應該差不多在一個位置,就是你可以選比較偏management的path,或是比較偏IC的path。哦,我覺得在大公司其實沒有那麼快啦,小公司maybe,但是大公司要到management path還,還要再累積一段,但你問我的話,我會覺得我可能還是比較想要technical,因為我覺得我覺得management要deal with的東西複雜很多,他們就是你要考慮的事情會變得很不一樣,就是你要考慮你要就是你要保護你的組的scope啊,你要怎麼擴展你scope,會變成就是跟那種technical能力完全不相關,會我覺得很多政治上的東西,政治上,然後我不覺得暫時不覺得那會是我excel的地方。

哦嗯,所以你還是覺得你做technical會比較強一點?嗯對,還是說你興趣會比較偏向在technical?可能是哦,或除非就是因為我,覺得technical還有很多我可以學的地方,除非我真的覺得那個地方我已經學得差不多了,然後我想要學新的東西,maybe management是一個,不知道,但但現在是覺得沒有啊,technical就是我覺得你的job輕鬆很多,因為你把這個東西做好就好,可是as a manager並不是一個project做好,你的工作就結束了。

對沒錯,就technical的,你就是IC嘛,那IC就是把你的project給做好,把你該做的事情做好,你不需要擔心是人的那些variable,不需要擔心。就像其實做YouTube其實也蠻累的,就是YouTube很累嘛,你要跟很多人去講這個事情,然後你要跟廠商談,然後你要deal with酸民,然後你有很多亂七八糟的人會來攻擊你。

而且manager我另外一個想到是就你一開始的時候,你一定不會是很high level的management嘛,你就是有點在中間很像夾心餅乾,我覺得有時候你會很就是你要溝通IC的想法,跟management的想法,會有點被夾在中間,要取得一個平衡,我覺得那有時候也蠻難的,因為就是可能你的上層的想法跟你管的工程師不一樣。

對,而且我覺得現在manager很累很辛苦。嗯嗯,因為假如上面開始砍人的時候,應該最先砍的是middle management。哦,就先從那種夾在中間的人開始砍,就是要扁平化。對,我覺得是這樣子,因為IC還是要有人來做事情嘛,所以說他們其實是比較偏向先把它middle management砍掉。對,那當然director VP那些level也會被砍啦,但是就是相對來講已經做了那麼久,就安全一點,或者是你外面機會也會多很多,就可能有人想挖你或什麼。

對對對,所以說做IC也是還不錯。對啊,我覺得IC的工作就是simple很多,就是你要想的事情就是這樣子,如果我可以一直做IC我會做IC。我之前好像跟你聊過這件事,因為你覺得做manager很麻煩好像。我覺得做manager很累啊,很辛苦,而且真的你的meeting是排滿的。對,真的很忙。

可能很多人會有一個迷思,就是說哦manager好像就只要講話就好,出張嘴,然後跟大家去meeting,然後在meeting的時候去講話,發言,然後給人家feedback就可以,但其實沒有,我覺得manager好不好很決定一個組的成敗,他真的是一個決定性的角色。對,而且也會影響到很多人的career。對對,就是你有沒有跟到一個好的manager,也是影響你自己的career很多。

嗯好啊,那大家如果有興趣的話,可以去追蹤一下Kelly的頻道,然後還有Kelly最近有做職涯諮詢,對,有做一個next step,然後就是有留學跟職涯的諮詢,都有很專業的顧問可以跟大家one on one的解決問題。對,大家可以去看一下。好,謝謝大家,拜拜。