https://www.zhihu.com/question/21714701
作者:王洋子豪
链接:https://www.zhihu.com/question/21139858/answer/17709577
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
工作/实习注重技术的实用性:快速学习一项技术并利用其解决问题的能力,研究生注重技术的开拓性:1)发现新的有意思的问题 2)发现现有成果的问题并改进 3)解决一个长期未解决的问题。当然,这个定义并不绝对。简单讲,工作的时候(研究所和研究机构工作除外)大部分都是快速学习已有技术/解决问题方法并对其进行应用解决公司感兴趣的问题,研究生阶段则是发现未知的领域,探索新的可能性。并努力让你做的研究成果在未来服务于其他技术领域的同行。我认为要在计算机行业取得成功,无论你读研究生还是去工作,有一些基础的知识你都需要了解,这些基础知识包括:操作系统原理、体系结构、面向对象和函数式编程、编译器原理、计算机网络、算法分析。有了这些做研究才能起步,在工作中也才能和人交流。这些并不是工作中不需要的,好的技术公司无论侧重哪一方面,所有上述知识都是或多或少需要的。另外,无论读研究生还是去工作,都需要了解一些基础的技术:高效的使用键盘,高效的使用类Unix系统,高效的使用一种文本编辑器(作为最熟悉语言的编码环境),熟练的使用版本控制软件(如果你还没有经验,那么建议直接学git,其他的都不用学了),熟练的使用你常用编程语言的调试器 (gdb/ddd等),快速生成排版优雅的文档/演示+快速分析数据结果(如LeTex和matplotlib)。另外,不论你去读研究生还是去工作,都需要这些社会工程学的知识:电梯演讲(迅速向人推销你的想法),公共演讲(对非专业人士和专业人士及领域专家都要能传达自己的思想),速记(迅速理解他人观点并从中提取核心信息),如何提问(比如一个在大部分技术话题中都适用的问题是:How does this scale?),如何在团队中工作。我可以继续说很久,但是你明白我的意思。计算机科学的核心技能在哪里都可以学到,只是侧重点不同,而学校和工业界所需要的技术是有很大交集的。不论你做何种选择,要选择好的环境和团队,好的技术文化才能孕育出好的技术人才。最后,地点是个很重要的问题,如果是在美国,在硅谷,那么我个人觉得我说的还算自己的经验之谈。在国内我不了解情况,不敢妄言。
在工作中提高自己的技术水平和在研究生期间提高自己技术有什么不一样?
在工作中,一般人一开始都是技术打杂,模块任务。慢慢的看个人能力,交代任务。在一步步往上爬的过程中,熟悉整个架构。在工作实战中,会学习到很多,提高的会很快。不仅是技术,也掌握了工作的套路。
计算机读研,一般第一年上课修学分,第二、三年实习+做老师手头的项目。
不管是哪种途径,技术都有提升,其实,提高技术关键看自己。
不同的是,读研期间除了提升技术,更重要的是进行深入学习和研究。本科对计算机学习的深度较浅,以及独立思考以及解决问题的能力方面都有所欠缺,在读研期间,这些会提升很多。
读研能获得什么?
1.文凭
说的功利一点:读研能获得文凭。
很多人都觉得读计算机没有必要考研,计算机这一行业确实主要看实际操作能力。但如果你心仪的工作要求是硕士及以上,没有这份文凭,连简历都递不上去。
借鉴张雪峰老师原话,虽然世界五百强都在告诉我们学历不重要,但是他们不会去那些不知名的大学招聘。
2.工作对口
很多本科生都会有这样一个体会:本科毕业,自己会什么根本不清楚,好像什么都会一点,但什么都不精。
而读研期间会深入学习本科的知识。本科阶段学的比较杂,而研究生主要针对一个方向,所以对这方面学的更深一点,学的算法也会多一点,在研究生阶段,对某个领域有所建树。相对本科,找工作更对口。
还有一点,读研会接触到本科生可能接触不到的领域,像并行计算,数据挖掘,模式识别,图像处理等,如果选好方向,深入学习,出来找工作根本不会和本科生重叠。
3.起点高
相较之下,研究生的找工作起点高,起底工资比本科生多4、5k。比如:研究生相对本科生更容易找到研发类的工作。
4.发展前景
计算机读研最重要的不是学到多少知识或者技术,而是读研能碰见更好的机会,遇到更多牛逼的人。有这样的环境和氛围,更有利于技术更好的提高,以后的发展前景也会更好。