近年来计算机相关专业考研热的升温,让考研与计算机行业经验论这两个亘古不变的“宿敌”再次碰撞在一起,引发强烈的热议。
如果你有实际开发工作经验,感觉自己的水平和实力进入了一个瓶颈期,迫切需要从理论上提高自己,那么考研是一个很好的选择。因为只有研究生阶段的学习,才能让你在理论储备上更上一层楼。
需要特别说明的是,工作经验并不一定就等于开发经验了。现实中有很多工作两年三年的人,却没有一点开发经验。
或许有人这样替他们辩解:他们都有很强的开发能力,只是不太喜欢读书,也只是希望混个学历,能对今后在岗位上晋升有好处。可事实真是这样吗?我觉得不对,这种人的开发能力绝对不是很强。因为,高手不可能不喜欢读书,也不可能只是想去混一个学历,更不可能认为晋升需要仰仗学历。
甚至有统计数据显示,计算机专业的研究生未必个个都是高手,其中大部分连编程都不会,庸碌之辈仍然占绝大多数。在如今的社会,研究生毕业月薪只有两千左右的比比皆是,所以不要寄希望于用一张研究生文凭出去赚高薪。但是,对于有实际开发工作经验的人,读研的这三年将为你提供了一个广阔的平台,得到真正的提升,毕业后月薪甚至可以达到数万以上。所以,同为研究生毕业,能力的差距是极大的。不要再去问“研究生毕业能拿多少?”之类的啥问题,而是要想“像我这种水平的人,研究生毕业能拿多少钱?”,才能得到准确地答案。
如何才代表着具有实际开发工作经验呢?我们通常认为具备下列能力:
一、已经认为C++和汇编语言都是很简单基础的语言,并能够自如地运用;
二、能够在30分钟之内想到正确的五子棋AI算法设计思路和方向;
三、完全理解STL为什么这么重要;
四、能够独立地解决所有的编译与链接问题,哪怕你从来没有遇到的问题,你也不需要询问任何人;
五、英文网站是你的首要信息来源;
六、能够读懂英语写成的国际标准,比如NTFS磁盘格式标准;
七、经常站在集合论的角度思考算法问题;
八、能够理解一个简单的驱动程序,能够理解一个简单3D交互程序;
九、能够认识到线性代数和概率论在实际编程 工作中的极端重要性;
十、完全理解COM的设计思想,尤其能够理解COM为什么要设计成这样;
十一、当有人说到虚函数的重要作用时,不会急着去找书来翻;
十二、能够说出C++为什么比其他语言优秀的理由,记住这种理由应该来自于你的开发体会,而不是因为其他人都这么说。
当然这并不是通用于所有的计算机相关专业的判断标准,也有很多标准没有罗列,但如果你同时具备这其中五条以上,就说明你已经具备相应的开发经验了。在这种状态下选择读研,你将取得读研的最大效益。
读研最重要的是明白你要做什么,而不是等导师来告诉你。研究生的优势在于理论功底深厚,思维具有穿透力(当然编程能力首先要过关,不要读完研究生还不知道MFC程序的WinMain函数在哪里)。所以,研究生期间,你一定要做有理论深度的算法设计,比如大规模数据的搜索算法。性能是首要考虑因素,不要奢望SQL函数能够帮你解决问题,所有的问题你都必须自己解决,你必须解决内外存交换的性能瓶颈。再比如极品飞车的3D场景生成、图形变换、碰撞检测、物性模拟、纹理映射、灯光模型等,这些都是可以保证你拿到2W+月薪的技术。而如果你认为这些太难,不可能做得出来的话,那么你就不适合读研——真的,要是读研后还要去搞一般的程序设计(如信息管理系统之类的软件),那么读研的价值就完全得不到体现,因为这些工作根本就不需要读研。
有些人宣称读研能够培养软件开发人才,可我们从来没有看见过有哪些是靠理论成为开发大神的。想成为软件开发高手的路只有一条:实践!软件开发需要大量的编程实践和独立思考,只有在这样的过程中,你才能逐步成长,没有实践经验的开发者,就是绣花枕头一个。
Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5,京公海网安备11010802025203号