李开复嘱咐我

1.练内功。

不要只花功夫学习各种流行的编程语言和工具.以及某些公司招聘广告上要求的科目。要把数据结构 算法、数据库 操作系统原理、计算机体系结构、计算机网络.离散数学等基础课程学好。大家不妨试试高德纳所著《The Art of Computer Programming》里的题目.如果你能够解决其中的大部分题目.就说明你在算法方面有一定的功力了。

2.多实战。

通过编程的实战积累、经验、巩固知识。很多中国大学毕业生缺乏编程和调试经验:学习C语言.考试过关就算学会了:课题项目中.只要程序能够编译 运行.并且输入。输出满足要求就算了事。这些做法是不行的。写程序的时候.大家必须多想想如何把程序写得更加精炼、高效、高质量。建议大家争取在大学四年中积累编写十万行代码的经验。我们必须明白的是:好程序员是写出来的.不是学出来的。

3.求实干。

不要轻视任何实际工作.比如一些看似简单的编码或测试。要不懈追求对细节一丝不苟的实干作风与敬业精神。我发现不少程序员对于知识的掌握很肤浅.不求甚解.没有好奇心.不会刨根问底。比如.学会了c++.是否了解一个对象在编译后。在汇编代码中是如何被初始化的?这个对象的各个成员在内存中是如何存放的?当一个成员函数被调用时,编译器在汇编代码中加入了哪些额外的动作?虚函数的调用是如何实现的?这些东西恐怕在编程语言或编译原理中都没有详细提到,只有通过踏实的实干才能真正掌握。

4.重视数学学习。

数学是思维的体操,数学无处不在。学计算机至少要学习离散数学、概率论、布尔代数、集合论和数理逻辑。这些知识并不难.但是对你未来的工作帮助会很大。尤其当你对一些”数学密集型”的领域如视频图像处理等有兴趣时,这些知识将成为你手中的利器。

5.培养团队精神.

学会与人合作。今天的软件工程早已经不是一个人可以单独操作的.而必须靠团队合作才能成功。不懂得合作的人是不能成大器的。大家要多去寻找可以与人一起做项目的机会。

6.激励创新意识.

培养好奇心,不要死记硬背。没有掌握某种算法技术的根本原理,就不会有应变和创新的能力。想成为一位好程序员{其实从事任何一个行业都是如此),重要的是要养成钻研,好奇.创新,动手,合作.的优秀习惯。不满足于填鸭.不满足于考试交差,不满足于表象。这不是学几门课能够一蹴而就的。

7.有策略地“打工”。

在不影响学业的前提下,寻找真正有意义的暑期工作或兼职。去找一个重视技术的公司,在一个好的“老板”指导下完成真正会被用户使用的程序。不要急于去一个要你做“头 而独挡一面的地方,因为向别人学习才是你的目的。找工作也是一样,不要只看待遇和职衔,要挑一个你能够学习的环境,一个愿意培养员工的企业,一个重视你的专业的公司。最后,还要挑一个好老板。

推荐阅读更多精彩内容