有近2个月没有更新博客,主要精力放在了投递会议论文和秋招找工作方面。这里简单总结一下秋招笔试面试的几点建议和感受。

投递的NLP算法工程师岗位,主要参加过面试的公司有腾讯(春招),蚂蚁金服(春招),追一科技,猿辅导,作业帮,依图科技,京东、拼多多、星图科技(校园宣讲面试,是否通过以及后续面试安排需要到10月份)、明略科技、还有工商银行(校内宣讲面试,银行正式笔试面试要到10月份)。

这些公司的笔经面经牛客网等很多网站上有前辈的分享,我也不再赘述,只是总结一下自己的感想。

1.要有自己的东西

应聘算法工程师非常重要的一点是要有自己的东西。我把这点放在第一点来说,是想强调它的重要性。我了解的很多同学,包括我自己,前期花费了很多精力去看别人的论文和算法模型,去了解这些模型可能work的原因,甚至看有些书、面经之类的把它们当做“标准答案”来记,和"应试"差不多。

但是,你看的再多,也都是别人的东西,自己的东西呢?很简单的道理,看论文就和看小说一样简单,但是 思考、形成自己的算法模型、验证、试错、改进、完善的整个过程于自己才是真实的收获,这更是能力的体现。在我看来,这也是一位算法工程师的本分,那就是不仅要有学习能力,更要有的是 分析、思考、形成解决方案的能力。而不是知道很多别人的模型,生搬硬套的能力。

这点在面试中很重要,面试官会感兴趣你做了什么,解决或改进了什么,怎么做的,这么做的道理在哪里,有没有其他可能的方法,这些方法各自的优缺点是什么...? 当然看似这一串问题,都很简单,如果是自己认真思考反复验证过的算法,这些都是已经考虑过验证过的问题。那么这些看起来难的问题,实则是自己算法能力、实践能力的体现,逻辑清晰、实验充分的回答会为自己加分。(另外把这些都分析到位,会占用大量的面试时间,也会给面试官留下一个好印象;并且如果后面考代码或者逻辑问题、底层问题面试官要求也不会非常苛刻。第一印象很重要。)

另外我想说的是,有一些书籍、面经、博客中对于经典算法的理解也可能是错误的,学习时候要有自己的思考,让算法思想为我所用,而不是当做标准答案来背,这是非常遗憾的,甚至浪费时间、产生算法思路上误导的。有这些背答案的时间还不如让大家多思考做好自己的工作。(举个简单的例子,XGBoost,与GDBT的对比,GBDT是率先使用二阶导数的,XGBoost沿用了GDBT的算法思想也采用了二阶导数,并不是面经中讲的 "GDBT只使用了一阶导XGBoost用了二阶"。建议直接看论文。)

2. 知道公司需要什么

并不是很多公司都像大学一样抱着教育你、培养你、发现你未知的潜能的态度来招人,除非这个岗缺人,否则很多公司很看重你现在是否具备直接干活的能力。这是公平合理的。如果想拿到公司付的薪水,需要知道公司需要什么,自己可以做什么,即使研究生期间没有深入研究公司现主要业务内容,在面试前也需要提前做好准备。即使没能非常expert in,也最好对最基本的架构、常用的算法、模型、工具有了解。

比如,追一科技现阶段NLP的主要业务时对话系统,考虑企业产品上线可交付性等,一般并不会采用端到端模型而是pipe line,那么前期可以对对话系统各模块要解决的问题、主要算法等有所了解;京东商城主要做商品评价打分,主要用到情感分析、文本分类等,面试前可以了解一些,另外二面面试官问到了正则化、调参、spark,其实面试官喜欢问的一般都是他们业务中经常用的,如果前期了解他们的业务可以有针对性做更好的准备。依图科技只参加了一面,公司更注重算法编程能力,就是手撕代码的能力,对于应聘者的项目经历一笔带过。依图面试官问的我本科时期做的涉及CV的项目,我感觉很奇怪,自以为是认为体现不出NLP能力,问面试官换了讲NLP的内容。后来发现他并不了解,原来面试官是做CV的...

