本人履历


我是非科班生,也不是通信、电子那种擦边专业,我本硕学的是能源与动力工程,本科211 硕士985。

本科没有任何代码或者算法基础(本科学的C语言不算),从研一下学期开始学习算法,学习了整整一年时间,总算拿到自己满意的offer。


面试过程


一、阿里巴巴(实习和正式 offered)春招的时候面的实习生,面试通过了,最后也顺利转正(评级A),下面我说下实习面试的一些问题。
1、 一面,三月初投的简历,大概一周后接到面试电话:
- 介绍一下你自己(介绍了自己学历、项目、做的小demo)- 简历上面写的blog是你自己开发完成上线的?(是的……)- 看到你参加了阿里天池的算法比赛,简单说下比赛背景和实现方案。
- 你觉得和其他队伍相比有哪些差距?
- 现在让你继续做你会从什么地方改进?(说的特征挖掘方向)- 机器学习常用的一些方法,以及原理。
2、 二面
- 介绍自己
- 做过什么项目,用的什么算法,请简要介绍。
- 算法是否看过开源的源代码,或是否自己手动实现过?
- 有没有工程性质的项目,简单介绍。
- 你觉得机器学习算法在阿里巴巴哪些场景中可以落地?
3、 三面(代码面)
- 介绍一下你自己。
- 代码面试:第一个为排序题目,我用的插入排序,问是否可以改进;第二个将字符型数字转为int类,不用工具类。- 脑力题:国王有一万桶酒,其中一桶为毒酒,喝下后24小时死亡,可以无限使用死刑犯试酒,请问24小时最少需要多少犯人,怎么喝?
4、 四面
- 介绍自己。
- 做过的项目。
- 对风控课精准营销是否了解?一般用什么方法?
- 说说你自己本身的特质,觉得有什么优点。
- 你不是计算机专业的,算法的知识是怎么学习的,怎么权衡自己专业和算法学习,是否有影响本专业的学习?
- 你有什么想问的?
5、HR面
- 还是介绍自己……
- 你觉得你和周围的人项目有哪些优点。
- 和计算机专业的相比优势和劣势。
- 对风控业务是否了解?
- 是否知道阿里巴巴最近相关产品动态?
- 你有什么想问的?阿里面试周期非常的慢,等的非常着急。

二、 腾讯(实习offered)

拿到了腾讯的实习offer,因为决定去阿里,所以就放弃了,自己觉得有点可惜。
1、 一面
- 从学业、项目等方面介绍自己。
- 会什么语言,什么语言用的比较多?
- 之前实习的经历,主要做什么工作?
- 详细介绍算法比赛的经历,介绍打比赛时候的特征处理、算法建模等,以及为什么这样处理特征,有什么好处?为什么选择这个算法,优点是什么?你觉得和其他队伍的差距在哪里,有什么地方是需要改进的?- 实习期间的目标,希望做一些什么工作
- 反作弊和用户画像你比较喜欢那个方向?
2、二面
- 详细介绍自己。
- 介绍机器学习以及深度学习方面学的内容,机器学习和深度学习有什么区别,各自的重点在哪里?
- 项目介绍。
- 介绍图片分类demo,怎么对数据集进行的处理?
- 一个物品正方和反方,分类器是如何判断属于同一类物品?
- 卷积相比于神经网络的好处?
- 计算机视觉有哪些解决梯度消失和梯度爆炸的方法?
- BN原理。
- 数据不平衡处理方法。
- 能实习多长时间?
3、三面(HR面)
- HR面比较随意,问一些性格的内容,能实习多长时间……
三、 腾讯(秋招offered)
腾讯给的大sp,有的人叫SSP。
1、一面
- 介绍自己
- 有哪些常用的机器学习方法?
- 在比赛中主要用了哪些方法?
- 说说GBDT和XGBoost的联系和优缺点?(这个一定要会,高频问题)
2、二面
- 介绍自己。
- 项目中用大的机器学习算法。
- 会哪些语言,常用哪些语言,会C++吗?(感觉面试腾讯的话C++得会)
- 场景题:王者荣耀中怎么给用户匹配对手,让玩家感受到挑战,同时差距也不是特别大。
- 如何运用算法检测作弊用户?如何检测恶意言语、恶意评论?(同音不同字怎么处理)?
- GBDT和XGBoost的联系和优缺点?
- 是否有其他offer,是哪些公司的,怎么考虑手上的offer?
3、三面
- 简单介绍一下自己。
- 前面的面试官已经跟你聊了不少,你对我们这边的业务有什么了解,有什么想法?
- 你手上也有其他offer,如果拿到腾讯的你怎么考虑?
- 你有什么想问我的?
- 聊工作内容。
4、HR面
- HR面比较轻松,介绍自己。
- 说说你身上的几个特质。
- 你不是计算机相关专业的,你是怎么学习的呢?
- 年底能提前来实习吗?
- 期望薪资多少?
- 你有什么想问的?

四、华为(offered)

华为是参加的秋招,没有走提前批。
1、笔试
- 华为的笔试有点忘记了,有性格测试,还有行测那种题
2、现场一面
- 一段C++代码,查看有什么问题。比较简单,虽然没学过C++,但是能看出来,在C++中char类型为一个字节,这种会无线循环。

c++char a = '1'for(int i=0;i++;i<sizeof(a)){func()//一个看书}
- 会不会C++(不会)
- 用什么语言比较多(python)
- 生产环境中要将机器学习算法上线用Python是不行的,速度跟不上,需要用C++(我表示会学习,并且学的很快)
3、现场二面(二面至少等了2个小时,人太多了)
- 介绍自己。
- 介绍自己学习的计算机视觉的内容。
- 做图像定位项目中运用的工具和方法(用了opencv和tensorflow)
- 那你是用了开源工具,创新点在哪里?
- 那你还是用的别人的东西,只是做了组合,没有创新点(手动狗头)
- 计算机视觉中 object detection是怎么实现的,有哪几种常用的方法?
- 详细解释Bounding Box Regression。
- 说说自己的优缺点。


还拿到了一些其他公司的offer,薪资都不错,也都是算法岗位,觉得都挺好的。


学习路径


一、研一下学期

大概2017.4开始学机器学习,学了很多七月在线的课程,讲的不错,自己的理论知识基本是从这个课程中学到的。

不明白的就查网上的技术博客,这个视频看了好几遍,自己总是忘。看完后会对给的代码进行复现,自己敲几遍。

传统机器学习学完后开始接触深度学习,主要是计算机视觉方面的东西,吴恩达老师深度学习的课讲的非常好,每节课不长,但是总结的很到位很容易懂。把这些学完研二上学期也基本结束了。
二、研二下学期导师项目上的事情比较多,非常忙,只能抽空学习自己的东西。主要方向是加强代码能力,学习TensorFlow框架的使用,毕竟代码才是生产力。2017年底觉得做机器学习算法都是在海量数据的环境下,所以觉得学习一些大数据的知识还是很有必要的,开始自己根据教程搭建Hadoop平台,学习用scala编写spark机器学习代码,实现一些简单的数据处理和个性化推荐系统等。
三、2018年初寒假开始准备实习面试,毕竟这行有大厂实习经验对秋招是极有好处的。根据《剑指offer》学习数据结构的面试算法题,梳理机器学习的基础知识。3月开始投递各大厂的简历,拿到了阿里巴巴、腾讯等公司的实习offer,百度让我转开发岗,不想搞开发,然后就放弃了百度。