如何學習多種語言?

在我發送第一封電子報宣告新的SwiftUI系列時,有人問我這個問題:“你是如何學習多種語言的呢?” 好問題! 在過去,我學過Pascal、C、Java、PHP、JavaScript、Objective-C、Go、Python和Swift。我想我列出了我使用過的所有語言。 並非所有語言都是一樣的。有些比其他更“平等”(引用)。 我認為上述的所有語言非常相似。一旦你學會了其中一種,很容易學習其他語言。變數、函數、迴圈、物件。 當然,不同的語言都有一些獨特的特性,比如Go的協程或者C是非常低級的。但是底層基礎是相同的。 有些語言非常非常不同,比如Haskell、Elixir或者Lisp。我希望有一天能夠學習它們,但目前還沒有機會。 現在,我嘗試專注於受歡迎的初學者友好語言,有一個很好的原因。原因是你不會用Haskell開始你的職業生涯。當你去學它時,你已經是一個經驗豐富的程序員,我不需要教你任何東西。 不管怎樣,我稍微偏離了主題。 “你是如何學習多種語言的呢?” 我選擇一種新的語言,長時間專注學習它。 我用這種語言來建立東西。 我不斷練習,以初學者的心態,好奇並開放於這種語言應該如何運行。 有些語言很無聊,有些非常令人興奮。這完全取決於你需要做什麼。如果你夢想著機器學習,Python對你來說可能非常令人興奮。如果你的夢想是構建一個被世界各地數百萬用戶使用的iOS應用程序,Swift就是你的選擇。 我覺得在你的職業生涯中並不只學習一個編程語言。除非是特殊情況,事物會不斷變化。 20年後我不會繼續使用JavaScript。JavaScript要麼會完全不同於現在(就像你將現在的JavaScript與10年前的JavaScript比較),要麼它將會是一種古老的語言。 這就是為什麼我不標榜自己是一個“JavaScript開發者”或任何其他標籤。我只是一個開發者,這就是全部。 語言只是工具。 學習一門新語言並不是一個終點,而是一個冒險的開始。