讲这么多,是想说,要站在面试官的角度看问题。面试不是自己作秀,是为自己找买家。无论是第1点“有自己的东西”说的再好,也是为第2点服务的,那就是如果体现自己能胜任这份工作。知道公司需要什么,自己有什么,没有的话前期补一些什么,需要做好充足的准备。在交流方面,面试官一般会优先挑你所做的课题中和业务更相关的课题问,不仅因为业务需要,更因为他懂。大部分人会倾向于了解自己已经了解过一点的东西,面试官也有这个心理。

3. 基本功扎实

面试时主要考察的基本功包括,(1)对NLP或是深度学习基本算法的理解深度,这个一般从自己的课题介绍中延伸出来;(2)有的公司还会涉及到机器学习的算法;(3) 还有C++(腾讯),python(追一);(4) 手撕代码 (基本都撕了); (5) 其他题目(依图考了智力题,拼多多考了概率题)。

这些都是日积月累的,对于(1)深度学习和(2)机器学习算法,问的也都是常用且重要的部分,如果平时注意积累,把论文模型搞清楚,这部分基本没有问题,有个别比较难的答不上就诚实地说自己没有深入考虑,面试官也是本着想听一下你对这个问题的看法的态度来讨论,并不会为难。

我个人觉得,写博客就是一种很好的展示自己不断学习积累,并且对问题有自己深入思考的很好的方式。写博客于我而言是很有益的。很多时候,自以为会的或是理解正确的内容,在再次思考并整理写下来的过程中,发现自己很多地方并没有弄懂,或者之前的理解不正确,又会刨根问题再搜集资料再思考整理。这个过程中,自己也会理清思路,理解的更深入;在动笔写下来的过程中也要想着怎样组织话语、利用图示能让不懂的人也能看懂,自己也在锻炼表达的能力;回答网友问题过程中还会收获一些友谊~;另外意想不到的收获是,把博客链接贴在简历上,真的有面试官愿意来翻一翻!他会看到你不断的努力,会乐意就某些问题和你交流,倾听你的理解,这个过程中确实自己也能学到很多东西。并且这样也可以将“平时成绩”引入进来,将面试“一考定终生”的高风险分散开来。当然博客只是其中一种方式,比如github项目等等,都是展现个人长期努力的方式,也都可以帮助别人在短时间内更充分全面的了解自己。

对于(3) c++个人是看了 《c++ primer》的一些章节,当然还有一些编程中的常出错的点,比如野指针、内存泄露等需要平时积累一下;python是平时遇到问题顺手查,主要理解清楚可变对象不可变对象、进程线程、听说有的公司还考了装饰器;本科时入门python朋友推荐看 廖雪峰的python 博客, 这些都讲的很清楚,简单易懂,大家也可以过一遍。

对于(4) 基本的是《剑指offer》, leetcode 刷题;听说有的公司会考手撕k-means这种机器学习算法的,也要做好积累。

对于(5) 看面经。

4. 了解环境

HR面可能涉及的问题:你应聘的职位?为什么选择这个方向?工作城市在xx可以吗?为什么想来xx城市?家乡哪里?为什么选择这个公司?有师兄师姐在公司吗,对公司的了解?知道NLP工程师主要做什么吗?你的三个优点和三个缺点?抗压能力如何?期望薪资?是否接受调剂?

建议就是,前期多了解,了解公司的发展前景、业务工作、上班(加班)情况等。

对于涉及自己的部分:不需要说的“完全真实”,但需要自圆其说,核心就是要体现热爱并适合这个行业、可以胜任这份工作,而不是体现对自己的剖析有多么到位;抗压能力不要仅说“很好”,最好举例子出来体现自己的能力;

