数据挖掘 —— 从入门到求职

作者:ZakeXu
链接:https://www.nowcoder.com/discuss/15168?type=0&order=4&pos=50&page=4
来源:牛客网

《数据挖掘 —— 从入门到求职》
by ZakeXu
PS:文中所涉及资料可从以下链接获取(包括简历模版)
http://pan.baidu.com/s/1o8r0ux0

最近秋招也已经慢慢接近尾声了,从去年 8 月底开始,先后参加了 datacastle ,阿里天池,牛客网各自举办的数据挖掘比赛(都是 top10 ),今年 4 月份又先后去百度,腾讯实习,到现在秋招快结束,也将近一年的时间,最终拿到手的比较有分量的 offer 主要是腾讯,百度,华为三家企业的 offer ,都是 sp ,下面就将过去一年的一些经验做一下小总结,不一定是最合适的方法,但是当毫无头绪的时候,可以参考参考。

(一) 简介

  1. 首先介绍企业对该岗位的一些能力需求,直接贴 bat 在该方向的相应岗位 jd :

( 1 )百度:机器学习 / 数据挖掘工程师

( 2 )阿里:算法工程师

( 3 )腾讯:基础研究

  1. 个人感觉数据挖掘是一个比较大的概念,可以理解为:

数据挖掘 = 业务知识 + 自然语言处理技术( NLP ) + 计算机视觉技术( CV ) + 机器学习 / 深度学习( ML/DL )

( 1 )其中业务知识具体指的是个性化推荐,计算广告,搜索,互联网金融等; NLP , CV 分别是处理文本,图像视频数据的领域技术,可以理解为是将非结构化数据提取转换成结构化数据;最后的 ml/dl 技术则是属于模型学习理论;

( 2 )在选择岗位时,各个公司都没有一套标准的称呼,但是所做的事情无非 2 个大方向,一种是主要钻研某个领域的技术,比如自然语言处理工程师,计算机视觉工程师,机器学习工程师等;一种是将各种领域技术应用到业务场景中去解决业务需求,比如数据挖掘工程师,推荐系统工程师等;具体的称呼不重要,重要的是平时的工作内容;

PS :在互联网行业,数据挖掘相关技术应用比较成功的主要是推荐以及计算广告领域,而其中涉及到的数据主要也是文本,所以 NLP 技术相对来讲比较重要,至于 CV 技术主要还是在人工智能领域(无人车,人脸识别等)应用较多,本人了解有限,相关的描述会较少;

  1. 根据之前的分析,也可以看到该岗位所需要的 3 种基本能力分别是业务经验,算法能力与工程能力;

(二) 入门

  1. 工程能力

( 1 )编程基础:需要掌握一大一小两门语言,大的指 C++ 或者 JAVA ,小的指 python 或者 shell 脚本;需要掌握基本的数据库语言;

建议: MySQL + python + C++ ;语言只是一种工具,看看语法就好;

推荐书籍:《 C++ primer plus 》

( 2 )开发平台: Linux ;

建议:掌握常见的命令,掌握 Linux 下的源码编译原理;

推荐书籍:《 Linux 私房菜》

( 3 )数据结构与算法分析基础:掌握常见的数据结构以及操作(线性表,队,列,字符串,树,图等),掌握常见的计算机算法(排序算法,查找算法,动态规划,递归等);

建议:多敲代码,多上 OJ 平台刷题;

推荐书籍:《大话数据结构》《剑指 offer 》

( 4 )海量数据处理平台: hadoop ( mr 计算模型, java 开发)或者 spark ( rdd 计算模型, scala 开发),重点推荐后者;

建议:主要是会使用,有精力的话可以看看源码了解集群调度机制之类的;

推荐书籍:《大数据 spark 企业级实战》

  1. 算法能力

( 1 )数学基础:概率论,数理统计,线性代数,随机过程,最优化理论

建议:这些是必须要了解的,即使没法做到基础扎实,起码也要掌握每门学科的理论体系,涉及到相应知识点时通过查阅资料可以做到无障碍理解;

