本文是从 All Programmers Are Self-Taught 这篇文章翻译而来。
在我十几岁的时候就开始玩甲级级棒球。我水平很差,但当我决定要做好什么事时,最终总能如我愿。现在我是计算机专业 3 年纪的学生。在编程上,有些事情和体育是截然不同的:棒球教练可以教会你如何打棒球,但一个计算机教授却不能教你如何编程。
我很吃惊,在整个大一期间,我的老师或教授从来不点评我的代码,大二时更是如此。我们的作业很多,题目很难,但在完成了数据结构课上的 2000 行的代码后,我从来没有收到过老师的任何一条评论——只要程序能编译通过,单元测试显示没有错误,这就行了。直到遇到了一个小组开发的项目,我才认识到我的代码写的多烂,我才开始询问:好的程序应该如何写。
但是,什么样的代码才是好的代码?我花了大量的时间来提高代码的可读性,添加注释。我努力模仿 UNIX 的哲学观,力求简约,首先让程序能跑起来,在此基础之上,在需要的情况在进行优化。复杂的东西要逐步增加。除非必要,我不使用线程。但是,说实话,我不知道这是不是好的代码(说实话,我觉得自己水平很差)。
我很幸运,能和一群优秀同学一起工作,他们都是出色的程序员,他们在微软、谷歌、亚马逊等公司实习。他们的观点都很一致,认为自己的知识都是自己总结或从其他程序员那里学到的。即使是非常资深的软件工程师也有这样的看法。所以,我的结论是:
所有程序员都是自学成才的。
我受的教育给了我很好的基础:数据结构,算法,数据库设计,并行计算,网络编程,敏捷开发以及各种编程模式。但所有的这些,即使是它们使得编程更高效和更精巧,你仍然可能用错它们——我曾经看过一些学生在这些课程上学习成绩非常好,但写的代码却让人想哭。
我并不认为学过计算机科学、软件工程或得到一个大学文凭会有多大的用处,如果你想靠写代码为生,自学是你不可缺少的途径。
· 为什么说你不要独自编程(2012-05-24 07:44)
· 谈谈网络编程(基于C++语言)(2012-05-23 10:57)
热门评论
-
ン煙孖☆ 发表于 01-10 09:07学以致用 持之以恒 自学成才。现在的工作岗位大多需要有快速学习的能力,但一定要有自己的学习计划。
-
lincpa 发表于 01-10 21:23全部自学: 统计中专 会计自考大专 计算机及其应用自考大专 会计专升本 统计师 会计师 注册会计师 注册税务师 国际注册内部审计师 现在使用ClojureCLR+R+C#开发“鹏程一键财务分析软件”,致力于统计、会计、计算机三专业的融合。现在采用多线程设计,最终目标是支持分布式计算的数据仓库数据挖掘的傻瓜式财务分析软件。
-
给力的程序员 发表于 01-10 09:50LZ的观念很好,我很喜欢啊,我跟LZ一样,力求代码写的更好
-
wzwcn 发表于 01-10 09:50这个非常赞同,要学好开发主要靠兴趣和自学,光靠老师教成不了优秀的程序员!
-
银光小子 发表于 01-10 09:14我基本是自学的 哈哈
-
superhzh 发表于 01-10 10:43非常赞同,不过有时自学很迷茫,会走很多弯路。。。。
-
sky浩 发表于 01-10 10:21是的,我也是一个动手能力差的人,觉得你说的挺有道理的,我会改变的。~~