薪资:需要根据自己对NLP算法工程师岗位行业平均薪资水准、该公司基本水准有了解,说一个自己认为合理的数值,不用贱卖自己。如果HR面通过进入最后谈薪资阶段,这时候可以根据自己对行业情况的了解看看这份薪资水平是否合理;如果薪资低,可以试着根据行业水准和自己能力和HR谈一谈调薪,为自己争取一份更为理想的薪资;当然如果薪资高,意味着公司对你的期望或是要求也高,需要做的更好。

5. 知道自己要什么

(1) 要不要转岗?

真正厉害的人都是offer收割机,但是对于更为广泛的同学,今年算法岗并不好找。在前面碰壁之后,周围很多朋友选择了转岗。

今年需求量大的岗位:

1) 客户端 -> 要求:不会没关系,可以进来学。但是需要有扎实的Java基础(对于安卓)和基本的编程能力(手撕代码)。另外涉及客户端的内容可以看面经学习和了解。有朋友应聘该岗位时,直言不会客户端,面试官直接说,你会什么可以讲一下,然后朋友就介绍了自己准备的一些内容,表达清楚也可以。

2) 测试开发 -> 同上,依旧需要有Java基础,和对测试工作的一定了解。还是抱有不会可以进来学的态度。但是有的公司还是比较严,面试官会一眼看出,你是否做过这项工作,以及会说,面经中的内容在实际工作中并不会用等。

其实做以上两份工作,在一些公司的薪资也很高,甚至有的公司的客户端的工资比某些公司开发岗甚至算法岗更高。所以,不是说薪资一定是 算法 > 开发 > 客户端 & 测开。

所以,你是否愿意冒着找不到工作的风险坚持算法岗?还是转岗?去国网?去银行?公务员?读博?这是个人的选择。这里就是优先级排序的问题了,因人而异,没有对错。错的也许只有自己固有的执念,认为某个行业一定怎样怎样,其实各行各业都在进行自己的发展,所以不仅要看现在,也要看未来。

(2) 找不到工作怎么办?

自己找工作也是挂了一串,挂到怀疑自己;但是我想,读书不是为了将自己囚禁在某一个固定的方向,所谓“君子不器”,会想到自己仍有很多不错的能力,即使失业也仍能凭借自己的本事谋生,所以不用害怕。能力不足可以学呀。而对于有能力但面试官没看到的,想着自己的智力和体魄依旧在,公司不要,是公司的损失,自己有什么损失呢?

其实很多人都是在经历很多次被拒绝后,仍不放弃,才最终有一份结果。如果值得期待,也就值得坚守。希望大家都能有一份满意的工作,并且在工作中做得出色!

[Job] 找工作小结的更多相关文章

  1. 萝卜招聘网 http://www.it9s.com 可以发布免费下载简历求职 ,免费!免费!全部免费!找工作看过来 免费下载简历 !

    萝卜招聘网  http://www.it9s.com  可以发布免费下载简历求职 ,免费!免费!全部免费!找工作看过来 免费下载简历 !萝卜招聘网  http://www.it9s.com  可以发布 ...

  2. 关于Unity游戏开发方向找工作方面的一些个人看法

     这是个老生常谈,却又是谁绕不过去的话题,而对于每个人来说,所遇到的情况又不尽相同,别人的求职方式和路线不一定适合你,即使是背景很相似的两个人,有时候机遇也很重要. 我本人的工作经验只有一年,就业方式 ...

  3. IT应届生如何准备找工作?

    今天和一个弟弟吃饭,他明年年初即将计算机研究生毕业.谈论到怎么找工作,觉得自己会的不多,心里非常发虚.虽然我当年找工作也走了很多弯路,思路并不是很清晰.但是工作了这么多年,对企业需要什么样子的人还是有 ...

  4. GISer 应届生找工作历程(完结)

    有半个月没更博客了,前几天在学校准备这保研,因为没有时间复习高数自然就没有过.    也没啥的,我本来就不打算复习,就是看看运气咋样(哈哈).在昨天开始跑的招聘会,一天下来不同地方跑了三家挺累的,记录 ...

  5. 找工作ing

    找工作已经一个月多了,这一个月跑来跑去,挺累的,倒也不是身体有多累,关键是心累!作为一名控制工程专业的研究生,想找一份软件开发类的工作,没想到这么难!在起初的时候,觉得自己C++和JAVA都会,找哪个 ...

  6. 求职,找工作,平台大PK

    国内 猎聘网:www.lietou.com 拉钩网:Lagou.com 智联招聘:www.zhaopin.com 前程无忧:http://www.51job.com/ 中华英才网:chinahr.co ...

  7. 一个php小白找工作的历程

    一个php小白找工作的历程其实对新工作还是有点忐忑的,对于我这样一个有着特殊工作经历的来说更是如此.为了更好的迎接未来,不得不总结下过去.在经历一段时间的职业生涯探索期后,还是觉得自己更适合做程序员这 ...

  8. bzoj2019 [Usaco2009 Nov]找工作

    Description 奶牛们没钱了,正在找工作.农夫约翰知道后,希望奶牛们四处转转,碰碰运气.而且他还加了一条要求:一头牛在一个城市最多只能赚D(1 <= D <= 1,000)美元,然 ...

  9. 学EE做硬件找工作不如学CS做软件,为什么会这样?

    学EE做硬件找工作不如学CS做软件,为什么会这样? 电子工程(EE)就业最好的方向居然是转计算机,也许让有的人觉得很不公平,EE也是很重要的学科,我们学习也很努力,为什么就业会不如CS?也有的人好奇, ...