( 2 )机器学习 / 深度学习:掌握 常见的机器学习模型(线性回归,逻辑回归, SVM ,感知机;决策树,随机森林, GBDT , XGBoost ;贝叶斯, KNN , K-means , EM 等);掌握常见的机器学习理论(过拟合问题,交叉验证问题,模型选择问题,模型融合问题等);掌握常见的深度学习模型( CNN , RNN 等);

建议:这里的掌握指的是能够熟悉推导公式并能知道模型的适用场景;

推荐书籍:《统计学习方法》《机器学习》《机器学习实战》《 UFLDL 》

( 3 )自然语言处理:掌握常见的方法( tf-idf , word2vec , LDA );

  1. 业务经验

( 1 )了解推荐以及计算广告相关知识;

推荐书籍:《推荐系统实践》《计算广告》

( 2 )通过参加数据挖掘竞赛熟悉相关业务场景,常见的比赛有 Kaggle ,阿里天池, datacastle 等;

PS: 以上都是一些入门级别的介绍,在长期的学习中,应该多看顶会 paper ,多读开源代码,多学习优秀解决方案;
PS: 以上推荐的书籍对应的电子版可以联系本人( Q:1434909067 )
PS: 链接: http://pan.baidu.com/s/1o8r0ux0

(三) 求职

  1. 简历

( 1 )格式:个人信息(姓名,联系方式,教育背景,求职意向,照片可有可无) + 竞赛经历 + 实习经历 + 项目经历 + 掌握技能 + 获奖情况;

PS: 最好写成一页;

( 2 )加分:博客, github ,竞赛 top10 ,顶会 paper ;

PS: 如果感兴趣的话可以联系我要简历模板( Q:1434909067 )

PS: 牛逼的简历可以让你有更多的面试机会,更关键的是让面试官在面试时潜意识给你打高分,当然前提是简历要真实,所以平时得为了牛逼的简历多做准备工作;

  1. 海投

( 1 )国内设有该岗位且还不错的公司:

百度,腾讯,阿里,网易(互联网,游戏,有道),华为,今日头条,滴滴研究院,一点咨讯, 360 ,美团等;

( 2 )如果选择留在广东深圳发展,就业的机会比较少,比较好的主要就是百度深研,腾讯总部,华为深圳,京东好像在深圳也有个做数据挖掘的团队;(楼主倾向去深圳发展)

( 3 )个人建议在 3 月份的时候可以通过实习生的身份进入相关企业,争取实习生留用;一般企业给应届生的 hc 分配比例大概是实习生留用:校招提前批:校招正式 =4 : 3 : 3 ,实习生留用相对比较容易;

( 4 )一般投递简历时,尽量联系公司内部的师兄师姐或者熟人,帮忙将简历直接给到团队 leader 手中,这样做的好处是可以同时面试同个公司的多个团队,前提是简历在公司校招系统未被锁定的前提下,具体情况多咨询公司内部熟人,在求职过程中,信息来源非常重要,一定要注意这点,不然会踩很多坑;

( 5 )加入各种求职交流群,多认识些人,共享资源;

( 6 )投简历时候尽量内推,很多公司内推可以免笔试;

PS :笔试纯属看 rp ,总之就是多刷题,上牛客网多练练并针对性复习就好;

  1. 面试

( 1 )一般该岗位的面试起码都有 3 轮, 2 轮技术面, 1 面 hr 面, hr 面主要看情商,这里不多说; 2 轮技术面的区别就是越到后面面试官的级别越高,所以面试的风格也可能越偏向于技术视野等一些吹水的话题上;

( 2 )一般技术面有以下一些环节:自我介绍,项目介绍,算法提问(推公式),数据结构提问(写代码);

1 )自我介绍:一般尽量简短,主要讲清楚自己的研究方向,所取得成就以及优势所在即可;

2 )项目介绍:简历上的项目一定要熟悉,介绍时候分三部曲:项目背景,项目方案,项目成果;对项目中涉及到的一些技术点一定要很熟悉;

