iT邦幫忙

2022 iThome 鐵人賽

DAY 2
6
Software Development

0到100的軟體工程師面試之路系列 第 2

我該刷題嗎? / 在面試之前 / 追尋自己想要的人生是一輩子的功課 / 刷題只是一種選擇

  • 分享至 

  • xImage
  •  

累了嗎?先聽場演講好嗎?

在文章開始之前想先推薦一個台大電機系建系基石的元老教授 李琳山老師
每年跟該年度修課學生講授的一個關於人生道路的演講的七分鐘片段
李琳山教授 信號與人生(2020
從1h26m到1h33m在講職涯人生怎麼做方向的抉擇

有時間的話筆者強烈建議大家把2019到2021的信號與人生演講都看完
每次在做重大決定之前我都會想起尤達大師演講裡面的內容
絕對是許多台大電機系學生共同的心靈導師暨人生道路上的燈塔


在問 “我該刷題嗎?” 這個問題之前
其實應該要先問的是

  1. 對現在的工作滿意嗎?想換工作嗎?
  2. 想換去的公司面試需要刷題嗎?
  3. 花很多時間精力刷題順利換了工作,會比現在開心嗎?

1. 對現在的工作滿意嗎?想換工作嗎?

如果看到公司有些red flag馬上就該準備換工作了:

公司財務上快垮了 or 公司內有人違法但沒人處理
組間 吵架or擺爛or酸來酸去 是家常便飯
老闆是 大爛人orPUA大師or只會畫餅 說話不算話

等等情形,除非有其他超級優點,絕對是不宜久留

其他情況有的時候可能會想再在公司待一陣子
看看不滿意的點能不能改善
但是就是過的不太開心

ex:
錢不夠
未來的錢不夠 (薪資天花板可預見的低)
錢夠但操 而且錢沒多到讓你犧牲陪家人或是做自己想做的事的時間
錢夠不操 但看到主管/同事就頭痛
錢夠不操主管同事nice 但沒發展性或是沒興趣

錢多不操而且你本人就是主管,可以打打嘴砲就讓別人做事
讓他們心甘情願地把每個月生產力的豐碩果實交給你(就好像是個收租的房東呢)

不過就像房東過得開心,也還是得擔心
房子在哪裡,租不租的出去,十年後人口數只剩一半的時候還租不租的出去
會不會像烏克蘭一樣二三十年內的一波大事件讓房子不見

如果你是主管或是資深Tech Lead
可能也要時時擔心自己現在的爽缺還能爽多久,公司到底需不需要你
(資深主管或是資深Tech Lead出去面試可能就不太考刷題了,不在此文章的守備範圍內)

對筆者而言,人生就是在optimize整體的開心指數

想要追求更高的薪資
是基於錢可以買到很多開心
錢可以解決房租/房貸壓力 帶來安心感讓人開心
讓女友老婆/投資在教育讓小孩以後開心

很多人換工作完全一昧追尋Total Package
可能三年一跳就是薪資的Optimal solution
但是薪資只是影響開不開心的其中一個因素

  • 公司文化
  • 組上環境氣氛
  • 同事個性/能力
  • 工作內容 (新奇與否/對社會是不是有貢獻)
  • 工時/Oncall與否 (花太多時間工作沒時間做該做的事 ex陪家人 顧健康長久下來造成的不開心可能遠高於高薪)
  • 工作地點
  • 工作上的心理壓力 責任 風險
  • 工作Title
  • 公司名氣(像是長輩聽到在某股價穩到不行的公司工作就會很高興,但是真的在內部工作的工程師卻痛苦得不得了)
  • 公司旅遊點心午餐等其他福利
    等等因素也都應該列入考量

自我成長方面
學習本身通常是讓人開心的
跟比自己厲害/很有想法的人共事也會讓人開心
學到東西會帶來技術安全感帶來把開心存到未來等等

每個人都有自己的總開心指數公式
而且這個公式會一直隨時間改變

早點看清楚自己現在開不開心
目前哪裡讓你覺得無聊/或是覺得不滿
以及同一間公司未來會不會有機會變得更開心
也許就是要不要/需不需要換工作的答案

2. 想換去的公司面試需要刷題嗎?

如果不想換工作或是想去的公司不太考leetcode
像是某些Quant公司,某些design house演算法部門,
某些EDA公司,某些資安公司等等等等

乍看跟刷題無關
但就算如此,大神們還是如此建議

優秀的工程師應該要時時保持競爭力,
就算很滿意現職,也應該不斷出去面試
看看自己的市場行情,了解自己在市場上的定位,
同時持續精進自己面試的能力

筆者覺得雖然可以不用這麼自我要求,
但是養成刷題習慣很現實的原因之一是:
基本上大公司的軟體工程師職缺都會考
就算滿意現職或是想去的不考
可能有天會變得不滿意或是有一些其他改變
有刷題習慣的話就可以去其他公司拿個 offer 跟自己現職公司談條件

Google’s Site Reliability Engineering (SRE) team has a motto: “Hope is not a strategy.”
谷歌的網站可靠性工程(SRE)團隊有一個座右銘:"希望不是一種策略"
(From the book 《Software Engineering at Google》)

筆者認識很多工程師可能抱持著這種希望策略:
”我很hardworking,老闆應該會看見,希望下次調薪的時候能有一個讓我滿意的數字“
“(明明沒人帶而且老闆都丟一些雜事來但) 希望我可以在這邊學到一些東西,待滿一年後再跳槽“
“(公司一直以來都是以操出名) 希望忙完這一陣子之後可以鬆一口氣或是讓我彈性放個假”

工作上的不滿如果也用這種希望策略來處理的話,十之八九希望會是落空的
先不論亞洲人常常比較閉俗不敢跟主管開口表達工作上的不滿
就算開口抱怨了,如果沒有拿著對手/其他公司的offer跟主管談條件,
常常主管給的承諾或是提出的改變方案都不太有效果

“會吵的人有糖果吃,而且手上有offer的人糖果更好吃”

3. 花很多時間精力刷題順利換了工作,會比現在開心嗎

對上班族而言,
刷題之路絕對是會花掉大把大把的時間和精力
最重要的是換工作其實未必能把你帶到更快樂的地方

雖然筆者建議各位養成刷題習慣
但在開始走這條路之前,
不妨先打開想去的公司的職缺網站/Linkedin仔細看看Job Description,查一查相關資料
和學長學弟朋友的朋友聊天討論
確定自己想要什麼/想要做什麼 (已可以想想以後想跟別人說什麼樣的故事)

如果發現其實其他公司/或是其他公司做的事
也沒有很喜歡但現職又有些不滿
一是很多人會忽略或是羞於主動主管談談看有沒有改善空間
或其他比較滿意的運行模式可以work
二是也是可以嘗試跟大主管說談談看換Team換主管之類的
(還有胡立的這篇文章也是相當推薦的工程師職涯隨意聊:改變環境,而不是讓環境改變你)

在不確定其他選擇的內容是什麼之前
一昧地為了追求高薪水而刷題換工作
也是有點過於極端
附上筆者很喜歡的一個小寓言故事
你用一輩子努力賺錢成為百萬富翁,然後呢?

至於到底什麼時候可以留在現職努力什麼時候應該義無反顧的刷題換工作
新工作會不會比較快樂
這種職涯發展和人生選擇的問題,
就比較玄學了

這邊附上一些好文章來讓大家自己好好想想自己的職涯跟人生
從當 leader 學到的,leader 之外的事
尋找工作的意義
軟體工程師的修煉與成長 (9) — 選擇適合自己的公司
從自身經驗談談職涯上的選擇
關於求職,連我自己都不知道我要什麼
(不知道自己想要什麼是一件很正常的事情)

但人生想要怎樣選擇,自己或多或少都早就有一些答案
最後附上筆者最喜歡的賈伯斯的經典演講:

Your time is limited, so don't waste it living someone else's life. Don't be trapped by dogma - which is living with the results of other people's thinking. Don't let the noise of others' opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.

你們的時間有限,所以不要浪費時間活在別人的生活裡。不要被信條所惑-盲從信條就是活在別人思考結果裡。不要讓別人的意見淹沒了你內在的心聲。最重要的,擁有跟隨內心與直覺的勇氣,你的內心與直覺多少已經知道你真正想要成為什麼樣的人。任何其他事物都是次要的。


就像是很多不同種類的工程師
聞道有先後 術業有專攻

只是每個時期的選擇不同
有些人高中/大學就是想要大玩特玩
有些人拼命唸書拼學測指考書卷
有些人時間都花在程式競賽上所以大考沒考好
有些人很後悔沒有把時間花在課業以外的東西上

同理

很多優秀的工程師確實沒必要花大把的時間和精力刷題換工作
可能是超級滿意自己現在的公司
可能是想把時間花在追劇打電動上山下海旅遊帶娃陪家人
或是對刷題就是嗤之以鼻覺得工作上根本用不到刷題仔就是背答案仔
或是自己的專業技能早就凌駕在leetcode之上根本沒必要當苦命刷題仔 e.x. 前端/後端/ML/Linux Kernel很熟/影像演算法/Android/IOS/割韭菜等等等等…

論壇上戰來戰去的觀念可能就總是覺得
別人待太久一定是因為腳麻了走不動
筆者倒是覺得duck不必
刷題只是一種選擇!


2022/10/18 補充 Dcard有人在問學歷的問題

感謝分享!
另外請問一下,就你的經驗而言
學歷在外商裡面重要嗎?
因為我不是本科系出身,也沒有大學畢業
這樣有可能會影響到進外商的可能性嗎?謝謝

想要把回答貼在這邊:

Hi, 如果你的問題是在收人的時候看不看學歷

就我所知Google在面試過程中是完全不管學歷的
但是要能夠在Google的coding面試表現很好是需要付出一定努力的
如果對Leetcode題目或是程式競賽有一點感覺,
可以試試看leetcode weekly contest,
穩定2100~2200分就差不多了

但如果覺得leetcode有點挫折,
而且目標沒有放在Google
其他外商還是很有機會的(別忘了還有日商 新加坡商等等)

但比較殘酷的是其他外商收人的時候應該會稍微參考不少學歷以及相關領域的知識
畢竟非本科系的差本科系的知識還真的蠻多的
可以點進以下連結裡的GitHub page看看
一份來自亞馬遜工程師的 Google 面試指南:GitHub 9.8 萬顆星,已有簡體中文版

但好消息是蠻多軟體工程師的職缺,在工作時真的用得到這些知識的比例也很少
原PO也是有非常多機會可以在其他方面證明自己是個合格的工程師的
不管是有厲害的作品集,
想辦法對有名的open source project給貢獻,
在特殊領域專精(ex: 資安 區塊鏈智能合約 安卓資深開發者或是root大師等等等等)
或是和團隊合作愉快完成大project的經驗
至少要有方法能證明自己學習的速度/熱情方面不輸於本科系或頂大的學生

要記得的就是業界超級多大神也根本不是本科系的
在Youtube搜一搜就會看到很多人還錄了很多各個領域的教學影片
很多程式能力/程式學習能力很強的人可能不一定大學考得好
只要有能力跟恆毅力,金子到哪都會發光

所以如果陷入我學歷不好就先輸了的窠臼是很可惜的
但是如果學歷不好但是作品集/面試表現客觀來說也沒有比頂大的學生好,
那又是另外一種自我感覺良好的陷阱,就看你願不願意在這條路上努力了

如果你的問題是在外商裡面看不看學歷
這就更沒差了,基本上在公司裡是表現/對公司和主管帶來的contribution決定一切
(表現包含: 寫的code/問的問題/學習速度/企圖心 熱情/人際關係/胸懷/presentation skill and 所有軟實力的項目等等等等)


上一篇
Intro / 香香外商面試秘笈 / 踏破鐵鞋無覓處 搞定coding interview
下一篇
演算法比你想像的重要
系列文
0到100的軟體工程師面試之路31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
moblinfish
iT邦新手 4 級 ‧ 2022-10-18 15:33:38

滿療癒的一篇

0
whitefloor
iT邦研究生 2 級 ‧ 2023-10-23 18:15:43

尤達大師xddddddddd

我要留言

立即登入留言