【牛客访谈】肖键:机器学习求职攻略


【访谈规则】对于访谈你可以问任何跟话题有关的问题,要求必须在帖子下面留言,嘉宾会在一周内逐一回答,抓紧时间,把握住机会哦

嘉宾简介


姓名:肖健 学校:华中科技大学(硕士) 知乎:https://www.zhihu.com/people/jian-xiao-69/about 邮箱:charlesxiao2030@outlook.com

背景介绍

offer:百度sp,美团sp,华为sp...

面试其实在九月底就基本结束了,一直在忙一些其它的事情。最近看到牛客推出的访谈栏目,感觉非常不错,也想着能贡献自己的一些微薄经验,希望后来的学弟学妹们能少走点弯路,强撸之下完成了这篇yy贴。

ps: 因为我个人资质中庸,编程能力也很普通,所以我想我的经验应该比较具备普适性吧,大家应该会比我做的更好。

本期话题:跟你聊聊机器学习的求职攻略

所谓笨鸟先飞,我制定了个半年计划来打怪升级,大致可分三块:编程基础,机器学习理论,实战。

(大神们就不要往下看了,都是些粗浅的东西)


一。编程基础

编程基础这块我其实没啥发言权,牛客上随便找一个估计都比我厉害不少。

因为本身非计算机出身,大二学完数据结构基本就没看过这块,平时主要放在看论文划水上了,编程相当于是我最弱的一块。(网易,头条,滴滴笔试都跪了),所以编程不错的牛牛们请忽略这块。

一句话概括:套路+总结

我的策略非常简单粗暴,两样工具:leetcode,剑指offer(面试coding题基本来源这两块)。刷题也要讲究些策略,刚开始,刷了几天我就受不了了,感觉真tm枯燥,然后一顿胡思乱想胡搅蛮缠无理取闹之后,有了如下的套路。

一. 先对题目分类,比如:数组/链表/二叉树等(leetcode有对应的分类,很贴心)。 二. 对于每一类,总结出基本的模块(每一类问题都会存在一些简单模块,复杂题基本都可以猜解为这些简单模块的叠加) 三. 按照上述的由各分类到各子模块对应写总结做笔记(推荐gitbook,支持markdown,格式简洁美观)

举个例子,比如链表:

此处输入图片的描述

Reorder List这道题我们可以很清晰的猜解为三个模块,链表中间节点,链表反转,链表合并。写起来也是得心应手,一气呵成。

void reorderList(ListNode* head) {
    if (head == nullptr || head->next == nullptr) return;
    // 链表中间节点
    ListNode *fast = head->next, *slow = head;
    while (fast != nullptr && fast->next != nullptr) {
        fast = fast->next->next;
        slow = slow->next;
    }
    // 对称分割为两部分
    ListNode *cur = slow->next;
    ListNode *prev = nullptr;
    slow->next = nullptr;
    // 反转链表后半段
    while (cur != nullptr) {
        ListNode *tmp = cur->next;
        cur->next = prev;
        prev = cur;
        cur = tmp;
    }
    // Reorder
    while (prev != nullptr) {
        ListNode *tmp = prev;
        prev = prev->next;
        // 插入节点
        tmp->next = head->next;
        head->next = tmp;
        head = tmp->next;
    }
}

嗯,酸爽。

二.机器学习理论

关于理论这块我觉得一开始上手就看李航的学习方法不太好,刚入门的话,Andrew Ng的视频还是非常不错的,但是只能算是开胃菜,两到三周看完比较合适,每课都应该做笔记写总结(不写总结的学习就是耍流氓!)。这一步要快,要猛。

看完算是有了些许的概念,整体上还是比较弱的。接下来推荐重点看林轩田的机器学习基石和机器学习技法,总共三十二课,每一课都相当精彩,细致学下来需要三个月,我指的是细致的看,每一课都应该写笔记,梳理脉络,强烈建议做笔记。

踏踏实实看完,面试中让你推个svm讲讲adboost,gbdt原理基本就是手到擒来,再辅以李航的统计学习方法和周志华的西瓜书查漏补缺,基础就算比较扎实了。

当然这一块可能会有些枯燥,但林轩田老师讲的真的是非常精彩了,强烈安利,做笔记很重要,在强调遍。