3 )算法提问:一般是问常见机器学习模型原理或者一些机器学习常见问题的解决方案(比如正负样本不平衡之类的),所以常见的机器学习模型一定要很清楚原理,必须会推公式,能知道工程实现的一些 trick 的话,那你就离 sp 不远了;

4 )数据结构提问:常见的数据结构一定要掌握,基础的代码一定要会手写(快排,冒泡,堆排,归并排序,二分查找,二叉树的遍历,二叉树增删查改);剑指 offer 的题目要会;有精力的话可以刷下 leetcode ;

( 3 )面试的时候多准备一些素材,在面试过程中主动引导面试官提问,比如面试官让你讲解 gbdt 原理时,这会你可以跟他说一般说起 gbdt ,我们都会跟 rf 以及 xgboost 一块讲,然后你就可以主动地向面试官输出你的知识;面试并不是死板地你问我答,而是一种沟通交流,所以尽可能地把面试转化成聊天式的对话,多输出自己一些有价值的观点而不是仅仅为了回答面试官的问题;

( 4 )在面试过程中,除了基础的东西要掌握,可以适当地向面试官展示你的一些其他的亮点,比如跟面试官谈论某些最近 paper 的进展以及一些技术方面的想法等,突出自己的与众不同;

( 5 )不同公司的面试风格都略有不同:

1 )百度:技术派,现场面,最大的风格就是写代码, 2 面技术加一面经理面,技术面必写代码;

2 )阿里:内推可以电话面,主要是聊项目跟问一些基础的数据结构方面的知识,看看剑指 offer 一般可以应付;

3 )腾讯:内推可以电话面,主要聊项目跟推公式;

4 )华为:主要聊项目,智力题以及聊价值观之类的东西;

5 )滴滴研究院:百度系,面试风格跟百度差不多;

( 6 )常见面试题(由于有的面试时间较久,主要靠记忆写下来)

1 )几种模型( svm , lr , gbdt , em )的原理以及公式推导;

2 ) rf , gbdt 的区别; gbdt , xgboost 的区别(烂大街的问题最好从底层原理去分析回答);

3 )决策树处理连续值的方法;

4 )特征选择的方法;

5 )过拟合的解决方法;

6 ) kmeans 的原理,优缺点以及改进;

7 )常见分类模型( svm ,决策树,贝叶斯等)的优缺点,适用场景以及如何选型;

8 ) svm 为啥要引入拉格朗日的优化方法;

9 )假设面试官什么都不懂,详细解释 CNN 的原理;

10 )海量的 item 算文本相似度的优化方法;

11 )梯度下降的优缺点;

12 ) em 与 kmeans 的关系;

13 ) L1 与 L2 的区别以及如何解决 L1 求导困难;

14 )如何用尽可能少的样本训练模型同时又保证模型的性能;

15 )解释 word2vec 的原理以及哈夫曼树的改进;

16 )对推荐算法的未来看法;

17 )在模型的训练迭代中,怎么评估效果;

18 )有几个 G 的文本,每行记录了访问 ip 的 log ,如何快速统计 ip 出现次数最高的 10 个 ip ;如果只用 linux 指令又该怎么解决;

19 )一个绳子烧完需要 1 个小时,假设所有绳子的材质都不一样,也不均匀,怎么取出 1 小时加 15 分钟;

20 )假设有个 M*N 的方格,从最左下方开始往最右上方走,每次只能往右或者往上,问有多少种走法,假设中间有若干个格子不能走,又有多少种走法;

21 )实现 hmm 的状态转移代码;

22 )最短路径代码;

23 )拼车软件是如何定价的以及如何优化;

24 ) 100 张牌,每次只能抽一张,抽过的牌会丢掉,怎么选出最大的牌;

25 )怎么预测降雨量;

26 ) kmeans 代码;

27 ) mr 方案解决矩阵相乘的代码;

28 ) sql 语句的一些优化技巧;

29 )关于集群调度的一些经验 trick 掌握多少;

30 )设计一个系统可以实时统计任意 ip 在过去一个小时的访问量;

31 )设计 LRU 系统;

PS: 以上的面试题仅供参考,主要是提供一个方向,大概了解这个岗位的面试考核方向,具体还得多刷刷面经(牛客网);

