我的100,000小时
英文原文:My 100 000 hours
我大概做了 11 年编程,从我 18 岁那年开始。我真的不知道为什么要编程,我只想能够编写我自己的软件,我能够记起来的应该是编写我自己的游戏。起步是艰难的,总的来说,编程有太多的信息、工具和很多技术,我根本没有任何头绪。
我开始阅读从网上找到的一些教程,随后我找到一些可视化游戏编程工具,然后我设法开发自己的游戏。或许你意料到了,这是让人讨厌的、太过容易和丑陋的。我也不高兴,因为我明白,我正在使用图形工具完成工作、而我没有学到任何真正的编程。不管怎么说,我被迷住了。
接下来我开始学习C,因为每个人都说“它是专业人士使用的编程语言”。它很难,真的、真的很难。我很快就沮丧了,基本上在差不多长达六个月的时间里停止了编程。
然后我在一本芬兰的计算机杂志上看到,有一种专门编写游戏的编程语言。我开始研究它,它易于上手,我利用周末设法做了一个太空射击的游戏。然后 用同样的语言又做了一个项目。然而,我内心仍然说“它不是非常有用处,我要学更难的语言”。我带着极大的热忱再次学习C,我努力学了基础知识,但是我又沮 丧了,因为我不能很好地理解指针、或其背后的基本概念。你知道吗,我停止编程了,这一停就是 1 年。
随后发生了改变我命运的事情。我听说有一种称之为“Linux”的内核,最初由一个芬兰的家伙编写。我开始阅读,开始测试。最终,经历了一些麻烦和大量阅读之后,我设法安装到了我的电脑上。非常酷,它有些与众不同,我觉得我一直都是最牛叉的大师。好吧……
接下来的 6 个月,我甚至没有考虑过编程,我只是在把玩我能找到的 GNU/Linux 不同发型版本。我用了 Mandrake、Red Hat(实际上,我认为 Red Hat 是我曾经用过的第一个发型版本),大部分时间用 SUSE。我听说,有一些难以使用和安装的发型版本,他们是 Slackware 和 Debian。我设法安装了 Slackware(我一直就无法让 Debian 在我的机器上正常运行),太棒了。我真正开始学习背后的操作系统到底是怎样运行的。我编译了自己的内核、资源库和软件,所有这些东西都是相当有用的。我没 有做或学习任何编程,但是我学到了工具是怎样运行的,我学到了连接器、编译器、makefiles 等等。
后来我开始阅读自由软件相关的东西,我被迷住了。Richard Stallman【注1】在很多方面是我的人格化的神。他说的或写的每样东西,我不是一概认同,但是不管怎么说(现在还是不全部认同),我还是花了大量时 间阅读了自由软件方面的文章,相应的社区等。然后我就开始想着再次学习编程了。
这次我选择的编程语言是 Python。Python 学习起来相当容易,但它是非常高级的语言。我学得非常好,也写了一些代码,甚至给我经常使用的音乐播放器提交了一个补丁。总的来说,我在 GNU/Linux 上用 Python 写了大概8、9 个月的代码。这是我真正学习编程的开始。我曾写过的、第一个还算真正大型的程序是 IRC 机器人,用 Python 写的。它可能有很多安全漏洞,不过我还是引以为豪,甚至有些自大。
不知道什么原因,我回忆不起来我再次学习 Windows 了。我学习了C#、VB.NET,还有一些C++。我写过自由软件的程序,人们实际上在用着,不错。
今天,我可以用C、C++、C#、Python 以及 PHP 等更多的语言编写满足生产环境质量的代码了。尽管如此,对于我用C编写的项目,能够做一些底层编程,我是非常有兴趣的。我一直在学习新技术;密码学、编译器以及关于图像编辑算法的所有技术,都合我意。
在此过程中,我一直在旅行、写生产环境上的代码、会见优秀的人。也就是说,我找到了很多乐趣,真是春风得意。然而,学无止境。每天都有要学的新东西,它让我坚持目前我在做的事情。
为什么要写本文?为了每个想学习编程的人。这是我的故事和经历,我希望你能从中有所收获。对我而言,它纯粹是一种激情,我无法用语言来形容,但是它伴随着我一直走到今天。
如果我能给程序员新手分享一些东西的话,那就是:学习、并使用 GNU/Linux,学习 Python、大量阅读。不要放弃。
相关阅读:《给孩子们的建议:1000 小时定律》
- 注1:理查德·马修·斯托曼(英语:Richard Matthew Stallman,简称 rms,1953 年 3 月 16 日-),美国自由软件运动的精神领袖、GNU 计划以及自由软件基金会的创立者。作为一个著名的黑客,他的主要成就包括 Emacs 及后来的 GNU Emacs,GNU C 编译器及 GDB 调试器。他所写作的 GNU 通用公共许可证是世上最广为采用的自由软件许可证,为 copyleft 观念开拓出一条崭新的道路。http://zh.wikipedia.org/wiki/Richard_Stallman
— END —
译文: 《我的 100,000 小时 》 腊八粥