我来自机电学院,机械工程专业专硕2019级二班学生文岩。面对未来的人生,每个人都有不同的选择。综合考虑自己的兴趣和特点,我选择了在一家终端公司做AI(人工智能)算法工程师。在这里讲一下我的求职故事,同时包含自己身边同学的一些故事,对自己的求职做一个总结,更希望能带给大家一些启发。
大家可能觉着奇怪,机械专业的学生为什么去做了AI算法工程师?这里我想从两个方面来解释:
一、公司不会特别在意你的专业,而是更加在意你的能力。这个能力要让别人能够直观的看出来,而不是仅仅通过面试时候的表现。拿我做的AI方向来说,个人能力可以体现在论文、博客、GitHub上等。我自己在知乎、CSDN上都发表了一些高质量的博客,我自己在GitHub上开源了很多自己写的代码库,这几个平台都有很多的粉丝。同时我也是古月居(国内最大的机器人社区)的签约作者和讲师,发表了很多博客和课程。在专业方面,也在IEEE ROBIO上发表过论文。这些都是个人能力的外在体现。建议大家从现在做起,开始发展并维护起代表自己成果的标志,例如上面说的那些、个人网站都是不错的选择。
二、兴趣使然。虽然我是在机械学院,但是我从大二开始就一直在做机器人,机器人是一个多学科交叉的领域,计算机、机械、控制等共同参与才能完成一个机器人的项目。因此这几个方面我都有涉猎,尤其擅长计算机方面。写代码、做机器人、做DIY是我的爱好,这也是标题Stay hungry,stay foolish想要表达的意思,希望我们都能求知若渴,虚心若愚。只要自己感兴趣,那就去足够的动力去做好,如果想做的事情没有做好,我觉着不是能力的问题,而是毅力的问题。希望大家放开自己的专业的束缚,大胆的尝试自己喜欢的东西,充分利用好青春时光。
下面我将穿插面试要求和自己的经历来向大家说一下就业要怎样准备。
对于互联网类、终端类、自动驾驶类公司,必要的编程能力是必须的,笔试和面试中编程能力主要通过算法与数据结构的考察来体现,题目一般是取自力扣网(一个算法题库网站)或者企业自拟。像华为、荣耀等即使参加提前批,也是会有笔试题的。以华为和荣耀举例,笔试题是3道算法题共600分,拿到100分就有进入面试的资格。
大部分企业的笔试题的算法题与面试时候的算法题不太一样,笔试时候的算法题难度更大,倾向于是一个综合类型的算法题,面试时候的算法题大部分是单纯的力扣上面的题目,综合难度更小。因此,如果想要面试上述类型的企业,建议提前一年或者两年开始准备算法与数据结构的全面、深度的学习。在掌握了算法与数据结构的知识后,重点做力扣网上面的题目,一般来讲,力扣上面要熟练掌握三四百道题目的解题方法,力扣上面剑指offer系列的题目必须掌握,大部分的面试题出自剑指offer。其他的如力扣热题、力扣精选题等也要大部分掌握。
在做算法题的同时,建议不断提高所使用的编程语言的熟练程度,包括编程语言的高级语法、一些重要库的使用,同时还要多了解编译器的工作原理,这些在面试过程中都会考。例如我在多个面试中被问到C++中vector的工作原理、Python的垃圾回收机制等偏底层的知识。总之,把算法与数据结构放在第一个说明,是为了体现出它的非常的重要性。
除了算法的考察之外,计算机操作系统、计算机网络、编程语言的深层次理解、Linux基础或者进阶知识、数据库、必要的开发工具(如Git、Docker)都是考察的重点。这些内容虽然较为简单,但是内容特别多、特别繁杂,而且很多需要自己有实际的经验,才能回答的出来。例如Git和Docker的使用,如果只是看书、看视频而没有自己真正长时间的使用,在面试中是非常容易回答不上来的。计算机网络、计算机操作系统的内容更是特别特别多,因此平时注重积累和运用。建议在面试前半年开始准备这些内容。
上面说的这些都是计算机方面的基础知识,还要掌握专业知识才能满足我们所应聘的岗位的要求。如果是面试开发,如后端开发、前端开发等,需要掌握对应的专业知识,我面试的是人工智能算法岗,所以从AI岗的角度来说一下怎样准备专业知识。
AI算法岗要掌握的内容特别多,首先它是算法岗,因此对数学的要求相对较高。例如字节、阿里等面试都会要求做数学题,包括高数、矩阵论、概率论,是纯粹的数学题,不是像力扣上那样的算法题,因此面试这些大厂的AI算法岗需要提前准备数学的基本功。
我的课题是深度强化学习与机器人相关的,我面试的岗位也是与我课题相关性很大的,因此做课题的过程也是在准备面试的过程。在投简历的时候,有些公司的岗位分类可能没有那么细,例如荣耀公司就是机器学习部门,没有单独的强化学习岗位,但是不要因为这些就阻止了自己投简历。公司的面试官会根据你的简历来问问题,问的问题除了通用基础知识,剩下的一般都会按照简历来问,因此只要大的方向吻合就可以,最重要的是简历上写的内容自己要非常熟练、非常熟悉,面试官都会先让你介绍你简历上的项目,然后他针对性的提问。
有时候面试官也不懂你简历上的项目,但是他们会根据你介绍的情况来判断你对项目的掌握,从而对你整体能力从侧面有个认识。不过永远不要小瞧面试官的能力,有两次我面试游戏公司的时候(深度强化学习非常适用于游戏,因此即使机械专业,也是可以的,我实习的时候也是在游戏公司),面试官竟然懂机械臂的控制。
除了项目之外,专业知识也是必考内容。拿我的课题深度强化学习方向来说,面试中会被问到机器学习、深度学习、强化学习、控制论的东西,因此需要系统性的把课题专业知识学习好。总结一下,在专业技能方面,需要注意的一是简历上的项目,尽量多做项目,吃透项目,让简历好看一些;二是专业方向的知识系统性的学习。
说完了硬功夫,还有一些软功夫对于面试成功也是非常有帮助的。
一、实习非常非常重要,尽量让自己有两段中大厂的实习经历。面试上述说的几种类型的企业,没有实习经历基本等于被pass。你在实习过程中学到的知识、运用的方法等都是面试官喜闻乐道的内容,实习中做的项目也都是要体现在简历上。我在面试荣耀之前,在金山软件的西山居游戏部门做过3个月的实习,做的是我的专业方向深度强化学习方向运用在游戏的训练中,在实习过程中,可以学习到很多先进的方法,这些在学校里都是很难接触到的,除此之外,实习过程也是提前适应职场生活的过程,提前了解公司的考核制度,适应公司的考核制度,你面试的公司也会非常看重这些的。
在实习中,最重要的是带给你自己的认知和收获。拿我自己举例,金山的实习让我最近距离与WPS接触,这真是很奇妙的体验,每天在用WPS,没想到竟然有一天走进了他们的办公楼,和他们的工程师近距离接触。也让我见识了管理层一排排的豪华跑车,公司的豪华办公园区,也大体了解了公司的运作等内容,还认识了非常nice的伯克利的leader、谷歌高级开发者的大leader以及一众非常优秀的同事们。这些都是非常珍贵的体验,实习越多,就越可以体会不同公司的风土人情,退一万步讲,即使从里面什么都没学会,光这些经历都是聊天的谈资,更何况实习过程中的学习速度是飞快的。
二、有内推尽量走内推。虽然内推很重要,但是内推现在已经被滥用了。在牛客网上,基本可以找到每家公司的内推信息,因此这个不是什么面试护城河,但是建议有内推走内推。我面试荣耀的时候,就是公司的师兄内推过去的。
三、线上面试。2021年因为疫情,我参加的笔试和面试都是线上进行。但是也有很多线下面试,线下面试一般是来学校参加宣讲会的企业。但是来咱们学校的企业我都不感兴趣,一般是与石油相关的,因此一个都没参加。我参加的所有的面试都是自己选择好企业后通过官网投递简历的方式或者通过内推人的方式。
线上面试未来一两年可能还是主流。笔试时各大公司使用的一般是牛客网的线上笔记系统或者其他公司的线上考试系统,通过链接进入试题页面。同时会有手机小程序监控、摄像头监控以及电脑屏幕录屏和鼠标移出监控等,因此作弊也是挺难的。面试的时候使用最多的软件是腾讯会议,华为和荣耀使用的是华为自己的线上会议软件。因此准备一个清晰的摄像头、质量高一点的耳机都是非常必要的,甚至可以开一下美颜,这几款会议软件都有美颜功能。
即使是通过腾讯会议面试环节,也建议大家使用电脑,因为面试过程中基本都会有手撕算法写代码环节,面试官一般是让你打开腾讯会议的桌面共享,然后打开你的IDE,他给出个题,你当场写。
四、提前批非常重要。千万不要觉着提前批很难,因为大部分人是这么想的,所以都不去参加提前批,想在准备准备着,等等党在找工作时就没有买东西时那么沾光了。提前批的参与人数相对较少,竞争较小,而且很多企业提前批没有笔试,大部分企业的笔试是非常非常难的,像阿里的笔试题,基本是力扣hard级别的题,而且还是变化了很多的,荣耀AI岗的笔试题,还有信号处理的题,大疆的笔试题不搞三年控制论,题目都认不全。
所以,尽量避免参加笔试。前面建议大家提前一年半甚至两年开始准备,就是让大家在提前批阶段,别人还在做等等党的时候,我们已经万事俱备,只欠面试了,这时候赢家自然不用多说。
五、笔试或者面试前的测验。大部分企业在笔试或者面试前,都会有一个素质测验,题目包括行测题、心理测试、性格测试等,不过不要紧张,这部分一般不会刷人,但是也要认真对待。行测不会像公务员考试那么难,简单学习一下就能找到技巧。
六、如何找企业。这方面对于互联网如此发达的今天,是最简单的一个问题了,只需要打开知乎,搜索如何寻找面试企业,就会有非常多的经验贴,但是这还不够!在招聘季,知乎、CSDN、牛客等很多网站上,都会有各大企业招聘的实时动态,各大企业都会把招聘信息同步上去,因此要注意留意这些平台的信息。
专业的招聘软件,例如BOSS直聘等,这时候也会有非常多的企业在线寻人,你要做的就是在BOSS直聘上完善自己的简历,有企业看到合适的,就会主动给你发消息约面试了。在面试季,一天面3、4家企业算正常。有一点建议就是,首先拿自己不喜欢的企业面试练手,等到面对面试官能谈笑风生的时候,等到面试官把你的知识漏斗都找到的时候,等到你把知识漏洞都补齐的时候,再去自己喜欢的企业官网投递简历吧。
七、六级很重要。大部分企业虽然不会明面上说卡六级,但是如果六级不过,在池子里(池子就是放candidate的池子)里的优先级就会下降,如果HC(head count,人头)满了,自然就不会要你了。
八、智力测验问题。如果是面技术岗,抖音上说的各种脑筋急转弯、猜字类似的视频都是骗人的。技术岗就是非常单纯的考察专业技能。即使有,也是常见的、与数学有关的问题,我在面试中总共遇到过两次智力问题,但都不是很难。即使没有答上来,只要专业知识过硬,也不会影响面试结果的。
最后,再次以stay hungry,stay foolish结尾吧,希望我们不仅是为了面试做这些准备,而是为了我们的未来、我们的人生一直在做各种准备,希望我们抛弃功利、抛弃痛苦,以最大的热情和热爱投身于自己的事业中,求知若渴,虚心若愚,不断进步。
文岩同学是学习机械工程专业找专业之外——AI(人工智能)算法工程师岗位的学生代表。他详细介绍了为兴趣找心目中理想工作做长期且完备的准备;以面试华为和荣耀单位为例,详细介绍了面试流程和内容。并给大家非常详细中肯的建议,值得大家细读、参考,强烈推荐有此历程的同学学习。