刷題,已經成為軟體工程師面試準備,其中的核心了。不管什麼階級,技術考試都是避免不了的!

在找軟體工程職位的求職者,應該都知道LeetCode,他們收集了Google、Facebook、Microsoft等國際知名公司面試的技術問題,以及解決方案。繼上次介紹LeetCode之後,【軟體工程師面試考試題庫,LeetCode有2000題,要怎麼練!】,Glints要與各位分享,許多人刷完題之後的心得。

涉及數據結構和算法的面試問題,即便在較小的公司,也變得越來越流行。這讓許多人感到很不愉快,因為他們認為會回答LeetCode的問題,並不能反映他們的工作能力。有些人甚至會認為練了那麼多,也根本不會在工作的時候用到。

不過事實並非如此,LeetCode中會遇到的題目,都是每一家公司的真實題目,而這些題目除了一些基本的技術問題,也有可能是公司內複雜的問題。讓我們還看看,曾經刷完500多題的費德里科·曼努奇是怎麼說的。

5個軟體工程師必須了解的重點!看完之後,能幫助你的在軟體工程師的職涯有所成長!


5個重點,幫助軟體工程師職涯成長

1) 資料結構與演算法的重要性

LeetCode不是資料結構與演算法DSA(Data Structure and Algorithm)課程,如果之前沒有在這方面的主題上做任何的準備,那會建議參加一些DSA的課程,學習基本知識,因為LeetCode沒有提供知識的教學。不過在具體的題目上,他能做到非常詳細的解答與說明。

為何說資料結構與演算法很重要?有紮實的數據結構基礎,對每個開發人員來說都是必不可少的,因為他能做到的事情太多了,舉一個例子,Rockstar遊戲公司的工程團隊,就曾經以簡化演算法的方式,幫助GTA V減少了70%的讀取時間。除此之外,網路上也有需多工程師透漏,改變演算法,除了能減少讀取時間,還能更清楚的紀錄資料。

2) 總有人知識比你淵博、經驗比你豐富

每次寫完一個程式、寫出答案時,都有無比的成就感,相信只要是軟體工程師,應該都體會過。但當你在LeetCode上完成題目時,再看看討論區,你的成就感馬上就煙消雲散了。因為厲害的人實在是太多了!有時候,你甚至還能看到比官方給出的答案更有效率的建置。

其實有使用LeetCode經驗的人都會說,你會有一半的時間,花在理解其他人的程式編碼,以及如何將它放到自己的建置內,讓自己的程式編碼更有效率。

重點是,在LeetCode的平台上,你會不斷的學習,不管是如何優化程式編碼、Debug等等,而開始上班之後更是如此。公司的前輩,除了在技術方面可以教你很多,心態方面也能協助你,使你在吸取知識,學習新東西,更加順利。所以加緊時間利用LeetCode先來熟悉這件事!

3) 邊界條件的問題可以毀了你美好的一天

在你真正開始工作之前,犯了錯誤,也沒有真正的風險。但是開始工作後,就完全不同了,因為你所生產程式編碼庫中,將有成千上萬的人與之互動,出了任何的錯誤,甚至是微小的影響、邊界條件,都可能會成為一個問題,並且有可能帶給客戶不便,甚至因而導致公司有所損失。

還好LeetCode上的練習場非常的卓越,每一個問題都有上百種測試方法,基本上已經包括了絕大部分的邊界條件的問題了。職場上,有些人會分享,那時候在用LeetCode時只是覺得方便,但開始工作後,才發現它能交給你的基礎有多重要。

4) 勤奮勝過天賦

Hard work beats talent when talent doesn’t work hard.

蒂姆·諾克

努力的平凡人,將會超越不努力地天才!這句話,尤其在使用LeetCode的時候,有深深的感受。其實很多人非常地聰明,但是久而久之,你會發現往往可以撐到最後,成功的人、拿到工作的人,是那些努力不懈的人!從LeetCode中,你可以學習到如何正確的使用一些工具,還可以學到如何開發出合適的結構來解決問題,這些都要靠不斷地努力練習,才會熟悉。

很多人在開始時,甚至連最簡單的問題都解不了。但是在不斷的練習中、學習新方法,一步步地越來越熟練。

網路上也有其他人分享過,當初為了進某一家公司,從使用已久Python需要轉成使用Java。當然一開始,一定會很多不習慣,而那也是大多人放棄的地方。但是LeetCode的切換程式語言,真的很方便,讓你可以用兩個語言交叉比對。所以只要願意努力、不怕辛苦,很快就可以上手了!

5) 規劃是軟體開發的非常重要的一部分

面對過實際面試中的問題後,你會很快意識到編碼只是軟體開發的一部分,而且有經驗的人也一定知道,在看完題目,立即編寫解決方案,是一個非常嚴重的錯誤。軟體開發充滿了意想不到的結果,面試考試時,問題常常會試圖通過提供模棱兩可或不完整的問題,讓你疑惑。

不僅如此,實際編碼之前,你應該提出一個解決方案,分析其優缺點,並且只有在團隊的每個人都認同時,才開始編碼;如果你編寫的代碼無法滿足時間與要求,很容易能力就會開始被質疑。

這在實際工作中相當重要,如果您開始編寫代碼,而沒有分析需求並仔細考慮可能性,那麼你最終極有可能需要重建整個東西!

結論

以上就是LeetCode刷了500題以上的經驗分享,與5個重點。其實即使沒有在找工作的情況,也可以用它來練習。雖然很多人非常不喜歡用,並認為LeetCode沒有教任何適用於實際工作上的知識。LeetCode對有些人的影響也是不變的事實,至少它有值得嘗試的價值!

而如果他真的沒有那麼重要,有很多公司也不會在面試時問你,有沒有用過Leetcode刷題。

想要了解LeetCode的人,可以看看Glints的另一篇精選文章:

【目標是新創、小型公司,我該刷LeetCode嗎?】

如果你希望可以得到更多資訊,可以追蹤Glints的臉書粉絲頁,每個星期都可以看到熱門職缺與職涯資訊 。

你也可以到Glints – Taiwan去了解更多!或是註冊帳號,收到職缺通知!

About Author

Passionate writer, who love to tell stories that are both informative and impactful!

Leave A Comment

Your email address will not be published. Required fields are marked *