編程 | 原創,AI翻譯
編程
-
只要能激勵你,做競賽編程也是可以的。
-
編程就像寫作。編程是一種創造性活動。
-
做自己的專案。寫技術博客。為一個你會維護多年的專案編程,就像維護一個十年的博客一樣。
-
通常,你不需要追求當下流行的技術,因為許多趨勢幾年後就會消失。
-
追隨你的好奇心,為自己而編程。
-
嘗試為自己創造程式。它們不是工作任務。
-
如果你在編程時經常感到不開心,那你就是用錯了方法。
-
iOS、Android、後端、前端、AI 都很好。至少可以試著用它們做一個小專案,或學習幾個月。
-
除錯是關於懷疑。不要相信你的每一行代碼;你總能想到更好的方法。
-
在編程中,即使是一個字元或一行日誌也很重要。它們會告訴你一些東西。
-
用編程製作產品給別人使用。擁有用戶是很有趣的。
-
不用太苛求。幾百個真心喜愛你產品的用戶,比幾萬個只是隨便喜歡你產品的用戶更好。
-
記住你為何開始編程,永遠不要忘記。
-
將編程中的知識應用到生活的各個方面。它們是相通的。批量處理或逐個處理。如何將工作分解為單元。每個應用背後的基礎技術。網絡請求背後的細微差別。
-
抽象和邏輯思維。細節導向的思維。每一個解決方案背後的思考。
-
真相就是真相。通常,電腦不會錯。電路不會錯。編譯器不會錯。遇到 bug 不要沮喪。
-
追求優雅簡單的解決方案。簡單是終極的精緻。你需要努力思考,留下本質,去除多餘的部分。
-
對於編程語言,能完成工作的語言就可以。我個人推薦 Java 和 Python。
-
關注王垠的網站 https://www.yinwang.org。他是編程領域少有的天才,雖然他說天才並不存在。
-
編程的知識和原則可以很容易應用到語言學習、硬件維修、生活技巧和科學研究中。
-
對於大多數編程任務,你不需要超出高中數學範圍的花哨數學。
-
多年後回顧你的舊代碼,或長期維護一個代碼專案。這會教給你很多東西。
-
如果你對編程失去熱情,那就暫時去做其他事情。
-
測試的時機很重要。順其自然就好。通常你不需要為專案寫測試。嘗試不寫測試、寫單元測試、寫整合測試、寫 API 測試。明智地比較它們。
-
嘗試 AI 代碼編輯器。經常使用 ChatGPT 或其他聊天機器人。由於 AI 工具現在很容易使用,你可以專注於更有創意或更重要的部分。
-
在除錯時,檢查是否使用了庫的最新版本。如果某個庫不再維護,尋找正在積極維護的克隆或分支。
-
在改進網絡速度或程式運行時間時,必須有定量指標。否則,你無法準確知道是否有微小的改進或退化。
-
對於個人專案,不寫測試代碼也可以,但修改大量代碼後最好進行本地測試。考慮受影響的代碼、它在雲端管道中運行的時間、可能導致錯誤的頻率,然後據此編寫測試代碼。使用不影響用戶體驗的便捷測試方法。
-
編寫簡單優雅的代碼。盡量減少重複,雖然有時重複能帶來更簡單的解決方案。盡量減少特殊情況。讓代碼容易測試。重構以使用通用函數或流程,使用遞歸或循環,並尋找模式。
-
妥善處理錯誤。思考根本原因、責任歸屬,以及我們是否能改變它,還是它是外部錯誤。考慮救援方法、影響範圍、處理位置、是否需要對錯誤分類、發生的可能性,以及最壞情況。
-
使用
replace
和先用startWith
再用slice
的區別在於前者不考慮字串的位置。將類似的思維應用到編程的每個細節中。 -
盡量減少一個項目的可能取值;一個情況只用一個值。如果已經有
false
,就不要用null
。如果我們有一個已翻譯的true
或false
標誌,就要確保每次有翻譯標誌時,不將沒有翻譯標誌的情況視為false
。 -
經常使用 GitHub 或 Sourcetree 查看修改過的代碼塊。它們更方便閱讀代碼。
-
在編程中,通常沒有瑣碎的事情。每個字元、列表項的順序、每個字串、每個數字和每個變量名都很重要。每個執行順序和每條日誌都很重要。
-
去做最讓你興奮的事。不需要擔心是否跟隨主流。
-
頻繁使用命令,因為它們可以幫助自動化任務或協助 LLM。UI 操作界面更難自動化。
-
將程式的日誌保存下來,包括本地、UAT、微服務和管道日誌,存放在一個目錄中。在編程中,這些日誌包含許多關聯。搜索它們以識別關係,收集相關數據或上下文。
-
有了收集好的日誌,當你遇到問題時,更容易判斷是否曾遇到過。從以前的日誌中,你可能知道如何修復它。日誌能更好地理解一切如何運作,以及電腦如何執行程式。與代碼不同,日誌與時間相關,提供更多關於運行狀態的信息。它們對除錯來說也更輕量。
-
除錯會顯示大量信息,包括周圍變量的值、線程名稱和函數堆棧。
-
自動化一切,例如代理更新和選擇最佳代理伺服器。廣泛使用 Python 編寫腳本。
-
保持簡單,讓函數和文件盡量小。這樣更容易測試、驗證和檢查樣本。
成為無限工程師
-
大公司實施嚴格的數據安全政策,員工或承包商在第一周會獲得筆記型電腦,離職時須歸還。
-
專案涉及許多細節,但員工在工作期間往往會忘記資訊,尤其是離職一年或更長時間後。
-
經驗帶來的記憶包括專案概要、團隊互動和 LinkedIn 聯繫,但由於嚴格的資訊管控,沒有留下任何文檔記錄。
-
在這些公司的第一次承包經歷可能會令人沮喪,使軟件工程變得更具挑戰性,並對工作產生重大影響。
-
最近,我領悟到如何利用內部資源,讓環境感覺無限制,即使它並非真正無限。
-
有數千種軟件選項,特別是 Windows 上的編譯器,可用於創建腳本和小工具。
-
盡可能學習更多的庫和編程語言;最大化利用內部提供的資源。
-
支援 Go、Rust、C/C++ 构建工具、帶有 npm 的 JavaScript 和 C# 等語言,知識越多,靈活性越高。
-
在 AI 時代,如果工具缺少功能,可用 Python 腳本構建自定義工具(如 Postman),或編寫數據庫腳本。
-
利用 AI 自動化任務,例如用 Selenium 腳本進行測試或性能測試腳本。
-
在大公司初期感到受限,源於心態問題,因為政策並不阻礙構建事物或有效工作。
-
在生活中,感知到的限制往往源於思考不夠深入;嘗試更多可能帶來獨特的想法。
-
在大公司成為無限工程師,意味著成為一個全面無限的人。