先说背景:

研二,傻不拉几拒绝了38所的实习,讯飞的实习没有进,现在后悔也没来得及。当初不努力,想临时抱佛脚。

博客内容:

只是听说csdn博客比较牛,就想着可不可以来发点什么。计划30天之后找个实习,实习两个月学校秋招找工作,就把这边当成自己这30天的基地,争取每天更学习历程

开头就说:

希望,如果有哪位大牛不幸瞄到这篇博客,可以看下我最后的安排以及给点相关建议,包括:安排对否,书籍是否合理,安排取舍以及其他建议。个人感觉,如果可以用视频课代替全部书籍,慕课网的视频课可以加速2倍,省了一半时间,不知道这样想是不是有点太天真。第一次写博客,希望指正!跪谢

第一天:主要是安排学习课程

先看一下之后的30天该如何安排,于是乎上网找了相关资料:

原文标题:数据挖掘工程师在公司中一般都具体做什么?需要了解哪些知识?
原文链接:https://www.zhihu.com/question/27317479
贺勇:
阿里拥有消费数据、百度拥有搜索数据,腾讯拥有社交数据、
数学知识:统计与概率论,微积分,最优化,随机过程(建议去看看机器学习十大算法以及深度学习相关东西,大牛博客)
语言推荐:java+python+SQL+shell(+linux)(阿里巴巴用的就是这个)
云平台:hadoop和hive知道怎么用,怎样在上面实现算法,优化自己的程序
推荐开源工具:weka(单机版)和mathout(分布式基于hadoop和spark)
网页内链接:http://blog.csdn.net/heyongluoyao8/article/details/39299913(常用的机器学习&数据挖掘知识(点))主要讲了数据挖掘基础,常见分布,数据预处理,常见聚类,聚类效果评估,分类与回归,分类效果评估,概率图模型,神经网络,深度学习,降维方法,文本挖掘方法,关联挖掘方法,推荐引擎,相似性与距离度量,最优化,特征选择方法,异常点检测方法,基于学习的排序,工具
上述网页链接内的东西比较全,以知识点形式列出,可以在学习空余时间一个个过。

周琦:
工具的学习:
python(书籍learning python)
java(think in java)
linux(鸟哥私房菜)
hadoop

机器学习入门:
集体编程智慧(刷一遍例子)
数据挖掘导论,机器学习,andrew ng机器学习课程,机器学习实战(其中,数据挖掘导论主要讲概念,andrew ng进行比较细致的学习,实现算法参考机器学习实战)
kaggle找几个简单题进行实战

数据结构基础:
算法导论+leetcode在线题目

原文标题:与大数据相关的工作职位有哪些?(文章可以好好看看,讲了数据挖掘工程师和算法工程师以及数据分析工程师等的不同)
原文链接:http://www.ppvke.com/Blog/archives/30931

数据分析师和大数据工程师不同?
数据分析师主要偏开发,熟练hadoop大数据平台核心架构,能够使用hadoop提供的通用算法,熟练掌握hadoop组件如:yarn,hbase,hive,pig等
推荐:熟练掌握java,了解linux,hadoop学习先要了解什么是hdfs和mapreduce,其次开始跑小程序如wordcount,之后就可以改代码,测试独立业务场景

数据分析师和数据挖掘工程师的区别?
数据挖掘工程师需要较强的编程能力,需要通过语言进行模型算法优化和相关数据产品开发。数据分析师更多是对业务的理解以及数据分析的能力

原文标题:《数据挖掘 —— 从入门到求职》
作者:ZakeXu
链接:https://www.nowcoder.com/discuss/15168?type=0&order=0&pos=16&page=1
来源:牛客网

