假如我是老板或者诚心为公司招聘优秀人才的面试官,我会喜欢拥有以下特质的人。这里说的是招聘一个算法工程师,一个能够为公司创造收益的人,简单起见就不分社招校招。
1、忠诚度,这很重要。一个不忠诚的员工,能力再大,也不能要。所以如果看到一份简历满满当当的都是跳槽和实习简历,两个月换一个实习,半年换一份工作,除非你说出很充分客观的理由,否则我可能不会通过这份简历。
2、编码能力,这是一切的前提。前面说了,我们这里要招聘的是一个计算机视觉领域(CV)算法工程师,招进来是要干活的。公司不会招聘一个只会Matlab或者python都用不熟的人来做项目开发,做纯算法研究都不行,一个不能实现自己想法的牛人我还没见过。见过的牛人不仅算法好,编程能力也强大。
说起编程能力,有几点基本要求:
(1) linux得熟。
现在不是若干年前开源项目还不多的时代,大家还在Windows下面吭哧吭哧用Matlab和VS仿真,都9102年了,Linux都不熟,效率如何让老大放心。
(2) python得熟,c++得会。
如果连python这样简单的语言还用不熟,那真是无话可说。c/c++ 这是一门基础课吧,理工科的学校没开过应该很罕见,CV领域的工业界部署和算法优化都离不开C++。
(3) 编程习惯得好。
虽然说代码写的烂,不会真有同事拿gun突突突你,但是好的编程习惯不仅仅提高效率,而且看着也舒服,不会被别人鄙视。
这里说的习惯包括:多写写类和函数封装,组织好项目目录结构,好好命名等等。可以不会写多么牛逼炫酷的代码,但是要保证代码具有良好的可拓展性,方便他人阅读移植,具体要求以后再说。
3、算法基础,这决定了潜力。没做过检测?没事,没做过分割?没事。边做边学,快速跟进就是了,这本就是公司开发的常态。
人的精力有限,没做过的多了去了。但是如果CNN的一些基础傻傻说不清楚,图像的基础概念一问三不知,这就有事了。因为你交给他一个项目,可能会犯一些低级错误而不自知,老大心里也慌,还要陪着检查和普及基础知识。
以上就是三个基本要求,每一家公司肯定都是这样要求的,我觉得如果通过了这三个考验,那至少就是一个可以培养的候选人,我会愿意给他机会进入下一轮的PK。
踏实(基础好),靠谱(稳定),能干活(能写代码),这3个基本前提比什么都重要,其他的都可以在项目学习。