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