随机推荐

  1. 在 Web 级集群中动态调整 Pod 资源限制

    作者阿里云容器平台技术专家 王程阿里云容器平台技术专家 张晓宇(衷源) ## 引子 不知道大家有没有过这样的经历,当我们拥有了一套 Kubernetes 集群,然后开始部署应用的时候,我们应该给容器分 ...

  2. 怎样才算精通Linux

    1.掌握至少50个以上的常用命令(包括grep.awk.sed.ps.find等等吧,熟练使用,基础的选项不用man) 2.熟悉Gnome/KDE等X-windows桌面环境操作 3.掌握.tgz.. ...

  3. Java多线程之守护线程

    Java多线程之守护线程 一.前言 Java线程有两类: 用户线程:运行在前台,执行具体的任务,程序的主线程,连接网络的子线程等都是用户线程 守护线程:运行在后台,为其他前台线程服务 特点:一旦所有用 ...

  4. 感受一下.net中用 lambda与 linq 做数据集过滤的不同

    lambda: ids.Add( _hahahacontext .hahahamodel .FirstOrDefault( a => //lambda做过滤 a.name == "张宏 ...

  5. .netcore 分布式事务CAP2.6之控制台使用

    上一编讲了cap2.6的快速入门,这次我们来讲讲在控制台中如何使用cap2.6.因为cap2.6的内存模式目前已经可以使用了,相关组件已经更新,所以这次我们以简单的内存模式为例. 1:创建项目 创建一 ...

  6. JWT原理 使用(入门篇)

    1.JWT简介 JWT:Json Web Token,是基于Json的一个公开规范,这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息,他的两大使用场景是:认证和数据交换 使用起来就是,由 ...

  7. Oracle中的一些基本sql语句

    --新建表create table table1 (id varchar(300) primary key,name varchar(200) not null);--插入数据insert into ...

  8. andriod开发--使用Http的Get和Post方式与网络交互通信

    package com.example.a350773523.myapplication; import android.os.AsyncTask; import android.support.v7 ...

  9. HDU-1532 网络流裸题

    HDU-1532 题意简单的来说就是从1点到n点,最大的流量是多少. 代码: #include<bits/stdc++.h> using namespace std; #define Fo ...

  10. js中的所有兼容问题总结

    js兼容问题总结 ​ 在学习js过程中很多人都遇到过兼容问题,这些兼容问题是因为各版本浏览器不同导致的,为了解决这些兼容问题,js给我们提供了解决这些兼容问题的方案,对此,我个人进行了汇集以及总结. ...