(更新)数据挖掘,自学一年拿了腾讯京东华为网易YY的Offer,方法与建议
日期: 2017-11-02 分类: 跨站数据测试 268次阅读
成果
秋招结束了,我最终获得了:
- 腾讯
- 京东
- 华为
- 网易游戏
- 欢聚时代
- 搜狐视频
这几个offer,均待遇不错,收获颇丰。
写作动机
回想起一年多以前选择数据挖掘的时候,一度以为找不到工作,非常着急。幸好有令科,梅寒,志韬等师兄为我解答了很多迷津。于是也尝试记录一下自己的学习历程,鉴于往事,以资于后道。
全文分成6个阶段,文章有点长,各位可以直接去看自己的那个阶段,看看我过去的心路历程和总结的经验能否帮上忙。
暂时写到找实习,其他部分想到再写,有什么问题可以微信问我,我在实验室群里
所有技巧仅适用于我们实验室
- 我们实验室的一个特点是人多。
很多优秀的师兄师姐,他们就像排头兵,考虑过你现在迷惘的几乎所有选择,去过了几乎所有重要和优秀的公司,就职于所有欣欣向荣的岗位,能带给大家很多前路上的指引。
请大家多点跟所在的小组现在的前辈,还有以前毕业了的前辈多多交流,他们会最切身,热情地帮助你任何困惑。 - 我们实验室的第二个特点,是有很多优秀的师弟师妹。
以后你们的苦恼也会变成后辈的参考,你们走过的路也可能成为后辈的选择。为了让你们努力得到的经验不要只被自己使用一次,为了让更多后辈追随你的脚步壮大队伍:
请多点分享,任何形式的都可以:书,博客,Github,私下聊天…
阶段
1. 选方向阶段
我的研究生是两年制,于是在大四暑假的时候,我必须对学习方向做一个选择,到底学C++后台还是数据挖掘。
我的情况是:
- C++
- 实验室有与之相关的项目
- 本科的时候有学过C++编程
- 关系比较亲近的师兄都去了做C++后台
- 全社会招的人不少,但是作为一个有相当历史的岗位,竞争者也不少
- 数据挖掘
- 比较感兴趣
- 完全没有基础
- 当时刚开始流行,很多人在学习,可以一起学习
- 不需要什么项目经验,但是需要参加比赛
纠结了很久,最后还是去做了数据挖掘:
- 实在不喜欢编程
- 对自己家庭情况做了分析(不需要非常稳定地挣钱,家里人不用我养)
- 对自己的工作状态做了分析(不擅长做太细节的工作)
- 数据挖掘即使没学成,起码能做Python工程师,也比C++舒服(这个设想后来无法证明正确与否,好像是错的)
综合上述情况,心里比较不讨厌数据挖掘,所以选择学习数据挖掘。
2. 学习阶段
-
买盗版书:
尽可能多的获取信息,虽然网课也很好,但是很多书里的内容更详细和pratical,因为没有钱,但是又想买各种书来看,上知乎看了一圈不知道买什么,就在淘宝搜“满三包邮”买了一堆盗版书,不能因为贫困而不学习。**大家一定不要学我。 **
看下来每一本书都有各自的闪光点,相互补充效果很好,书有点多所以书架放在了语音组实验区,大家可以借阅或捐赠。 -
学习路径:
- 基础技巧:Python做数据分析
- 初学者入门:Python数据挖掘与实战
- 第一次自己上手:kaggle
- 实际做比赛:天池/CCF
- 有问题:stackoverflow/Github
-
请大家关注一些很有用的企业公共KM(知识分享),我这里推荐三个:
-
机器学习的学习方法:先学会一些常用数学,统计,思考方式等工具。然后理解新的模型的“步骤”(当有工具的时候,大概了解在数学上和哲学上这些模型是怎么构筑的就行,详细的证明当数学熟练后可以推出)
-
【2018.1.30更新】最近在补全自己深度学习的知识,学习深度学习的话,我建议的路径是这样的:
- 基础:
买,并看《Deep Learning》准备一些数学,深度学习方面的基础,英文不好可以看中文版,但是中文版翻译越到后面越糟糕,所以看到后面可能你会自动去看英文版。 - 选择一个领域并准备基础:
图像/语音/NLP…并买一些对应领域的专著来看,每个领域都有一些基础知识,这些知识论文中不会讲,博客网文太零散,必须看书。 - 学习深度学习框架:
-
Tensorflow: 我把市面上(2018.1月)有关Tensorflow的书都买过一遍,我建议先看《面向机器智能的Tensorflow实战》有兴趣再看《Tensorflow机器学习实战指南》
-
PyTorch: 看得不多,我觉得《深度学习入门之PyTorch》挺好
-
具体选择哪个框架当然看你领域的研究需要,不过我们公司用TensorFlow比较多,所以必知必会
-
学习列表:这个表应该有三行,包括了你这个领域常见的技术,分成“模型”,“模块/技巧”,“其他”,可以看我的例子:
a. 模块/技巧:重参数化,因果卷积 ,highway,attention b. 模型:SampleRNN,WaveNet,Griffin-Lim c. 其他:MCMC采样,BeamSearch
必须学习原理(在Arxiv找论文),和实现(Github找实现)。三层的关系层层递进,学会了写第一层的模块,你就可以学搭第二层的模型,第三层是其他,不属于模型或者模块,但是按照结构主义的观点,所有功能都有对应的结构,第三层只是用来存放杂物的。
-
- Github:关注你们对应领域的大佬,看他们会star什么项目,你也跟进去学习
-
写自己的博客。认识有偏差也没关系,太张狂也没关系,根据Fail-Fast原则,越早地把问题暴露出来,越好,比如我就会写:
上一篇: Java性能调优的11个实用技巧
下一篇: 无法连接阿里云数据库mongodb版问题
精华推荐