( 1 )其中业务知识具体指的是个性化推荐,计算广告,搜索,互联网金融等; NLP , CV 分别是处理文本,图像视频数据的领域技术,可以理解为是将非结构化数据提取转换成结构化数据;最后的 ml/dl 技术则是属于模型学习理论;
( 2 )在选择岗位时,各个公司都没有一套标准的称呼,但是所做的事情无非 2 个大方向,一种是主要钻研某个领域的技术,比如自然语言处理工程师,计算机视觉工程师,机器学习工程师等;一种是将各种领域技术应用到业务场景中去解决业务需求,比如数据挖掘工程师,推荐系统工程师等;具体的称呼不重要,重要的是平时的工作内容;
PS :在互联网行业,数据挖掘相关技术应用比较成功的主要是推荐以及计算广告领域,而其中涉及到的数据主要也是文本,所以 NLP 技术相对来讲比较重要,至于 CV 技术主要还是在人工智能领域(无人车,人脸识别等)应用较多,本人了解有限,相关的描述会较少;
3. 根据之前的分析,也可以看到该岗位所需要的 3 种基本能力分别是业务经验,算法能力与工程能力;
(二) 入门

  1. 工程能力
    ( 1 )编程基础:需要掌握一大一小两门语言,大的指 C++ 或者 JAVA ,小的指 python 或者 shell 脚本;需要掌握基本的数据库语言;
    建议: MySQL + python + C++ ;语言只是一种工具,看看语法就好;
    推荐书籍:《 C++ primer plus 》
    ( 2 )开发平台: Linux ;
    建议:掌握常见的命令,掌握 Linux 下的源码编译原理;
    推荐书籍:《 Linux 私房菜》
    ( 3 )数据结构与算法分析基础:掌握常见的数据结构以及操作(线性表,队,列,字符串,树,图等),掌握常见的计算机算法(排序算法,查找算法,动态规划,递归等);
    建议:多敲代码,多上 OJ 平台刷题;
    推荐书籍:《大话数据结构》《剑指 offer 》
    ( 4 )海量数据处理平台: hadoop ( mr 计算模型, java 开发)或者 spark ( rdd 计算模型, scala 开发),重点推荐后者;
    建议:主要是会使用,有精力的话可以看看源码了解集群调度机制之类的;
    推荐书籍:《大数据 spark 企业级实战》

  2. 算法能力
    ( 1 )数学基础:概率论,数理统计,线性代数,随机过程,最优化理论
    建议:这些是必须要了解的,即使没法做到基础扎实,起码也要掌握每门学科的理论体系,涉及到相应知识点时通过查阅资料可以做到无障碍理解;
    ( 2 )机器学习 / 深度学习:掌握常见的机器学习模型(线性回归,逻辑回归, SVM ,感知机;决策树,随机森林, GBDT , XGBoost ;贝叶斯, KNN , K-means , EM 等);掌握常见的机器学习理论(过拟合问题,交叉验证问题,模型选择问题,模型融合问题等);掌握常见的深度学习模型(CNN ,RNN 等);
    建议:这里的掌握指的是能够熟悉推导公式并能知道模型的适用场景;
    推荐书籍:《统计学习方法》《机器学习》《机器学习实战》《UFLDL 》
    (3 )自然语言处理:掌握常见的方法(tf-idf , word2vec , LDA );

  3. 业务经验
    ( 1 )了解推荐以及计算广告相关知识;
    推荐书籍:《推荐系统实践》《计算广告》
    ( 2 )通过参加数据挖掘竞赛熟悉相关业务场景,常见的比赛有 Kaggle ,阿里天池, datacastle 等;
    PS: 以上都是一些入门级别的介绍,在长期的学习中,应该多看顶会 paper ,多读开源代码,多学习优秀解决方案;
    PS:以上推荐的书籍对应的电子版可以联系本人( Q:1434909067 )
    PS:链接: http://pan.baidu.com/s/1o8r0ux0

