0:00
哈囉大家好我是Terry歡迎回到我的頻道已經有一段時間沒有聊工作上面的事情了那如果有關注我的頻道的話應該知道我現在在一家新創公司工作我大概是總指輪的時候加入他們的那現在已經大概過了半年的時間公司也算是擴張了一倍那因為最近一直都在幫公司面試招聘新的工程師也慢慢讓我開始思考除了基本的算法數據結構系統設計這種硬實力的面試題目可以在面試的時候去證明自己的實力
0:25
那入职之後呢以公司的角度來看什麼樣的工程師思維是非常值得的就是一定要把這種人給留下來那因為我自己在矽谷的大公司跟小公司都待過也待過自己的團隊也跟一些非常非常厲害的工程師一起工作過
0:39
所以就決定今天來做一集跟大家分享一下三個我接觸過Top 1%的工程師都有的特性或是一些工作上面的習慣或許看完了可以給你一些啟發可能也可以幫助你成為那些所謂的Top 1%的工程師或是你覺得說這個職業做到現在好像也沒有什麼進展或是你不知道怎麼樣再繼續提升自己往上走
0:58
我觉得这一集绝对会对你有帮助而且我觉得这些观念不只是适用在工程师这个职业上面不管你是做PM数据还是商业分析只要你想要成为你们产业上面前面的那几个IC我觉得多少都可以适用那首先第一个就是One PR a day
1:16
如果是在其他行业的话就是每天都要有可以去量化的Micro ProgressPR是Poll Request的缩写当工程师要修改代码的时候我们会上交一个PR然后团队就会有人给一些Feedback要求修改最后批准测试都跑过之后这个PR就可以进去这是一个比较标准的修改代码的流程那为什么要习惯每天至少给自己定一个小目标最少产出一个PR呢首先把大的PR拆成小的PR本身就是一个好习惯因为大的PR很难去review
1:45
而小的PR愿意帮你review的人也比较多通常小的PR你会得到比较多有用的feedback这个观念所有的工程师应该都知道再来就是你可以尽早得到feedback通常在做一些比较大的改动或是结构性上面的refactoring可能我们的起始点不一定是在正确的道路
2:02
会需要不少的feedback才可以拉正那一天一个小的PR可以让你incrementally早点得到feedback才不会浪费太多的时间最后发现很多东西都要重做比如说你可能花一个礼拜的时间把一个很大的PR给交上去之后发现一堆东西要改然后很多code都白想了白写了其实白写code不是很浪费时间很多时候是你投资了很多精力跟时间在一个错误的道路上面那这些时间跟精力最后都会浪费掉因为你一开始的方向就不对
2:29
所以說假如我們養成這個好習慣的話諸如此類的問題就可以提早發現然後避免另外就是小的PR很適用在CICD的Pipeline上面你如果想要寫一個完善的測試小PR絕對是最容易的而且現在這些測試我都是讓ChatGPT來幫我寫
2:44
再來就是我認為每天最少一個PR最大的好處就是你會有一個每天都完成事情的成就感不管這個事情是大是小至少你每天都會有非常明確的產出你會覺得很充實而且每天都會給自己定一個小目標最少要把這部分的code跟test給寫完才可以交上去今天的PR
3:01
当你养成这个习惯之后呢你的工作效率就会自然慢慢的提高有一本书叫做The Progress Principle是哈佛商学院的一个教授写的他里面提到他们研究的结果显示如果你每天都有去完成一些事情然后你实际去记录并且acknowledge这些小小的进度
3:17
很快就可以提升你自己内在的动力生产力还有创造力因为这些小的Progress会让你觉得你有一直在往前走而且你是需要去主动意识到你有完成这些Micro Progress很多时候我们会忽视我们自己每天完成的事情因为事情太小就感觉自己好像又浪费了一天的时间或是长时间下来几天觉得自己一事无成我觉得对软体工人师来说要实现最简单的方式就是每天一个PR那如果是在其他行业的话我会建议你可以把每天要完成的Micro Progress给记录下来
3:45
你同样会得到相同的满足感跟继续前进的动力这也可以让你在做大project的时候更快速的去修正你的执行方向第二个就是有一个problem solving的mindset
3:58
这边说的Problem solving的mindset不是说给你一个Ticket你会去找bug然后把这个bug给解决掉这只是一个Problem solving的skill举个例子讲我们今天有一个很笼统的需求我们要跟Southforce做Integration然后公司里面没有PM或者说其他的PM他们在忙自己的事情那现在的问题就是没有人知道要怎么开始下手如果你把这个requirement丢给开发者就是其他的Developer他们可能不知道怎么接手因为没有任何的Ticket也没有任何的Feature SPY
4:25
那如果有Problem solving mindset 的話任何問題都可以是自己的問題我可以主動先去大概了解一下客戶的需求是什麼樣為什麼我們要做這個 integration然後需要把哪些重要的feature放在MVP的scope裡面之後去稍微研究一下 product spec 要交給誰去寫
4:41
Taxback要怎麼去寫這些一般來說不是Developer需要擔心的工作但是可能因為現在人手短缺公司把PM都給炒了或是剛好就沒有PM來做這些事情那為了不讓這個Project遲遲沒辦法推進這些額外的事情我們都可以去做而且說真的這些東西沒有什麼難度
4:58
很多時候就是有沒有人願意去做而已當你能夠了解客戶並且幫客戶解決問題的時候你就可以當一個Problem Manager當你能夠幫團隊解決問題的時候你就可以當一個Team Lead當你可以幫公司一整個Division解決問題的時候或許你就可以當一個VP
5:14
這些人都有一個共同特徵,他們都有很強的problem solving mindset如果硬要說software engineer跟programmer或是developer最不一樣的地方就是在於software engineer不只要會寫程式你要參與整個project的initial planning、設計、PM你會想說PM不是PM應該做的工作嗎?是沒錯,PM這部分通常會有另外一個人專門來負責但是不代表說你就不能參與,因為這中間牽扯到timeline
5:39
那PM通常也不清楚某些feature要花多少時間需要engineer去support他們而且你經常需要跟PM去溝通的是quality跟時間的一個trade off如果是設計一個比較複雜的系統你要怎麼樣去把MVP給scope出來在短時間內給出一個可行的版本然後考慮之後為了可以讓這個系統可以scale
5:58
要做哪方面的优化还有更改这些都需要engineer事先跟PM沟通取舍这个时候problem solving的mindset就很重要因为绝大多数的developer都不愿意去做这些事情我前段时间在LinkedIn上面就有很多猎头要帮我介绍工作那我跟他们打电话的时候他们最常问我的问题就是你会Golan吗你会Python吗我的同意回答就是我会解决问题
6:20
如果这个project需要我用Python去写我就用Python去写如果这个project需要我用Fortune去做我就会用Fortune去做如果只是以会不会某种语言来评判这个人适不适合这个岗位的话那他们要找的就只是工具人而已我觉得ChatGPT就可以完全做到了第三个就是要让你的manager知道你的career goal这样他才可以帮助你达成那个目标不用怀疑manager存在的用意就是让你去利用他也是你的宝贵资源之一
6:51
很多人覺得說manager可能就是用來管理或是看你有沒有認真上班有沒有乖乖的按時打卡如果你能夠妥善的運用你的manager的話你在職場上面升遷的速度就會很快當你跟你的manager在one on one的時候我會建議你可以設一些比較aggressive的目標不要去害怕說你可能沒辦法把這些事情給做好
7:10
比如说你想要从L3或L4升到L5就是升级到senior level那你可以跟你的manager说你想要own一些比较有impact的project来帮助你升迁然后你完全不需要害怕跟他说你的目标就是要在12个月后升上L5因为你越直接的跟他讲他才能越直接的帮助你达成你想要达到的目标假如说你的目标是在12个月后升上L5他知道如果想要帮你做promotion的话一般公司内部都会看什么重要的指标
7:38
那他就可以在planning的时候把一些重要的ownership分给你然后随时给你一些feedback告诉你说哪些地方还需要加强有些时候不只是project上面要拿更多的ownership你可能还欠缺一些帮助其他团队的经验因为很多时候promotion的条件要满足同时会需要其他team的lead或是manager的支持才可以帮助你完成这些目标是你的manager的职责当然他们也不会主动去找你讨论这些事情
8:03
因為Manager自己本身就很忙所以這些都是你需要主動去跟他們提出來他們才會想辦法去幫你而且我發現一個比較普遍的現象就是很多工程師都是埋頭苦幹很多事情然後他們可能也不會跟他們的Manager有太多的溝通關於Career Go這方面可能覺得說熬了一兩年之後Manager自然會看到他們的貢獻然後幫他們做Promotion是有這個可能
8:26
不是說沒有可能,但是非常的少因為首先假如你從來沒有去提起這件事情那每個人都很忙,the manager肯定也很忙他也不會去特別幫你留意所以說你做的事情除非是真的非常大的impact那到頭來在他心裡面的印象你頂多就只是一個很好的工程師而已而且你做的很多事情也不一定能夠完全滿足promotion的條件其實很多條件都列得很清楚the manager都知道所以一定不要忘記利用你的manager來幫助你完成你的career goal
8:53
好那今天这一集就到这边了如果你觉得这集对你有帮助的话记得一定要帮我点个赞也欢迎你在底下留言跟大家分享还有什么事情是你觉得工程师可以做的甚至是在任何行业都适用可以让你朝这个Top 1%前进那我们下次见咯