根据北美Offer故事系列直播整理而成,点击回看视频

 

人物介绍

小C,BitTiger DS502 AI直通车学员,刚入职一家医疗图像研究所,职位Computer Vision Engineer。EE本科,EE研究生。

主要内容

  1. AI工程师学习准备过程:(C++;图像知识;深度学习知识;简历内容)
  2. AI工程师求职面试经验总结

 

大家好,今天跟大家分享一下自己在AI方向求职的经验,希望能够帮助大家少走弯路尽早收获offer。我在整个求职准备过程中,要求自己尽量在3天内完成每个小目标,因为求职准备时间宝贵,整个求职周期也非常长,所以需要保持一个高效快速的节奏。

 

学习准备的干货内容

在所有工作开始之前,首先要做的是把自己AI方向的环境设置好,包括以下几方面:

  • OpenCV
  • DL framework(Tensorflow,Keras,Caffe,MxNet)
  • Ubantu
  • C++
  • Python
  • Machine Learning Basics

 

关于C++的准备

必须会C++的AI工作

AI Engineer / Computer Vision Engineer / Self-driving Car Engineer / Image Processing Engineer / SLAM Engineer/GPGPU Engineer

不一定需要C++的工作

Data Scientist / Deep Learning Scientist / NLP engineer / Machine Learning Engineer(这里指的AI工作主要在视觉方面,不含NLP和推荐系统)

 

重要的C++基础知识

C++11:Smart pointer最重要,  其中shared_ptr,unique_ptr非常容易考到。

STL:容器需要好好掌握,容器的添加,删除,排序等,需要掌握Vector和Map。

类:有很多前缀,后缀,比如const, static,override,virtual,pure virtual,这些我们要记清楚。

向大家推荐一本关于C++的书《Effective C++》,里面会有面向对象或面向过程等不同的编程风格学习,这本书比较薄,非常适合面试准备过程中看。另外大家也可以在Youtube上找一些短视频进行观看学习。

对于Leetcode刷题,大家可以根据自己的时间合理安排,Easy和Medium难度的题最好可以刷300道以上。如果用C++刷题,有机会跟着现成的算法课或者视频课刷题是非常高效快速的。

关于必要图像知识的积累

需要知道的基本知识有:

  • 特征点
    • Harris角点检测
    • SIFT
    • SURF
    • ORB(比如面试题:在SLAM系统中为什么用ORB,而不用SIFT和SURF?)
  • 描述子和匹配,FLANN算法
  • 相机模型
    • 相机内参,外参数
    • 相机标定(Vision Reconstruction)
  • 基本的大块概念
    • 图像配准,运动检测,光流等
  • OpenCV:非常重要,面试任何一个关于图像工程师的职位必需。
    • Mat基本操作遍历必须会
    • 其他东西可以根据算法推演
  • CUDA
    • 非常容易赢得图像方向面试的优势,使用CUDA并可以解释清楚会令面试官对你刮目相看。

关于深度学习知识的积累

  • 至少熟悉一种框架
    • Caffe,Tensorflow,Pytorch,MXNet等
    • 推荐Tensorflow + Keras
  • 至少一次Kaggle项目的经历
    • 如果有名次(15%)简历上写一个就可以,如果没有名次可以多写几个
    • Ensemble multiple models,数据科学家非常欣赏可以组合不同model。关于Model,起码用一句话可以迅速说出各自的优点:
        • GoogleNet V12345
        • VGG
        • ResNet
        • MobileNet
        • AlexNet
  • 模型选择
    • Fine tune
    • 参数训练技巧:如何设置初值,如何调参

 

下面列举些面试官经常问的小问题,大家可以思考:

  1. 平常喜欢用什么Optimizer?
  2. 为什么神经网络越深越好?
  3. 为什么需要网络thin呢?
  4. Gradient Vanish造成的原因是什么?
  5. 为什么会造成Overfitting,怎么克服Overfitting?
  6. 如果面试谈到Batch Normalization,面试官会问它是什么
  7. Range of each hyper parameter?
  8. 一些普通机器学习的小知识,比如把SVM与分类算法做对比,SVM优势在哪?
  9. 数据集大小和切割是最经常问的问题,要对自己的项目非常熟悉。

关于简历重要tips

  • Ensemble过很多不同的model
  • Transfer Learning
  • 手撕过整个网络各种层以及反向传播
  • Kaggle Project
  • 有实习经验,不局限于深度学习,有图像方面或软件方面的经验也非常好。

求职面试的经验总结

在面试过程前两分钟,先细心观察面试官是什么样子的人,从言行举止方面与面试官及公司文化的契合。

不要想等准备好再面试,机会不等人,很多时候等我们准备好职位已经没有了,可以从小公司开始练手,大公司找人推荐。如果实在拿不到面试也可以投国内公司,国内面试对算法题没有北美严苛,但其他方面也有很大的指导性,并且国内公司面试问题更偏向实操。

 

AI方向比较热门的方向:

  1. 自动驾驶(比较火热)
  2. 医疗诊断(钱多,公司多,职位多,职业发展有限)
  3. 推荐nlp(互联网公司)
  4. 聊天机器人(热门方向)
  5. 视觉导航
  6. 金融
  7. 视觉机器人
  8. VR / AR
  9. 监控

 

面试初期遇到问题:投简历没有人回复

  • 工作经历没有足够突出
  • 没有把简历写到HR能看懂的程度,可以请Recuiter帮忙修改简历
  • 你可能需要一个general的Cover Letter
  • 自己去Linkedin加Recuiter,Bittiger也有很多资源,可以充分利用资源

 

面试中期问题:面试题回答不流畅

  • 对于自己不熟的项目经历要记录下面试官的问题,不断完善
  • 有时候面试技巧缺乏,可以多找同学朋友模拟演练,面试多总结

 

面试后期问题:Coding

  • 一定要有耐心
  • 很多时候Engineer的工作就是把Research翻译成C++并与现实相结合,不要总想做一些特别高端的工作,不要眼高手低
  • 可以去上一些刷题的课程,或者跟小伙伴一起努力
  • Coding对面试成功重要性占到至少50%,必须重视,即使AI方向走不通,起码以后也可以去SDE发展。

 

写在最后

我整个准备求职的过程超过五个月,经过了不知道多少天的突击学习,不眠不休地看书,编程与配置环境,最终在马上要放弃的时刻收到了心仪Offer,很多同学跟我一样可能经历过多次崩溃想要放弃,但很多时候,你再多坚持一会就能找到工作了,希望大家都能够早日获得自己的Offer。

 

想要了解Data方向,入门Python、R语言,

打好机器学习基础,学习工业实践案例?

BitTiger为大家提供了快速入门免费学习资源

 

领取免费课程步骤

BitTiger注册用户

点击上方链接,Login,即可直接观看视频;

进入自己的profile即可回看视频。

非BitTiger注册用户

点击上方链接,Register,即可直接观看视频;

进入自己的profile即可回看视频。