背景
    不知不觉已经转行程序员一年多的时间了,语言的话一直使用的python,从一开始的爬虫,到后续NLP中的分类以及关键词提取,到现在马上要转岗scala的大数据开发。虽然每天都会学习一些知识来提升自己,但还是感觉到很多的不足吧。最大的一点便是缺乏规划,当一个东西学到底层的时候总会刻意的回避。总结一句就是,浮于表面,什么都会又什么都不会。跟着某大厂大牛工作了半年(本人外包搬砖工一枚~),他给的建议是,精通某个领域。自此,为了有一天能够成为他们其中的一员而奋斗着。

经过一段时间的思考,决定成为一个推荐系统工程师。目前对于这个职业的理解就是能基于大数据为用户带来他最需要的东西。同时自己也做了一个相关的学习路线图。
第一个是核心原理:
在实际工作中,通过sklearn以及tensorflow的api用过很多种算法,比如TFIDF,SVM,LR,textCNN等等模型,虽然最后交付了一个合格的分类模型,但是深究下去还有很多没有做以及不懂的,比如通过降维来降低训练成本,如何来判断模型是否收敛等等。我觉得这个事情应该可以做得更好!但是自己能力有限吧。当时一起的还有一个朋友,他说的一句话,现在细细想来也是很有道理的,一个事情你不了解原理又怎么能把它做到极致呢?
第二个是算法和数据结构
记得一开始转行程序员的时候,看到一本书叫数据结构与算法之美,心里是想着这怕不是失了智,这还有美的?直到现在感受到自己写出的代码和别人代码的差距。举个最近刷的leetcode题,编号242,一个字母异位词的题目。当时python直接一个sorted解决问题,内部封装的是一个快排,O(NlogN)的时间复杂度,直到看到别人使用哈希表实现的Map来进行处理达到O(N)的时间复杂度,从而提高了效率。
第三个是操作系统
首先自己是python出身,python有一个最大的好处就是可以快速的实现功能。在使用机器学习以及深度学习时特别方便。二是scala/java,首先目前应用最广的大数据框架就是hadoop,本身就是基于java开发出来的,同时目前的工作也可以接触到scala,故顺势进行相关的学习。
以下是自己总结的学习路线,后续还会根据实际的情况进行改善以及完成情况的打卡。

推荐系统工程师成长之路(1)

相关文章: