編程 | 原創,AI翻譯
-
只要競技程式設計能激勵你,那就沒問題。
-
程式設計如同寫作,是一種創造性活動。
-
做自己的專案。寫技術部落格。為一個你會維護多年的專案寫程式,就像維護一個長達十年的部落格。
-
通常,你不需要追逐當前的技術熱潮,因為許多趨勢幾年後就會消失。
-
追隨你的好奇心,為自己而寫程式。
-
嘗試為自己創造程式。它們不是工作任務。
-
如果你經常在寫程式時感到不快樂,那麼你的方法可能錯了。
-
iOS、Android、後端、前端、AI都不錯。至少可以嘗試用它們做個小專案或學習幾個月。
-
除錯就是要保持懷疑。不要相信每一行程式碼;你可以想到更好的方法來實現它。
-
在程式設計中,即使是一個字符或一行日誌也很重要。它們能告訴你一些事情。
-
利用程式設計為他人製作產品。擁有使用者是件有趣的事。
-
你不需要苛刻。幾百個真心喜愛你產品的用戶,勝過數萬個只是禮貌性喜歡的用戶。
-
記住你當初為何踏入程式設計,永遠不要忘記。
-
將程式設計中的知識應用到生活的方方面面。它們是相通的。批量處理或逐一處理事情。如何將工作分割成單元。每個應用背後的底層技術。網絡請求背後的細微差別。
-
抽象與邏輯思維。注重細節的思考。為每個解決方案深思熟慮。
-
事實就是事實。通常,電腦不會出錯。電路不會出錯。編譯器不會出錯。遇到錯誤時不要沮喪。
-
追求優雅簡單的解決方案。簡約是終極的複雜。你需要深思熟慮,保留精華,去除多餘。
-
對於程式語言,能完成工作的語言都可以。我個人推薦Java和Python。
-
關注王垠的網站 https://www.yinwang.org。他是程式設計領域少數的天才之一,儘管他說天才並不存在。
-
程式設計的知識和原則可以輕鬆應用到語言學習、硬件維修、生活技巧和科學研究中。
-
對於大多數程式設計任務,除了高中數學,你不需要高深的數學。
-
多年後回顧你的舊代碼,或長期維護一個代碼專案。這會讓你學到很多。
-
如果你對程式設計失去熱情,暫時去做其他事情吧。
-
測試的時機很重要。順其自然就好。你通常不需要為專案寫測試。盡量不寫測試,寫單元測試,寫集成測試,寫API測試。明智地比較它們。
-
嘗試AI代碼編輯器。經常使用ChatGPT或其他聊天機器人。既然AI工具現在易於使用,你可以專注於更具創造性或重要的部分。
-
除錯時,檢查你是否使用了最新的函式庫版本。如果某個函式庫無人維護,尋找積極維護的克隆或分支。
-
改善網絡速度或程式運行時間時,必須有量化指標。否則,你無法確切知道是微小的改善還是退步。
-
對於個人專案,不寫測試代碼也可以,但最好在修改大量代碼後進行本地測試。考慮受影響的代碼、在雲端管道中運行的時間以及可能引發錯誤的頻率,然後相應地編寫測試代碼。使用不影響用戶體驗且易於測試的方法。
-
編寫簡單優雅的代碼。盡量減少重複,儘管有時重複能帶來更簡單的解決方案。盡量減少特殊情況。使其易於測試。重構以使用通用函數或流程,使用遞歸或循環,尋找模式。
-
妥善處理錯誤。思考根本原因、責任歸屬,是我們能改變的還是外部錯誤。考慮補救方法、影響範圍、處理位置,是否應該分類錯誤,發生的可能性及最壞情況。
-
使用replace與使用startWith後接slice的區別在於前者忽略字符串的位置。將這種思維應用到程式設計的每個細節中。
-
盡量減少一個項目的可能值;一個情況只用一個值。如果已有false,就不要用null。如果有翻譯過的真假標誌,需確保每次遇到翻譯標誌時,不會將未翻譯標誌視為false。
-
經常使用GitHub或Sourcetree審查變更的代碼塊。它們更便於閱讀代碼。
-
在程式設計中,通常沒有小事。每個字符、列表項的順序、每個字符串、每個數字、每個變量名都很重要。每個執行順序和每條日誌都很重要。
-
做最讓你興奮的事情。無需擔心是否跟隨主流。
-
經常使用命令,因為它們可以幫助自動化任務或協助LLMs。UI界面操作更難自動化。
-
將程式的日誌(包括本地、UAT、微服務和管道日誌)保存在一個目錄中。這些日誌包含大量關聯信息。搜索它們以識別關係,收集相關數據或上下文。
-
有了收集的日誌,遇到問題時更容易判斷是否曾遇到過。從過往日誌中,你可能知道如何解決。日誌能讓你更好地理解一切如何運作,以及電腦如何執行程式。與代碼不同,日誌與時間相關,提供更多運行狀態的信息。它們也更輕量級,便於除錯。
-
除錯會顯示大量信息,包括周圍變量的值、線程名稱和函數堆疊。
-
自動化一切,例如代理更新和選擇最佳代理服務器。多用Python編寫腳本。