目录
不要看看不懂的书和视频
不要盲目地去实现算法
不要埋头学习,忽略和工业界朋友的交流
最后,下决心要趁早
众(lian)所(pi)周(yao)知(hou),我是自学转行算法的。算转行比较成功的吧。虽然不是那种手握几篇顶会的大佬。但总算进入了阿里这样的大厂,成为了别人眼中的大厂算法工程师。今天,我想总结一下自己转行自学的过程中踩过的一些坑,希望对你有所帮助和启发。
既然是自学,途径无非就是看书和看视频两种途径。这些资料,今天已经非常的丰富了。每个人都可以有很多选择。
但这就带来另一个问题:究竟该从什么书,什么视频开始呢?
然后你去问身边已经是算法工程师的朋友,知乎上搜索,发现答案也是五花八门。有的说看西瓜书,有的说直接肝李航书,有的说什么年代了,直接花书走起!有的说那谁谁谁的视频不错,可以认真看看。
显然,这么多答案,等于没有答案。
很多朋友最可能的选择是,选被推荐次数最多的书或者视频来看。然后发现看的脑袋大,最后从入门到放弃。
这样的过程我都经历过,当初硬啃李航书,有很多地方不理解,怎么也想不明白,一度怀疑人生。
回头看,之所以看不懂,不过是当时不具备读那本书的知识基础而已。
自学要想成功,在我看来有两点最关键:
持续激发兴趣
构建知识结构
兴趣是最好的老师,始终保持一个浓厚的兴趣,学习新知识就不再是一个负担,而是一个快乐的探索过程。好的学习资料一定是每学完一部分,都有种发现新大陆的感觉。如果你在学习的过程中经常有这样的感叹:
“我去,还可以这样!”
“哦,原来是这么回事儿!”
“666!这解法帅呆了!”
那这份资料一定是适合你的!
初入一个领域,越快构建完整的知识结构,越有利于自学。知识结构这个东西,是一个指引,能帮助你判断自己现在学习的怎么样,哪些地方比较薄弱,那些地方是掌握比较好的。
比如,你隐马尔可夫模型学习的不够好。如果你有完整的知识结构,你就可以明白,隐马属于概率图模型的一种,你需要先学习概率图模型。
概率图模型属于贝叶斯派,你又要去理解贝叶斯派和频率派的联系和区别。
和隐马相关的模型有最大熵隐马尔可夫和条件随机场,你需要进一步从概率图模型的角度来学习三者的联系和区别。
从这个例子可以看出,有了知识结构,我们的学习会更加系统,更加主动,而不是东一榔头西一棒子。
一份好的资料一定是时刻注重帮你构建良好清晰的知识结构的。
能做到以上两点的资料,必然是能让你看的懂的资料。那些看不懂的资料,自然就不适合用来入门。这些资料,随着你段位的不断提高,到该看的时候你自然会找来学习。
程序员领域有句行话:代码面前,了无秘密。
很多人学习算法时自然会想,如果能把每一种算法都实现一遍,就一定能够彻底掌握这个算法。然后网上一搜,发现很多人支持鼓励实现一遍算法。于是一头扎在代码里,沉迷不可自拔。
我当时学习的时候,就看了一本python实现各种经典算法的书籍,可以说是跟着抄了一遍代码,对里面的每一行代码都力求深入理解。由此还发现了几个bug,当时出生牛犊不怕虎,跟现在某一线公司AILab的负责人大佬专门交流指出,因为书是他翻译的。
回头来看,我并不觉得这样的做法值得提倡。
我们自学的目的是什么,是转行,而且是尽可能快地转行。
我们的时间精力,必须投向那些最能帮助我们达成目标的事情。
清晰的目标感,会让我们明白,实现算法绝对是一个非常低效达成目标的方式。
如果你去面试,面试官不可能让你用代码实现逻辑回归,实现GBDT或者Transformer。他最多是让你写写公式,问问里面的技术细节。而这些,都是可以在学习原理的过程中就完全掌握的。在时间有限的情况下,强烈不建议你去学习那些算法的实现细节。
为防杠精,我有必要补充两点。我是认同实现算法就能全面彻底,更深刻地掌握算法的。我所不认同的是,时间有限,目标是转行的情况下,投入大量精力去实现很多算法。
当转行成功后,结合工作中用到的算法模型,去学习里面的实现细节,我觉得会是更好的选择。这样,实现算法的过程就可以直接促进工作。
记得我有段时间,真的是完全沉迷学习,对每一个算法都学的津津有味。
一天天过去,当我准备找工作时,才发现。有个很重要的模型一直没有学,就是xgboost。当时是2017年,xgboost如日中天,而我看的书上并没有这个模型。而工业界使用xgboost已经是非常普遍了。
可想而知,面试时,我下很多精力学习的Adaboost没有什么人问,但是xgboost却是每面必问。
后来,我通过读论文,做项目,迅速掌握了这个模型,这是后来的事儿。
反思这件事儿。我们不难发现一个事实。机器学习,深度学习都处在一个飞速发展的时代,新的模型层出不穷,而且很多模型从论文到工业运用已经缩短到了一两个月的时间,甚至更短。
经典的模型固然要学深悟透,但最前沿的进展也同样要时刻关注,因为新的模型经验做法一旦被运用到工业界,就会成为面试的重点,如果你不能很好的掌握,是很难通过面试的。
获得这些新的进展最好的办法就是多和工业界的朋友交流,他们身在一线,最清楚哪些模型好用,哪些模型只是博士硕士们毕业的垫脚石。这样,就可以有意识地重点学习那些工业界主流的模型,面试的时候就会更有把握。
有的朋友可能说,我没有工业界的朋友怎么办呢?
很简单,很多公众号都有自己的微信群。加进去,活跃一点。没事儿多观察大家聊天的内容,发现里面的大佬,主动请教问题,发个小红包活跃活跃氛围。这不就解决了吗?而且乐意在群里解答大家问题的大佬,一般也是热心帮助人的,你放低姿态请教,都会认真回答的。
现在AI领域的求职竞争越来越激烈,很多人开始犹豫,要不要入行,担心学了半天找不到工作。
我没有办法告诉你自学完能不能找到工作。你可以在某乎上搜一下一些大佬们的观点建议。
我只想说,无论你是决定转还是不转,都要早下决心。
时间不会等待犹豫观望的人。
祝好!
如果大家想要学习更多数据科学、数据开发方面的知识,欢迎扫描二维码关注公众号: