雖然這篇前端工程師假日班鄉民發文沒有被收入到精華區:在前端工程師假日班這個話題中,我們另外找到其它相關的精選爆讚文章
在 前端工程師假日班產品中有11篇Facebook貼文,粉絲數超過8萬的網紅半路出家軟體工程師在矽谷,也在其Facebook貼文中提到, 聽說你最近在刷題- 軟體工程師的面試一定會遇到的資料結構及演算法關卡 (& 分享 LeetCode 折扣)& LeetCode Premium 抽獎啦(2021- 9 月更新) ----------------------------- 2021年 9 月更新: 從 8 月開始,收到許多剛到美國唸...
同時也有1部Youtube影片,追蹤數超過7萬的網紅在地上滾的工程師 Nic,也在其Youtube影片中提到,## 影片觀看說明 由於問題較多,大家的問題也可能是你的問題,建議可以先閱讀下方的「問題總匯」區,找到時間碼 Time code 之後跳轉到自己想聽的部分,會比較有效率哦 本影片 Q&A 留言是抓取 【2020 年度回顧! 成為 Team leader? 業外收入增加? 技術能力成長? (第一...
-
前端工程師假日班 在 在地上滾的工程師 Nic Youtube 的最佳貼文
2021-02-22 21:00:06## 影片觀看說明
由於問題較多,大家的問題也可能是你的問題,建議可以先閱讀下方的「問題總匯」區,找到時間碼 Time code 之後跳轉到自己想聽的部分,會比較有效率哦
本影片 Q&A 留言是抓取
【2020 年度回顧! 成為 Team leader? 業外收入增加? 技術能力成長? (第一次蒐集 Q&A)】https://youtu.be/BGaDN9wxbKE
## 影片中提到的專案
簡單用 React 撰寫的留言爬取篩選功能,可以自己抓去玩
https://github.com/niclin/youtube-comment-filter
## 問題總匯
00:00 開場
01:26 QA-1 - 林天寸
一直很喜歡妳的頻道,不單單是因為工程師,當然也有部分原因是自己也是走工程師這條路的。
前一年2020年開始,其實是我剛轉職工程師的第一年,在滿多地方都遇到不小的問題,在troubleshooting上面也是有許多瓶頸的。
後來除了白天上班,下班看書跟休息,偶然間看到你的影片[工程師如何自我進修],才開始慢慢用計畫的方式取代橫衝猛幹。
不得不說,規劃時間真的是比起技術性的功力還更有成效。因為它讓你適時的放鬆跟加強,然後在工作上面才更有長進,雖然很幹話,但我2020的下半年是這樣做的。
目前在準備考取網路管理的證照CCNA,計畫是走network這一塊,還有很多要磨練的。希望也能多看你產出跟network的影片,這是私心話啦,哈哈。
02:57 QA-2 - 仔仔
1.學程式會建議從前端或是後端哪個開始學會比較好?
2.一開始投履歷如何判斷一家公司是可以成長的,而不是進去3,5年後還是那個跟剛進去程度相差不遠的自己差不多
3.跟程式相關的產業有很多(像是製造業到博弈),可以請Nic分析一下各產業的狀況嗎?以及進去各產業前須要具備哪些程式語言或能力?
4.投履歷時看到一些公司列出所需程式語言和工具一大堆,是不是代表你沒完全具備就不要投履歷了,還是可以請Nic給個意見哪些部分還是可以投看看
5.都說工程師又宅又不會說話,為什麼Nic可以交到女朋友?
10:40 QA-3 - ANDREW NG KAR EARN
如果当写编程语言遇到瓶颈,有什么方法可以有效地避免自己陷入钻牛角尖的情况?
11:46 QA-4 - JS Lin
如果NIC現在選擇能馬上精通一項語言會是哪個?會想用來做什麼PJ?
13:13 QA-5 - Rick0
成為 team leader 後無法直接在技術上有更深入的研究和突破,這樣的變化是否值得?
是否會擔心這樣在技術上跟不上其他人,甚至被下屬看輕呢?
14:39 QA-6 - Henry蔡
因為最近是寒假期間,
我開始考慮下學期的修課,
想請教nic大大,
應該在有什麼樣的基礎上,
開始學design patterns?
我目前是碩士生,
大學非資工本科,
學過Python,
也跟過一些網路影片實作過Flask+PostgreSQL,
大學學過資料結構演算法,
但不到得心應手的程度...
16:07 QA-7 - 黃柏瑋
如何同時Handle好好幾件事
我怎麼覺得上班,然後下班假日寫寫side project後就沒啥時間了🤔🤔🤔
17:24 QA-8 - 乾太
我想問一下這年頭轉行斜槓 VTuber 還有沒有搞頭A?
18:10 QA-9 - uuu06222
之前開始關注你有知道你有面試過人的經驗, 想問一下站在面試官的角度...
面試官會不會比較注重作品需要呈現那些東西, 或是有沒有什麼禁忌是不能碰的嗎?
20:07 QA-10 - Joery Lin
想請教您對於對於給你很多成長和照顧的公司,倘若您有一個更好的機會,無論薪水或未知挑戰都大於現在公司。
您將如何做選擇,或許現在公司會給你加薪留下你。
因為自己曾放棄了許多機會
21:37 QA-11 - YangTing Zheng
Q1: 想問通常一個產品開發的週期都多長呢?負責維運和開發的工作內容是否會差很多?
Q2: 想請您簡單介紹一下資工系學生的出路/工作內容?(如PM.SA.DBA.PG.RD.MIS…或是還有其他的?)
24:16 QA-12 - RTB
Hello World
24:18 QA-13 - Barry
目前是公司MIS 很想轉職成後端工程師,但在面試上面都都時常失敗
常常在問技術關卡時就被問倒了,總覺得 要準備的東西非常的龐大
毫無準備的頭緒,總覺得一直寫side project也不是辦法
26:49 QA-14 - 因地制夷
想請教Nic 有在做投資嗎? ex 股票 想聽一些投資心得
27:13 QA-15 - 比歐
想請教 Nic 大,
在之後的工程師生涯中之後有甚麼規劃或想法嗎?
例如:開發產品創業,或是開班授課、轉做顧問之類的。
28:14 QA-16 - yongming jia
请问新手如何学编程,学完去做什么?怎么自己创业?谢谢🙏
29:33 QA-17 - Minghao Chang
是否能請您推薦用來開發的筆電?(正好最近要汰換電腦),想從今年開始養成寫side project的習慣,謝謝。
30:31 QA-18 - Guan Jun Chen
想知道像Nic這麼厲害的工程師,年薪大概落在哪裡
30:46 QA-19 - Sheng Jiang
想請問Nic,如果非資工背景但是對寫程式有熱情,想轉職當軟體工程師,會建議如何起步?
補充:像是什麼樣的人適合自學,什麼樣的人適合去補習,或者補習跟自學的情況各有哪些優劣?
謝謝Nic
## 結尾
31:49 感想
喜歡影片的話!可以幫忙點個喜歡以及分享、訂閱唷!😘
━━━━━━━━━━━━━━━━
🎬 觀看我的生活廢片頻道: https://bit.ly/2Ldfp1B
⭐ instagram (生活日常): https://www.instagram.com/niclin_tw/
⭐ Facebook (資訊分享): https://www.facebook.com/niclin.dev
⭐ Blog (技術筆記): https://blog.niclin.tw
⭐ Linkedin (個人履歷): https://www.linkedin.com/in/nic-lin
⭐ 蝦皮賣場: https://shopee.tw/bboyceo
⭐ Github: https://github.com/niclin
⭐ Podcast: https://anchor.fm/niclin
━━━━━━━━━━━━━━━━
✉️ 合作邀約信箱: niclin0226@gmail.com
#QA #工程師 #在地上滾的工程師 #前端 #後端 #轉職
前端工程師假日班 在 半路出家軟體工程師在矽谷 Facebook 的最佳解答
聽說你最近在刷題- 軟體工程師的面試一定會遇到的資料結構及演算法關卡 (& 分享 LeetCode 折扣)& LeetCode Premium 抽獎啦(2021- 9 月更新)
-----------------------------
2021年 9 月更新:
從 8 月開始,收到許多剛到美國唸書的讀者來信請求幫忙內推 2022 年暑假的實習工作,如果你還不知道的話, 請查看我另外一篇文章來了解內推網路:最有效得到面試的方式- 內部推薦: 尋找內推資源 & 歹晚郎互助網絡 (2021 年 8 月更新)。軟體工程師的面試關卡很多都是資料結構及演算法, 所以大家在準備實習也都不免俗的要刷題一下。 我許久沒有看 LeetCode, 發現現在 LeetCode 的功能越來越多, 還有像是學習資源文章及 study plan 的功能,把大家要準備面試的各種需求都越來越在他們網站上一站搞定。 今天除了再次分享去年寫的文章(還有折扣碼), 還要大大感謝 LeetCode 願意提供 3 個 7 天 Premium 會員試用來給予讀者, 讓大家面試前可以使用如公司 tag 的功能來做複習。 此外感謝大家一直以來的支持, 我也自掏腰包提供購買 3 個 1 個月的 Premium 會員試用來加碼, 再請大家做以下動作參加抽獎歐!
✅ 按讚並留言你希望用 LeetCode 達到什麼目標 (轉職、實習面試、換工作,可以寫一寫細節像是目標公司、職位等), 或是你過去使用 LeetCode 的心得、或者是自己未來職業目標等等, 也可以是找朋友來一起練習。
✅ 公開分享此篇文章的話多一次被抽中的機會
獎項: 共 6 個名額,3 個 7 天 Premium 試用會隨機抽出, 3 個 1 個月的 Premium 試用則用留言內容來挑選, 希望抽出給很需要、或是很有創意的留言, 哈!
活動期間到加州時間下週四 9/9 晚上 9 點截止。會直接於文中留言通知中獎,祝大家學習愉快、找實習、換工作都順利!
--------------------------
2020 年 12 月原文:
歐, 要澄清一下我現在沒有在刷題 (我這樣講絕對不是怕很多同事會看到我的文章 XD), 說實在的, 我覺得大家好像太過度強調 “刷”題的刷, 好像刷油漆似的要來回刷很多遍。 我過往看過許多刷幾百題、每題做 2、3、4 次以上的人分享他們的經驗, 我很佩服他們投入的時間及毅力, 但我自知做不到, 有小孩後更是難以做到刷一遍。 我自己找軟體工程師的工作的經驗, 2015 年上完 Coding Bootcamp 到找到工作, 大概做了 60 題左右的 LeetCode 問題, 2016 年底找工作比較認真, 大概完成了 100 題左右。 今天這篇文章想要分享一下我的演算法準備方式, 如果你想要找如何刷題的方式,或是覺得無法刷幾百題很多遍的人, 歡迎往下閱讀。
2015 年上完 Coding Bootcamp 後, 我陸續有一些電話面試, 每天可能會有 1~3 個電話面試, 所以在準備面試上, 要研究公司, 並且依照職缺來做面試的複習, 因為我是面試前端相關的職缺, 所以也有一部分的精力在前端的資料複習。 關於資料結構及演算法 (Data Structures & Algorithms) 的練習,我大概維持一天練習 1-2 題的步調。 2016 年底的面試, 因為還要上班, 所以基本上只有晚上有時間, 可能一天只能練習 1 題, 假日有比較多時間才可以多做幾題。
看到問題的時候, 我會先確保我了解題目的意思, 真正在面試的時候, 通常第一步也是和面試官確認我們自我的理解和面試官要問的是否一致, 不要花了時間才發現一開始的理解及假設是錯誤的。 我通常會立刻寫下題目給予的 input 有什麼、格式是什麼, desired output 又是什麼。
確認好 input & output 後, 我會思考題目可以用什麼類型的資料結構或是演算法來解。 通常在面試的時候, 我會和面試官說明我可能會先就一個大概可行的方式來做解答, 如果他/她覺得沒有什麼問題的話, 我再做後續的優化。 在我開始有一些思路後, 我會先寫下 pseudo code, 就是先用英文來說明我的解法會是怎麼樣。 每個步驟和面試官確認都沒有問題後, 我才會正式寫 code 。
當然有些時候不論怎麼想都寫不出來, 如果是自己練習的時候,我大概在 15 分鐘後會開始看一些討論, 嘗試學習別人的思路, 但如果再花 10 分鐘還是解不出來的話, 才會參考別人的解法。 我看完別人的答案後, 還是會用自己的 code 再實現一次。 如果面試中卡住的話, 則是要儘快和面試官討論, 我會把我的理解, 可能的解法方式和面試官說, 同時也說明我的情況可能哪裏不是很確定, 讓面試官在適當的時候可以給予我提示。 一般來說, 公司都是希望有順利的面試經驗, 面試官也都願意在溝通正常下給予協助。
自己練習寫完之後, 我會再寫出解法的空間及時間複雜度 (Space & Time Complexity) , 通常面試也會詢問這個部分, 所以自己每個練習也要歸納一下。 如果我發現我的解法時間可能不是太好, 我會再嘗試看不同人的討論, 研究更優化的解法, 並再自己寫出不一樣的解法。 有些比較棘手的問題我可能會寫 2、3 個解法比較彼此的優缺點。
在之前準備面試的時候, 我有準備一本筆記本, 每次寫完問題之後, 我會用筆寫下我在哪一天寫了哪一個問題, 並且用很精簡的方式總結問題及解法。 隔天要做下一題之前, 我會先看一下前一天的問題, 嘗試回想我是否可以再次在頭腦中想出大致的解法。 如果還是不行的話, 再看我自己的總結並做上記號, 隔天會再做一次同樣的步驟,直到我可以順利複習出解題的邏輯思路。
如果有和公司面試, 不論是電話還是 onsite, 面試完後我會再檢查我遇到的題目是否和我過去做過的題目類似, 如果有的話, 是否我的思路在面試中是清晰及正確的, 如果沒有的話, 我是否有利用對的觀念來解答。 面試結束後, 會花時間在盤點及複習, 從面試中的題目和過往的練習做統整。
你可以看到我的練習方式不是很強調快, 因為我希望我做完問題可以有很深的理解, 所以花很多時間在做整理、複習確認, 即使當下沒有那麼理解, 隔天回想又想不出的話, 我會再複習一次, 再隔一天做新題前也會再確認。 複習及思考的次數多了,真正把題目所想要考的觀念融會貫通, 畢竟面試很難真的遇到原題, 重點是我們對於資料結構及演算法的理解, 及遇到難題如何面對的應對的思考過程。
條條大路通羅馬, 每個人面試準備的方式都不太一樣, 以上就是我的資料結構及演算法的準備方式, 之前寫找工作的系列文章好像沒有特別提這塊, 所以特別再寫出來分享。當然我不是大神每次面試都可以收割 5 到 10 個以上 offer, 所以就請你自己斟酌評估你的學習方法,畢竟我們都要找到對自己最能接受、且有效率的方式來準備面試 。
我從 2015 、2016 年準備面試的時候, 有許多練習演算法的網站, 但到了今日, 好像 LeetCode 和練習演算法關係就如同 Google 和搜尋一樣, 大部分我聽到的準備面試的人都用 LeetCode 來做練習了! 剛好最近認識一位在 LeetCode 工作的朋友牽線, LeetCode 特別優惠讀者, 只要使用這個連結購買 Premium, 就能有 15% 優惠 (幾乎和一年一度的感恩節特價差不多了!)。
我目前聽到朋友準備面試基本上都會購買 LeetCode 的 Premium, Premium 最大的好處就是可以看到問題和公司的標註, 拿過去拒絕我 2 次的 Google 為例 (XD), LeetCode 就有 925 道題目被大家回報有在 Google 面試中看到 (2021 年已經變成 1014 道了! @@), 當你正要 phone or onsite interview 的時候, 可以聚焦你要面試的公司練習、提高效率的話還是可以提高面試的表現的。 Premium 還有答題評斷比較快、LeetCode 官方解答、及依據公司有 Mock interviews 等其他功能, 但主要大家好像都還是為了 company tag 的功能而付費, (2021 年 9 月更新, 最近又有如文章、影片的學習資源,還有像是 Study Plan 的功能, 看起來 LeetCode 要往大家學習、準備、一站式的服務來黏住使用者了!)
相信以大家拿到 offer 後的加薪, 會覺得這是個很好的投資!(什麼, 你說不一定會加薪, 那請你再閱讀一下我的談判文章來和公司談判加薪 "面試中談到錢怎麼辦? 問到你期望薪水如何接招?" 及"面試得到 Offer 薪水如何談? 三明治溝通法及最後簽約前的談判招式") 。
我當初有想說要直播訪問在 LeetCode 的朋友, 探討 LeetCode 最近幾年的快速發展、及如何幫助軟體工程師及公司行號, 可惜目前朋友還沒有意願, 如果大家有興趣的話, 請在文章留言, 讓她可以看到大家的意願加強她的動力和我們分享 (群眾多數暴力啊!)。
附上過去我寫的找工作系列文章:
1. 程式語言- 到底學哪個好?我想進Google,我沒學OOO,他們會接受我XXX語言背景嘛?
2. 簡介美國軟體工程師面試流程
3. 等待機緣- 我要如何被人資或獵人頭發現? 我要如何脫穎而出? LinkedIn重要嘛?
4. 主動出擊- 我要找工作了,現在美國都用什麼找工作?哪個網站平台能讓我有較多面試機會?
5. 軟體工程師面試準備- 面試要練習什麼? 找工作和練習的時間要如何平衡拿捏?
6. 被錄取了- 我該注意什麼,我可以談判要求多一點薪水、股票或假期嘛?
7. 矽谷找工作之常見問題 FAQ
8. 面試技巧及心得,如何有條理的說服面試官?
9. 英文履歷怎麼寫? 美國科技公司注重什麼?
10. 如何到美國科技公司工作?
11. 最有效得到面試的方式- 內部推薦: 尋找內推資源 & 歹晚郎互助網絡
12. 面試中談到錢怎麼辦? 問到你期望薪水如何接招?
13. 面試得到 Offer 薪水如何談? 三明治溝通法及最後簽約前的談判招式
2021 年, 如果你要找工作的話, 祝你轉換順利, 拿到許多理想的 offers! 如果你有什麼準備的技巧及心得, 也歡迎留言分享。
部落格原文:
https://bit.ly/3zNrluU
前端工程師假日班 在 半路出家軟體工程師在矽谷 Facebook 的最讚貼文
聽說你最近在刷題- 軟體工程師的面試一定會遇到的資料結構及演算法關卡 (& 分享 LeetCode 折扣)
歐, 要澄清一下我現在沒有在刷題 (我這樣講絕對不是怕很多同事會看到我的文章 XD), 說實在的, 我覺得大家好像太過度強調 “刷”題的刷, 好像刷油漆似的要來回刷很多遍。 我過往看過許多刷幾百題、每題做 2、3、4 次以上的人分享他們的經驗, 我很佩服他們投入的時間及毅力, 但我自知做不到, 有小孩後更是難以做到刷一遍。 我自己找軟體工程師的工作的經驗, 2015 年上完 Coding Bootcamp 到找到工作, 大概做了 60 題左右的 LeetCode 問題, 2016 年底找工作比較認真, 大概完成了 100 題左右。 今天這篇文章想要分享一下我的演算法準備方式, 如果你也是覺得無法刷幾百題很多遍的人, 歡迎往下閱讀。
2015 年上完 Coding Bootcamp 後, 我陸續有一些電話面試, 每天可能會有 1~3 個電話面試, 所以在準備面試上, 要研究公司, 並且依照職缺來做面試的複習, 因為我是面試前端相關的職缺, 所以也有一部分的精力在前端的資料複習。 關於資料結構及演算法 (Data Structures & Algorithms) 的練習,我大概維持一天練習 1-2 題的步調。 2016 年底的面試, 因為還要上班, 所以基本上只有晚上有時間, 可能一天只能練習 1 題, 假日有比較多時間才可以多做幾題。
看到問題的時候, 我會先確保我了解題目的意思, 真正在面試的時候, 通常第一步也是和面試官確認我們自我的理解和面試官要問的是否一致, 不要花了時間才發現一開始的理解及假設是錯誤的。 我通常會立刻寫下題目給予的 input 有什麼、格式是什麼, desired output 又是什麼。
確認好 input & output 後, 我會思考題目可以用什麼類型的資料結構或是演算法來解。 通常在面試的時候, 我會和面試官說明我可能會先就一個大概可行的方式來做解答, 如果他/她覺得沒有什麼問題的話, 我再做後續的優化。 在我開始有一些思路後, 我會先寫下 pseudo code, 就是先用英文來說明我的解法會是怎麼樣。 每個步驟和面試官確認都沒有問題後, 我才會正式寫 code 。
當然有些時候不論怎麼想都寫不出來, 如果是自己練習的時候,我大概在 15 分鐘後會開始看一些討論, 嘗試學習別人的思路, 但如果再花 10 分鐘還是解不出來的話, 才會參考別人的解法。 我看完別人的答案後, 還是會用自己的 code 再實現一次。 如果面試中卡住的話, 則是要儘快和面試官討論, 我會把我的理解, 可能的解法方式和面試官說, 同時也說明我的情況可能哪裏不是很確定, 讓面試官在適當的時候可以給予我提示。 一般來說, 公司都是希望有順利的面試經驗, 面試官也都願意在溝通正常下給予協助。
自己練習寫完之後, 我會再寫出解法的空間及時間複雜度 (Space & Time Complexity) , 通常面試也會詢問這個部分, 所以自己每個練習也要歸納一下。 如果我發現我的解法時間可能不是太好, 我會再嘗試看不同人的討論, 研究更優化的解法, 並再自己寫出不一樣的解法。 有些比較棘手的問題我可能會寫 2、3 個解法比較彼此的優缺點。
在之前準備面試的時候, 我有準備一本筆記本, 每次寫完問題之後, 我會用筆寫下我在哪一天寫了哪一個問題, 並且用很精簡的方式總結問題及解法。 隔天要做下一題之前, 我會先看一下前一天的問題, 嘗試回想我是否可以再次在頭腦中想出大致的解法。 如果還是不行的話, 再看我自己的總結並做上記號, 隔天會再做一次同樣的步驟,直到我可以順利複習出解題的邏輯思路。
如果有和公司面試, 不論是電話還是 onsite, 面試完後我會再檢查我遇到的題目是否和我過去做過的題目類似, 如果有的話, 是否我的思路在面試中是清晰及正確的, 如果沒有的話, 我是否有利用對的觀念來解答。 面試結束後, 會花時間在盤點及複習, 從面試中的題目和過往的練習做統整。
你可以看到我的練習方式不是很強調快, 因為我希望我做完問題可以有很深的理解, 所以花很多時間在做整理、複習確認, 即使當下沒有那麼理解, 隔天回想又想不出的話, 我會再複習一次, 再隔一天做新題前也會再確認。 複習及思考的次數多了,真正把題目所想要考的觀念融會貫通, 畢竟面試很難真的遇到原題, 重點是我們對於資料結構及演算法的理解, 及遇到難題如何面對的應對的思考過程。
條條大路通羅馬, 每個人面試準備的方式都不太一樣, 以上就是我的資料結構及演算法的準備方式, 之前寫找工作的系列文章好像沒有特別提這塊, 所以特別再寫出來分享。當然我不是大神每次面試都可以收割 5 到 10 個以上 offer, 所以就請你自己斟酌評估你的學習方法,畢竟我們都要找到對自己最能接受、且有效率的方式來準備面試 。
我從 2015 、2016 年準備面試的時候, 有許多練習演算法的網站, 但到了今日, 好像 LeetCode 和練習演算法關係就如同 Google 和搜尋一樣, 大部分我聽到的準備面試的人都用 LeetCode 來做練習了! 剛好最近認識一位在 LeetCode 工作的朋友牽線, LeetCode 特別優惠讀者, 只要使用這個連結 (http://bit.ly/34UrjEe) 購買 Premium, 就能有 15% 優惠 (幾乎和一年一度的感恩節特價差不多了!)。
我目前聽到朋友準備面試基本上都會購買 LeetCode 的 Premium, Premium 最大的好處就是可以看到問題和公司的標註, 拿過去拒絕我 2 次的 Google 為例 (XD), LeetCode 就有 925 道題目被大家回報有在 Google 面試中看到 (925 道還是好多啊!@@), 當你正要 phone or onsite interview 的時候, 可以聚焦你要面試的公司練習、提高效率的話還是可以提高面試的表現的。 Premium 還有答題評斷比較快、LeetCode 官方解答、及依據公司有 Mock interviews 等其他功能, 但主要大家好像都還是為了 company tag 的功能而付費, 相信以大家拿到 offer 後的加薪, 會覺得這是個很好的投資!(什麼, 你說不一定會加薪, 那請你再閱讀一下我的談判文章來和公司談判加薪 "面試中談到錢怎麼辦? 問到你期望薪水如何接招?" 及"面試得到 Offer 薪水如何談? 三明治溝通法及最後簽約前的談判招式") 。
我當初有想說要直播訪問在 LeetCode 的朋友, 探討 LeetCode 最近幾年的快速發展、及如何幫助軟體工程師及公司行號, 可惜目前朋友還沒有意願, 如果大家有興趣的話, 請在文章留言, 讓她可以看到大家的意願加強她的動力和我們分享 (群眾多數暴力啊!)。
附上過去我寫的找工作系列文章:
1. 程式語言- 到底學哪個好?我想進Google,我沒學OOO,他們會接受我XXX語言背景嘛?
2. 簡介美國軟體工程師面試流程
3. 等待機緣- 我要如何被人資或獵人頭發現? 我要如何脫穎而出? LinkedIn重要嘛?
4. 主動出擊- 我要找工作了,現在美國都用什麼找工作?哪個網站平台能讓我有較多面試機會?
5. 軟體工程師面試準備- 面試要練習什麼? 找工作和練習的時間要如何平衡拿捏?
6. 被錄取了- 我該注意什麼,我可以談判要求多一點薪水、股票或假期嘛?
7. 矽谷找工作之常見問題 FAQ
8. 面試技巧及心得,如何有條理的說服面試官?
9. 英文履歷怎麼寫? 美國科技公司注重什麼?
10. 如何到美國科技公司工作?
11. 最有效得到面試的方式- 內部推薦: 尋找內推資源 & 歹晚郎互助網絡
12. 面試中談到錢怎麼辦? 問到你期望薪水如何接招?
13. 面試得到 Offer 薪水如何談? 三明治溝通法及最後簽約前的談判招式
2021 年, 如果你要找工作的話, 祝你轉換順利, 拿到許多理想的 offers! 如果你有什麼準備的技巧及心得, 也歡迎留言分享。
部落格原文及各文章連結:
https://brianhsublog.blogspot.com/2020/12/AlgorithmDataStructureLeetCode.html
前端工程師假日班 在 小吃貨的英國生活日記 Facebook 的最佳貼文
#小吃貨三年半工作歷程 #文長慎入 #軟體工程師相關
由於前一篇不小心打了跟工程師沒什麼關係的一篇文章,導致內容完全偏離我原本想談的事情,在這裡又補充一篇。(之後可能會乾脆轉到痞客邦,不然太長了。)
由於不知不覺,已經成為軟體工程師三年半,還有不久前參與公司的一些招募面試,覺得應該上來分享一些心路歷程,畢竟即使疫情嚴重,也不會熄滅大家想要成為軟體工程師的火,相信因為疫情嚴重,如果有人失業,剛好也是可以轉職成為軟體工程師,是個不管在哪裡都可以工作得好職業,也不會因為疫情不能出門而丟飯碗,當然你還是可能因為公司經營不善而丟飯碗,畢竟是整個經濟蕭條,但至少你可以馬上找下一份工作,反正都是線上面試獻上在家工作。
總之,是想提一下從剛開始學習寫程式,對於什麼都不太懂,到現在,好像已經工作了三年半,還是什麼都不太懂的心境變化。
分成幾部分來說好了,
學習新東西的部分:
一開始的兩年其實真的滿痛苦的,不知道是因為第一間公司的文化還是因為主管跟同事,導致在學東西上面覺得沒什麼進展。一來可能是因為公司是個不管做什麼都很慢的公司,除了要求你Delivery很快,其他像是,你要求的Training, 或者你問事情,或者了解需求目標,都很慢。
可能你要求的Training 會為了省錢而累積人數,找一堆不相干的人來上課,導致上課的時候,老師也很尷尬,不知道到底要怎麼抓進度。
或者是你說你工作要學新東西,可是完全不給你任何Training Course叫你自己看Pluralsight, 所以半年以後決定幫你安排一個Training Course上非常基本而且沒什麼相關的東西。
問問題的時候,基本上也沒什麼人想理你,大家都覺得自己很忙,尤其是主管,根本不太想管你。還會叫你沒事不要去煩資深同事們,這樣的狀況也是很讓人無法提起精神。
總之前兩年真的是水深火熱,也不知道自己在幹嘛,常覺得自己很沒用,學得很慢,也是很浪費時間,只能一直努力想辦法看Confluence來了解Team到底在做什麼。
接著去了第二間公司,是學習爆發時期,在新創就是學得快,因為不快的話公司就要倒了,努力的工作工作,還是敵不過公司的內部問題,工作了八個月被裁員了,公司大概裁了三分之一。
在新創,一開始真的學得很快,但是工作了三個月以後,會發現好像也學不到什麼東西了,想做很多東西也做不了,公司永遠是,沒錢,不要這個,不要那個,然後來了一個只會嘴砲的前端,號稱有十年經驗,可是連個sorting 都寫不出來,基本上他就是一個設計師,那為什麼不說自己是設計師就好?然後其他同事也是處於好像提不起勁工作,一個很簡單的東西可以做個好幾個禮拜,幾個月。甚至可以感覺得到,好像整個公司的人都不太想工作,只想趕快找個買家把公司買走,不然公司可能真的要倒了。
我還記得,被裁員以後,他們說覺得我比較適合去大的公司,其實我也覺得,我覺得自己在那個地方,根本完全不知道可以幹嘛。公司當時還打算Rebranding 簡單來說就是換個包裝,即使裡面爛光,也要把外面弄的亮麗,這樣才可以吸引投資人。
之後就覺得自己還是不要去新創好了,然後因緣際會來到了現在的公司。可能是Consulting的緣故,要碰的東西真的很多也很廣,很多東西是我以前完全沒有碰過的,所以也是整個學習大爆發,公司裡面也有很多學習的機會,像是meetup, study group, 或一些Talk。即使下班以後也是都在學習,可能是參與一些Talk 或者workshop之類的。
重點是,同事的態度真的會讓學習的動力大爆發,尤其pair programming 是個關鍵,自己做的時候其實學的真的有限,即使上網看看影片文件,或者自己動手做,我覺得很多時候還是需要有真人才可以學到東西。當然,每個人學習方式不一樣,對我來說,pair programming真的是一個快速學習的方式。一開始我也很害怕,覺得會暴露自己其實不太會寫code的事實,可是真正開始pair以後發現,其實自己好像沒那麼糟,好像其實也都寫得出來。我覺得就是需要一個刺激,需要一個引導。
除了programming之外,我們也是會pair其他東西,像是infrastracture的工作之類的,我覺得就是需要有一個人一起討論。當然也不是說隨時隨地都需要有,但是有人一起討論就是可以教學相長。
其次,和Junior 一起pair 也是刺激自己學習的因素,因為你會害怕自己和別人講錯,所以更push自己要努力去查資料,不要害到別人。
之前有人問說,那以前我當Junior的時候都被丟著不管,我不會有媳婦熬成婆的感覺,會想要也不管Junior嗎? 其實我覺得要看公司文化,以前我可能多少會這麼想,但到現在的公司,我覺得不會了。其實Junior 也不代表他們能力比你差,他們就是缺乏那個經驗跟機會。
現在看著那些Junior我也常常會想,他們已經比以前的自己強很多,學的也很快,有時候也會開始後悔自己以前沒有把握時間學習,或者看一些書之類的。
當然還是有很多倦怠的時候,尤其最近專案剛結束,就很想整個放鬆耍廢,因為之前實在壓力太大。在前一個專案我是最資淺的工程師,所以非常的想要追趕大家的進度,可是也越發現,原來我缺少的不是所謂的coding能力,而是所謂的開發經驗。
很多時候,專案需要的,並不是coding的部分,而是你能不能發現問題的所在,提升這個系統的效率,或者解決開發流程的問題。
至於學習框架或者程式語言,這個倒是會隨著時間而變快,就像是一開始可能閱讀英文很痛苦,每天一直看英文就有改善很多,程式語言和框架也是,到後來就會覺得好像有大同小異。當然如果都是類似的語言的話,你也可能遇到個完全不一樣的東西,那就另外說了。
對於工程師這份工作的見解部分:
認真說起來,從還沒成為軟體工程師,到現在工作三年半,我其實在這部分修正了很多看法。
還沒成為軟體工程師之前,我以為好的軟體工程師就是,很會寫code,很會解bug,可以寫出跑得很快的演算法。
但現在我會覺得,好的軟體工程師,應該是,很會解決問題,而且解決問題並不是會解Bug,應該是致力於,怎麼樣寫出沒有Bug的程式,怎麼樣寫出好維護的系統,怎麼樣寫出有用的東西。
不是按照你拿到的需求做就是好,而是確保你了解需求,確保需求是符合客戶需要的,所以溝通很重要,還有提出意見跟看法,參與訂立需求相關的討論,有不懂的地方,就叫想辦法弄懂。
我想也許是因為是在敏捷開發的環境,加上Cross Function Team,所以可以比較有機會參與各種討論以及需求制定,有問題也可以自己開一個Ticket, 也會需要參與寫story以及跟非dev的人溝通。
其實從一開始工作,公司就是使用敏捷開發,到後來新創也是敏捷開發,然後現在真正實踐敏捷開發的公司,一路下來也覺得學習到很多。
以前以為敏捷開發就是有sprint, scrum, stand up之類的,後來發現不是,敏捷開發應該實踐真正的agile, 非常的彈性,不要為了有scrum而有scrum, 也不一定需要搞個兩個禮拜的sprint.
現在我覺得,一個好的軟體工程師應該是,對於團隊有貢獻,而且可以deliver 出一個對客戶有貢獻的產品的人。同時也為Community有貢獻,不一定是開源的貢獻,可能是寫寫文章,拍拍影片,參加meet up 甚至是帶新人,鼓勵更多人成為工程師都算吧!
所以說起來,我還是覺得,不管是誰,只要想成為軟體工程師,應該都可以成為吧!只要你願意花時間心力,應該不是一個高門檻的職業,只是看起來很高,但好像也不是那麼高。
也有很多人去Bootscamp三個月或六個月,就找到了一份軟體相關工作,成為軟體工程師。
更重要的是,可以持續多久,長期下來,這是一個很辛苦的職業。
不像其他職業,下班就下班,軟體工程師下班後還是要一直學習新的東西,或者是你一個東西卡住沒做出來,你就會無法停止去煩惱。也有很多東西就是要一直花時間學習。
可能你現在工作了兩年,會發現,啊!我怎麼還是什麼東西都不太懂,你可能一直使用某些framework可是從沒搞懂它背後的原理是怎樣的。可是要了解背後的原理,可能要花很多時間又不值得,所以到底要不要了解,就處於一個尷尬地步。也可能是你發現,你會的東西市場已經不需要了,所以又要重新學很多新的內容,然後已經是中年人了,這是你想要的嗎?
還是你乾脆努力往管理方面走?
也有很多工程師最後覺得很痛苦,因為專案管理本來就是一個很辛苦的職業,尤其是你卡在要跟工程師溝通,也要完成客戶要的,同事又想當個好人,你該怎辦?客戶不能理解複雜的技術成分,你了解技術上,工程師們的確無法快速達成,所以你會花很多時間在溝通,思考,以及想辦法讓你的工程師們專心工作。
另外,你還要處理很多雜事,像是預算問題,尤其現在很多都是雲端相關的,雲端的運算要怎麼抓,怎麼做成本控制,還有像是現在很流行的Subscription 如果你的sales賣出的價格根本等於你軟體開發的成本怎辦?因為以前沒有雲端的時候,你需要考慮的就是固定的一些人事成本,你也不用想我用像是Auth0這樣的服務,我user越多要付越多錢,還有其他像是一些security 問題需要考慮,用一些第三方的service 都要一直付錢之類的。
那如果是Tech Lead呢?Tech Lead也是需要考量各種雜七雜八的事情,還有Developer要求的各種疑難雜症,例如你一個新的dev onboard 要給他什麼權限,像現在security嚴密,你可能要給他一大堆權限,可是你又怕萬一對方很雷,給了把東西弄爛怎辦?
還有現在大家都走DevOps 你的團隊要怎麼和operation team 合作,哪些權責問題,還有團隊氣氛問題,溝通問題,大方向問題,要和PM溝通一大堆,也同時要Lead團隊,例如開發流程怎樣改善,要使用哪些工具,那些工具的安全性是什麼,還有發生安全漏洞的時候要怎麼處理,平常還要確保site reliability 之類的,不然如果系統無法運作,第一個也是找Tech Lead, 各種大大小小的事情,還要確保你的Developer 的learning path, 你總不能要求他們什麼都要會,那你是要花多少錢請他們?
總而言之,到現在為止,我覺得,軟體工程師,真的是一個很辛苦的職業,也不能好好安穩地做個十年就升等主管,然後就安穩地等退休。下班以後很多人可能還要on call, 根本連休息都無法好好休息,有嚴重系統問題,也可能被要求假日馬上修好。看你是哪一種產業,像是金融業的話,就有相當大的機率要on call ,尤其是做投資的。(當然還是看你的職位)
即使你不需要on call 也要一直學新東西,一直無止盡的學,學無止盡,活到老學到老,如果你熱愛學習,那恭喜你,選擇正確。或者你還沒成為軟體工程師,可以趕快加入。你絕對不用擔心,你會有一天,好像不用學什麼也可以一直在這個行業混下去。(除非你的公司真的就是願意花錢養你,你就只要一直做同樣的東西,即使不更新也不會壞掉之類的,即使外面日新月異,你們也堅持用同樣的東西)