三.实战篇

没经过实战,不能算会机器学习,理论学的好也只是提供的一个基本保障。没玩过数据,拼过指标的人是很难融入工业界的。

举个最简单的例子,在工业界逻辑回归用的是非常广泛的,你会想,为啥要用这么简单的模型,我们有那么多理论上更叼的模型为啥用这个?

模型是有适用性的,用什么模型更多取决与我们的数据。比如在推荐系统里面,随随便便做几个特征交叉,做下one hot encoding,维度就是几万,几十万维,ctr预估里面更是可以达到上亿的特征,而且这些特征是高度稀疏的,几万维特征可能只有几十维是非零的,这时候使用Random Forest 和 GBDT 这样的模型结果很可能根本拼不过 LR。

LR及其衍生算法FM,FFM在处理这种高维离散特征是有先天优势的。这样一些经验我们需要在实战中积累。

kaggle里面的比赛比较适合新人入门,氛围比较好,每个比赛有对应的论坛,时不时有人会发布自己的代码,大家集思广益一起讨论,可以学到很多。国内的比赛大多会封闭些,讨论很少,不利于新人上手。

一. 所以实战第一块就是完整跟踪kaggle上的一个比赛,因为有些比赛数据量很大,大家根据自己现有的机器配置选择合适的比赛参加,8g内存是最低的配置了。

(打比赛的话python党强烈安利《利用python进行数据分析》这本书,pandas大法好)。

二. 第二块着重于实现常用算法,svm/kmeans/LR/FM等,这一块可以作为简历亮点,去工业界毕竟是要码代码的,前面刷的题也不能白刷,所以这块可以强烈提升自信,网上有很多开源实现可以参考,写完会爱上c++。

PS:这三块应该是并行操作的,同时上,分配好时间。

