前言
我的编程之旅始于 1997 年,至今已超过 25 年,甚至我制作的第一个程序都是在 Windows 95 和 Windows 98 上运行的——要知道,当时我才 12 岁。在那个年代,很多孩子都是从这个年龄开始学编程的,而我学的第一门编程语言,是父母送给我的礼物:来自 LCSI 的 MicroWorlds 中的 LOGO 语言(美国麻省理工学院 AI 实验室专为孩子设计的,一种易学、易懂、易于掌握的结构化程序设计语言)。
当我熟练掌握了 Logo 和小型 MicroWorlds 环境后,我就开始学习 Visual Basic 了,原因很简单:我有能力学它,并且可以在 Microsoft Office 中轻松将其用作游乐场。因此某种程度上来说,Visual Basic 6 是我接触的第一门真正的编程语言。
01 早期 Web 开发
在上世纪 90 年代末,互联网是最前沿的技术,因此 Web 开发是每个人都想学习的东西,所以我很早就买了一本《Sierra Web Artist》来建立自己的网站。虽然我以前学过一些 HTML 3,但实际上接触 HTML 4 后才是我第一次构建复杂的网页。通过一个局域网派对上认识的朋友,我很早就接触到了 CSS,JavaScript 我也很喜欢,与其说它是一种语言,不如说它为网页带来了无限可能。
跟很多同龄人一样,我花了很多时间让我写的 JavaScript 代码在 Internet Explorer 4 和 Netscape Navigator 4 上运行。就个人偏好而言,我一直都选择 Navigator,这也许是我坚持使用 Firefox 的原因:首先在我看来,Firefox 是最好的浏览器;其次,它总会让我想起 Netscape Navigator。
Dreamweaver 是构建 Web 应用程序的首选解决方案,专业人士使用 UltraDev。
服务器端使用 ASP 和 PHP
一般而言,你开始学习第一门编程语言后往往会坚持很长一段时间。当我开始编程时,一切都是全新和未知的,掌握至少一门编程语言(如 Visual Basic)会让我感到些许安慰。我在 Web 开发中使用的第一套服务器端代码,是在 IIS 上用 VB6 和 Microsoft ASP 编写的。由于在当时这是一种昂贵的技术,所以我挑战自学 PHP。
我自学 PHP 不仅是为了 Web 开发,也为了我非常喜欢的 SUSE Linux 7.2——大约在 2001 年,我开始深入研究 Linux 后,SUSE 成了我的日常驱动程序。有经验的人应该能知道,当你刚从 Visual Basic 世界出来的时候,学习 PHP 就相对容易。虽然第二门语言不像第一门语言那么难学,因为你已经知道了数据类型和编程的基础知识,但它的学习曲线还是很陡峭的——尤其是,当时我只有 17 岁。
你可能会问:我之前不是提到过 JavaScript 吗?别忘了,JavaScript 早期的功能极其有限,速度慢得令人痛苦,而且只能在浏览器中运行。当时在我看来,它只是一种脚本语言,可以让网站更具交互性或更花哨,所以那时我并没有把 JavaScript 当作一门正经的编程语言。
在 Visual Studio 中构建 Web 应用程序、桌面和服务器端代码
02 教育让我接触到了 C、C++ 和 C#
17 岁时,我通过德国的双轨制职业教育开始了我的第一份工作。那是 2002 年,发生了两件大事:微软发布了 .NET 框架,并建议从 Visual Basic 迁移到 C#。其次,我的专业教育课程包括 C 和 C++——不是现代的 C,而是经典的 C,没有任何字符串库和其他有用的东西。
我没有办法绕过这条学习曲线,它很陡峭,因此一开始我很讨厌 C 和 C++。.NET 框架、C#、C 和 C++ 让我感觉自己完全不懂编程,在刚开始接触时,我觉得自己就像个白痴。不过,如果你像我一样年轻,你就不会像长大后那样质疑自己。我刚开始学 C#、C 和 C++ 时,确实写过一些很烂的 C 代码,但也没受到什么惩罚。
Borland C++ 2.0 on DOS 让我开始接触 C 语言编程
让我真正喜欢上 C 语言的是 Linux。在 Windows 上使用 C 语言感觉有些无用,因为 C# 往往是更好的选择。然而,在 Linux 上,C 和 C++ 有自己的主场。为了能够正确应用 C 和 C++ 解决任何问题,我花了 5 年多的时间学习和应用这门语言。
03 学习 C 语言后,感觉一切都一样
当我熟练掌握 C 语言后,一切都开始变得千篇一律,主要是因为所有的东西都是用 C 或 C++ 编写的:PHP 本身是用 C 编写的,Windows 和 Linux 系统的大部分库是用 C 编写的,.NET 框架也是用 C 编写的。
学会 C 语言后,我很快就学会了大量编程语言,包括 Flash 的 ActionScript、Mac 的 AppleScript 以及一些 Delphi(当时我需要维护一个 Delphi 项目)。后来当 WAP 在诺基亚 7110 上大行其道时,我还学习了 WML 和 WMLScript。
随着第一个 Xcode 版本的到来,我开始学习 Objective C,这是第一门我在学习时感觉非常困难的语言。老实说,我从未与 Objective C 成为朋友,后来当苹果发布 Swift 和 SwiftUI 时,我超级兴奋,毕竟我从未理解过 Storyboard 这种 UI 开发方法。
如今,我个人最喜欢的 10 种编程语言是 Swift、Go、C、JavaScript、C++、CMake、SQL、Java、C# 和 Scratch,其中 Scratch 非常适合儿童来学习编程。
我认为一个有序排列的个人编程书库非常有用


