所有的程序员都是自学成才

在我十几岁的时候就开始玩甲级级棒球。我水平很差,但当我决定要做好什么事时,最终总能如我愿。现在我是计算机专业3年纪的学生。在编程上,有些事情和体育是截然不同的:棒球教练可以教会你如何打棒球,但一个计算机教授却不能教你如何编程。

我很吃惊,在整个大一期间,我的老师或教授从来不点评我的代码,大二时更是如此。我们的作业很多,题目很难,但在完成了数据结构课上的2000行的代码后,我从来没有收到过老师的任何一条评论——只要程序能编译通过,单元测试显示没有错误,这就行了。直到遇到了一个小组开发的项目,我才认识到我的代码写的多烂,我才开始询问:好的程序应该如何写。

但是,什么样的代码才是好的代码?我花了大量的时间来提高代码的可读性,添加注释。我努力模仿UNIX的哲学观,力求简约,首先让程序能跑起来,在此基础之上,在需要的情况在进行优化。复杂的东西要逐步增加。除非必要,我不使用线程。但是,说实话,我不知道这是不是好的代码(说实话,我觉得自己水平很差)。

我很幸运,能和一群优秀同学一起工作,他们都是出色的程序员,他们在微软、谷歌、亚马逊等公司实习。他们的观点都很一致,认为自己的知识都是自己总结或从其他程序员那里学到的。即使是非常资深的软件工程师也有这样的看法。所以,我的结论是:

所有程序员都是自学成才的

我受的教育给了我很好的基础:数据结构,算法,数据库设计,并行计算,网络编程,敏捷开发以及各种编程模式。但所有的这些,即使是它们使得编程更高效和更精巧,你仍然可能用错它们——我曾经看过一些学生在这些课程上学习成绩非常好,但写的代码却让人想哭。

我并不认为学过计算机科学、软件工程或得到一个大学文凭会有多大的用处,如果你想靠写代码为生,自学是你不可缺少的途径。

[英文原文:All Programmers Are Self-Taught ]

分享这篇文章:

19 Responses to 所有的程序员都是自学成才

  1. tongDou says:

    感觉是这样的。

  2. 小小才子 says:

    确实是,学校是不交如何写代码的。

  3. Charlie says:

    身边好多人都是这样,都非相关专业

  4. Zind says:

    OT 下,为什么大家都说过早地优化是一切罪恶的根源呢?
    我觉得边写代码,边优化挺好的啊

  5. haitao says:

    【我受的教育给了我很好的基础:数据结构,算法,数据库设计,并行计算,网络编程,敏捷开发以及各种编程模式。】
    这样的人,还说自学成才。。。。。。。。。

    【过早地优化】,可能是指分析、设计时,过多考虑优化,导致复杂而易错
    【边写代码,边优化】,应该是“及时(微小)重构”,应该是对的

  6. momo5269 says:

    我觉得吧 他不会去教你怎么样编程 工作中用市场到的东西你也不会学到 他教的都是基础 而不是教你如何为工作准备 这情况实在是太常见了吧

  7. lite3 says:

    是的啊,稍有点基础就好自学了,而且看兴趣的,兴趣来了再困难的都能攻克的.曾经我的AS3就是看帮助文档+写测试弄出来的

  8. ArcherJohn says:

    没错。我也如此。 程序员都是自学成才。 从11岁我就开始学了3年都是自学. 懂得了很多呀。

  9. HoH says:

    现在已经不是这样了。例如斯坦福大学的编程方法课,作业都要通过小组学习,并由助教对编程风格进行评价和打分。不是程序运行成功就完事的

  10. 咧威 says:

    我也是计算机专业,大学老师不会交你怎么写可读性强的代码

  11. 张得山 says:

    最后一句话,对我这样非计算机专业的而且是完全自学java课程的是一种安慰。

  12. 康乐 says:

    学校只会交给你最基础的理论知识,不会告诉你如何写高质量的代码,所有的这些只有在基础理论上自己通过实践和学习得来。

  13. 张国豪  这篇文章
  14. 十七 对这篇文章的反应是好文

发表评论

电子邮件地址不会被公开。 必填项已用*标注