【来信】
从您的博客上了解到贺老师您是一位值得信赖的长者,并且乐于为大学生解决问题。我是一个大四学生,所学习的专业是信息与计算科学,虽然也学习一些计算的内容如c语言、c++和数据结构。但是主要是学习数学理论,可能是我心智不足以胜任所学数学。虽然付出了很多的努力,所收获的却很少。刚考完研,但是我估计我应该没有多少可能能够考上,并且家人也希望我去工作。所以,我现在必须要做工作的打算了。
我的打算是做C++程序员或者是Java程序员。事实上我对着两种语言没有多深的了解,只是能解决一本教材后面的大部分习题,没有项目经验。而且数据结构方面的知识,我也大多忘记了。我的打算是趁现在还有时间,有计划地认真学习。这样能使自己应对过完年之后的应聘。学习计划主要是C++、Java和数据结构。(因为做数值计算的原因,我对C语言运用比较好,能编写常用的复杂的数学函数。)现阶段在学习C++,所用的教材是《C++ Primer Plus》(第五版)中文版。打算在一月份学完这本书(目前已经看了五章了,感觉还是挺容易的。),二月份是Java,三月份数据结构,并且开始仿写一些开源的小项目。但是我对目前的程序员行业还是很缺乏了解的,所以也缺乏自信。我想请老师您推荐一些更具有应用的学习计划给我,面向企业需求的。虽然我知道C++、Java和数据结构式基础,在面试复试中都是很重要的。其次,我想请老师指导一下更科学的学习方法。我目前的学习方法很简单。那就是看教材,实践教材里面的例子,再做每章后面的习题。
我在这一阶段确实遇到了很多问题,希望老师能在百忙之中,给予指点。我会真正体会老师您的意思,认真实践的。谢谢您了!
【回信】
非常遗憾地看到你的一句安慰语“可能是我心智不足以胜任所学数学”,这可能是你付出努力很多,却收获很少的真正原因。这个专业注重计算学科的基础理论,自信和收获是相互扶持的,即使遇到困难,多给自己一些向前的暗示应该是更好的。
现在要就业了,仍然不得不在语言层面上做准备,这可谓是时间紧任务重。就靠着这点“积累”去求职,做好艰苦的准备。根据你讲的情况,两种语言都去攻没有必要且不现实,你没有足够的时间将两种语言准备到能进行实际项目开发的程度。如果都限在基本语法的层面上,会是一个不高不低的尴尬位置。鉴于你在C上的基础,觉得你暂时可以不去考虑JAVA,而将C或C++学得更扎实些。结合你的专业,以及之前在数值计算上有过的体验,找工作就找瞄准需要更多数学基础的岗位去找。这样的岗位尽管没有做应用的多,但是更能体现你的基础和优势。我听到现在做数据统计等方面的岗位渐多,你可以了解下,看有没有能和你现在所学结合的地方,做到有的矢。
至于语言学习的方法问题,你提到的简单方法我认为还是可行的。要根据你的体验进行调整,如果从教材中的例子和习题中还是能够得到不断的提高,是需要将这种方式进行下去的。因为要面临找工作了,建议你需要考虑求职主要攻的方向,看这个方向上招聘的要求,了解这个方向,找到或者自拟出一些稍大的有练手价值的题目或小的项目进行实践。进公司的考试要重视,对你主攻方向,以及需要的技术也不可缺少。我感觉你在大学的学习中缺少了“抬头看路”的环节,而现在面临求职,不提前考察,而只是蒙头打基础,这是要付出代价的。
总之,因为时间紧了,将目光放窄一些,而不是试图多点出击,可以作为一种更现实的选择。
祝一切顺利!