研究所的程序员水平大概啥样?

我现在在一家公司的内部研究院做码农,不知道符不符合你说的”研究所的程序员“这个概念 =_= 姑且先来回答一下。 关于程序员水平,我先举个例子。我们会要求单人编程完全实现一篇外文文献上描述的内容。就扔给你一篇文献,文献可能会给出几个主要的公式。要编程实现它的内容,我觉得主要也反应了程序员的两个方面的水平: 1 逻辑思维水平。从文献里面整理出整个程序的流程图,有什么输入,需要什么输出。分为几个模块,每个模块要实现的功能,实现的过程。模块间的数据传递等等。这些东西都得非常清楚,刚开始考虑得越清楚越详细,后面出错的地方就越少。 2 编程水平。就是怎么把上面的设计一五一十地表达出来。首先得对编程语言非常熟悉,常用的命令和函数要熟。但这个只是基础性的要求,像我们用的是C,在大二学习的C++内容已经完全可以应付了。编程这种事情主要还是看思想,这边需要一个循环那边需要一个判断什么的。编程思想万变不离其宗,思想指导语言,所以要学习一门新的编程语言也不难,买一本最基础的教程书,不熟的多翻书多用用也熟了。熟能生巧,说白了还是多敲代码。 还有一个很重要很基础的能力,就是查bug!我上次写了个算法库,模块不多就三个,几十个函数,每个函数在200行代码以内。我习惯一边编一边查bug。这个就是要活用编程工具,熟悉各种跟踪检查的方法,积累经验也很重要。要有错误提示就去百度查查,一般的问题都不会只有自己遇到。最怕遇到不可重现的bug,搞不清楚触发条件,一样的运行过程,一会儿出问题一会不出问题;一样的代码这个电脑出问题那个电脑不出问题我擦。。。 其实上面两个方面是相辅相成,缺一不可。根据职位的不同或者主攻方向的不同,也会对程序员有一些不同方面的水平的要求。比如做项目预研,要求程序员对这一方向的整个行业水平、实现方法都要有一定的了解;与硬件紧密相关的话,要求对实现的平台要相当熟悉,编程时对空间、时间效率要求也更高,等等。 其实研究所程序员水平与非研究生程序员水平也不一定有一个明确的分界线。研究所程序员之间可能水平差别也很大。我这方面也还很弱,还需努力(⊙_⊙) 答得不好请见谅~
■网友
小硕,目前在一个非互联网方向,非软件性质的研究所做码农,进来以后首先要做的是接手其他部门码农帮忙做的处理专业数据的代码,其次就是做一个界面。这就是现在的主观感受,对性能暂时没有要求,只要达到基本的目的就行。感觉研究所对码农的要求就是低级全栈工程师,不管做什么都要懂一点,万一需要就要上,但是不需要太深,因为软件只是后台边角,核心还是硬件产品。当然与自己所在的部门有关,产品部门的程序员或许要求更高吧,当然也可能外包出去了。


    推荐阅读