當我第一次聽到人們談論「解決問題」時,我完全不知道它到底是什麼意思。這是我在領英貼文、科技社群甚至 YouTube 影片中不斷看到的那些短語之一, 「提高你的解決問題能力」 、 「你需要 DSA 才能找到工作」和「每天練習 LeetCode」。
當時,這些話聽起來就像是只有真正的軟體工程師才能理解的魔法公式。我當時還不是其中之一,至少當時還不是。
一年前,純粹出於好奇,我決定嘗試這個神秘的「LeetCode」平台。我記得當時註冊了帳號,只是想了解這個平台。當我看到自己的初始全球排名在 600 萬左右時,我震驚了。
六百萬人。
就在那時,我意識到我正站在一座山腳下。
全世界數百萬程式設計師已經在攀登這座山了。
這既令人畏懼,又令人振奮。我心裡一邊想: “在這麼大的人群裡,我永遠也出不來。”但另一邊又悄悄地說: “我們先試試這道題吧。”
所以,我這麼做了。
我從最簡單的問題開始。我不在乎效率、大O符號或巧妙的技巧。我只希望我的程式碼能夠正常運作。
起初,我從討論區抄襲答案。我努力理解別人寫的內容。有時我能理解,有時卻無法理解。但每次看到那條綠色的「已接受」訊息,我都會感到一絲滿足。
慢慢地,那火花變成了習慣。
我開始每天解決一個問題,有時甚至兩個。我什至沒有意識到,但幾週後,我的信心開始成長。這些小小的勝利累積了動力。
然後出現了Medium問題,而且......它們讓我感到羞愧!
我記得第一次嘗試一個中等難度的問題,我盯著它看了一個小時,寫了一些東西,刪除了它,再次嘗試,再次失敗,最後放棄了。
但事情發生了變化:我沒有徹底放棄,而是第二天又回來了。我閱讀了其他人的解釋,看了一些教程,然後又試了一次。
就在那時,我發現了一些強大的東西: LeetCode 不是關於速度,而是關於一致性。
我每天解決問題,不僅僅是提高我的編碼技能;我還在訓練我的大腦進行邏輯思考,分解問題,並對自己有耐心。
這種將大問題分解成小步驟的思考方式正是軟體工程(和生活)的意義。
每天,當我打開 LeetCode 時,我都會看到那個大大的「每日挑戰」按鈕。
但我每天都忽略它。
這看起來像是一場Boss戰,只有經驗豐富的程式設計師才能玩。我告訴自己還沒準備好。我還是去解決隨機問題吧,然後悄悄地避開每日挑戰環節。
但事實上,我並不害怕挑戰本身,我害怕的是公開失敗。我想: “如果我解決不了怎麼辦?如果我陷入困境怎麼辦?”
後來有一天,事情發生了變化。我不知道是什麼引發了這一切。也許是好奇心,也許是固執,也許只是想向自己證明一些事情。
所以我點擊了它。
在經歷了 50 天的隨機問題之後,我決定點擊那個按鈕,而且因為我很幸運,那天的問題是個難題😂。第一個日常問題花了我將近三個小時。我嘗試、失敗、反思、Google搜尋、除錯。但當我最終提交並看到那條閃閃發光的綠色「已接受」訊息時,感覺完全不一樣了。
那天,我給自己立了一個小小的承諾:
“我將每天進行每日挑戰,持續一個月。”
我做到了💙
當我拿到我的第一枚 LeetCode 月度徽章時,我無法形容我內心的喜悅。
一個月變成了兩個月。
兩個變成了六個。
現在,我在 LeetCode 上已經連續 373 天了。
收集徽章成了我真正期待的事。每一枚徽章都感覺像是進步的一個篇章。
我以前總是把這些徽章看作是「真正的程式設計師」的專屬。現在,它們已經成為我自己故事的一部分。
有一天我永遠不會忘記:我解鎖 365 天 LeetCode 徽章的那一天。
“這只是一個徽章而已”,這句話對某些人來說可能有點好笑,但對我來說,它意義非凡。它的意義不僅在於螢幕上的像素,更在於它背後的一切。
當我看到彈出的通知:「恭喜!你獲得了365天徽章!」時,我傻傻地坐在那裡笑得像個傻瓜。感覺就像我剛剛跨過了一條看不見的終點線。
每次看到它,我就會想起那個時候的自己,那個一開始感到害怕、茫然和不確定的自己,我感到自豪。
這是我沒想到的:LeetCode 不僅讓我更好地解決演算法;它還讓我更能像工程師一樣思考。
它改進了我編寫程式碼、建立邏輯以及在實際專案中除錯複雜問題的能力。即使在面試中,我也開始注意到我可以更清楚地解釋我的思考過程。
我對問題變得更有耐心,無論是在程式碼中還是在生活中。
在參加 LeetCode 之前,每當我遇到不懂的東西,我都會感到恐慌。現在,我把它看成是另一個需要一步步、邏輯清晰、專註解決的問題。
如果我能回到過去,和過去的自己(那個害怕日常挑戰的自己)交談,我會告訴他們以下內容:
從小事做起。別等到「感覺準備好了」才去做。你永遠不會覺得準備好了,只要開始就好。
堅持勝過強度。一年中每天解決一道難題,比一個週末解決十道難題更能改變你。
閱讀、學習、重複。即使失敗了,你仍然在學習有價值的東西。
慶祝進步。無論是一枚徽章,還是一次被接受的提交,都很重要。
這與競爭無關。你的排名並不能決定你的價值,你的成長才重要。
當我想到自己已經走了多遠,從排名 6,000,000 到排名 62,505 ,從害怕嘗試每日挑戰到保持 373 天的連續性,我只是意識到每一個綠色的複選標記,每一個小胜利,以及每一個解決的錯誤都加起來是一件美好的事情。
如果你讀到這篇文章時認為自己還沒準備好開始參加 LeetCode,我有一個建議:
👉🏻只需點擊“開始”
你可能會對自己一年後會變成什麼樣子感到驚訝。
🎁額外資源:請參閱我的文章《 如何成為問題解決高手:終極指南》👹
| 感謝閱讀! 🙏🏻
希望您覺得有用✅
請做出反應並關注更多資訊😍
由Hadil Ben Abdallah用 💙 製作 |
|
|---------|----------|---------|
{% 嵌入 https://dev.to/hadil %}