解決程式設計難題的實用方法指南 - praeclarum
我有時發現自己需要編寫一些程式碼,但我不知道如何寫。你有過這樣的經歷嗎?以下是我在遇到困難時採取的步驟。這裡沒有巨大的啟示,只是硬性規定的建議。
在輸入任何程式碼之前,認真思考這個問題幾個星期。
輸入一個函式或寫一個有你需要的輸入和輸出的類。
把函式分解成多個有明確目標的步驟。你可能不知道如何實現這些目標,但這是你未來的自己的問題。現在,你只是想寫出高層次的演算法。
為每一個步驟建立一個函式,並在其中丟擲新的NotImplementedException()。它們的名字應該很長,而且要有解釋,對它們的預期應該沒有問題。如果你不知道怎麼寫,也沒有關係。
現在,去實現這些函式中的幾個。你知道它們並不都是困難的。有些甚至是有趣的! 建立起你的信心,實現那些簡單的函式。取得進展的感覺很好,它可以讓你大腦的分析部分在後臺執行一會兒,而你則專注於瑣碎的數字型別和檔案IO。
是時候解決一些較難的函式了。就像你之前所做的那樣,進入每一個問題,並將問題分解成若干步驟。你是對的,我要說的是。沖洗和重複。繼續將這些困難的問題分解成步驟。把每個步驟變成一個有明確名稱的函式。實施容易的問題。然後再把困難的問題分解成步驟。一次又一次地這樣做。你會驚訝於你能真正完成多少事情。
很快(哈哈)你就會有一個80%完整的解決方案,只剩下幾個討厭的函式丟擲NotImplemented。現在去搜尋你最喜歡的軟體包庫,或程式碼庫,或問答網站,或人工智慧程式設計助手的實現。你很有可能不是第一個需要這個特定函式或部件的人。找到一些巨人,爬到他們上面,然後大叫 "我靠,世界上有很多聰明的程式設計師!"
好了,你已經搜遍了網路,但你仍然有幾個討厭的NotImplemented異常。現在是時候檢查一下那些科學家了。在arXiv中輸入你的問題陳述的每一個SEO變體。當然,其他人也曾研究過與你試圖解決的問題相關的問題。他們很可能會提供一些見解或觀點的轉變,以幫助你將你的問題重塑為可解決的問題。就這樣做。重新構思你的問題,把那些 "不執行 "的問題解決掉。
現在你有麻煩了。如果你仍然有一些沒有實現的例外,而且沒有巨人可以站在上面,也沒有學者在這個特定的領域裡糾纏不休,那麼這一切就取決於你。大膽思考。跳出框框思考。你的職業生涯就靠它了。(開個玩笑,我希望。)也許洗澡可以幫助你思考?
我認為這些是所有程式設計師都會採取的步驟,但有時把它說出來也不錯。
我特別重視函式分解。函式是一個強大的抽象,不僅僅是為了少寫程式碼,也是為了思考問題。
請不要誤解我對 "函式 "一詞的使用,認為它只是指那些函式式程式設計師喜歡的東西。我指的是任何資料轉化器:從低階的lambdas到帶狀態的IO處理的單體物件。
相關文章
- 幽默:程式設計中困難的不是解決問題,而是確定要解決的問題 - Paul程式設計
- Java程式設計之道:巧妙解決Excel公式迭代計算難題Java程式設計Excel公式
- JAVA程式設計題-用java解決兔子問題Java程式設計
- UG程式設計常遇到的問題及解決方法程式設計
- 硬核觀察 #708 程式設計師奶爸用 AI 解決嬰兒餵奶難題程式設計師AI
- 使用ServiceSelf解決.NET應用程式做服務的難題
- 跨境電商產品配送完整指南:難題的解決方案
- 為解決CSS設計難題而生-評《CSS揭祕》CSS
- Python爬蟲程式設計常見問題解決方法Python爬蟲程式設計
- 實用的四個shell程式設計題程式設計
- java併發程式設計 --併發問題的根源及主要解決方法Java程式設計
- 適用於iOS的應用程式程式設計指南(七)iOS程式設計
- 解決問題的能力 > 10倍程式設計師程式設計師
- 程式設計師解決問題的 60 個策略程式設計師
- 程式設計師解決問題的60個策略程式設計師
- 用簡單的方法解決問題
- 一些常見的並且比較難解決的設計問題
- Java網路程式設計,有助於解決實際問題, (轉)Java程式設計
- 程式設計謎題:提升你解決問題的訓練場程式設計
- 程式設計師將面臨的三大“難題”程式設計師
- 關於PHP程式設計師解決問題的能力PHP程式設計師
- 用pl/sql解決芬蘭數學家因卡拉設計的最難數獨SQL
- 自學程式設計難在哪裡?教你如何解決程式設計
- MDS:解決SOA的資料難題
- 從程式設計師到解決方案架構師的簡單指南 - Dev程式設計師架構dev
- 解決“最後一公里”難題的低程式碼
- 安卓應用安全指南六、困難問題安卓
- 高階記憶體管理程式設計指南-實用的記憶管理記憶體程式設計
- LR審批流程設計,一站式解決辦公難題
- 使用ABAP併發程式設計解決一個實際應用場景中的效能瓶頸問題程式設計
- 怎麼解決程式設計師上網問題程式設計師
- 程式設計面試問題真的越難越好嗎?No!程式設計面試
- 程式設計師程式設計的10個實用技巧程式設計師
- ASP程式設計中Session物件失效的客戶端解決方法程式設計Session物件客戶端
- 設計不等於藝術。合理運用“藝術”解決設計問題
- 無處不在的 Kubernetes,難用的問題解決了嗎?
- 程式設計師何苦為難程式設計師?程式設計師
- 程式設計師何必難為程式設計師程式設計師