聽說你最近在刷題- 軟體工程師的面試一定會遇到的資料結構及演算法關卡 (& 分享 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
同時也有23部Youtube影片,追蹤數超過2萬的網紅Untyped 對啊我是工程師,也在其Youtube影片中提到,今天巧遇來 Google 借廁所看烏龜的哈佛姐 Alice 雖然廁所沒上到,免費的飯也沒吃到,但是卻從訪談中認識到學霸轉職的心路歷程其實不如大家預期的輕鬆!哈佛姐這次也在訪談中提到許多tips 跟建議,希望對於想轉職軟體工程師的你有所幫助~ 哈佛姐的影片:https://youtu.be/P8X...
「如何 轉職 軟體 工程師」的推薦目錄:
- 關於如何 轉職 軟體 工程師 在 半路出家軟體工程師在矽谷 Facebook 的最讚貼文
- 關於如何 轉職 軟體 工程師 在 旅行熱炒店Podcast Facebook 的最讚貼文
- 關於如何 轉職 軟體 工程師 在 紫微命理-果逸老師 Facebook 的最讚貼文
- 關於如何 轉職 軟體 工程師 在 Untyped 對啊我是工程師 Youtube 的精選貼文
- 關於如何 轉職 軟體 工程師 在 Untyped 對啊我是工程師 Youtube 的精選貼文
- 關於如何 轉職 軟體 工程師 在 Untyped 對啊我是工程師 Youtube 的最讚貼文
- 關於如何 轉職 軟體 工程師 在 Fw: [心得] 無經驗轉職軟體工程師全攻略- 看板Soft_Job 的評價
- 關於如何 轉職 軟體 工程師 在 轉職軟體工程師根本沒那麼簡單- 工作板 - Dcard 的評價
- 關於如何 轉職 軟體 工程師 在 想轉職~軟體工程師,請各位大大給點意見 - Mobile01 的評價
- 關於如何 轉職 軟體 工程師 在 半路出家軟體工程師在矽谷- 讀者來信- 3X歲在台灣半導體業轉 ... 的評價
- 關於如何 轉職 軟體 工程師 在 [心得] 無經驗轉職軟體工程師全攻略- 看板Salary - Mo PTT 的評價
- 關於如何 轉職 軟體 工程師 在 [心得] 從資遣到外商,五個步驟轉職軟體工程師- salary 的評價
- 關於如何 轉職 軟體 工程師 在 [討論] 35歲轉職軟體工程師| Soft_Job 看板 - My PTT 的評價
- 關於如何 轉職 軟體 工程師 在 [免費講座分享] 跨領域轉職前規劃和轉職心路歷程 - PTT推薦 的評價
- 關於如何 轉職 軟體 工程師 在 [請益]非本科轉職仔offer選擇 - PTT 問答 的評價
- 關於如何 轉職 軟體 工程師 在 [面試心得代PO] 日月光/台積/廣達/力成/美光- Ptt 批踢踢實業坊 的評價
- 關於如何 轉職 軟體 工程師 在 [請益] 備份- 「EE轉職請益」海邊CESBG - PTT 熱門文章Hito 的評價
- 關於如何 轉職 軟體 工程師 在 [請益] 非本科轉職仔offer選擇- PTT評價 的評價
如何 轉職 軟體 工程師 在 旅行熱炒店Podcast Facebook 的最讚貼文
幾週前我們Ep.37的來賓、友台 耳朵旅行社 主持班底的頭目大飛跟我聯絡,說想要製作他們節目一週年的特別企劃,請我用幾分鐘簡單分享一個私房景點;既然有上友台節目的機會,又是講我最愛的旅行,當然就一口答應了!
於是隨便列了幾點、想說大概10幾分鐘一定可以講完吧,結果沒想到錄成了將近30分鐘的節目內容,還用一堆專有名詞轟炸聽眾,真的是個很自私又很多嘴的來賓呢(誤 😂
這集的內容是以「碎石路面上的慢速旅行」發想,畢竟我平常是個極度重視效率與快步調的人,旅行路上少數能讓我慢下來的方法,就是碰到想快也快不起來的情境,碎石路面正是其一。關鍵字大概包括: #阿拉斯加油管 #永凍層 #卑南溪 #惡地 #利吉層 #美國海外領地
除了這集之外,我也趁機整理了迄今上過9個友台、12集節目的訪問集數,歡迎大家有興趣去聽~ 感謝各路優秀創作者給我機會到處串門子、講一些自己節目上沒機會分享的內容,讓我可以偶爾享受放飛自我到處亂噴(而且還不用剪輯喔耶)的福利科科 😌
(以下列表整理至2021/8/29為止,大致依照企劃錄音順序排列)
🔊 解鎖地球 Unlock the Earth
Ep.60 波斯 x 突厥 x 蒙古混血的烏茲別克 | 帖木兒最後榮光撒馬爾罕
Ep.61 中亞五國:蘇聯製造 | 翻越吉爾吉斯 | 被監控的維吾爾
🔊 閨蜜的海外私房話
Ep.23 在美國如何轉職?美國新創公司跟大型跨國公司的工作環境比較
Ep.24 工程師跨界生活:海外工作者的旅遊人生
🔊 米國蚵仔煎 Oyomelette
Ep.26 美國工作:告訴你轉職新創公司軟體工程師血淚史
Ep.28 美國工作面試經驗分享!
🔊 無濾鏡異國生活 跟著恬恬與Fabianㄧ起刮世界地圖
Ep.33 美國生活、中亞旅行、西伯利亞鐵路懶人包
🔊 借問一下 | 台灣人的 FAQ
S2 Ep.38 City東西軍:美國適應不良症候群
🔊 那美人
S2 Ep.19 紐約和波士頓居住差異
🔊 Josie的候機室
Ep.63 曾經討厭英文卻在美國生活,專攻地理卻成為軟體工程師。有一種對世界的熱愛,叫繪製地圖
🔊 Pei Pei Talks
Ep.33 波士頓|那些除了Freedom Trail、哈佛、MIT以外的波士頓
🔊 耳朵旅行社
【一週年慶生禮物】《旅行熱炒店》的私房景點 台灣,台東縣197縣道;美國,阿拉斯加道爾頓公路
#台東 #travel #tour #backpacker #backpacking #mimi #阿拉斯加 #us #旅行熱炒店 #耳朵旅行社 #taitung #alaska #united_state #jerome_yang #197縣道 #dalton_highway #travelwok #travel_wok #digital_nomad
如何 轉職 軟體 工程師 在 紫微命理-果逸老師 Facebook 的最讚貼文
#找不到工作跟會不會新技能有關
#熱血沸騰到老不被淘汰的紫微斗數主星
因爲 #疫情 而突然失去工作的中年人,很容易恐慌焦慮起來,夜深人靜時還會自我懷疑,是不是要被淘汰了?還是要轉行了?我又沒有什麼技能轉行會順利嗎?如果一直找不到工作,該去創業嗎?要創什麼業才能賺錢呢?
有些軟體設計工程師才35歲也會失業耶,因為他會的技能跟不上現在科技發展的腳步👣了!所以失業不是中年人才會碰上,而是各個年齡層都會出現的狀況。能不能再次找到適合發展的工作,跟年輕與否沒有直接的關係,而是你有沒有不斷的更新並學習新的思維新的技能!
#熱血沸騰到老不被淘汰的紫微斗數主星
1.官祿宮有武曲
認真工作,不怕挫折,颳風下雨使命必達,堅持✊到底,喜歡挑戰,豐富的職場經驗,月月年年都達標,自我要求高,對商機嗅覺相當靈敏,不管轉職或創業如何波折,都能做到老,享受財富帶來的成就感。
2.官祿宮有破軍
喜歡破舊立新,新的訊息新的技能,或是還沒人嘗試的新鮮事,你都跑第一去學看看,很快就能上手,又不怕失敗,履歷表上充滿著豐富又專業的項目,是個炙手可熱的人才!
3.官祿宮有廉貞
不喜歡一成不變的工作型態,活潑、自信、訊息更新很快,很快就能掌握做事的節奏,加上天生的外交公關能力,累積了不少人脈,在轉換跑道時就能馬上接上,薪水不會短少。
4.官祿宮有太陽
協調整合能力有目共睹,正直磊落,有肩膀,是絕佳的幕僚。另外又能把每個人都打理得讚不絕口,走到哪裡歡樂就到哪裡,到老都是個搶手貨。
只有經歷過地獄般的折磨,才有征服天堂的力量。我們一起轉型一起努力💪💪💪
#紫微命理果逸老師
#命名取名
#風水堪輿
#嫁娶合婚擇日
#五行開運礦石手串
#結界咒
#去掉你所有不好的霉運
#讓你旺上加旺
#還你一個乾淨的心靈
如何 轉職 軟體 工程師 在 Untyped 對啊我是工程師 Youtube 的精選貼文
今天巧遇來 Google 借廁所看烏龜的哈佛姐 Alice
雖然廁所沒上到,免費的飯也沒吃到,但是卻從訪談中認識到學霸轉職的心路歷程其實不如大家預期的輕鬆!哈佛姐這次也在訪談中提到許多tips 跟建議,希望對於想轉職軟體工程師的你有所幫助~
哈佛姐的影片:https://youtu.be/P8X5-LoaCis
這集會聊到...
💬 Overview 💬
💙 哈佛姐是誰 0:55
💙 如何去常春藤名校 2:35
💙 學霸兒時夢想就很驚人 4:03
💙 哈佛 vs 博客來 4:45
💙 學霸轉職心得 6:03
💙 工程師職涯規劃 6:39
💙 讀書有用嗎 7:45
💙 為何要讀那麼多學位 9:14
💙 轉職需要學位嗎 9:40
💙 想跟剛進哈佛的自己說什麼 10:50
💙 遊完矽谷,哈佛姐想夢遊 __? 12:10
👇🏻 哈佛姐夢遊矽谷 AliceInSiliconWonderland 👇🏻
https://www.youtube.com/channel/UCB9ryAh6vhavNxALJUJT6-Q
📢 📣 📢 本頻道影片內容有輸出成 podcast 📢 📣 📢
可以在各大podcast平台搜尋「Untyped 對啊我是工程師」
請大家多多支持呀!!🙏🏻💁🏻♀️
#哈佛姐 #讀書有用嗎 #哈總統
一定要看到影片最後面並且在「YouTube影片下方」按讚留言訂閱分享唷!
【愛屋及烏】
YouTube 👉 https://www.youtube.com/c/Untyped對啊我是工程師
Podcast 👉 https://open.spotify.com/show/3L5GRMXmq1MRsliQt43oi2?si=3zgvfHlETeuGfp9rIvwTdw
Facebook 臉書粉專 👉 https://www.facebook.com/untyped/
Instagram 👉 https://www.instagram.com/untypedcoding/
合作邀約 👉 untypedcoding@gmail.com
-
Untyped 對啊我是工程師 - There are so many data types in the world of computer science, so are the people who write the code. We aim to UNTYPE the stereotype of engineers and of how coding is only for a certain type of people.
凱心琳: 一個喜歡電腦科學邏輯推理,在科技圈努力為性別平等奮鬥的工程師。
如何 轉職 軟體 工程師 在 Untyped 對啊我是工程師 Youtube 的精選貼文
LeetCode是所有軟體工程師找實習找工作都必用的平台,雖然大部分功能都是免費的,但天下沒有白吃的午餐,讓人好奇付費版 LeetCode Premium 到底有沒有用?今天讓使用過 LeetCode Premium 準備並通過 Google軟體工程師面試的我來分享一下我的使用感想!
影片中會告訴你如何免費拿到各種付費功能~
然後還有我到底刷了幾題通過了Google面試哈哈!
這集會聊到...
💬 Overview 💬
💙 LeetCode Premium功能簡介 1:25
💙 我覺得好用的付費版功能 1:50
💙 我覺得沒用的付費版功能 4:00
💙 如何免費得到類似的付費功能 1:50 3:00
💙 結論:LeetCode Premium 到底值不值得?5:58
💙 誰適合買 LeetCode Premium?6:38
💙 我刷了多少題通過 Google 面試 7:57
📢 📣 📢 本頻道影片內容有輸出成 podcast 📢 📣 📢
可以在各大podcast平台搜尋「Untyped 對啊我是工程師」
請大家多多支持呀!!🙏🏻💁🏻♀️
#LeetCodePremium值得嗎 #力扣刷題進階功能免費用
一定要看到影片最後面並且在「YouTube影片下方」按讚留言訂閱分享唷!
【愛屋及烏】
YouTube 👉 https://www.youtube.com/c/Untyped對啊我是工程師
Podcast 👉 https://open.spotify.com/show/3L5GRMXmq1MRsliQt43oi2?si=3zgvfHlETeuGfp9rIvwTdw
Facebook 臉書粉專 👉 https://www.facebook.com/untyped/
Instagram 👉 https://www.instagram.com/untypedcoding/
合作邀約 👉 untypedcoding@gmail.com
-
Untyped 對啊我是工程師 - There are so many data types in the world of computer science, so are the people who write the code. We aim to UNTYPE the stereotype of engineers and of how coding is only for a certain type of people.
凱心琳: 一個喜歡電腦科學邏輯推理,在科技圈努力為性別平等奮鬥的工程師。
如何 轉職 軟體 工程師 在 Untyped 對啊我是工程師 Youtube 的最讚貼文
掌聲歡迎我們的台版Joma - Terry from HackBear 泰瑞! Terry是一位非常優秀從小混混改頭換面,出國留學奮發向上,成功轉職軟體工程師,現在已經成為矽谷資深軟體工程師,還多才多藝能歌能舞能演戲。然而,這一切光彩的背後有哪些辛酸血淚,今天就讓我們一起跟Terry聊聊天,分享他的轉職成功關鍵跟職涯經驗!
HackBear Terry 的頻道 👉🏻 https://www.youtube.com/channel/UC_whOg3XES3Fihic53fvo4Q
視訊軟體推薦 Riverside.fm 👉🏻 https://riverside.fm/?utm_campaign=campaign_1&utm_medium=affiliate&utm_source=rewardful&via=untypedcoding
這集會聊到...
💬 Overview 💬
🧑🏻💻About Engineering Career🧑🏻💻
💙 小時候的夢想?有想過要當軟體工程師嗎?0:35
💙 轉職成為軟體工程師的契機?1:07
💙 轉職學習的過程?自學?上課?實習?2:00
😏 因為轉職而分手?3:30
💙 如何克服轉職時的自我懷疑?4:03
💙 如何拿到第一個軟體工程面試?4:50
💙 如果大學重來,會選資工系嗎?5:23
💙 會想要去讀研究所嗎?6:30
💙 會想當軟體工程師多久?想轉管理職嗎?7:42
💙 會想去FAANG 科技巨頭公司嗎?8:54
🦹🏻♂️About Life🦹🏻♂️
💙 會想全職做YouTube嗎?9:38
😏 Why Hack Bear? 10:15
💙 如何決定出國發展?有考慮回台灣發展嗎?11:08
💙 想回去告訴大學時期的自己什麼?12:05
💙 打算幾歲退休?12:52
📢 📣 📢 本頻道影片內容有輸出成 podcast 📢 📣 📢
可以在各大podcast平台搜尋「Untyped 對啊我是工程師」
請大家多多支持呀!!🙏🏻💁🏻♀️
#台版Joma #被軟體工程耽誤的演員 #熊熊還是女友
一定要看到影片最後面並且在「YouTube影片下方」按讚留言訂閱分享唷!
【愛屋及烏】
YouTube 👉 https://www.youtube.com/c/Untyped對啊我是工程師
Podcast 👉 https://open.spotify.com/show/3L5GRMXmq1MRsliQt43oi2?si=3zgvfHlETeuGfp9rIvwTdw
Facebook 臉書粉專 👉 https://www.facebook.com/untyped/
Instagram 👉 https://www.instagram.com/untypedcoding/
合作邀約 👉 untypedcoding@gmail.com
-
Untyped 對啊我是工程師 - There are so many data types in the world of computer science, so are the people who write the code. We aim to UNTYPE the stereotype of engineers and of how coding is only for a certain type of people.
凱心琳: 一個喜歡電腦科學邏輯推理,在科技圈努力為性別平等奮鬥的工程師。
如何 轉職 軟體 工程師 在 轉職軟體工程師根本沒那麼簡單- 工作板 - Dcard 的推薦與評價
敬告各位想轉職軟體工程師的,想要藉由轉職翻轉人生的,如果你本身對軟體沒有超級濃厚的興趣,只是因為錢比較多,請不要亂轉職,否則後悔不及。 ... <看更多>
如何 轉職 軟體 工程師 在 想轉職~軟體工程師,請各位大大給點意見 - Mobile01 的推薦與評價
如果轉軟體的動機只有"工作穩定, 待遇不差", 那麼你應該還有很多其他的選擇... 想要中途跳進來, 除非你真的很有熱誠學習力強, 或是你天生擁有寫程式的天份 ... ... <看更多>
如何 轉職 軟體 工程師 在 Fw: [心得] 無經驗轉職軟體工程師全攻略- 看板Soft_Job 的推薦與評價
※ [本文轉錄自 Salary 看板 #1SNPSGBY ]
作者: aquarianboy (高 見龍) 看板: Salary
標題: [心得] 無經驗轉職軟體工程師全攻略
時間: Fri Feb 8 22:49:38 2019
原文的標題是「轉職軟體工程師,你必須經歷的三個階段」
但想想太溫和了,還是來個殺人標題好了(笑)
網誌好讀版:https://ubin.io/v8GC9V
提醒1:因為年紀大所以故事文長,不想聽故事可以直接 end 看結論。
提醒2:本文是我個人從業以來的心得,可能有偏見或是帶有業配成份,請自行參酌。
---
本文開始:
「我不是本科生,適合寫程式嗎?」這樣的討論,是每個轉職工程師的人心中,一定
曾冒出來的問題。
其實像這樣非黑即白、非敵即友、非 true 即 false 的二分法命題很容易討論,也
很容易討戰,特別是文人相輕,自古皆然,誰也不想自己學的專業被批得一文不值,
所以只要立場不一樣很快就能戰起來。戰起來倒也不是壞事,只是到最後可能容易淪
為戰文而失焦… 啊,扯遠了。
很多學生,或是在網路上很多人會敲我,問我說「現在還適合轉職工程師嗎?會不會
太晚?我適合嗎?」坦白說,這些回應都應該要「個案回答」,但成為工程師這件事
情上,還是有一些通則。就透過過年這段時間寫了篇文章,來跟大家分享我觀察到的
通則。
從我的觀察中,無論原來的背景為何,只要通過這三個階段,就是一個「可以在求職
市場上立足的工程師」。
先分享一下我的背景:我從事資訊相關行業近 20 年,為了謀生曾經寫過 ASP、Perl、
PHP、Python、Flash(ActionScript)、Objective-C…等程式語言,最後落腳在 Ruby。
曾辦幾大型的技術研討會,也曾在國內、外的技術研討會當過講者。自己出過兩本跟
程式相關的書,有一本還賣得不錯,應該算是有資格談談這個議題(笑)。
最近寫文章很流行破題,先破個題,這三個階段分別是:
一、學習並熟悉至少一款程式語言。
二、善用開發工具解決問題,完成有用的專案。
三、多人協作,完成更大規模的專案。
記得當時年紀小
記得我高中時候,有一門叫「工藝課」的課,因為是普通高中,所以這種對升學沒直
接幫助的課常會被移去做別的事,但我真正開始接觸電腦程式正是這個工藝課。
那是個還有大、小片軟碟機、家裡電腦有比較大容量的硬碟就可以在同學之間秋好一
陣子的時代。當時學校教的是 QBASIC,但我完全不知道這到底要幹嘛,也不知道敲打
那些指令有什麼用途,所以只好巴著當時班上幾位比較厲害的同學跟他們拷貝作業,
改幾個字之後交差了事(那時候不要說什麼 Stack Overflow 可以抄了,連 Google
都還沒出生咧)。因此,在高中的時候,班上那些會寫程式的同學對我來說就跟神一
樣的存在。講到這裡,我突然可以理解現在其它人看到我開 editor 在寫程式的感覺
了。
附帶一提,那時候覺得可以用貼紙把磁碟片旁邊的孔貼起來就能防止資料寫入這件事
好酷!
是說,作業交了之後,就沒再碰電腦了。運氣不錯,高中畢業後,大學勉強有個醫學院
的後段班的科系可以讀。忘了什麼原因,差不多是大三還是大四開始學了 Photoshop,
後來因為這項技能,被學校電算中心找去幫忙設計海報,然後就在那邊開始學著用寫學
校的校務系統,就這樣誤打誤撞闖進程式設計的領域了,這也是我第一個寫有真正使用
者會用的系統(就是學校的老師跟學生啦)。
回到前面提到的「我不是本科生,適合寫程式嗎?」這個題目,我寫程式近二十年來,
除了自身成長之外(經驗值 & 體重),也近距離看過不少朋友從新手變成老手,我可
以跟大家說,寫程式這件事情跟是不是本科生並沒有直接的關係(其實這本身就是個假
命題?)
另外,從 2009 年開始從社群開始的社群分享,到後來的校園推廣、企業內訓及開班授
課,這十年下來,我看到不少從完全新手或是非資工、資管科系畢業,變成現在在業界
做得很好的朋友(當然也有更多失敗的例子),我有觀察這些朋友們的「成長軌跡」,
分別是這三個階段:
一、學習並熟悉至少一款程式語言。
二、善用開發工具解決問題,完成有用的專案。
三、多人協作,完成更大規模的專案。
關於軟體工程師…
在開始討論「新手成長必要的軌跡」之前,我們先聊聊「軟體工程師」吧!所謂的軟體
工程師,廣泛來說,就是在工作的時候,使用一種(多種)程式語言,撰寫電腦看得懂
的指令,叫電腦幫我們工作,這樣的角色就叫軟體工程師。
很多人對工程師有很多誤解,例如:「不從小開始學程式,長大就學不會了」,或是覺
得不是資訊相關科系畢業就沒辦法當軟體工程師。
工程師其實也有分領域,如果你的目標是進到 IC design house,若不是頂尖大學電機
資工碩博士,我想是沒什麼機會。如果你的目標是成為大數據、人工智慧方面的專家,
不具備數學、統計或演算法方面的背景知識,大概也沒什麼機會。
但如果是做出像 Dcard、活動通、Uber、honestbee…等網路服務的網站工程師,那就
算不是相關科系畢業也是很有機會的。還有一些關於成為工程師的迷思,也讓我晚一點
再跟大家說明!
---
階段一、學習並熟悉至少一款程式語言
如果你已經掌握一款程式語言,並且可以運用它來解 LeetCode easy,可以直接跳轉第
二段
成為「軟體工程師」的第一步,就是學會「一款程式語言」(不然咧~)。這句話聽起
來像幹話,但卻是很多新手入門的卡關點之一。很多人在學習程式的路上,一開始遇到
的挫折是「不知道自己該學什麼」。
不少人說,「聽說要先知道將來要做什麼,再選擇那個領域強項的程式語言」
常聽到說「如果想要做人工智慧、機器學習,你就是要選 Python,如果要做網站開發
的話,就是選…」這樣的說法。
其實,程式語言本身之間並沒有所謂的強弱,只有適不適合的差別而已。而決定「適不
適合」,是決定在每款程式語言的「生態圈」。這裡指的「生態圈」有兩個面向:
1. 用這個程式語言的人大多拿它在做些什麼事?
2. 這個程式語言週邊的套件或函式庫大多是在做哪方面的事?
以我最熟悉的 Ruby 來舉例的話,在這個圈子裡八成以上的人拿 Ruby 都是在開發網站
,而且它有許多的套件(包括框架)也都是網站開發相關的,所以用來做網站是一個很
好的選擇;Python 在資料分析、統計以及機器學習方面有許多相關的套件,所以才會聽
到「Python 適合用來做人工智慧、機器學習」這樣的說法。
對已經會寫程式的人來說,這自然不是什麼問題,但對於還不會寫程式的你來說,可能
連「類別、繼承、迴圈、變數…」基本概念都還不熟,讓你「開始開動寫程式」這件事
情的重要性,遠大於去評估該程式語言擅長什麼,挑一個讓你學習阻礙最低的程式語言
,建立「計算思維(Computational Thinking)」, 才是成為軟體工程師最聰明的第一
步,以下是我的建議:
1. 身邊朋友用什麼你就學什麼:
剛進入這廣大程式領域的新手,無助或挫折感是一定會有的,許多人會因為這樣而放棄
學習。事實上你需要的,就是當遇到問題的時候,旁邊有個人可以抓著問的人。所以如
果你的工程師朋友在用 PHP,你就學 PHP,在用 Python 你就學 Python,這樣做的好
處是,你遇任何有問題就抓著他問。新手時期遇到的問題,通常工程師朋友都能夠秒解
,這樣可大大降低學習曲線。
2. 挑一個「自己看得懂的教材」:
不要以為中文字你就看得懂,市面上有些(特別是翻譯書)是那種把你看得懂的中文字
放在一起之後變成你看不懂的句子的中文書。但無論是書還是網路上的教材,只要教材
上面教的內容你看得懂,那就跟著學。如果你英文還不錯,可以試試 CodeCademy ,這
個網站上的程式語言,我推薦 Ruby 跟 Python , 這兩個程式語言語法簡潔、且在上
面都有免費的課程。
但如果英文不太行,也可試試我自己寫的「為你自己學 Ruby on Rails」,至少如果你
有看不懂的地方可以留言或是來信問我(咦)
3. 跟著大家一起學:
如果你跟我一樣沒朋友,你可以來跟我學 Ruby(誤)。如果你人在台北,每週二晚上
在台北車站附近都有 Ruby 社群活動,可以帶著你的程式問題來找我們,或是來看看工
程師們平常都在做些什麼,不要害羞,這邊有許多願意協助你的人。
「那要學到什麼程度?」
我的建議是,把一個程式語言的基本念完之後(知道型別、懂得建立方法、懂什麼是
if else、知道迴圈怎麼用…),可以來試看看 https://www.codewars.com/ 最低的等
級(八級)。如果玩的過關的話,就可以先不用鑽太多牛角尖,先往下一階段走,只
要你還走在工程師的路上,終究是會回來學些更基礎的東西,現在先不著急。
小結:
挑選一個喜歡的程式語言(有朋友在使用、或是有好的教材&社群),然後把這個程式
語言練習到能夠解 https://www.codewars.com/ 最低的等級(八級),就可以開始往
下一個階段走囉!(如果不知道要學什麼,就在 Codecademy 上面學 Ruby 吧 )
---
階段二、善用開發工具解決問題,完成有用的專案
許多人對「寫程式」這件事情的誤解,工程師們並不是把靠自己把所有的程式碼寫出來
。如果要打個比方的話,軟體工程師跟機車行修車的師傅在做的事情還滿像的。修車師
傅了解各個零件的用途、應該裝在哪邊以及各自的優缺點,找到對的「工具」解決問題
,軟體工程師在做的事情很螱時候也是差不多這樣。
回想一下,如果你騎的機車的輪胎沒氣了,你把機車牽到機車行,師傅一開始應該是會
幫忙檢測到底是輪胎哪邊有破洞,能不能用修補的方式就處理掉,還是破損太嚴重需要
換一個新的輪胎。(應該不會是一進店裡就說要拆排氣管、拆座墊,那是黑店!)
軟體工程師們的工作,第一步也是先定義出問題(issue),再來就是決定這個問題要全
部自己做掉還是找現成套件來幫忙完成功能。
問題定義出來之後,我們通常會把這些問題記錄在某個系統,然後針對每個問題開一張
「票(ticket)」,把這張「票」指派給某位同事負責。這個「票」可以是實體的,可
能有些單位會用便利貼把它們一張一張貼在牆上:
或是有些單位會用 Trello 之類的軟體來做類似的事。不管是實體的或是虛擬的,每一
張「票」,就是一項任務。當把「票」解決之後,可以把狀態改成「已完成」或「待確
認」,當所有的任務都完成後,就等於是把功能做完了。
像這樣的流程是目前業界常見的開發流程,也就是工程師們每天在做的事情。
該做什麼專案?
問題是,如果你是個剛學完程式語言基礎的新手,要做什麼專案比較好?我有以下建議:
1. 做你自己會用的專案:
如果你是個上班族,你每天應該遇到「中午要吃什麼」、「喂,大家要訂雞排嗎」之類
的問題,你就可以自己試著動手寫個「隨機午餐推薦系統」或是「下午茶揪團系統」給
自己或是公司的同事使用。這樣的系統難度不會太高,而且在畫面的設計上一開始也不
需要太美觀,再加上你的同事可能會給你像是「你可以加上自動計算金額或付款的功能
嗎」之類的反饋,讓你不斷的加強功能的同時,也學到了「把客戶的需求轉換成系統功
能」的功力。
2. 致敬你自己也喜歡的產品:
模仿是最好的學習。如果你完全不知道該做什麼樣的專案的話,你可以直接找一個你自
己本來就很喜歡也有在用的產品,直接進行一個復刻的動作。在復刻的過程一定會一直
碰壁,不過學習技術就是這樣的,在不斷的碰壁的過程中,最後把牆給撞破,學會更厲
害、更成熟的技術。這麼做的好處,也可讓自己可以做出更貼近業界產品,而不是躲在
洞穴裡自己練功,還以為外面還在撥接的時代。
---
階段三、多人協作,完成更大規模的專案
當你已經學會了一個程式語言,也用這個程式語言做了一些有人在用的作品,那你離
「合格的工程師」可能就沒有多遠的距離了。
在這個狀態,你可以再往這三個方向再做加強:
1. 多人協作:
當你一個人寫程式、且未來也只有你一個人會維護這個程式的時候,那麼,你要怎麼
放置你的檔案、怎麼樣拆解模組,那是你個人的選擇,但,一個合格的工程師,不會
是「只能一個人工作」,而是能夠與別人一起協作。這個時候你需要的就是學會版本
控制以及了解更多的模式(pattern)。
2. 了解商業需求:
在一個產品團隊當中,規劃「產品功能」不會單純只是 PM 的事情,如果放棄了這個
技能,就是把自己更往「碼農」的地方推。將自己訓練成「能夠跟產品 owner 溝通商
業目標」,並試著把「商業價值」轉為「功能」,除了讓自己可以保留彈性,若不想
要一輩子走工程師,可以轉 FAE, PM,甚至也是將來要走到技術管理職,所必備的技
能之一。
3. 專案管理:
專案管理不是 PM 專屬的技能,身為一個好的工程師,專案管理是延續上一個技能「了
解商業需求」;在了解商業需求後,如何將大功能拆解成數個小功能,並且做做工持的
估算時,考慮到維護性、彈性。
要怎麼練習?
答案很簡單,你可能也聽到不想聽了,就是「做,就對了」。挑一個自己有興趣的主題
、問身邊有沒有人有想法想做網站,如果真的什麼想法都沒有,你也可以試試我們公司
新人內部教育訓練的教材。
簡單的用一句話講完上面三點的話,就是:
把從「商業需求」來的「功能」,透過「多人協作」,在「估計好的工時」完成「程式
碼」,並思考到「維護性」以及「彈性」。
對我來說,如果你能做到以上的事情,就是一個「合格」的工程師了。
---
結論
其實寫這篇文章,是很容易有爭議的。爭議的點可能有:
1. 什麼是「合格」?
你的合格不是我的合格。對有些人來說,必須要了解某方面的知識了解到非常透徹,別
人怎麼問都問不倒,那麼,才叫做合格。也有些人覺得,先不思考未來會發生什麼事情
,只要能夠運用、只要能夠交付商業價值,就是合格。
對我來說,我心目中的「合格」是市場導向的,如果要用薪資來量化的話,大概就是「
能夠在台北找到月薪 35~40K 以上工作的工程師」,就算是一個合格的工程師。
2. 階段二完成已經可以找工作,為何還需要階段三?
其實,大部分所謂「本科生」大學畢業,不一定有經歷過「多人協作專案」這回事。你
也許會好奇不是本科生畢業都有所謂的「畢業專題」嗎?那個不是好幾個人一起做的嗎?
這個嘛…,我們也都當過大學生,你有真的參與過就會知道,其實做專題的人就是那少
數幾個人,這跟業界所謂的「多人協作」還有一段距離。
所以,該選哪一條路開始?
其實軟體工程師也分很多種類,有寫手機應用程式的,有管系統的,有負責資料庫的,
有負責演算法的。如果你是非本科入門,我建議走「前/後端工程師」,也就是俗稱的
「Web 工程師」。
最近大數據、人工智慧當道,新聞媒體、報章雜誌們爭先報導有多火紅、職缺數量多少
、薪水多高…,這些都是事實,但,他們都只缺「有經驗的人」。尤其以人工智慧、機
器學習來說,這個領域特別不缺新手,而且這個背後所需的技術門檻相對的高。以目前
大部分的網路公司來看,Web 以及 App 方面工程師所需要的數量遠多於人工智慧工程
師,在數量稀少、競爭高的情況下,非本科入行或沒有底子的人很難直接跨到人工智慧
的領域。
相對的,Web 工程師的需求量每年都非常的穩定,且從最新手入門 35~40K 的職缺、到
在台灣年薪 200 萬以上的工作都有。
「網站不就是用 dreamweaver 拉一拉、點一點就能做出來的東西嗎?」那是遠古時代的
事情,現在你常使用的網站,例如:Gmail、Facebook、Instagram 這些網站,都是軟體
工程師撰寫出來的「軟體」, 跟以前所謂的「Dreamweaver 拉一拉」就能出來的網站,
差距大概就是狗跟熱狗的差距。
選擇 Web 工程師除了職缺多以及相對的容易入門外,「國際移動能力」也是個很大的優
點。「國際移動能力」的意思是指這個技能,無論是在台灣、日本還是美國,基本上只
要是開發網站,雖然每間公司用的技能也許不太一樣,但的共通性是很高的。
舉個極端一點的例子,以一個行銷或是業務人員來說,通常要真正創造產值、大概要一
個月以上,甚至半年。但對一個 Web 工程師來說,上班的第一天就有產出並不是天方夜
譚。正常來說,新人到部後一到兩個禮拜熟悉公司的環境與流程,一個月內對公司專案
有貢獻是很正常的。因此,當這職業有這項特色後,就容易聘請「語言不精通,但技術
很好的外國人」,這也是為什麼許多寫 Web 的人,非常容易出國工作的原因。
寫了這麼多,最後簡單的幾點結論:
1. 對於新手來說,不要花太多時間在「評估該學什麼比較好」上面,直接動手寫看看。
2. 試著找個專案來練習,只有實際進行專案開發,才會知道會在哪邊撞到牆。
3. 參與社群,看看其它業界的朋友都在做些什麼事。
4. 對新手來說,Web 工程師可能會是個最容易上手、風險相對較低的選擇。
共勉之!
--
https://kaochenlong.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.119.107
※ 文章網址: https://www.ptt.cc/bbs/Salary/M.1549637392.A.2E2.html
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: RiverSki (220.141.55.66), 02/09/2019 15:54:02
... <看更多>