(三) 求职

  1. 简历
    ( 1 )格式:个人信息(姓名,联系方式,教育背景,求职意向,照片可有可无) + 竞赛经历 + 实习经历 + 项目经历 + 掌握技能 + 获奖情况;
    PS: 最好写成一页;
    ( 2 )加分:博客, github ,竞赛 top10 ,顶会 paper ;
    PS:如果感兴趣的话可以联系我要简历模板( Q:1434909067 )
    PS:牛逼的简历可以让你有更多的面试机会,更关键的是让面试官在面试时潜意识给你打高分,当然前提是简历要真实,所以平时得为了牛逼的简历多做准备工作;
  2. 海投
    ( 1 )国内设有该岗位且还不错的公司:
    百度,腾讯,阿里,网易(互联网,游戏,有道),华为,今日头条,滴滴研究院,一点咨讯, 360 ,美团等;
    ( 2 )如果选择留在广东深圳发展,就业的机会比较少,比较好的主要就是百度深研,腾讯总部,华为深圳,京东好像在深圳也有个做数据挖掘的团队;(楼主倾向去深圳发展)
    ( 3 )个人建议在 3 月份的时候可以通过实习生的身份进入相关企业,争取实习生留用;一般企业给应届生的 hc 分配比例大概是实习生留用:校招提前批:校招正式 =4 : 3 : 3 ,实习生留用相对比较容易;
    ( 4 )一般投递简历时,尽量联系公司内部的师兄师姐或者熟人,帮忙将简历直接给到团队 leader 手中,这样做的好处是可以同时面试同个公司的多个团队,前提是简历在公司校招系统未被锁定的前提下,具体情况多咨询公司内部熟人,在求职过程中,信息来源非常重要,一定要注意这点,不然会踩很多坑;
    ( 5 )加入各种求职交流群,多认识些人,共享资源;
    ( 6 )投简历时候尽量内推,很多公司内推可以免笔试;
    PS :笔试纯属看 rp ,总之就是多刷题,上牛客网多练练并针对性复习就好;
  3. 面试
    ( 1 )一般该岗位的面试起码都有 3 轮, 2 轮技术面, 1 面 hr 面, hr 面主要看情商,这里不多说; 2 轮技术面的区别就是越到后面面试官的级别越高,所以面试的风格也可能越偏向于技术视野等一些吹水的话题上;
    ( 2 )一般技术面有以下一些环节:自我介绍,项目介绍,算法提问(推公式),数据结构提问(写代码);
    1 )自我介绍:一般尽量简短,主要讲清楚自己的研究方向,所取得成就以及优势所在即可;
    2 )项目介绍:简历上的项目一定要熟悉,介绍时候分三部曲:项目背景,项目方案,项目成果;对项目中涉及到的一些技术点一定要很熟悉;
    3 )算法提问:一般是问常见机器学习模型原理或者一些机器学习常见问题的解决方案(比如正负样本不平衡之类的),所以常见的机器学习模型一定要很清楚原理,必须会推公式,能知道工程实现的一些 trick 的话,那你就离 sp 不远了;
    4 )数据结构提问:常见的数据结构一定要掌握,基础的代码一定要会手写(快排,冒泡,堆排,归并排序,二分查找,二叉树的遍历,二叉树增删查改);剑指 offer 的题目要会;有精力的话可以刷下 leetcode ;
    ( 3 )面试的时候多准备一些素材,在面试过程中主动引导面试官提问,比如面试官让你讲解 gbdt 原理时,这会你可以跟他说一般说起 gbdt ,我们都会跟 rf 以及 xgboost 一块讲,然后你就可以主动地向面试官输出你的知识;面试并不是死板地你问我答,而是一种沟通交流,所以尽可能地把面试转化成聊天式的对话,多输出自己一些有价值的观点而不是仅仅为了回答面试官的问题;
    ( 4 )在面试过程中,除了基础的东西要掌握,可以适当地向面试官展示你的一些其他的亮点,比如跟面试官谈论某些最近 paper 的进展以及一些技术方面的想法等,突出自己的与众不同;
    ( 5 )不同公司的面试风格都略有不同:
    1 )百度:技术派,现场面,最大的风格就是写代码, 2 面技术加一面经理面,技术面必写代码;
    2 )阿里:内推可以电话面,主要是聊项目跟问一些基础的数据结构方面的知识,看看剑指 offer 一般可以应付;
    3 )腾讯:内推可以电话面,主要聊项目跟推公式;
    4 )华为:主要聊项目,智力题以及聊价值观之类的东西;
    5 )滴滴研究院:百度系,面试风格跟百度差不多;
    ( 6 )常见面试题(由于有的面试时间较久,主要靠记忆写下来)
    1 )几种模型( svm , lr , gbdt , em )的原理以及公式推导;
    2 ) rf , gbdt 的区别; gbdt , xgboost 的区别(烂大街的问题最好从底层原理去分析回答);
    3 )决策树处理连续值的方法;
    4 )特征选择的方法;
    5 )过拟合的解决方法;
    6 ) kmeans 的原理,优缺点以及改进;
    7 )常见分类模型( svm ,决策树,贝叶斯等)的优缺点,适用场景以及如何选型;
    8 ) svm 为啥要引入拉格朗日的优化方法;
    9 )假设面试官什么都不懂,详细解释 CNN 的原理;
    10 )海量的 item 算文本相似度的优化方法;
    11 )梯度下降的优缺点;
    12 ) em 与 kmeans 的关系;
    13 ) L1 与 L2 的区别以及如何解决 L1 求导困难;
    14 )如何用尽可能少的样本训练模型同时又保证模型的性能;
    15 )解释 word2vec 的原理以及哈夫曼树的改进;
    16 )对推荐算法的未来看法;
    17 )在模型的训练迭代中,怎么评估效果;
    18 )有几个 G 的文本,每行记录了访问 ip 的 log ,如何快速统计 ip 出现次数最高的 10 个 ip ;如果只用 linux 指令又该怎么解决;
    19 )一个绳子烧完需要 1 个小时,假设所有绳子的材质都不一样,也不均匀,怎么取出 1 小时加 15 分钟;
    20 )假设有个 M*N 的方格,从最左下方开始往最右上方走,每次只能往右或者往上,问有多少种走法,假设中间有若干个格子不能走,又有多少种走法;
    21 )实现 hmm 的状态转移代码;
    22 )最短路径代码;
    23 )拼车软件是如何定价的以及如何优化;
    24 ) 100 张牌,每次只能抽一张,抽过的牌会丢掉,怎么选出最大的牌;
    25 )怎么预测降雨量;
    26 ) kmeans 代码;
    27 ) mr 方案解决矩阵相乘的代码;
    28 ) sql 语句的一些优化技巧;
    29 )关于集群调度的一些经验 trick 掌握多少;
    30 )设计一个系统可以实时统计任意 ip 在过去一个小时的访问量;
    31 )设计 LRU 系统;
    PS: 以上的面试题仅供参考,主要是提供一个方向,大概了解这个岗位的面试考核方向,具体还得多刷刷面经(牛客网);

