也是cppblog一位同学写的文章,原文在
这里。
其实总的来说这篇文章还是没什么大的问题,你看那五点粗字标题,就是在告诉你不仅要写好的程序,还要写有用的程序。不过进了公司老板很难给你写没用的程序的,这点就忽略了。紧扣着客户的需求写是好事,不过这跟广大的大学同学们还是没什么关系,所以最后一点就忽略了。咱慢慢看前面的四点。
第一点说在校期间的实习是很重要的。这一点当然是对的,不过下面的论据有点问题。先看后面的。公司要能干活的人是真的,学计算机搞创新搞研究能拿奖那也是真的,只是拿的是图灵奖不是诺贝尔奖。这个诺贝尔奖有点问题啊,没有数学没有计算机(他老人家死得太早了,原谅他),所以数学和计算机就自立门户了。
在校实习可以赚工作经验。为什么这么讲呢?(华南理工大学的师弟师妹在2009年的时候告诉我们,金山公司给实习,做的东西不会拿去卖的,你们做完就完了。道听途说,谢绝跨省。)一般大公司都会给你真刀真枪的东西。写的代码会被最终用户运行,修bug的结果也是被最终用户运行的。到时候会有一大堆人指导你该怎么做的,因为如果你写的代码太烂他们也不好意思把你的代码拿去用是不是。
但是说学校教的东西与社会脱节就不好了。要我是校长肯定会拍案而起:“你们把学校当成什么东西了,Java速成班?”学校教的很多东西都是基础知识,根据《Teach yourself programming in 10 years(想看的自己去google)》,4年是远远不够成为一名优秀的程序员的。我们的确需要花大量的时间在基础课上面,譬如说掌握一两门语言和一点API让你们可以做出真正有用的东西啦,数据结构,网络,数据库,编译原理,操作系统原理,等等等等。但现在的事实是很多高三的学生们在填志愿的时候还不知道自己学了计算机就会上了贼船,所以大量的人是大一的人才开始写代码的。4年当然不够了,所以在学习基础课的时候,我们还需要自己给自己出点难题,写点代码。在我看来,
学校只需要保证一个几乎把自己所有的时间投入到代码中去的人能够找到合理的工作就好了。谁让他花那么多时间玩游戏的(其实我也喜欢玩,但我不会没日没夜的,写完代码才会玩的),那将来结果不尽人意只能怪自己了。
需要注意一点的是,上面那句话最后几个字是“合理的工作”而不是“理想的工作”。为什么呢?这跟你学了什么东西是很有关系的。找到理想的工作还要有一个前提,跟学校无关的,就是你要挖掘出自己的兴趣所在。你往那方面不短拼命练习,就可以保证你可以只找你喜欢的工作,找到了当然是理想的了。如果你并不是特别喜欢写代码,但是也成为了一名不错的程序员的话,那只能说是合理了。好工作,但你不喜欢罢了。
先总结一下,学校教基础,实用的自己去学。至于那些理论课有什么用,
当你一个工程的代码写到了好几万行而且里面绝大多数都不是用来处理UI和SQL的时候,你就能开始理解了。
第二点,思想周密谨慎。文章下面只有一句话,其实说是说对了,只是泛泛而谈也不能当指南来看。当然我并不是在批评作者,说不定人家本来就不想写指南,只是“读者有心”罢了。
思想为什么要周密谨慎,因为计算机语言太低级,我们不得不去处理大量的其实跟我们要解决的问题没什么关系的细节。为了很好的掌控这些东西,就要学习学校教给你们的那些所谓与社会脱节的基础课啦。就跟学数学一样,就算你将来真的不用考计算微积分来吃饭,但好歹学那个东西还是提高了你的智商的。如果你有幸真的需要考那些基础课来混饭吃的话,那你就更会体会到它们的重要性了……说白了还是那句话,实践出真知啊。趁着还在读书的时候赶紧写代码,等到将来被HR鄙视就晚了。
第三点,不要因为代码简单就不想写。文中的一个观点就是,同一个东西,你写的次数越多,你解决它的方法就越美妙。这就是为什么我们要不断地重写重构的原因了,代码速度越快,
并且越容易维护的话,将来遇到需求变更你就不用觉得自己快死了一样。 第四点就不评论了。记得在Channel9看一个叫eric的老头讲解haskell的时候,他不停的说要“Put your love in your code.”要有爱。为了能让自己的爱发挥作用,当然首先要让自己写出漂亮的代码了。
总结:不要抱怨学校,高考志愿是你自己填的。总的来说文章的大道理还是对的,就是论据稍微有点什么,总之自己看着办吧。
posted on 2010-01-31 03:44
陈梓瀚(vczh) 阅读(5218)
评论(10) 编辑 收藏 引用 所属分类:
启示