强化学习大厂面经【看到你就赚了,满满】
1.机器学习面试:
1.1 内部面试要求:
基础:统计学习
深度学习:NLP、CV、强化学习
【算法岗位】985,211硕士顶会论文,大厂实习经验
要求一般是这样的
1、985
2、还不错的论文
3、比赛还不错的名次:kaggle,阿里天池比赛,腾讯百度、讯飞
4、实验室业界还有点名气
5、大厂实习经验或者ai创业公司实习经验
2.杭州互联网公司推荐
一线互联网
-
阿里巴巴(总部)
-
蚂蚁金服(总部)阿里旗下
-
阿里云(总部)阿里旗下
-
网易(杭州) 网易云音乐
-
字节跳动(杭州)抖音分部
外企
-
ZOOM (杭州研发中心)全球知名云视频会议服务提供商
-
infosys(杭州)印度公司,据说工资相对不高
-
思科(杭州)
二线互联网
-
滴滴(杭州)
-
快手(杭州)
硬件巨头 (有软件/互联网业务)
-
海康威视(总部)安防三巨头
-
浙江大华(总部)安防三巨头
-
杭州宇视(总部) 安防三巨头
-
华为(杭州)
-
vivo(杭州)
-
oppo(杭州)
-
魅族(杭州)
三线互联网
-
蘑菇街(总部)女性消费者的电子商务网站
-
有赞(总部)帮助商家进行网上开店、社交营销
-
菜鸟网络(杭州)
-
花瓣网(总部)图片素材领导者
-
兑吧(总部)用户运营服务平台
-
同花顺(总部)网上股票证券交易分析软件
-
51信用卡(总部)信用卡管理
-
虾米(总部)已被阿里收购
-
曹操出行(总部)
-
口碑网 (总部)
AI独角兽公司
-
旷视科技(杭州)
-
商汤(杭州)
创业公司
-
e签宝(总部)做电子签名
-
婚礼纪(总部)好多结婚的朋友都用
-
大搜车(总部)中国领先的汽车交易服务供应商
-
二更(总部)自媒体
-
丁香园(总部)
2.|上海互联网公司推荐
一线互联网
-
百度(上海)
-
阿里(上海)
-
腾讯(上海)
-
字节跳动(上海)
-
蚂蚁金服(上海)
外企IT/互联网/硬件
-
互联网
-
Google(上海)
-
微软(上海)
-
LeetCode/力扣(上海)
-
unity(上海)游戏引擎
-
SAP(上海)主要产品是ERP
-
PayPal(上海)在线支付鼻祖
-
eBay(上海)电子商务公司
-
-
偏硬件
-
IBM(上海)
-
Tesla(上海)特斯拉
-
Cisco(上海)思科
-
Intel(上海)
-
AMD(上海)半导体产品领域
-
EMC(上海)易安信是美国信息存储资讯科技公司
-
NVIDIA(上海)英伟达是GPU(图形处理器)的发明者,人工智能计算的引领者
-
二线互联网
-
拼多多(总部)
-
饿了么(总部)阿里旗下。
-
哈啰出行(总部)阿里旗下
-
盒马(总部)阿里旗下
-
哔哩哔哩(总部)
-
阅文集团(总部)腾讯旗下
-
爱奇艺(上海)百度旗下
-
携程(总部)
-
京东(上海)
-
网易(上海)
-
美团点评(上海)
-
唯品会(上海)
硬件巨头 (有软件/互联网业务)
华为(上海)
三线互联网
-
PPTV(总部)
-
微盟(总部)企业云端商业及营销解决方案提供商
-
喜马拉雅(总部)
-
陆金所(总部)全球领先的线上财富管理平台
-
口碑(上海)阿里旗下。
-
三七互娱(上海)
-
趣头条(总部)
-
巨人网络(总部)游戏公司
-
盛大网络(总部)游戏公司
-
UCloud(总部)云服务提供商
-
达达集团(总部)本地即时零售与配送平台
-
众安保险(总部)在线财产保险
-
触宝(总部)触宝输入法等多款APP
-
平安系列
明星创业公司
-
小红书(总部)
-
叮咚买菜(总部)
-
蔚来汽车(总部)
-
七牛云(总部)
-
得物App(总部)品潮流尖货装备交易、球鞋潮品鉴别查验、互动潮流社区
-
收钱吧(总部)开创了中国移动支付市场“一站式收款”
-
蜻蜓FM(总部)音频内容聚合平台
-
流利说(总部)在线教育
-
Soul(总部)社交软件
-
美味不用等(总部)智慧餐饮服务商
-
微鲸科技(总部)专注于智能家居领域
-
途虎养车(总部)
-
米哈游(总部)游戏公司
-
莉莉丝游戏(总部)游戏公司
-
樊登读书(总部)在线教育
AI独角兽公司
-
依图科技(总部)和旷视,商汤对标,都是做安防视觉
-
深兰科技(总部)致力于人工智能基础研究和应用开发
其他行业,涉及互联网
-
花旗、摩根大通等一些列金融巨头
-
百姓网
-
找钢网
-
安居客
-
前程无忧
-
东方财富
-
三大电信运营商:中国移动、中国电信、中国联通
-
沪江英语
-
各大银行
3. 程序员的简历如何写
3.1 简历篇幅
首先程序员的简历力求简洁明了,不用设计上要过于复杂。
对于校招生,一页简历就够了,社招的话两页简历便可。
有的校招生说自己的经历太多了,简历要写出两三页,实际上基本是无关内容太多或者描述太啰唆,例如多过的校园活动,学生会经历等等。
既然是面试技术岗位,其他的方面一笔带过就好。
3.2 谨慎使用“精通”两字
应届生或者刚毕业的程序员在写简历的时候 「切记不要写精通某某语言」,如果真的学的很好,「推荐写“熟悉”或者“掌握”」。
但是有的同学可能仅仅使用一些语言例如go或者python写了一些小东西,或者了解一些语言的语法,就直接写上熟悉C++、JAVA、GO、PYTHON ,这也是大忌,如果C++更了解的话,建议写熟悉C++,了解JAVA、GO、PYTHON。
「词语的强烈程度:精通 > 熟悉(推荐使用)> 掌握(推荐使用)> 了解(推荐使用)」
还有做好心理准备,一旦我们写了熟悉某某语言,这门语言就一定是面试中重点考察的一个点。
例如写了熟悉C++, 那么继承、多态、封装、虚函数、C++11的一些特性、STL就一定会被问道。
「所以简历上写着熟悉哪一门语言,在准备面试的时候重点准备,其他语言几乎可以不用看了,面试官在面试中通常只会考察一门编程语言」。
拿不准的绝对不要写在简历上
「不要为了简历上看上去很丰富,就写很多内容上去,内容越多,面试中考点就越多」。
简历中突出自己技能的几个点,而不是面面俱到。
想想看,面试官一定是拿着你的简历开始问问题的,「如果因为仅仅想展示自己多会一点点的东西就都写在简历上,等于给自己挖了一个“大坑”」。
例如仅仅部署过nginx服务器,就在简历上写熟悉nginx,那面试官可能上来就围绕着nginx问很多问题,同学们如果招架不住,然后说:“我仅仅部署过,底层实现我都不了解。这样就是让面试官有些失望”。
「同时尽量不要写代码行数10万+ 在简历上」,这就相当于提高了面试官的期望。
首先就是代码行数10W+ 无从考证,而且这无疑大大提高的面试官的期望和面试官问问题的范围,这相当于告诉面试官“我写代码没问题,你就尽管问吧”。
如果简历上再没有侧重点的话,面试官就开始铺天盖地问起来,恐怕大家回答的效果也不会太好。
3.3 项目经验应该如何写
「项目经验中要突出自己的贡献」,不要描述一遍项目就完事,要突出自己的贡献,是添加了哪些功能,还是优化了那些性能指数,最后再说说受益怎么样。
例如这个功能被多少人使用,例如性能提升了多少倍。
其实很多同学的一个通病就是在面试中说不出自己项目的难点,项目经历写了一大堆,各种框架数据库的使用都写上了,却答不出自己项目中的难点。
有的同学可能心里会想:“自己的项目没有什么难点,就是按照功能来做,遇到不会配置的不会调节的,就百度一下”。
其实大多数人做项目的时候都是这样的,不是每个项目都有什么难点,可是为什么一样的项目经验,别人就可以在难点上说出一二三来呢?
这里还是有一些技巧的,首先是「做项目的时候时刻保持着对难点的敏感程度」,很多我们费尽周折解决了一个问题,然后自己也不做记录,就忘掉了,「此时如果及时将自己的思考过程记录下来,就是面试中的重要素材,养成这样的习惯非常重要」。
很多同学埋怨自己的项目没难点,其实不然,「找到项目中的一点,深挖下去就会遇到难点,解决它,这种经历就可以拿来在面试中来说了」。
例如使用java完成的项目,在深挖一下Java内存管理,看看是不是可以减少一些虚拟机上内存的压力。
所以很多时候 「不是自己的项目没有难点,而是自己准备的不充分」。
项目经验是面试官一定会问的,那么不是每一个面试都是主动问项目中有哪些亮点或者难点,这时候就需要我们自己主动去说自己项目中的难点。
3.4 变被动为主动
再说一个面试中如何变被动为主动的技巧,例如自己的项目是一套分布式系统,我们在介绍项目的时候主动说:“项目中的难点就是分布式数据一致性的问题。”。
「此时就应该知道面试官定会问:“你是如何解决数据一致性的?”」。
如果你对数据一致性协议的使用和原理足够的了解的话,就可以和面试官侃侃而谈了。
我们在简历中突出项目的难点在于数据一致性,并且「我们之前就精心准备一致性协议,数据一致性相关的知识,就等着面试官来问」,这样准备面试更有效率,这些写出来的简历也才是好的简历,而不是简历上泛泛而谈什么都说一些,最后都不太了解。
面试一共就三十分钟或者一个小时,说两个两个项目中的难点,既凸显出自己技术上的深度,同时项目中的难点是最好被我们自己掌控的,「因为这块是面试官必问的,就是我们可以变被动为主动的关键」。
「真正好的简历是 当同学们把自己的简历递给面试官的时候,基本都知道面试官看着简历都会问什么问题」,然后将面试官的引导到自己最熟悉的领域,这样大家才会占有主动权。
3.5 博客的重要性
简历上可以放上自己的博客地址、Github地址甚至微博(如果发了很多关于技术的内容),「通过博客和github 面试官就可以快速判断同学们对技术的热情,以及学习的态度」,可以让面试官快速的了解同学们的技术水平。
如果有很多高质量博客和漂亮的github的话,即使面试现场发挥的不好,面试官通过博客也会知道这位同学基础还是很扎实,只是发挥的不好而已。
可以看出记录和总结的重要性。
写博客,不一定非要是技术大牛才写博客,大家都可以写博客来记录自己的收获,每一个知识点大家都可以写一篇技术博客,这方面要切忌懒惰!
同时大家对github不要畏惧,可以很容易找到一些小的项目来练手。
面试只有短短的30分钟或者一个小时,如何把自己掌握的技术更好的展现给面试官呢,博客、github都是很好的选择,如果把这些放在简历上,面试官一定会看的,这都是加分项。
3.6 简历模板
4.BAT级别技术面试流程和注意事项:
大型互联网企业一般通过几轮技术面试来考察大家的各项能力,一般流程如下:
-
一面机试:一般会考选择题和编程题
-
二面基础算法面:就是基础数据结构与算法
-
三面综合技术面:会考察编程语言,计算机基础知识 ,以及了解项目经历等等
-
四面技术boss面:会问一些比较范范的内容,考察大家解决问题和快速学习的能力
-
最后hr面:主要了解面试者与企业文化相不相符,面试者的职业发展,offer的选择以及介绍一下企业提供的薪资待遇等等
4.1 一面 通常是 选择题 + 编程题4.还有些公司机试都是编程题。
选择题:计算机基础知识涉及计算机网络,操作系统,数据库,编程语言等等
编程题:一般是代码量比较大的题目
一面机试,「通常校招生的话,BAT的级别的企业 都会提前发笔试题,发到邮箱里然后指定时间内做完,一定要慎重对待,机试没有过,后面就没有面试机会了」
机试通常是 「选择题 + 编程题,还有些公司机试都是编程题」
选择题则是计算机基础知识涉及计算机网络,操作系统,数据库,编程语言等等,这里如果有些同学对计算机基础心里没有底的话,可以去牛客网上找一找 历年各大公司的机试题目找找感觉。
编程题则一般是代码量比较大的题目,图、复杂数据结构或者一些模拟类的题目,编程题目都是我们这门课程会讲述的重点
所以也给同学们也推荐一个编程学习的网站,也就是leetcode
leetcode是专门针对算法练习的题库,leetcode现在也推出了中文网站,所以更方面中国的算法爱好者在上面刷题。这门课程也是主要在leetcode上选择经典题目。
牛客网上涉及到程序员面试的各个环节,有很多国内互联网公司历年面试的题目还是很不错的。
「建议学习计算机基础知识可以在牛客网上,刷算法题可以选择leetcode。」
4.2 二面 基础算法面
这一块和机试对算法的考察又不一样,机试仅仅就是要一个结果,对了就是对了不对就是不对,
而二面的算法面试「面试官更想看到同学们的思考过程」,而不仅仅是一个答案。
通常一面机试的题目是代码量比较大的题目,而二面而是一些基础算法
面试官会让面试者在白纸上写代码或者给面试者一台电脑来写代码,
「一般面试官倾向于使用白纸,这样更好看到同学们的思考方式」
应该用什么语言写算法题呢?
应该用什么语言写算法题呢?「用自己最熟悉什么语言,但最好是JAVA或者C++」
如果不会JAVA或C++的话,那更建议通过做算法题,顺便学习一下。
如果想在编程的路上走得更远,掌握一门重语言是十分重要的,学好了C++或者Java在学脚本语言会非常的快,相当于降维打击
反而如果只会脚本语言,工作之后在学习高级语言会很困难,很多东西回不理解。
所以这里建议特别是应届生,大家有时间就要打好语言的基础, 不要太迷信用10行代码调用一个包解决100行代码的事,
因为这样也不会清楚省略掉的90行做了哪些工作。
这里建议大家 「在打基础的时候 最好不要上来就走捷径。」
「简单代码一定要可以手写出来,不要过于依赖IDE的自动补全 。」
例如写一个翻转二叉树的函数, 很多同学在刷了很多leetcode 上面的题目
但是leetcode上一般都把二叉树的结构已经定义好了,所以可以上来直接写函数的实现
但是面试的时候要在白纸上写代码,一些同学一下子不知道二叉树的定义应该如何写,不是结构体定义的不对,就是忘了如何写指针。
总之,错漏百出。「所以基本结构的定义以及代码一定要训练在白纸上写出来」
4.3 三面 综合技术面
综合技术面 一般从如下三点考察大家。
- 编程语言
编程语言,这里是面试官「考察编程语言掌握程度」,如果是C++的话, 会问STL,继承,多态,指针等等 这里还可以问很多问题。
- 计算机基础知识
「考察计算机方面的综合知识」,这里不同方向考察的侧重点不一样,如果是后台开发,Linux , TCP, 进程线程这些是一定要问的。
- 项目经验
在项目经验中 面试官想考察什么呢
项目经验主要从这三方面进行考察 「技术原理、 技术深度、应变能力」
考察技术原理, 做了一个项目,是不是仅仅调一调接口就完事,之后接口背后做了些什么么?这些还是要了解的
考察技术深度,如果是后台开发的话,可以从系统的扩容、缓存、数据存储等多方面进行考察
考察应变能力,如果面试官针对项目问同学们一个场景,「最为忌讳的回答是什么?“我没考虑过这种情况”。」 这会让面试官对同学们的印象大打折扣。
这个时候,面试官最欣赏的候选人,就是尽管没考虑过,但也会思考出一个方案,然后跟面试官进行讨论。
最终讨论出一个可行的方案,这个会让面试官对同学们的好感倍增。
通常应届生没有什么项目经验,特备是本科生,其实可以自己做一些的小项目。
例如做一个 可以联机的五子棋游戏,这里就涉及到了网络知识,可以结合着自己网络知识来介绍自己的项目。
已经工作的人,就要找出自己工作项目的亮点,其实一个项目不是每一个人都有机会参与核心的开发。
也不是每个人都有解决难题的机会,这也是我们在工作中 遇到难点,要勇往直前的动力,因为这个就是自己项目经验最值钱的一部分
4.4 四面 boss面
技术leader面试主要考察面试者两个能力, 「解决问题的能力和快速学习的能力」
考察解决问题的能力
面试官最喜欢问的相关问题:
「在项目中遇到的最大的技术挑战是什么,而你是如果解决的」
「给出一个项目问题来让面试者分析」
如果你是学生,就会问在你学习中遇到哪些挑战, 这些都是面试官经常问的问题。
面试官可能还会给出一个具体的项目场景,问同学们如何去解决。
例如微信朋友圈的后台设计,如果是你应该怎么设计,这种问题大家也不必惊慌
因为面试官也知道你没有设计过,所以大家只要大胆说出自己的设计方案就好
面试官会在进一步指引你的方案可能那里有问题,最终讨论出一个看似合理的结果。
「这里面试官考察的主要是针对项目问题,同学们是如何思考的,如何解决的。」
考察快速学习的能力
面试官最喜欢问的相关问题:
「快速学习的能力 如果快速学习一门新的技术或者语言?」
「读研之后发现自己和本科毕业有什么差别?」
在具体一点 面试官会问,如果有个项目这两天就要启动,而这个项目使用了你没有用过的语言或者技术,你将怎么完成这个项目?
换句话说,面试官会问:你如果快速学习一门新的编程语言或技术,这里同学们就要好好总结一下自己学习的技巧
如果你是研究生,面试官还喜欢问:读研之后发现自己和本科毕业有什么差别?
「这里要体现出自己思维方式和学习方法上的进步,而不是用了两三年的时间有多学了那些技术,因为互联网是不断变化的。」
面试官更喜欢考察是同学们的快速学习的能力
4.5 五面 hr面
终于到了HR面了,大家是不是感觉完事万事大吉了,这里万万不可大意,否则到手的offer就飞掉了。
要知道HR那里如果有十个名额,技术面留给通常留给HR的人数是大于十个的,也就是HR有选择权,HR会选择符合公司文化的价值观的候选人。
这里呢给大家列举一些关键问题
为什么选择我们公司?
这个大家一定要有所准备,不能被问到了之后一脸茫然,然后说 就是想找个工作,那基本就没戏了
要从技术氛围,职业发展,公司潜力等等方面来说自己为什么选择这家公司
有没有职业规划?
其实如果刚刚毕业并没有明确的职业规划,这里建议大家不要说 自己想工作几年想做项目经理,工作几年想做产品经理的
这样会被HR认为 职业规划不清晰,尽量从技术的角度规划自己。
是否接受加班?
虽然大家都不喜欢加班,但是这个问题 我还是建议如果手头没有offer的话,大家尽量选择接受了
除非是超级大牛手头N多高新offer,可以直接说不接受,然后起身潇洒离去
坚持最长的一件事情是什么?
这里大家最好之前就想好,有一些同学可能印象里自己没有坚持很长的事情,也没有好好想过这个问题,在HR面的时候被问到的时候,一脸茫然
憋了半天说出一个不痛不痒的事情。这就是一个减分项了
如果校招,直接会问:期望薪资XXX是否接受?
这里大家如果感觉自己表现的很好 给面试官留下的很好的印象,「可以在这里争取 special offer,或者ssp offer」
这都是可以的,但是要真的对自己信心十足。
5.学习资料
校招 面试经验的话,主要推荐看书和论文。
网上资料有七月在线机器学习1000题,书籍的话有李航的统计学习配合西瓜书一块看,后边可以看百面机器学习和百面深度学习两本,论文的话就看自己是那个方向的话看那个方向的论文就好了
6.公众号推荐:
4.1 labuladong
1、《labuladong的算法小抄》纸质书已经出版,点这里查看详情
2、公众号后台回复力扣题目序号即可查询对应文章。
3、全部文章目录 点这里
精简版目录 点这里
小白刷题计划 点这里
进阶刷题计划 点这里
临时突击计划 点这里
查漏补缺计划 点这里
4.2 代码随想录