人类文明的进步有时候快的吓人,在我们父辈上街买菜还是以一毛为计量买菜的时代,其实过去了也没有多长时间。现在买菜接近10块为准了,正常在集市上喊着怎么卖?摊主喊着三斤,包含的意思是10块钱三斤。相隔这么多年物价涨了多少倍,按照数学量级来计算通货膨胀了多少倍了,这人还杂活啊,但现在老百姓依然平平稳稳活着,时代的进步不是我等小市民发个牢骚就行阻止的。
科技发展的速度也是大的惊人,距离每家每户都用电话的固定座机,都还没有几年的时间,现在留个人电话留座机号,都会让人觉得是老古董了,也才没有几年的时间而已。作为一个做了十几年程序的老码农,辛辛苦苦掌握了正在使用的技术后发现,现在更新的技术已经出来了,而且相对之前的更加复杂需要付出更多的时间来掌握,不是活到老学到老,而是活到老,跟到老。
人工智能这个概念是很早就提出来的概念,但随着这几年基础学科的发展到位,很多突破已经出来了,处于生态链顶端的几家高科技公司都在积极布局人工智能,谷歌和微软更是直接挖走了神经网络算法的鼻祖。国内的互联网巨头也在纷纷布局,目前百度走的更加靠前一些,通过招聘网站可以看到最紧缺的是大量人工智能算法工程师,特别是大牛级别的,开出的薪水比传统的软件工程师高出一大截。
传统的老程序员转向人工智能需要准备好三件事情
一. 保持追求知识的激情,学会清空,不忘初心,从零开始
很多老程序员觉得自己做了十几年的程序了,学习新的东西总是带着原有的技术去衡量新技术,觉得知识都是大同小异,从计算机框架上来讲,还都是冯诺依曼的架构没有本质的区别但是新的技术在某些方面可能会有大的组合或者创新,要彻底的学好肯定需要付出精力,所以要学会清空自己,不忘初心,拿出自己刚开始学习编程的那份执着劲头,才能啃下新的技术。今天看到猎豹移动CEO傅盛发的头条,骑着自行车去上班,为了赶上周六总结会(迟到一分钟发100块红包)结果遭遇了封路,最后直接翻墙而过,还摔了很大一个跟头。作为猎豹移动掌门人还能有这种劲头和情怀,不能不让人钦佩,不论什么人都要学会清空自己的包袱,让自己轻装上阵,不能因为前面取得一些东西,都成为束缚自己前进的理由。
清空自己,从零开始,无论多难的新技术,学会去坦然面对,作为一个老程序员最主要的是心态的调整,特别对于人工智能而言,是一个够学一辈子的科目,所以放下自己的拥有,拿出自己的行动,学习起来。
二. 人工智能是一门对算法要求非常苛刻的学科,先基础的数学算法学习起来
很多人觉得一个算法好的学习人工智能要比算法差但是编程能力强的工程师在人工智能领域发展前景更加广阔,所以无论自己的编程能力如何,算法是一个分水岭。从来没有如此依赖数学,因为涉及到的算法都需要大量的数学基础支撑,深度的机器学习,机器学习算法依赖的学习基础,如何微积分,线性代数,概率和统计。这些东西需要很强的学习基础,而且要弥补上需要付出相当大的精力,比从零基础成为一个程序员还要费劲。
掌握了以上几项数学基础之后再去学习基本机器算法,KNN,朴素贝叶斯,K-Means,SVM,AdaBoost,EM,决策树,随机森林,GDBT等都需要强大的数学基础依赖。这点对于很多老程序员来讲很难过的坎,要想过去只有拿出当初刚入行学习程序的劲头,才会快些。
三. 学好人工智能基础编程语言python,C/C++等
对于老程序员来讲第三件事是最容易办到的,但是人工智能编程语言的学习不仅仅是局限在python编程语言的学习,python只是人工智能的入口语言,真正决定性能的还是c/c++,从另一个层面讲人工智能又让底层的语言火了一把,学习新的编程语言对于老程序员来讲还是容易的多,毕竟编程思想几乎适用于各种语言。
老程序员切换到人工智能领域最主要还是心态调整,不要总是拿着老资格来对待新事物,当你选择了一种语言,意味着你还选择了一组技术、一个社区,所以学习新东西需要让自己全身投入进去,学习基本的概念,融入到新的生态,加入新的社区。