以上就是我的一些粗浅经验,希望对大家有帮助,另外本人常年混迹知乎(https://www.zhihu.com/people/jian-xiao-69/about),求粉,有问题可以随时私信我。本周内在本帖下面回复即可、

目前拿到百度sp,美团sp,华为sp,基本都是比较高的sp


【访谈规则】对于访谈你可以问任何跟话题有关的问题,要求必须在帖子下面留言,嘉宾会在一周内逐一回答

栏目介绍
牛客访谈:是牛客网推出的新栏目,每周邀请一个嘉宾来分享经验并和大家交流,针对固定的话题,大家可以随意提问(在本帖下),嘉宾会载一周内逐一回答跟话题有关的所有问题。
关于牛客访谈栏目如果你有什么好的建议欢迎私信牛妹,一经采纳,会有礼物相赠哦~
如果你想报名本栏目的嘉宾,请私信牛妹或者加qq:1037532015进行报名哦
牛客访谈嘉宾招募中:http://www.nowcoder.com/discuss/15333

往期牛客访谈回顾:
第一期:靠这些项目经验,我拿了十多个offerhttp://www.nowcoder.com/discuss/15760
第二期:面试了15家公司之后,我了解了面试的套路 http://www.nowcoder.com/discuss/17020?type=0&order=0&pos=2&page=2 
第三期:话唠先生:做好这些细节,学渣也能逆袭http://www.nowcoder.com/discuss/17920?type=0&order=0&pos=1&page=1

大家有什么跟这个话题有关的问题抓紧时间问哦,时间持续一周~~
全部评论
健神666,最终决定美团还是凤巢?
点赞 回复 分享
发布于 2016-11-14 12:02
太赞!
点赞 回复 分享
发布于 2016-11-14 13:40
达到po主这个程度只需要半年啊??(๑ó⌓ò๑)本人现在准研究生,学硕,感觉还有好多时间,只是学上面说的这些就够了吗?(。•́︿•̀。)
点赞 回复 分享
发布于 2016-11-14 20:34
答主牛逼,弱弱问下答主啥专业的。。。
点赞 回复 分享
发布于 2016-11-15 09:14
问题如下啦啦啦啦1.本科平时自学能否搞掂机器学习,还是考个研究生好。2.对于机器学习有什么基础要求。3.校招中。实战经验更看重还是机器学习基础看重或者paper重要些。
点赞 回复 分享
发布于 2016-11-15 11:54
 华为的请问你是什么部门? 华为的机器学习是搞什么的?
点赞 回复 分享
发布于 2016-11-15 12:04
大神,求基石和技法视频…没看到有下载
点赞 回复 分享
发布于 2016-11-15 15:33
大神,问题如下:1、大神发过机器学习方面的论文木有?2、自学的机器学习还是方向就是这个?3、简历中的项目经历怎么写的?
点赞 回复 分享
发布于 2016-11-15 19:26
膜拜健神,有幸见到真身,哈哈
点赞 回复 分享
发布于 2016-11-15 19:43
作为曾经的校友真是惭愧……膜拜膜拜~
点赞 回复 分享
发布于 2016-11-16 09:30
电信院的学长好、我很好奇学长的老板是谁== 回到重点,想请教下学长:我是专硕,现在已经研一了,而且还有好多课。按照你的安排,半年真的能学好麽?感觉很虚。 ps:Ng的机器学习视频是有两个版本的,是coursera的版本还是网易公开课的呢?
点赞 回复 分享
发布于 2016-11-16 19:05
  我好弱啊,之前一直在自己搭github上的个人博客,写html。js。css各种丑,而且还不会支持md。才知道有gitbook这东西,先学一个。  问一下学长,您的项目经验都哪些啊,我现在研一上学期过去一半了,还基本没有机器学习相关的项目经验,应该从哪几方面入手呢,心好累,谢谢!
点赞 回复 分享
发布于 2016-11-17 11:36
如果实验室项目跟机器学习不太搭边,我觉得可以从两方面入手。1.造轮子,手动实现svm,kmeans,lr等经典算法 2.参加kaggle,天池等数据挖掘比赛
点赞 回复 分享
发布于 2016-11-17 12:47
您好,我想问下,基于拿到offer的要求,深度学习应该掌握多少呢?深度学习该怎么学呢?有推荐的视频或者教程吗?还有kaggle的项目至少要做几个呢?
点赞 回复 分享
发布于 2016-11-18 01:46
****,这不是健神么!!!!!!!!!!!!!!!!!
点赞 回复 分享
发布于 2016-11-18 20:01
****,这不是健神么!!!!!!!!!!!!!!!!!
点赞 回复 分享
发布于 2016-11-18 20:03
点赞 回复 分享
发布于 2016-11-19 08:01

相关推荐

10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
11-09 11:01
济南大学 Java
Java抽象带篮子:外卖项目真得美化一下,可以看看我的详细的外卖话术帖子
点赞 评论 收藏
分享
秋招进行到现在终于能写总结了。完全没想到战线会拉这么长,过程会如此狼狈,不过更应该怪自己太菜了。好在所有的运气都用在了最后,也是有个去处。背景:双2本硕科班,无竞赛,本科一段研究所实习,硕士一段大厂暑期实习但无转正。技术栈是C++ & Golang,实习是客户端音视频(而且是鸿蒙端开发),简历两个C++项目一个Golang项目。主要投递岗位:后端,cpp软开,游戏服务端,测开,以及一些不拘泥于Java的岗位。从8月起总共投递123家公司,笔试数不清了,约面大约30家。offer/oc/意向:友塔游戏(第一个offer,面试体验很好,就是给钱好少南瑞继保(计算机科班点击就送(限男生),不...
乡土丁真真:佬很厉害,羡慕~虽然我还没有到校招的时候,也想讲一下自己的看法:我觉得不是CPP的问题,佬的背书双2,技术栈加了GO,有两段实习。投了123,面了30.拿到11个offer。这个数据已经很耀眼了。这不也是CPP带来的吗?当然也不止是CPP。至少来说在这个方向努力过的也会有好的结果和选择。同等学历和项目选java就会有更好的吗?我个人持疑问态度。当然CPP在方向选择上确实让人头大,但是我觉得能上岸,至于最后做什么方向,在我看来并不重要。至于CPP特殊,有岗位方向的随机性,java不是不挑方向,只是没得选而已。也希望自己以后校招的时候能offer满满
点赞 评论 收藏
分享
评论
20
214
分享
牛客网
牛客企业服务