ref: https://towardsdatascience.com/five-things-i-have-learned-after-solving-500-leetcode-questions-b794c152f7a1
本文是作者敘述自身解決 500 題 leetcode 後的一些想法
對於每個軟體工程師來說,基本上都有聽過 leetcode 這平台,也勢必理解刷題這個行為
Leetcode 中的題目五花八門,大部分都聚焦於資料結構與演算法類別,而這類型的刷題也變得愈來愈普遍廣泛,
不論公司規模與否,很多都會需要透過刷題來進行面試,然而這類型的行為的確也出現了不少討論的聲音
譬如面試者擅長 leetcode 但是這項能力卻沒有辦法反映到日常工作所需要的真正技能上。
不考慮到底 Leetcode 這類型的刷題行為到底好不好,作者列出五個自己刷題完畢後學到的一些心得
1) The importance of Data Structures & Algorithms
2) There is always someone more knowledgeable than you
3) An edge case can ruin your day
4) Hard work beats talent…
5) Planning is an essential part of software development
The importance of Data Structures & Algorithms
Leetcode 本身不是一個資料結構與演算法的教學平台,不過其本身的題目可以幫助你瞭解更多資料結構與演算法使用的場景與使用方式。
作者提到這類型的基本功應該是每個軟體工程師都要有的,特別舉例不久前一篇玩家修改 GTA V 裡面某些資料結構的處理方式,使得整個讀取速度提升70% 的範例來闡述為什麼
需要掌握好資料結構與演算法。
There is always someone more knowledgeable than you
Leetcode 的解題過程中,最大的特點永遠都是留言區,裡面總是會有各種神奇厲害的解法,甚至會出現比官方解答更漂亮的解答方式。
作者自述有很大半的時間其實都是再重新實作這些很棒的解法。
這經驗讓作者體會到,人外有人天外有天,永遠都有比你厲害的人,工作上要盡可能的向那些厲害的人討教與學習,他們花了很多時間與經驗得來的知識都是非常寶貴且難得的,能夠學會就盡量學會。
An edge case can ruin your day
作者認為 Leetcode 的題目都擁有豐富的測試資料,包含了各種極端案例,這也意味刷題的時候如果沒有考慮各種不同情境常常沒有辦法順利通過問題。
這種思考過程的訓練對作者帶來了實質上的幫助,工作上能夠用更嚴謹的思路去思考每個撰寫的程式,思考有沒有可能有任何遺漏的案例可以在寫程式的過程中就找出來。
Hard work beats talent…
這句話的全文是
Hard works beats talent when talent doesn't work hard.
就算本身不是天選之人,但是透過努力還是有機會在天選之人松懈怠惰之時展現出自己強大與良好的一面。
註: 我想於如果天選之人比你還努力...那就讓天選之人拯救世界吧,我們還是做些簡單的事情就好
Planning is an essential part of software development
從眾多練習與面試的過程中,作者瞭解到 Coding 其實只是解決問題的一小部分,而聽到問題瞬間就馬上開始寫程式非常有可能走冤枉路。
軟體開發過程充滿各種不確定性,很多時候面試時遇到的問題其實都是那種曖昧或是不夠完整的敘述,再沒有掌握問題的全貌前就貿然寫程式常常只會愈走愈糟。
此外,軟體開發除了撰寫程式外,還必須要針對解決方法進行分析,該方法帶來的優點都需要仔細思考,同時也要確保團隊內對於該方法有一致性的同意才可以開始往下去撰寫程式。
作者最後強調,這個概念是真實工作中最重要的一環,透過溝通去理解所有的需求,確保一切都有共識後才開始實作。
剩下有興趣的歡迎閱讀全文
同時也有2部Youtube影片,追蹤數超過2萬的網紅Untyped 對啊我是工程師,也在其Youtube影片中提到,拖了三個月的軟體工程師面試SOP在此獻上!把面試當作刷題的我,把面試經驗技巧,努力濃縮再濃縮,還是有15分鐘的精華,只要五步驟,面試照著做,保證你 ace the coding interview like a PRO (most of the time). 這集會聊到... 💬 Overvie...
「leetcode教學」的推薦目錄:
- 關於leetcode教學 在 矽谷牛的耕田筆記 Facebook 的精選貼文
- 關於leetcode教學 在 Johntool-工具王阿璋 Facebook 的最佳貼文
- 關於leetcode教學 在 Untyped 對啊我是工程師 Youtube 的最讚貼文
- 關於leetcode教學 在 李黎哈哈LilyHaha Youtube 的最佳貼文
- 關於leetcode教學 在 Re: [請益] 刷Leetcode的正確姿勢? - 看板Soft_Job 的評價
- 關於leetcode教學 在 python教學、LeetCode在PTT/mobile01評價與討論 的評價
- 關於leetcode教學 在 python教學、LeetCode在PTT/mobile01評價與討論 的評價
- 關於leetcode教學 在 ALPHA Camp - 【4/19 LeetCode 說明會】 #帶你搞懂刷題遊戲 ... 的評價
- 關於leetcode教學 在 #討論刷LeetCode - 軟體工程師板 | Dcard 的評價
- 關於leetcode教學 在 leetcode教學2022-在Facebook/IG/Youtube上的焦點新聞和 ... 的評價
- 關於leetcode教學 在 leetcode教學2022-在Facebook/IG/Youtube上的焦點新聞和 ... 的評價
- 關於leetcode教學 在 [心得] Leetcode 刷題解答與Python 3 小技巧分享- Tech_Job 的評價
- 關於leetcode教學 在 Re: [討論] 怎麼讓識別證永遠正面朝外? - tech_job | PTT職涯區 的評價
- 關於leetcode教學 在 Re: [討論] 怎麼讓識別證永遠正面朝外? - PTT 熱門文章Hito 的評價
leetcode教學 在 Johntool-工具王阿璋 Facebook 的最佳貼文
【#程式教學】調查系列EP3 寫程式語言最惱人的事 來看你是不是也中招
Coding 的時候往往會遇到許多 Bug,當然,讓人不爽的狀況可說是滿天飛,
我特別統整了從大一到現在經歷的惱人事蹟,快來看看你是不是也中招~~~
一、Coding Style 糟糕型:
變數亂取名、排版不規則、一人邏輯世界...
二、隊友耍廢型:
組員、隊友又說電腦壞掉了,打不出來,或是常常擺爛,
還不如自己做還比較快呢!快!Tag你那個最愛耍雷的朋友!!!
三、沒靈感型:
腦袋空空,沒靈感94沒靈感😑
程式什麼的明天再說,先打開狼人殺讓我看一波(單押X1
四、吵鬧女友型:
Bug 都底不出來了,還因為遠距離跟我吵架?真的是😡😡
看來今天哄完女友、再打 code 都要天亮了啊
為我的肝默哀......
五、Core Dump 型:
寫程式最怕遇到的 Core Dump,這種錯誤絕對是大一資工的心魔👻
明明邏輯都正確阿... 到底為什麼QQ
如何改善這些惱人事蹟呢? 你可以試試以下方法👇
Input:
✅正視自己的 Coding Style,參考 GitHub 良好 Coding Style
✅提升自己的能力,或是找到更好的隊友抱大腿(?
✅Coding 之前,先定義好 Spec,免得徒勞無功
✅請教 Google 大神,搜尋相關關鍵字
✅從 LeetCode 訓練自己,每天持續練習
✅被題目擊敗或是僵持半小時才能參考解答
✅適度的放輕鬆,過度僵持在一個邏輯時,不如去陪陪女友,或是睡一場好覺
Output:
⏩誕生出一個完美的爆肝工程師
想知道更多?
【歡迎訂閱Johntool-工具王阿璋 @johntooltw ↓↓↓】
facebook► https://www.facebook.com/JohntoolTW/
instagram► https://www.instagram.com/johntooltw/
收到更多 #程式教學 #不務正業工程師 系列!
#程式 #程式語言 #engineer #engineering
#code #coding #CodingStyle #GitHub #LeetCode
#靈感 #耍廢 #女友 #Coredump #Google #Structure
#雷 #雷隊友
#分享 #share #Johntool #工具王阿璋
leetcode教學 在 Untyped 對啊我是工程師 Youtube 的最讚貼文
拖了三個月的軟體工程師面試SOP在此獻上!把面試當作刷題的我,把面試經驗技巧,努力濃縮再濃縮,還是有15分鐘的精華,只要五步驟,面試照著做,保證你 ace the coding interview like a PRO (most of the time).
這集會聊到...
💬 Overview 💬
💙 什麼是 coding interview? 1:20
💙 面試必備 - 比履歷還重要的東西 3:44
💙 面試流程 1 - 聽問題問問題 4:15
💙 面試流程 2 - 如何分析問題 6:00
💙 面試流程 3 - 如何寫程式碼 8:45
💙 面試流程 4 - 測試程式碼 10:10
💙 面試流程 5 - 再問更多問題 12:08
💙 面試流程 0 - 寒暄問暖不囉唆 13:30
🙌🏻 面試好書推薦 🙌🏻
👍🏻 準備軟體工程師面試必備書
Cracking the Coding Interview 提升程式設計師的面試力 https://shp.ee/y7rbjqk
https://www.books.com.tw/products/0010881287
👍🏻 當畫家遇上演算法 看圖學演算法
Grokking Algorithms 白話演算法!培養程式設計的邏輯思考
https://shp.ee/k3jtmvg
👍🏻 置入生活中的演算法
Algorithms to Live By: The Computer Science of Human Decisions 決斷的演算:預測、分析與好決定的11堂邏輯課
https://shp.ee/rvvh89e
https://www.books.com.tw/products/0010761815
👍🏻 Logitech 羅技 MX Keys 無線鍵盤 https://shp.ee/ptt9wtm
👍🏻 Logitech 羅技 MX Master 3 無線藍牙滑鼠 https://shp.ee/pu9qtcc
👍🏻 Backbone 人體工學椅 https://shp.ee/fgi35c9
👍🏻 Tresanti 電動升降桌 https://shp.ee/9wmht7r
👍🏻 logitech 羅技 StreamCam https://shp.ee/fbvgbvc
👍🏻 RODE Lavalier GO 領夾式 小型麥克風 https://shp.ee/nx6w9vc
📢 📣 📢 本頻道影片內容有輸出成 podcast 📢 📣 📢
可以在各大podcast平台搜尋「Untyped 對啊我是工程師」
請大家多多支持呀!!🙏🏻💁🏻♀️
#面試SOP #工程師求職 #面試流程大剖析
一定要看到影片最後面並且在「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.
凱心琳: 一個喜歡電腦科學邏輯推理,在科技圈努力為性別平等奮鬥的工程師。
【Disclaimer 聲明】
Some links are affiliated.
上面有些連結是回饋連結,如果你透過這些連結購買商品,我可以得到一些小獎勵,但不會影響到你購買的價格,甚至會是更低的價格!謝謝你的支持💕
leetcode教學 在 李黎哈哈LilyHaha Youtube 的最佳貼文
🟢阿永老師的第一堂德語課:
https://hahow.in/cr/deutschmitbrezel
[德國工作系列]
找工作這條路總是孤單的,而且在德國或歐洲找工作,身為一個外國人,總是比較困難的,除了語言這個層面,更現實的就是簽證與身份上的考量,阿永老師在碩士畢業之後,經歷的八個月的時間,才找到目前這一份軟體工程師的工作,不管你是否在歐洲找工作,我覺得他裡頭分享的關於找工作的心態,都很適合剛畢業的新鮮人。至於德國工程師的面試如何準備,或是履歷上有什麼要點,阿永老師都會在影片當中提到喔!如果大家有興趣的話就繼續看下去吧~
▷▶︎ 幫助你更快的找到問題
-------------------------
00:29 第一份工作找多久?
00:47 在歐洲找工作有什麼要點嗎?
02:21 找工作的地點考量?
03:11 面試的形式還有面試的問題?
05:24 用哪些資源準備面試?
06:40 如果一直被拒絕,要如何調適心情?
08:42 如何跟人資談薪水?
▷▶︎ More LILYHAHA
----------------------
▪︎ Instagram: https://www.instagram.com/lily.hahahahana/
▪︎ Email: [email protected]
(更多留學諮詢、合作,請來信)
▷▶︎ About LILYHAHA
---------------------
留學不在只是夢想,過去在準備德國留學的路上,資源總是相對英美少的很多,因此希望透過YouTube這個平台,來分享更多在歐洲的留學&工作經驗給大家,想到德國工作?想到德國念碩士?但卻沒有什麼方向,都可以跟我聊聊喔!
▷▶︎ 留學德國申請祕訣-免費資源
----------------------------------------
▪︎ 底下留言告訴我你的eamil,即可領取申請祕訣喔!
▪︎ 私訊預約免費留學諮詢30分鐘
▷▶︎ 這些影片會讓你對德國有更多了解
-------------------------------------
⇢德國留學&生活
▪︎ 德國亞洲超市:https://youtu.be/B2xAXR5in8E
▪︎ 德國一天需要多少德文:https://youtu.be/qsmiffED25Y
▪︎ 德國外食花費:https://youtu.be/DDH8coykU3A
▪︎ 德國大學排名:https://youtu.be/9XWqweyKowo
⇢德國留學訪談
▪︎ 高中申請學士(慕尼黑大學)https://youtu.be/rL3eG-X3NfQ
▪︎ 德國碩士獎學金(慕尼黑工大)https://youtu.be/HvS2e6WjZzo
▪︎ 瑞士博士申請(蘇黎世聯邦理工)https://youtu.be/nT0HYE1Ctn0
▪︎ 瑞士碩士申請(洛桑聯邦理工)https://youtu.be/ATmVnNDhHTE
▪︎ 德國科大碩士(Hochschule Esslingen) https://youtu.be/gdIAPx4gmbE
⇢德國工作&實習
▪︎ 德國互惠生:https://youtu.be/x2Zysm7-0yk
▪︎ 德國畢業賺多少:https://youtu.be/FzBh5MRSuO4
▪︎ 德國實習&打工經驗:https://youtu.be/81CnfYIXJMA
▪︎ 德國軟體工程師:https://youtu.be/mY1K17nUzGU
▪︎ 瑞士Google工程師:https://youtu.be/7ly1ZCUldss
▷▶︎ key words 關鍵字
----------------------
#李黎哈哈訪談系列
李黎哈哈 李黎哈哈訪談系列 德國留學 歐洲留學 德國工作 德國實習 德國生活 歐洲生活 德國簽證 留學申請 留學心得
🎥在使用的影片拍攝剪輯器材
相機 sony zv1
https://amzn.to/2C8Iab1
攝影 i Phone 7
https://amzn.to/3hc1sMw
腳架 JOBE
https://amzn.to/3dPME3X
麥克風 RODE
https://amzn.to/3f8ZL0t
剪輯 FCPX
https://amzn.to/3dQr6V8
字幕 Arctime
------------------------------------------------------------------------------------
leetcode教學 在 python教學、LeetCode在PTT/mobile01評價與討論 的美食出口停車場
Python LeetCode 教學在ptt上的文章推薦目錄 · [請益] 演算法的相關知識? · Re: [請益] 想從零開始轉行當AI軟體工程師 · [心得] 數學&統計新鮮人面試分享 · [請益] 刷leetcode ... ... <看更多>
leetcode教學 在 python教學、LeetCode在PTT/mobile01評價與討論 的美食出口停車場
Python LeetCode 教學在ptt上的文章推薦目錄 · [請益] 演算法的相關知識? · Re: [請益] 想從零開始轉行當AI軟體工程師 · [心得] 數學&統計新鮮人面試分享 · [請益] 刷leetcode ... ... <看更多>
leetcode教學 在 Re: [請益] 刷Leetcode的正確姿勢? - 看板Soft_Job 的美食出口停車場
※ 引述《g001613001 (阿月)》之銘言:
: 最近因為想面的工作,有要求要先刷leetcode
: 刷完才建議過去面試。
: 所以開始接觸leetcode。
: 我目前是從簡單難度開始刷,但是好像刷的姿勢不對?
: 不過還不確定要怎麼解問題才是正確的作法。
: 原本我以為是寫出來的code,可以通過網站驗證,就好了。
: 但是問了前輩,他是說我目前解題方向有誤
: 不可能題目要求你做陣列排序,你就直接call array.sort()
: 不能直接用現成的函式,而是要自己實作sort的函式出來
: 這樣才有意義
: 不知道各位前輩在解題時或者面試考試時,也是都完全不用函式庫的東西
: 而是自己實作題目要求的函式出來的嗎?
: 或者請問有什麼正確刷題的姿勢呢?
: 先謝謝各位前輩分享經驗
幹
刷了三百多題
應該有資格出來嘴一下
easy請找有意義的
不然一律刷medium
阿你說怎樣算有意義的easy?
其實你刷medium碰壁
再看一下那題的similar questions
如果裡面有easy
那題對你來說就是有意義的easy了
阿幹你會想說
那不是還是要先刷medium?
是
只刷medium就對了
只刷easy你還是快轉行吧
阿hard是三小?
通常就是把2-3個medium的技巧結合
就是hard了
不過有時腦子要轉幾圈
所以解hard真的是腦袋反應問題了
阿不過有時DP比較機掰
所以就是光一個機掰DP策略
就能構成一題hard
例如KMP或是Levenshtein
我解這種題目通常70%都是改用
自己改良式的hash
mem一樣
speed稍差一點點
但至少解法比較符合常人的邏輯
如果你真的這麼屌
能像我搞出這種解法
等到pass後
你真的去看各個分佈內的解答
你會發現沒有你這種解法
大家解法機會都千篇一律
這時你就算是脫俗了
由此也能推論
其實大部分的人都是看完解答才去解
阿另外25%解出DP hard的方式
基本就是跟正解一模一樣
不要問我怎麼想到的
就是智商夠然後刷得多
5%的DP hard就真的想三五天
想不出來直接看解答
背起來
除了DP類型
其他類型的hard
基本上花個半天亂解都能pass
所以DP真的是凡人碼農的夢魘
如果題目要求你
實現Data structures或algorithms
那一律不能用該項目的standard library
例如sort、trie、hash、blablabla...
如果不是這類題目
就能使用stl
不然題目問DP
你在那邊實現merge sort
重造輪子
智障喔
至於推廣
至少讓自己解法能pass
然後再參考所有最佳複雜度解
以及與最佳解差O(logN)的解
通通記起來
不要懷疑
會有幫助
然後幹
最後說說用啥語言刷
我認為只有C++以及Java可
py只有真‧RD可用
因為py真的太鳥
deque還要import
set與map(dict)居然是hash
list.pop(0)居然是O(N)
for速度比while微快
還有一堆垃圾潛規則
馬的新手用這種語言刷
你DS會清晰我輸你
最後
台灣軟體薪水真的太垃圾
跪求FAAGM來台灣多開缺
人又奴
薪水又低
又不會暴動
也不會動不動傷害民族情感
跪求996來台灣多開缺
阿不是中國的一省
連個branch都沒有成何體統
好了幹
大家認真刷起來
半導體業倒了以後
才不會變菲律賓
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.194.98 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1570793396.A.AB6.html
幹
這不回真的不行
所以人家很嚴謹的跟你說了
它是“Array”List
List interface並沒有規定複雜度
阿如果不確定
ArrayList跟LinkedList的差異
其實可以多念點書
文學類型的那種
List又不具random-access特性
跟deque比根本是蜘蛛比昆蟲
不能長的像功能像就瞎比
重點不是需不需要import
而是一致性問題
同樣是DS
要就通通import
要就通通primitive
你生下來時
就知道py list = dynamic arr是嗎?
那為啥不取名叫arr或darr
那我想用linkedlist實現queue怎麼辦
你生下來時
就知道要另外import是嗎?
我已經說了
py問題就是太多潛規則
只適合觀念清晰的人
你自己懂潛規則
不代表
潛規則對新手就是理所當然的
... <看更多>