无论是转行的,还是即将毕业但是积累不多的,想要入行都是不容易的,一定是需要付出巨大努力的,这个心理准备一定要有。没有任何一种办法,或者是任何一个培训班,可以让你在不努力的情况下达成这一效果。
所以剩下的问题就是怎么努力,往哪里努力。
文章来源于:微信公众号丨****AINLP
打好基础
我给出的建议是打好基础+做出亮点,算法行业的基础无非是算法+数据结构+机器学习+深度学习。这几块每一块都不小,想要从零开始啃下来非常不容易。这也是为什么acm出身的同学有优势的原因,因为他们已经熟练掌握了算法和数据结构,不仅负担更小,并且对于继续学习后续的机器学习以及深度学习也有帮助。
我个人的建议是大量刷题快速学习,大部分人学算法和数据结构都是为了应付面试。既然如此,那不如索性不用学了,直接上手刷题,在刷题的过程当中学。把学习的时间省下来把LeetCode前300题刷个4遍,把里面涉及到的所有算法都学会练熟悉。这些都是机械操作,考验的就是毅力和苦功,没什么太多的技术含量,国外的留学生找工作也都是这么过来的。
机器学习和深度学习难点在于刚入门的时候,刚入门的时候什么都不懂,什么概念都是新鲜的,尤其是还会涉及很多公式推导。但实际上公式推导只涉及简单的线性代数以及矩阵运算,只是看着唬人。机器学习和深度学习里面具体的技术点也并不多,尤其是深度学习大部分都是围绕神经网络展开的各种奇淫技巧。主要难熬的是刚入门的前几个月,挺过去会好很多。
最后说说做出亮点,说到亮点很多人会想到kaggle或者是其他的一些比赛。我个人觉得这些比赛参加一两场熟悉一下,理解一下算法是怎么运作的就可以了,没有必要非要做出成绩来。因为kaggle这类比赛用到的技术以及能力和实际工作当中还是有很大差别的,并且现在这些比赛也卷得厉害。里面卷着的基本上都是一些小型的人工智能企业,他们雇一些全职的员工来刷比赛,用这些比赛的名次来证明公司的能力。所以想要单枪匹马赢过这些公司非常不容易,也需要花费大量的时间,所以我个人不是很推荐。
读论文
我觉得比较好的办法还是从论文下手,把相关业内的论文读一读,积累一点造诣。
对于刚入行的同学来说上来就读paper是一件比较痛苦的事情,第一个难点是不知道要读什么,paper这么多,每一篇都读过来显然没有精力,也没有这个必要。好在现在互联网非常发达,我们在网上找一找大牛的博客和指引,可以找到一堆reading list。第二个难点是本身的阅读难度,毕竟是全英文,再加上又有各种公式,刚开始会比较痛苦这个是肯定的。我个人建议是先硬啃几篇下来,然后记录一下读不懂的地方,再去找一找网上中文的博客和解析来做一个对比。十来篇论文看下来,你会发现这件事情会一下子变得没有那么难了。
这里要注意,我们读论文是要摸清楚在这个领域当中的套路,而不是死板地记录论文当中的方法或者是技术。到后来当你找到自己的方法论之后,你会发现读论文变得非常快。看个摘要,再看个图例,读一些描述基本上就差不多了。到这个地步,从理论上来说已经是专家了,可能实践上还需要积累一些经验,但至少应付面试找份工作问题就不大了。
一点感受
人人都说算法好,人工智能强,其实真的也就那么回事,依然是辛苦忙碌的打工人,和其他普通程序员并没有什么高下之分。
即使现实一些从收入上来看,也并没有比前端、后端、客户端那些纯开发的程序员多。而且这个行当也不是所有人都合适,除了需要保持持续学习之外,还需要涉猎很广,除了算法本身对于后端、大数据、分布式、系统设计都需要有所了解和涉猎,难度和压力都不小。所以如果已经在互联网行业当中做上程序员了,真没多大必要非要换方向,有点吃力不讨好。能轻松一点,何必卷着呢,对吧。
好了,今天的文章就到这里,感谢大家的阅读,喜欢的话给个三连吧~
作为一名编程学习者,如果你想更好的提升你的编程能力,好好学习C/C++编程知识以及数据结构,以后努力成为高薪算法/软件开发工程师的话!
C语言C++编程学习交流圈子,QQ群【464501141】微信公众号:C语言编程学习基地
分享(源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
编程学习书籍:
编程学习视频: