学编程方向往哪个方向比较热门?

向着项目管理方向发展做到项目经理

你对这个回答的评价是?

你对这个回答的评价是

你对这个回答的评价是?

}

现在比较流行的应该是java语言发展前景比较好些。

你对这个回答的评价是

}

眼下人工智能已经成为越来越吙的一个方向。普通程序员如何转向人工智能方向,是知乎上的一个问题本文是对此问题的一个回答的归档版。相比原回答有所内容增加

本文的目的是给出一个简单的,平滑的易于实现的学习方法,帮助 “普通” 程序员踏入AI领域这个门这里,我对普通程序员的定義是:拥有大学本科知识;平时工作较忙;自己能获取的数据有限因此,本文更像是一篇 “from the scratch” 的AI入门教程

AI,也就是人工智能并不仅仅包括机器学习。曾经符号与逻辑被认为是人工智能实现的关键,而如今则是基于统计的机器学习占据了主导地位最近火热的深度学习正昰机器学习中的一个子项。目前可以说学习AI主要的是学习机器学习。

但是人工智能并不等同于机器学习,这点在进入这个领域时一定偠认识清楚关于AI领域的发展历史介绍推荐看周老师写的《机器学习简介》。下面一个问题是:AI的门好跨么?其实很不好跨我们以机器学習为例。

在学习过程中你会面对大量复杂的公式,在实际项目中会面对数据的缺乏以及艰辛的调参等。如果仅仅是因为觉得这个方向未来会“火”的话那么这些困难 会容易让人放弃。考虑到普通程序员的特点而要学习如此困难的学科,是否就是没有门路的?答案是否萣的只要制定合适的学习方法即可。

学习方法的设定简单说就是回答以下几个问题:我要学的是什么?我怎样学习?我如何去学习?这三个问題概括说就是:学习目标学习方针与学习计划。学习目 标比较清楚就是踏入AI领域这个门。这个目标不大因此实现起来也较为容易。“过大的目标时就是为了你日后放弃它时找到了足够的理由”

学习方针可以总结为 “兴趣为先,践学结合”简单说就是先培养兴趣,嘫后学习中把实践穿插进来螺旋式提高。这种方式学习效果好而且不容易让人放弃。有了学习方针以后就可以制定学习计划,也称為学习路线下面就是学习路线的介绍。

我推荐的学习路线是这样的如下图:

图1 AI领域学习路线图

这个学习路线是这样设计的:首先了解這个领域,建立起全面的视野培养起充足的兴趣,然后开始学习机器学习的基础这里选择一门由浅入深的课程来学习, 课程最好有足夠的实验能够进行实战基础打下后,对机器学习已经有了充足的了解可以用机器学习来解决一个实际的问题。

这时还是可以把 机器学習方法当作一个黑盒子来处理的实战经验积累以后,可以考虑继续进行学习这时候有两个选择,深度学习或者继续机器学习深度学習是目前最火热的机 器学习方向,其中一些方法已经跟传统的机器学习不太一样因此可以单独学习。除了深度学习以外机器学习还包括统计学习,集成学习等实用方法

如果条件足够,可以同时学习两者一些规律对两者是共通的。学习完后你已经具备了较强的知识儲备,可以进入较难的实战这时候有两个选择,工业界的可以选择看开源项目以改代码为目的来读代码;学术界的可以看特定领域的论攵,为解决问题而想发论文

无论哪者,都需要知识过硬以及较强的编码能力,因此很能考察和锻炼水平经过这个阶段以后,可以说昰踏入AI领域的门了“师傅领进门,修行在个人”之后的路就要自己走了。

下面是关于每个阶段的具体介绍:

在学习任何一门知识之前首先第一步就是了解这个知识是什么?它能做什么事?它的价值在什么地方?如果不理解这些的话,那么学习本身就是一个没有方向的 舟不知道驶向何处,也极易有沉船的风险了解这些问题后,你才能培养出兴趣兴趣是最好的引路人,学习的动力与持久力才能让你应付接丅来的若干个阶段 关于机器学习是什么,能做什么它与深度学习以及人工智能的关系,可以看我写的博客 从机器学习谈起:

如果你离校过久或者觉得基础不牢,最好事先做一下准备复习工作“工欲善其事,必先利其器”以下的准备工作不多,但足以应付后面阶段嘚学习

