熱門話題
#
Bonk 生態迷因幣展現強韌勢頭
#
有消息稱 Pump.fun 計劃 40 億估值發幣,引發市場猜測
#
Solana 新代幣發射平臺 Boop.Fun 風頭正勁
學習這些程式語言是值得你花時間的,即使你不使用它們:
1/6
C
C 語言與寫組合語言相距不遠。它迫使你理解「堆疊」和「堆」之間的區別。你還必須處理指標——訓練你的大腦處理間接性將幫助你理解更困難的問題,因為幾乎每個「困難」問題都必須以某種程度的間接性來建模。
2/6
組合語言
學習組合語言的運作是學習編譯器運作的前提。與 C 語言不同,你還必須學會何時使用「寄存器」,並且你會對什麼是高效能的程式碼有更強的感知。我認為,懂得如何用組合語言編程,對於我能夠快速掌握新的區塊鏈技術貢獻最大。我以「任何運作中的虛擬機/CPU 架構必須具備以下特徵,那麼我可以在哪裡找到它們?」的思維模型來接觸它們。這幫助我以一組智能問題來接觸新系統,而不是困惑於到底發生了什麼。
3/6
Rust
Rust 對於對同一個值的多重引用非常嚴格,這是其他語言不強迫你思考的問題,儘管這可能是實際錯誤的來源。
此外,Rust 的類型系統相當周全,因此你在如何建模現實世界方面有更多選擇(這當然是一把雙刃劍,因為你可能會過度思考簡單問題,所以你必須學會如何控制它給你的力量)。學會如何編寫地道 Rust 的人,也不會離學會如何編寫函數式編程太遠。
4/6
Lisp
如果你想學習函數式編程而不被編譯器懲罰,這是最好的方法。此外,你將接觸到現存最強大的宏系統,並且你會在 JSON、XML 和源代碼等事物中“看到”遞歸結構。
遞歸結構並不意味著編寫遞歸代碼。相反,它迫使你思考如何將一個大問題拆分成更小的問題,並首先考慮邊界情況,而不是後來再考慮。
Lisp 還開創了:垃圾回收、if 語句、宏、第一類函數以及許多其他東西。幾乎所有現代語言都借鑒了 Lisp 發明的一些想法。因此,如果你知道 Lisp,你可以智能地問:“這種語言有辦法做 X 嗎?如果沒有,我該如何實現?”
如果你對“實用性”情有獨鍾,我推薦 Clojure 方言,但就學習而言,Racket 相當友好(如果你知道其中一種,學習另一種會非常容易)。
5/6
Haskell
Haskell 可能擁有現存最嚴格的類型系統(至少在我所知道的語言中)。它甚至比 Rust 更嚴格,並且迫使你思考如何處理可能失敗的操作(例如網絡調用)。這就像與一位極其挑剔的資深程序員合作,他會抓住你每一個錯誤,即使是那些出錯機率非常低的事情。是的,編譯器甚至比 Rust 更加苛刻,但關於「你沒有考慮到…的可能性」的持續反饋將幫助你更快提升技能。如果你是一名初級工程師,想要隨時獲得資深工程師的指導,那就用 Haskell 編程,祖先的智慧將會賜予你。
6/6
它們如何幫助
有效的學習發生在你嘗試解決一個問題並立即獲得對你工作的反饋時——這些語言各自以自己的方式做得很好。
這些語言迫使你參與那些像 JavaScript 或 Python 一樣被掩蓋的問題,並直接且立即地反饋你做錯了什麼。
記住:無論是初級還是高級問題都可以編寫“解決”問題的代碼——但高級代碼要精練得多。這種“精練”來自於訓練——這是這些語言免費提供給你的。
10.06K
熱門
排行
收藏