计算机研究生是否该全情投入导师的项目中

合理的思考能解决看上去困难重重的问题,当问题存在的时候不要捉急不要迷茫,允许问题的存在并不断找寻解决方法。
在算法设计策略中有一种叫分治法,分治法是讲求分而治之解决问题的方法,旨在将复杂问题拆分成若干个小问题分别求解,最终导出整体答案。下面来分解一下你的问题。
主要有三点:
1.感觉学不到东西
2.一直在做自己不喜欢的项目,时间紧,没时间研究自己的项目
3.是否应该为找工作做准备,学习基础知识
首先第一点:感觉学不到东西
如题主所说,题主一直在做导师接的项目,各种项目都有,与题主的研究方向没有一点联系。
导师为什么这么疯狂的接项目?在天朝这个大环境下想必大家心里都清楚。由此可想而知导师对相关技术也不是很懂,更做不到对学生的指导。学生为了应付老师的项目也只能靠自己查阅资料,从零开始学习。等稍微有点头绪,勉强做完项目又被导师分配做其他项目,周而复始。
要知道技术是一门讲求知识积累的学科,读过大学的都知道马克思的那句话“量变产生质变”,只有在某个方向上积累一定程度的知识才会有所成就。一门技术不是短短的学习几个月就能说学会,我们可以看到那些计算机界的牛人每一个都在自己的研究方向上付出了几年甚至几十年的努力才会有现在的成就。什么都知道,等于什么都不知道。什么都浅尝辄止最后也只会浪费时间一事无成。
在漫漫人生路上,有人指导要比一个人独自摸索要来的轻松很多,别人的一句话就可能抵得上你几年的努力。坑是前人帮忙踩,你才能绕过别人踩的坑将时间精力放在更重要的事情上,而不是在无谓的寻找探索中浪费生命。韩愈在《师说》中说到“古之学者必有师,师者,所以传道受业解惑也。”所谓导师,最重要的本职工作是帮助学生答疑解惑。当导师为了接项目为了自己的利益而不管学生的学习生活就失去了作为导师的意义,也不配称为导师。
其次第二点:一直在做自己不喜欢的项目,没时间研究自己的项目
什么是自己喜欢的项目?从题主的描述可以推测出题主更倾向于应用层面的开发。应用层面相当于一座摩天大楼最外面装饰的部分。
什么是装饰?装饰就是一种不合适可以换成另一种。就好比开发网站,Python不行换PHP,PHP不行换Java,Java的Struts不行换Spring,Apache不行换Nginx,MySQL不行换NoSQL,公司的业务不断变化,软件架构也不断变化,但其中也有不变的本质。
做应用层面的开发,尤其是做客户端开发,最可悲的地方就是变化太快,尤其是这两年最为明显,你睡一觉的功夫就有可能出来几个框架几个开源项目,以前asynchttp,然后volley,然后okhttp,以前PhoneGap,然后Hybrid,然后react—native还有他妈的react-canvas。连语言也是,使用nodejs,ruby,python开发网站火了一段时间,现在都要用go开发了。甚至连编辑器都要换了,vim,emacs哪个年代的事?editplus?sublime?现在是atom!现在我已经快一年时间没打开eclipse了,我不知道你是不是还在用这个古老的工具做开发。
有点扯远了,再说自己喜欢的项目。如上所说如果喜欢的项目是应用层面的开发,尝试几遍就行了。题主应用层面的开发经验对一个还没毕业的学生来说已经足够了。一遍一遍开发新的应用新的功能除了浪费时间还不值得。
大学生尤其是研究生有更重要的事情,就像要建造一座摩天大楼,没有坚实的基础谈何往上层建筑?大学四年学的计算机基础知识是不是在应用层面开发中又发现了很多不懂的东西?在做导师的项目的时候是不是也发现了基础知识的运用?其中的运行原理还能不能理解?需不需要研究下?做项目与学习本身不矛盾,从导师的项目中继续学习基础知识也不矛盾。
答主自己也是从事于应用层面的开发,也是毕业就在所谓的知名互联网公司工作。每天都是日复一日的重复劳动,对已有项目修修补补,除了挣得多点谈不上能学到什么东西,知识能力提升完全靠自学。


推荐阅读