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 其實只是解決問題的一小部分,而聽到問題瞬間就馬上開始寫程式非常有可能走冤枉路。
軟體開發過程充滿各種不確定性,很多時候面試時遇到的問題其實都是那種曖昧或是不夠完整的敘述,再沒有掌握問題的全貌前就貿然寫程式常常只會愈走愈糟。
此外,軟體開發除了撰寫程式外,還必須要針對解決方法進行分析,該方法帶來的優點都需要仔細思考,同時也要確保團隊內對於該方法有一致性的同意才可以開始往下去撰寫程式。
作者最後強調,這個概念是真實工作中最重要的一環,透過溝通去理解所有的需求,確保一切都有共識後才開始實作。
剩下有興趣的歡迎閱讀全文
同時也有3部Youtube影片,追蹤數超過7萬的網紅在地上滾的工程師 Nic,也在其Youtube影片中提到,## 影片觀看說明 由於問題較多,大家的問題也可能是你的問題,建議可以先閱讀下方的「問題總匯」區,找到時間碼 Time code 之後跳轉到自己想聽的部分,會比較有效率哦 本影片 Q&A 留言是抓取 【2020 年度回顧! 成為 Team leader? 業外收入增加? 技術能力成長? (第一...
資料結構 在 教 什麼 在 軟體開發學習資訊分享 Facebook 的精選貼文
NT 390 特價中
本課程從頭開始教導資料結構(linked lists,binary search trees,hash tables)。資料結構可以讓你應用程式提高效率,性能,速度和可擴展性。你將了解什麼是資料結構,為什麼它們是重要的,以及如何在 JavaScript 中編寫它們。你還將學習其它重要的程式設計概念,如遞歸,時間複雜度,“this” 關鍵字,prototype 物件,建構函數,因為資料結構非常自然地使用這些概念。本課程大量使用圖表和動畫來幫助更容易理解教材。
https://softnshare.com/learning-data-structures-in-javascript-from-scratch/
資料結構 在 教 什麼 在 軟體開發學習資訊分享 Facebook 的最佳貼文
NT 430 特價中
你已經使用 Java(或是另一種物件導向程式設計語言)實現基本的資料結構和演算法工作,但覺得你需要更深入的知識。
也許你已經參加了這個主題的其它課程,但是課程側重於教你如何通過面試考試(理論),而不是如何為你的開發(實現)的程式作出好的選擇。
或者,也許你已經準備好從一個初級的程式設計職位轉到更高級的程式設計職位,並且需要熟練精通像資料結構這樣的高級概念,以及如何將它們應用到你自己的專案中。
不管是什麼原因,如果你正在尋找一個專注於實現的課程,讓你完全理解事情的運作方式,那麼這是為你設計的課程。
https://softnshare.com/data-structures-and-algorithms-deep-dive-using-java/
資料結構 在 教 什麼 在 在地上滾的工程師 Nic Youtube 的最讚貼文
## 影片觀看說明
由於問題較多,大家的問題也可能是你的問題,建議可以先閱讀下方的「問題總匯」區,找到時間碼 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 #工程師 #在地上滾的工程師 #前端 #後端 #轉職
資料結構 在 教 什麼 在 奮game王紫楓 Youtube 的最佳貼文
#軟體工程師
👍歡迎訂閱!! 🔔🔔按下小鈴鐺,就可以一有新影片就搶先看!
[軟體工程師雜談] 這麼多種程式語言,新手要學什麼語言比較好? Java? Python? C++? JS?都不是!!| IT鐵人賽: 從零開始搞懂寫程式,資工系4年最重要的學科,資料結構,演算法,物件導向
💻 入門最推薦的程式語言,新手必看!
💻 最夯的程式語言
💻 C++ 對決 Python,還是 Java, javascript?
💻 物件導向?
程式語言入門須知 新手該學哪個程式語言
| What you should know about programming languages
大家好:
我是紫楓,之前曾經在巴哈姆特發表一個關於軟體工程師,問都給問的文
其中有很多個問題是關於
我是學生,我該學什麼?
我想轉職,我該學什麼?
我想精益求精,我該學什麼?
這類的問題,那歸根究柢,就是目前的軟體工程師中,很多人的基本功不足,所以對學習,對找工作會非常迷惘
所以我打算開設這一個最基本功的鐵人賽主題,幫助基本功沒練好,或是想轉職當軟體工程師的人。
而所謂的基本功,便是資料結構,演算法,物件導向
當然,這一系列可能對已經身經百戰的強者們來說,實在太淺了。
那也歡迎強者們對我的影片做個批評指教。
如果你覺得我的影片做得不錯,也會非常感謝你給個讚或訂閱。
這是對我而言最大的鼓勵
IT鐵人賽網址:https://ithelp.ithome.com.tw/users/20128489/ironman/3093
紫楓FB專頁: https://www.facebook.com/tbpfs2/
紫楓blog: https://tbpfs1.blogspot.com/
斗內專線: https://pse.is/KUYMP
資料結構 在 教 什麼 在 奮game王紫楓 Youtube 的最讚貼文
#軟體工程師
👍歡迎訂閱!! 🔔🔔按下小鈴鐺,就可以一有新影片就搶先看!
[軟體工程師雜談] 資工系在學些什麼,有用嗎?| IT鐵人賽: 從零開始搞懂寫程式,資工系4年最重要的學科,資料結構,演算法,物件導向
大家好:
我是紫楓,之前曾經在巴哈姆特發表一個關於軟體工程師,問都給問的文
其中有很多個問題是關於
我是學生,我該學什麼?
我想轉職,我該學什麼?
我想精益求精,我該學什麼?
這類的問題,那歸根究柢,就是目前的軟體工程師中,很多人的基本功不足,所以對學習,對找工作會非常迷惘
所以我打算開設這一個最基本功的鐵人賽主題,幫助基本功沒練好,或是想轉職當軟體工程師的人。
而所謂的基本功,便是資料結構,演算法,物件導向
當然,這一系列可能對已經身經百戰的強者們來說,實在太淺了。
那也歡迎強者們對我的影片做個批評指教。
如果你覺得我的影片做得不錯,也會非常感謝你給個讚或訂閱。
這是對我而言最大的鼓勵
IT鐵人賽網址:https://ithelp.ithome.com.tw/users/20128489/ironman/3093
紫楓FB專頁: https://www.facebook.com/tbpfs2/
紫楓blog: https://tbpfs1.blogspot.com/
斗內專線: https://pse.is/KUYMP