聽說你最近在刷題- 軟體工程師的面試一定會遇到的資料結構及演算法關卡 (& 分享 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
同時也有13部Youtube影片,追蹤數超過7萬的網紅在地上滾的工程師 Nic,也在其Youtube影片中提到,自學得找方法,漫無目的的努力會消磨你的意志。想成為軟體工程師之前,得先學會和自己對話,這部影片是最近很多關於轉職或就業相關的伙伴提出的問題,回覆的有點多次了,就直接整理起來做成一支影片希望幫助到想成為軟體工程師的你。 章節: 00:00 如何與未知相處? 01:19 學習那個程式語言最有效益? 0...
程式語言 英文 不 好 在 Cheers:快樂工作人 Facebook 的最佳解答
唐鳳政委:「學英語最好的方法,就是不斷找人講。」
從研究程式語言設計開啟了英文學習之路,
從聊天室的對話開始,不被既有的文法束縛,
不要怕犯錯,把英語當做溝通工具而非目的,
就可以搭配不同時區的節奏和全世界交朋友。
【2030雙語國家政策】
臺灣成為全球經濟的關鍵能力,
國際化的職場中,用英語表達想法與觀念勢在必行,
政府全力培育臺灣雙語人才,
高等教育雙語化、完善高中以下教育階段雙語化條件,
培育臺灣人才接軌國際,
為下一代打造更好的未來。
#Cheers快樂工作人 #國發會 #唐鳳 #國家雙語政策 #國際化人才
程式語言 英文 不 好 在 Facebook 的精選貼文
真沒想過我會推薦數位親子桌遊!
(因為我就是不太讓孩子碰3C的媽媽呀~XD)
只能說疫情期間,不得不開始線上課程,也發現3C教學的趨勢&優點,「 不想妥協,那就慎選!」
為孩子挑選適合的產品、遊戲,讓孩子使用3C產品的時候,不只是呆愣愣坐著看影片,更可以在互動遊戲中學習、思考、邏輯建構,甚至連英語環境都不陌生!
太推薦「 #TACTO數位親子桌遊」了!
(相信我,連大人都可以一起玩得很開心XD)
📌分享文:https://www.chanchiy.com/posts/27004/
TACTO數位親子桌遊共有4組遊戲盒,每款遊戲都是從STEAM學習為出發點,設計了不同主題與難度。(每組遊戲盒中還有多款遊戲、超多關卡)
● #經典桌遊:娛樂性、互動性最高,4歲就可以操作,可1~4人玩,共有4款遊戲,有小孩最愛的圈叉遊戲,也有像大富翁一樣的擲骰子破關遊戲,還有我跟史哥半夜玩起來的跳棋遊戲,很適合親子同樂、一家人一起玩!
● #程式語言:內含3款遊戲,用直覺的圖像取代複雜的程式語法,讓小朋友動腦思考,並搭配簡單的道具操作,就可透過遊戲建立程式設計最重要的邏輯思考力!
● #雷射光學:認識光的反射、通過三稜鏡就會分散成七彩光線!結合策略思考,動手動腦幫遊戲角色解決難題。
● #西洋棋:有新手教學和練習單元,也可以雙人對弈或和AI下棋,是一款新手、高手都能駕馭的好玩遊戲。
我替莉安(6Y)&澄(4Y)選了「 #經典桌遊」和「 #程式語言」兩組遊戲盒,全英文發音、介面真的不用太緊張,因為畫面引導的很棒,孩子看著畫面就能直覺反應動作!(家長陪玩也順便練一下自己英文程度XD)
「數位+益智」的部分,TACTO數位親子桌遊真的走太前面了!
也絕對會是未來學習趨勢,因為不只是無靈魂的點擊螢幕或觀賞影片,每一款遊戲都化被動為主動,啟發讓孩子積極「思考」、主動「學習」,邏輯建構及解決問題的方法,這些都是我們希望孩子學會的呀~
數位親子桌遊與傳統桌遊最大的不同,就是家中不會到處都是桌遊的零件!而且通常傳統桌遊只玩一個遊戲,TACTO數位桌遊把所有遊戲都收集到平板裡,節省家中空間之外,要帶出門也很方便,加上遊戲原廠APP持續更新,可玩性&遊戲內容豐富度都更提升!
--
▶早鳥訂購享65折 https://wesmilegood.cc/LMNcb/chanchiy
▶TACTO總代理 GoSteam 開心玩出學習力
#TACTO #PlayShifu #ItsTactoTime #桌遊 #親子共玩 #親子桌遊 #益智遊戲 #兒童程式教育 #英文遊戲
程式語言 英文 不 好 在 在地上滾的工程師 Nic Youtube 的最佳解答
自學得找方法,漫無目的的努力會消磨你的意志。想成為軟體工程師之前,得先學會和自己對話,這部影片是最近很多關於轉職或就業相關的伙伴提出的問題,回覆的有點多次了,就直接整理起來做成一支影片希望幫助到想成為軟體工程師的你。
章節:
00:00 如何與未知相處?
01:19 學習那個程式語言最有效益?
03:59 英文、數學能力不好能寫程式嗎?
06:02 如何有效的自學?有推薦的學習資源嗎?
08:01 工程師是不是都很高薪?
影片中提到的播放清單 【12 Web Apps in 12 Weeks】
https://www.youtube.com/playlist?list=PL23ZvcdS3XPLNdRYB_QyomQsShx59tpc-
喜歡影片的話!可以幫忙點個喜歡以及分享、訂閱唷!😘
━━━━━━━━━━━━━━━━
⭐ 蝦皮賣場: https://shopee.tw/bboyceo
⭐ 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
⭐ Github: https://github.com/niclin
⭐ Podcast: https://anchor.fm/niclin
━━━━━━━━━━━━━━━━
🌟 任何問題或合作邀約信箱: niclin0226@gmail.com
#工程師 #轉職 #自學 #前端 #後端
程式語言 英文 不 好 在 在地上滾的工程師 Nic Youtube 的最佳解答
不是年資夠長就是資深工程師,有些人只是 1 年的實力重複了 10 年,資深工程師不只要技術能力好,有更多無法取代的軟實力以及影響力,想成為更厲害的工程師,你還得是 Team player
我寫過的文章「如何成為失敗的軟體工程師」 https://blog.niclin.tw/2019/08/26/how-to-be-a-bad-developer/
喜歡影片的話!可以幫忙點個喜歡以及分享、訂閱唷!😘
━━━━━━━━━━━━━━━━
⭐ 蝦皮賣場: https://shopee.tw/bboyceo
⭐ 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
⭐ Github: https://github.com/niclin
⭐ Podcast: https://anchor.fm/niclin
━━━━━━━━━━━━━━━━
🌟 任何問題或合作邀約信箱: niclin0226@gmail.com
#工程師 #前端 #後端
程式語言 英文 不 好 在 Untyped 對啊我是工程師 Youtube 的最佳解答
Coding vs Programming 軟體工程師在 編碼 or 編程? | 5 Differences between Coding and Programming【電腦說人話】
-
軟體工程師到底在幹嘛?內行外行怎麼說?
Coding? Programming? 程式設計?編碼編程?想到電腦科學就會想到這些詞,但是它們到底是什麼意思?差別又在哪呢?
讓凱心琳告訴你這兩個詞的5大層面的差別!
(Tools 使用工具, Expertise 專業知識, Approach 方法途徑, Outcome 成果產出, Learning 學習過程)
在這個人手好幾台電腦的時代,實在是有好多電腦的詞聽不懂。Cookie 不再是好吃的餅乾,Class不再是學生上的課,Bug 因為非常不一樣的原因而令人討厭。Coding, Programming 兩個詞表面上好像一樣,但是實際上卻截然不同。好多詞不懂~沒關係!讓 Untyped 為你解惑!
【電腦說人話】這個系列是希望透過口語化的方式,透過生活中的例子去介紹一些看似艱澀像外星語但實際上卻不難懂的電腦科學專有名詞。希望能讓曾經對這些詞彙充滿畏懼與疑惑的妳,能夠不再害怕,勇敢學習Computer Science!
【㊫ 電腦科學/軟體工程 學習資源 📖】
全端工程師密技 Full Stack Eng - Career Path (Codecademy)
https://bit.ly/3niTwLN
前端工程師密技 Front End Eng - Career Path (Codecademy)
https://bit.ly/32K1eql
用Scala學習函式程式設計
https://bit.ly/2IF0Thv
Scala 函数式程式設計原理
https://bit.ly/3kBQXTb
平行程式設計
https://bit.ly/3pCeaZf
Android 應用程式開發 專項課程
https://bit.ly/3lGCUwW
普林斯頓大學 電腦科學 演算法 基礎理論
https://bit.ly/3nxomAh
Go 語言學起來
https://bit.ly/35AWhlv
Parallel, Concurrent, and Distributed Programming in Java 專項課程
https://bit.ly/2IGnlH4
Java 軟體工程基礎課程
https://bit.ly/3fa4gJi
全端開發 跨平台手機app 開發 完整課程
https://bit.ly/2UCGWum
#程式設計 #Programming #電腦說人話
一定要看到影片最後面並且在「YouTube影片下方」按讚留言訂閱分享唷!
-
歡迎留言告訴我你的想法,或是你想認識的程式語言唷!
每(隔週)週四晚上9點更新,請記得開啟YouTube🔔通知!
-
【相關連結】
Coding vs Programming
[https://www.codementor.io/@edwardbailey/coding-vs-programming-what-s-the-difference-yr0aeug9o]
[https://www.educba.com/coding-vs-programming/]
[https://www.goodcore.co.uk/blog/coding-vs-programming/]
【愛屋及烏】
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.
凱心琳: 一個喜歡電腦科學邏輯推理,在科技圈努力為性別平等奮鬥的女工程師。
-
This video contains affiliate links, which means that if you click on one of the product links, I'll receive a small commission.
圖片影片音效:[giphy.com] [pngwave.com][freesound.org][soundbible.org]
【Disclaimer 聲明】
Some links are affiliated.
上面有些連結是回饋連結,如果你透過這些連結購買商品,我可以得到一些小獎勵,但不會影響到你購買的價格,甚至會是更低的價格!謝謝你的支持💕