数学:复习以下基本知识。线性代数:矩阵乘法;高数:求导;概率论:条件与后验概率其他的一些知识可以在后面的学习的过程Φ按需再补;

英文:常备一个在线英文词典,例如爱词霸能够不吃力的看一些英文的资料网页;

FQ:可以随时随地上Google,这是一个很重要的工具不是说百度查的不能看,而是很多情况下Google搜出来的资料比百度搜的几十页的资料还管用尤其是在查英文关键字时。节省时间可是很重偠的学习效率提升;

机器学习的第一门课程首推这门课程有以下特点:难度适中,同时有足够的实战例子非常适合第一次学习的人。 这門课程我这里不推荐为什么,原因有以下:

时间:cs229 的时间太早一些知识已经跟不上当今的发展,目前最为火热的神经网络一笔带过洏Cousera上神经网络可是用了两个课时去讲的!而且非常详细;

教学:Ng在cs229 时候的教学稍显青涩,可能是面对网络教学的原因有很多问题其实他都没囿讲清楚,而且下面的人的提问其实也很烦躁你往往不关心那些人的问题。这点在 Coursera上就明显得到了改善你会发现Ng的教学水平大幅度改善了,他会对你循循善诱推心置腹,由浅入深的教学在碰到你不明白的单词术语时也 会叫你不要担心,更重要的推导与图表不要太唍善,非常细致清晰这点真是强力推荐;

字幕:cs229 的字幕质量比Coursera上的差了一截。Coursera上中文字幕翻译经过了多人把关质量很有保证;

作业:cs229 没有莋业,虽然你可以做一些但不会有人看。这点远不如Coursera上每周有deadline的那种作业而且每期作业提交上去都有打分。更重要的是每期作业都囿实际的例子,让你手把手练习而且能看到自己的成果,成就感满满!

学习完了基础课程你对机器学习就有了初步了解。现在使用它们昰没有问题的你可以把机器学习算法当作黑盒子,放进去数据就会有结果。在实战中你更需要去关心如何获取数据以及怎么调参等。如果有时间自己动手做一个简单的实践项目是最好的。

这里需要选择一个应用方向是图像(计算机视觉),音频(语音识别)还是文本(自嘫语言处理)。这里推荐选择图像领域这里面的开源项目较多,入门也 较简单可以使用OpenCV做开发,里面已经实现好了神经网络SVM等机器学習算法。项目做好后可以开源到到 Github 上面,然后不断完善它实战项目做完后,你可以继续进一步深入学习这时候有两个选择,深度学習和继续机器学习;

深度学习:深度学习是目前最火热的研究方向有以下特点:知识更新快,较为零碎没有系统讲解的书。因此学习的資源也相对零散下面是一些资源介绍。其中不推荐的部分并不代表不好而是在这个初学阶段不合适:

推荐,: 非常好的DL基础教程也昰Andrew Ng写的。有很详尽的推导有翻译,且翻译质量很高;推荐:2015年Nature上的论文,由三位深度学习界的大牛所写读完全篇论文,给人高屋建瓴一览众山小的感觉,强烈推荐如果只能读一篇论文了解深度学习,我推荐此篇这篇论文有同名的中文翻译;推荐,:这本书的作者非瑺擅长以浅显的语言表达深刻的道理虽然没有翻译,但是阅读并不困难;推荐: 结合一个实际案例告诉你RNN是什么,整篇教程学完以后會让你对RNN如何产生作用的有很清晰的认识,而这个效果甚至是读几篇相关论文所没有的;

不推荐,:深度学习创始人教的课最大的问题昰太难,而且老先生的吐字有时不是很标准;不推荐:同样也是由深度学习大牛所写的书,但感觉就像是第二作者也就是他的学生所写嘚。很多内容都讲了但是感觉也没讲出什么内容来,只是告诉你来自那篇论文这样的话可能直接阅读论文更合适。不推荐:李菲菲嘚课程,很有名专门讲CNN。但是这门课程有一个最大的问题就是没有字幕,虽然有youtube的自动翻译字幕但有还不如没有。

深度学习未必就昰未来的一定主流至少一些大牛是这么认为的。传统的机器学习有如下特点知识系统化,有相对经典的书其中统计学习(代表SVM)与集成學习(代表adaboost)是在实践中使用非常多的技术。下面是相关资源:

如果是在以前机器学习方面的经典教材首推PRML,但现在周老师的书出来以后僦不再是这样了。首先推荐读周老师的书这本书有一个特点,那就是再难的 道理也能用浅显精炼的语言表达出来正如周老师的名言:“体现你水平的地方是把难的东西讲容易了,而不是把容易的东西讲难想把一个东西讲难实在太简 单”;

不推荐,:当前阶段不推荐PRML是鉯贝叶斯的观点看待很多机器学习方法,这也是它的一大特色但对于初学者来说,这种观点其实并无必要而且此书没有中文翻译,当湔阶段硬啃很容易放弃;

当知识储备较为充足时学习可以再次转入实践阶段。这时候的实践仍然可以分两步走学习经典的开源项目或者發表高质量的论文。开源项目的学习应该以尽量 以优化为目的单纯为读代码而学习效果往往不太好。好的开源项目都可以在Github 里搜索这裏以深度学习为例。深度学习的开源优秀库有很多例如torch,theano等等这里列举其中的两个:

推荐,:较早的一个深度学习库用matlab语言撰写,較为适合从刚学习的课程转入学习遗憾的是作者不再维护它了;

推荐,:Google的开源库时至今日,已经有40000多个star非常惊人,支持移动设备;

较恏的课程都会推荐你一些论文一些著名的技术与方法往往诞生于一些重要的会议。因此看往年的会议论文是深入学习的方法。在这时一些论文中的内容会驱使你学习数学中你不擅长的部分。有时候你会觉得数学知识储备不够因此往往需要学习一些辅助课程。

当你看唍足够的论文以后在这个阶段,如果是在校学生可以选择某个课题,以发论文为目的来学习研究一般来说,论文是工作的产物有時候一篇基于实验的论文往往需要你写代码或者基于开源项目。因此开源项目的学习与会议论文的工作两者之间是有相关的

两者可以同時进行学习。关于在哪里看论文可以看一下,了解一下这个领域里有哪些优秀的会议

下面介绍两个图像与机器学习领域的著名顶级会議:

:与另两个会议ICCV和ECCV合称计算机视觉领域的三大会,注意会议每年的主页是变动的因此搜索需要加上年份;

:简称NIPS,许多重要的工作发表在这上面例如关于CNN的一篇重要论文就是发表在上面;

到这里了,可以说是进入这个门了下面可以依据兴趣来自由学习。前阶段不推荐嘚学习资源也可随意学习下面是点评:

:Ng写的讲义很不错,其中关于SVM的推导部分很清晰想学习SVM推荐;

:大牛的视角跟人就是不一样,看看Hinton对神经网络是怎么看的往往会让你有种原来如此的感悟。其实看这门课程也等同于读论文因为几乎每节课的参考资料里都有论文要伱读;

Recognition:最新的知识,还有详细的作业国内应该有团队对字幕进行了翻译,可以找找;

:作为一门经典的机器学习书籍是很有阅读必要的,会让你对机器学习拥有一个其他的观察视角;

本文的目的是帮助对AI领域了解不深但又想进入的同学踏入这个门。这里只说踏入是因为這个领域的专精实在非常困难,需要数年的积累与努力在进行领域学习前,充分认识自己的特点制定合适的学习方法是十分重要的。

艏先得对这个领域进行充分了解培养兴趣。在学习时保持着循序渐进的学习方针,不要猛进的学习过难资源;结合着学习与实践相辅的筞略不要只读只看, 实际动手才有成就感学习某个资源时要有充分的目的,不是为了学开源项目而看代码而是为了写开源项目而看;鈈是为了发论文而写论文,而是为了做事情而写 论文

如果一个学习资源对你过难,并不代表一定是你的问题可能是学习资源的演讲或撰写人的问题。能把难的问题讲简单的人才是真正有水 平的人所以,一定要学习优质资源而不是不分青红皂白的学习。最后牢记以興趣来学习。学习的时间很长过程也很艰难,而只有兴趣才是让你持之以恒攻 克难关的最佳助力。

谨以此文与在学海中乘舟的诸位共勉我就是一名普通程序员,刚刚转入AI领域还有很多不足。希望此文可以帮助到大家

}

我要回帖

更多关于 学编程方向 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信