最后对上述资料进行了总结,决定这段时间主要学习以下几个东西:
看书:
java——java核心基础
python——learning python
linux——鸟哥私房菜
数据结构——大话数据结构
机器学习——统计学习方法,机器学习,机器学习实战(后两者是参考书籍)

看视频:
数据结构——算法导论(coursera)
机器学习——andrew ng公开课

做题目:
数据结构——剑指offer和leetcode刷题

参加比赛:
天池,kaggle竞赛,积极关注,拿以前题目练手

分析了一下里面的内容:
现在掌握程度 书籍 页数 估计时间 安排时间 视频课程 课程数 安排时间 在线刷题 安排时间 比赛 安排时间
java C java核心基础(纸质版) 1545
python B- learning python(电子版) 1162
linux D 鸟哥私房菜(电子版) 940
数据结构 C- 大话数据结构(电子版) 467 coursera算法导论(看过前面部分) 60个小时
机器学习 C+ 统计学习方法(电子版)
机器学习——周志华(电子版) 251
442 andrew ng公开课(看过一遍) 40个小时
很直白的说一声,分析完了里面的内容之后才发现,感觉30天完成真的是不可能的事情。但就是想试一试。
但是不知道怎么安排时间才算合适,打算开始了之后一周看一下看书以及视频的进度,再进一步安排时间。
只想说,加油!祝好。

猜你喜欢

转载自blog.csdn.net/AthlenaA/article/details/82717250
今日推荐