2020年12月30日 星期三

聽說你最近在刷題- 軟體工程師的面試一定會遇到的資料結構及演算法關卡



2022 年 5 月更新: LeetCode 的折扣連結於 4/30 截止, 未來有新的折扣的話, 我會再更新文章。 

2021年 9 月更新:
從 8 月開始,收到許多剛到美國唸書的讀者來信請求幫忙內推 2022 年暑假的實習工作,如果你還不知道的話, 請查看我另外一篇文章來了解內推網路:最有效得到面試的方式- 內部推薦: 尋找內推資源 & 歹晚郎互助網絡 (2021 年 8 月更新)。軟體工程師的面試關卡很多都是資料結構及演算法, 所以大家在準備實習也都不免俗的要刷題一下。 我許久沒有看 LeetCode, 發現現在 LeetCode 的功能越來越多, 還有像是學習資源文章及 study plan 的功能,把大家要準備面試的各種需求都越來越在他們網站上一站搞定。 今天除了再次分享去年寫的文章(還有折扣碼), 還要大大感謝 LeetCode 願意提供 3 個 7 天 Premium 會員試用來給予讀者, 讓大家面試前可以使用如公司 tag 的功能來做複習。 此外感謝大家一直以來的支持, 我也自掏腰包提供購買 3 個 1 個月的  Premium 會員試用來加碼, 再請大家到這篇 FB 文章參加抽獎活動(活動已截止)
  
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 又是什麼。 

2020年12月27日 星期日

職場提升心得(三): 職場上的各式溝通


我最近開始寫了職場提升心得的系列文, 職場提升心得 (二): 如何不斷的在公司增加自己的影響力探索在公司建立更大影響力的方式, 職場提升心得 (一): 觀察及反省自我能力 則是反思自我, 在自我能力強的領域要多加發展才可以更順利,今天則是分享一下職場上的各式溝通。 


軟體工程師做了一段時間後,我們會逐漸負責越來越大的專案項目、有更多跨組織的溝通、協作,在上一篇文章提到, 許多專案是藉由和不同組的成員討論、在這個過程去發掘一些沒有被滿足的痛點, 很多很大影響力的專案就是從不同組彼此不同的激盪, 整理發現的!


在不同的時期, 我們可能會有工作上的摩擦、不滿, 可能是因為合作小組彼此項目優先順序定義不同、時程規劃、或是責任安排上有異議,或是和領導階層的目標理解不一致。 我從過往以來的經驗是要先假設每個人都有好的工作意圖 (good intentions), 大家都是一起為大組織及公司最大的利益著想, 先有著這個假設後, 再來細分析為什麼有摩擦或不快。