给计算机软件大学新生的话
——大学四年该怎么过
一、核心忠告:专注一门,精通为止
不要在多门编程语言间徘徊,把一门语言玩熟了,其他语言都是纸老虎。
很多同学问我:「现在C#、Java很火,找工作都是招这些语言的,我是不是应该去学?」
我反问:「你已经学C++半年了,刚把基础语法学了个大概,又要去学C#,这不是又浪费半年时间吗?等半年后你又发现Java不错,再去学Java基础,这大学四年就全在'学语言'了。」

二、学游泳的比喻
学编程就像学游泳:
• 目标派:想把蛙泳、自由泳、蝶泳、仰泳都学会,那样才酷
• 折腾派:蛙泳练两下、自由泳练两下、蝶泳再练两下,折腾几个月什么都不会
• 聪明派:从蛙泳练起,把蛙泳游顺了,有了「水性」,再学自由泳就很快
编程同理:假设学会基础语法需要3个月,找到「编程感觉」需要9个月。
• 如果专注一门语言:12个月后达到「编程感觉」
• 如果两门语言交替学:24个月都未必能达到
三、过来人的教训
我大学大部分时间都在搞Delphi,找工作前只突击了半个月Java,就拿到了Java工程师的Offer,还是笔试成绩第一名。
大一大二时我也走过弯路:感觉Web开发「有前途」,放弃了刚有点感觉的VB,去学ASP、PHP、JSP,结果什么都不会。
后来一门心思搞Delphi,搞熟后再看ASP、PHP、JSP,发现本质都是处理Form、Session、Request、Response、Cookie,大同小异。
四、不要追社会热点技术
「学了一阵子C#,又发现J2EE、J2EE很火,学Java多好呀」——这是死循环。
按热度追:C#、Java已是过气明星,新语言又出来了,累死你也追不完。
事实上:
• IT技术更新一点都不快,是改良性的,不是推翻性的
• 新技术解决老问题的不同只有10%,90%的根基完全相同
• 同一目的,不同实现方式,差异性很小
五、精通一门,其他轻松上手
担心:「一直搞C++,C#、Java职位就放弃了?」
不必担心!把C++玩熟了,找工作前对照C++和C#的异同点突击一下,很快就能从C++高手变成C#高手,照样能打败那些「自称精通C#」的人。
六、一个常见的学习计划(请勿模仿)
很多同学列过这样的「伟大计划」:
编程语言:C#、Java、C、C++、JSP、PHP、Delphi、Python、Ruby、Perl……
数据库:SqlServer、Oracle、MySQL、DB2、PostgreSQL、SQLite……
.NET技术:WPF、Silverlight、WinForm、WCF、Linq、MVC……
结果:大而不精,浪费时间。编程语言选一门足以,数据库找一个就行。
七、学习三境界:知、信、行
朱老师的三个字道出了学习的本质:
知:知道这个道理
信:相信这个道理
行:照着这个道理去行动
只知不信,不如不知。只信不行,不如不信。只有「知道、相信、行动」三合一,才真正属于你。
八、结语
选定了语言就不要移情别恋。用情专一,让自己找到编程的感觉,以后根据实际情况很轻松就能另寻新欢。
编程的本质是什么?把自己的思想转换成计算机的思想。能熟练完成这种转换,什么语言都一样。
记住:
「一通百通」——这才是大学四年该追求的东西。
夜雨聆风