banner
AgedCoffee

AgedCoffee

解決困難問題的實用指南

原文地址:Practical Guide to Solving Hard Problems

我有時發現自己需要寫一些程式碼,但我不知道如何寫。你有過這樣的經歷嗎?以下是我在遇到困難時採取的步驟。這裡沒有什麼大發現,只有來之不易的建議。

  1. 在輸入任何程式碼之前,認真思考這個問題幾個星期
  2. 確定 function 或者 class 的 input 和 output 定義
  3. 將功能分解成多個步驟,並有明確的目標。你可能不知道如何實現這些目標,但可以先規劃抽象出實現方法
  4. 寫出詳細的偽碼步驟,不知道具體實現也沒有關係
  5. 嘗試實現一些簡單的步驟,並在腦中演算實現,建立自己的信心
  6. 嘗試實現困難的步驟,將困難的部分按照前面的步驟再進行細分實現,你會對自己的工作進度感到驚訝
  7. 在你實現 80% 左右的實現之後,嘗試找現成的實現方案幫助實現(這個步驟個人會放在第0步就實踐)
  8. 對於特別困難沒有思路的問題,在網路上搜尋相關的問題,對比學習別人的實現方案,幫助完善自己的實現
  9. 在尋找幫助的前提下還是沒有任何人有相關實踐,嘗試休息放空自己,說不好什麼時候就來靈感了,比如洗澡的時候

我認為這些是所有程式設計師都會採取的步驟,但有時把它說出來也是不錯的。

我特別重視功能分解。函數是一個強大的抽象,不僅僅是為了少寫程式碼,也是為了思考問題。

請不要誤解我對 "函數" 一詞的使用,認為它只是指函數式程式設計師喜歡的那些東西。我指的是任何資料轉換器:從低階的 lambdas 到帶有狀態的 IO 處理的單體物件。

謝謝你的閱讀!現在去解決那些困難的問題吧!

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。