從小我就一直是一個非常好奇的人,喜歡理解和解決問題。我第一次接觸程式設計是在高中,出於顯而易見的原因,我很快就對它著迷了。
在高中時,我記得使用的第一種語言和工具是 Turing、Processing、GreenFoot 和 BlueJ。所有這些都是學習工具,除了 Turing 之外,都是 Java 抽象,主要專注於圖形程式設計。這些工具讓我能夠非常快速地做一些非常酷的事情。這些早期的經驗確實激發了我的興趣。
從那裡我想去當地的大學學習網路開發。在這裡我開始學習 HTML、CSS、JavaScript 等內容。後來轉向 PHP、Ruby、ASP.NET、Angular 以及純開發以外的許多其他相關技能。這是一門精彩的課程,為我提供了成為高效 Web 開發人員所需的所有技能。
在我的大學生涯結束時,我對整個 Web 開發有了很好的了解。我當然不知道一切,但我已經到了沒有什麼對我來說是神秘的地步。從這裡開始,我天生的好奇心讓我想要更深入研究。這讓我深入了解了作業系統、系統級開發和嵌入式系統。正如你可以想像的,第一步是學習 C.
學習 C 語言比我預想的困難得多。堆疊和堆疊記憶體以及指標的概念非常令人困惑。特別是來自具有垃圾收集器的高階語言。我很快就意識到,並不是 C 語言更難,事實上,這門語言實際上相當簡單,而是我必須不斷地改掉過去幾年學習高級語言時所犯的所有壞習慣和錯誤假設!
這就是我現在所說的自上而下學習的詛咒!
我變得非常沮喪,因為我在學習非系統級語言時做出了所有這些錯誤的假設。這也使得學習 C 語言的過程花費了原本應該花費的三倍的時間。
我對我所使用的抽象缺乏欣賞!
不要誤會我的意思,有很多人可以只專注於應用程式層級開發或進行基本的 Python 腳本編寫來完成整個職業生涯。然而,如果您想真正成為軟體工程師,並了解從嵌入式系統到作業系統以及為這些作業系統開發的應用程式的整個領域,那麼自下而上的學習是非常有利的。
我對任何真正想成為軟體工程師的人的建議是從 C 開始。了解堆疊和堆疊以及指標之間的差異。涉足一些彙編,即使只是分析較小的 C 應用程式生成的彙編。如果你從根本上理解了這些事情,其他一切都會變得容易多了!
我希望這就是我的開始。從我的錯誤中學習!
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3