今天我过生日,我来聊聊我这二十多年来的IT经历

2020-04-14 17:37:27 浏览数 (1)

时间过得真快啊,一转眼我已经30岁了(虚岁),今天是我30岁的生日,我是1991年出生的,你们肯定没有想到吧!!!回顾这30年,仿佛就在弹指一瞬间。

最近由于需要找一封很久之前发出去的邮件,偶然在发件箱里翻到了我大概14年前写的一段代码,今天借着这30岁生日这个特殊的日子,我想跟大家聊一聊我所经历的技术的发展,或者说我的IT生涯的发展。

回顾总结

首先对我这些年来与IT的相遇做一个回顾总结。

回顾我30年的人生经历和23年以来的IT生涯,我认为我是幸运的。我有幸经历了互联网从0到1的过程,总结起来在这23年里,我做了如下几件事:

1997年,会用DOS进行基本的文字编辑;

2000年,会重做系统,Windows 98系统(当时还是最原始的安装方式);

2001年,对office比较熟练,经常帮老师打作文之类的;

2002年,开始学习做网页,并使用HTML语言进行网页开发;

2003年,学会了简单的C语言和VB语言;

2005年,使用Dreamweaver进行网站开发;

2006年,开始着手使用asp语言编写我的个人网站;

2007年,使用C#和Asp.Net进行网站开发,同时学会了SQL Server数据库;

2008年,获得高级职业资格证;

2009年,我的个人网站完成,功能齐全;学会了Python和java;

2012年,接触人工智能领域;

2010~2014年,接了不下10个App开发,web开发,算法模型方面的外包项目;

2016年,开始使用TensorFlow进行深度学习开发;

2018年,出版《TensorFlow进阶指南 基础、算法与应用》;

2018~2019年,在一些全球会议上做演讲;

2020年,Google Developer Expert申请成功;

刚刚接触IT的我

时间还要从1997年开始,那个时候我刚7岁,我父亲所在的单位有大约30台电脑,那也是我第一次接触电脑。当时虽然市面上已经有Windows95操作系统了,但是那个时候大部分的单位用的还是DOS系统,而且那个时候要想使用电脑办公,是一件相当难的事情,这里可以跟大家说一说当时是怎么用WPS做文字处理的。我们首先来看看90年代的电脑长啥样。

这张图就是90年代的电脑的样子,大大的脑袋,主机一般是横着放在显示器的下面,再配一个键盘。在当时,能有电脑的公司一般不是事业单位就是土豪单位了。那个时候,如果我们想利用这样一台电脑来进行文字编辑,一般需要经过几个步骤:

1.插入引导盘,我们一般称之为A盘,而且是软盘,位置就在红色框框那里;

2.插入引导盘之后,我们就可以开机了,这个时候,就会听到软驱里面咔咔的声音,那是在读软盘的声音,等到引导盘读完之后,就会弹出一个类似于windows下面的命令控制台的窗口,只不过Windows下面提示的是C:,而在这里是A:。

3.接下来,我们就要插入另外一张软盘,这张软盘是软键盘,比如WPS,或者汉王之类的软件,如何插入之后,再切换到相应的盘符下(例如B:)输入软件的启动命令,比如wps.exe启动软件,进行编辑;

4.当我们编辑好之后,就需要使用命令和快捷键将编辑好的内容进行保存,此时又会弹出另外一个提示,就是告诉你插入一张数据软盘,这个时候,就需要将之前的一张盘先退出来,然后再插入数据盘进行保存。

5.保存之后,我们将数据盘退出,然后关闭程序,再关闭计算机,整个流程才算结束。

在这里要注意的是,很多电脑只有1个软驱,这样的话,引导盘、软键盘、数据盘就需要进行来回的插拔切换,所以当时想做一些文字和数据的处理是相当麻烦的事情。

就这样,我还在7岁的时候,就在当时的环境下学会了如何用DOS系统进行文字处理软件,虽然那个时候我连字都认不全,很多文字还需要查字典,但是这并不妨碍我对计算机的热爱,如何使用命令行进行系统的操作,这也为以后使用Linux系统奠定了基础(虽然很多命令都不一样,比如Linux下的ls,在DOS下是dir)。

到了1998年开始,Win3.2系统开始普及(可能我们那边普及的比较晚),甚至有些机器已经能使用Windows95操作系统了,那个时候,鼠标是一个好东西。当时的鼠标和现在的鼠标还是有一点点差别的,那个时候的电脑鼠标没有中间的滚轮,而且是3个按键,就像这样。

鼠标的出现标志着窗口的出现,win3.2系统开始大放光彩,记得那个时候,我们可以用win3.2系统玩纸牌和扫雷了。

最好的年代是2000年左右,那个时候Windows98(火了好多年的操作系统)开始崭露头角,office桌面版的最早的雏形也已经有了,甚至已经开始能够使用调至解调器进行拨号上网,可以浏览网页,可以查找资料,与目前的互联网搜索引擎比较接近了。我也是在那个时候,开始对互联网产生了浓厚的兴趣。

最黄金的时候是在2002年左右,Windows XP,一代人的回忆。那个时候,很多互联网游戏都已经开始有了,记得最清楚的是,一群同学去网吧玩当时很火的一个游戏,叫做破天一剑。(也不知道现在还有没有这个游戏了),哦,对了,还有传奇。

破天一剑

进入正题

上面说了那么多的废话,做了那么多的铺垫,接下来我就要说一下我的编程历程了。

时间还要从2002年的春天开始说起。2002年黑龙江的春天,万物复苏,那个时候我还在上小学,当时最喜欢的一门课就是微机课(也就是电脑课),其他人上微机课的目的是为了玩游戏,而我上微机课的目的是为了有地方能够让我学习计算机相关的技术。我从很早就知道office下面有一款软件可以做网页,那个软件就是FrontPage,当时我问微机老师这个软件怎么用,可是问遍了周围所有的老师,没有人能够说的明白,于是我只能自己硬着头皮去摸索,差不多用了3节课的时间,我用FrontPage做了自己的第一个网站(现在看来只能叫几个网页组成的超链接的集合),从此之后,我就爱上了网页制作。

到了2003年,我开始利用FrontPage这个软件自学HTML代码,当时的网站布局还都是用<table>标签来写的,我们那里也几乎没有人知道css这个东西。所以我说,2003年,是我开始写代码的元年。从2003年开始到2005年,我用HTML写了大概100个静态页面,同时我也自学了Flash和Fireworks,来为我的网站配上一些简单的swf动画和图片,期间我又自学了C语言和VB语言。

这就是传说中的VB,是不是很像VC 6.0

时间又到了2005年,那个时候我还在上初中,当时我所在的学校会组织很多校本课,所谓的校本课大家可以理解为那种兴趣学习小组,而其中一门校本课是与网页制作相关的,由于我在小学的时候(2003年)就开始自学计算机编程,所以,有这样的一个校本课,我当然毫不犹豫的报名参加了。当时讲网页制作的老师是哈工大毕业的老师,能力很强,那个时候是我对网页制作最入迷的时候,那个时候我第一次接触了专业的网站开发软件Dreamweaver3。大概是长成下面这个图的样子。

那个时候的我们用的Dreamweaver3.0也都是全英文版的,但是我学的不亦乐乎,从Dreamweaver3.0到Dreamweaver4.0、Dreamweaver MX,再到后面的Dreamweaver 8,以及后面的很多个版本,我都是亲身经历着。

由于我对网页制作的执着,在第二个学期,也就是2006年的3月份开学,我又从当当网购买了我人生中的第一本网页制作书《Dreamweaver MX 2004入门与提高实用教程》。

同年,我又开始学习了我的第一门动态网站编程语言——ASP语言,和第一个入门级别的数据库Access数据库。

边学边做,同年,我又着手开发我的第一个大型动态网站,而这个网站,一开发就是3年,也是我的第一个大型动态网站。这也是我在开头提到的,我偶然间在我的邮箱里翻到的我的“波波小站”的网站源码。

这个网站的创建时间是2005年,当时是只做了一些静态的页面,到了2006年我学了asp之后,加了asp的脚本和access数据库,后来我又学了css,又加了css代码和后台管理功能,当然,我记得这个后台管理的界面是从网上扒下来的,然后自己写的后台管理代码,直到2009年,这个网站完工,具有留言板、新闻管理系统(新闻的显示、增删改查、后台管理、评论管理、管理员管理等功能)、图片库、整套后台管理系统,以及一些基本的功能。3年时间,边学边做,使我对技术产生了更加深刻的认识。

在此期间,2007年左右,我又接触了asp.net和C#(当时我以为asp.net就是asp的升级版,结果发现他俩是完全不同的东西,asp是脚本语言,asp.net和C#是面向对象的思想)以及SQL Server 2005数据库,于是又开始了新的征程。

到了2008年,我参加黑龙江省职业技能大赛,获得网页制作组二等奖(这个是职业大赛,不是学生比赛),记得那个时候,比赛时间是4个小时,我用4个小时的时间,完成了新闻管理系统(包括后台)、留言板以及网站整体页面的开发,现在想想简直是不可思议,因为我现在不可能完成。同年获得省劳动和社会就业保障厅颁发的高级职业资格证。

到了2009年,我又开始接触了Java语言和Python语言,同时也学会了用Java的SSH框架和Python的flask框架来写http接口。

到了2012年左右,我开始走向人工智能方面的发展道路。那个时候的国内似乎还很少能听见人工智能这个概念,而是将其拆分成一个个算法和工具去研究,我当时接触到的最早的一个名词叫做HTM算法(Hierarchical Temporal Memory),当时和我的同学也用C#语言结合HTM算法实现了一个股票预测的系统,当时的准确率还算比较高。

到了2014年,机器学习开始逐渐的应用广泛了起来,那个时候又开始去研究SVM、NBC和一些基础的机器学习和统计学相关的算法,那个时候比较常用的软件是MATLAB,当然,也会使用Python和Java来进行一些开发。

到了2016年,谷歌的AlphaGo战胜了世界围棋冠军李世石,从此,深度学习和TensorFlow逐渐的火起来,TensorFlow在人工智能领域逐渐发挥出不可替代的作用,也就是从那一年开始,我走向了一条深度学习的不归路,到现在为止,一走就是4年多。

2018年,我的第一本书《TensorFlow进阶指南 基础、算法与应用》出版,我也逐渐的进入到了大众的视线中,也渐渐地结交了圈内的大牛,虚心学习,积极互动,为的就是一步步努力提升自己。

2018年我加入金山软件,一直从事NLP和推荐系统方面的开发和团队建设相关工作,我的书出版之后,也陆陆续续的在《2018全球互联网技术大会》、《2018全球人工智能技术峰会》、《2019全球人工智能技术峰会》上做了一些公开演讲,同时先后在光环国际、飞马网、CSDN等平台上做过一系列的直播分享,在这两年里,也积累了大量的行业中的前辈和朋友,也正是由于你们的支持,才会有我的今天,在此,说一声感谢。

到了2020年2月,又传来了一个好消息,我的谷歌开发者专家(GDE)头衔申请成功,也很荣幸地成为了中国30名左右的谷歌开发者专家之一,在全球也仅有700人左右。

感谢

在我30岁生日到来之际,我认为,我要感谢这个世界。

我首先要感谢的是我的父母,因为他们是把我带到这个世上来的人,并教会我做人的道理;

我要感谢所有教过我的老师,因为是他们交给了我知识;

我要感谢所有帮助过我的人,因为是他们让我感受到人世间的温暖;

我要感谢所有支持着我的人,因为是他们让我有了前进的动力;

我要感谢所有跟我作对的人,因为他们的打击才使我更加坚强;

未来展望

如今30而立,我也要对我的未来做一下展望:

1、希望我和我的家人身体健康;

2、希望能够在AI领域上越走越远;

3、保持空杯心态,不断努力,不断学习,超越自己;

4、在未来为AI领域多创造一些价值;

5、最后也希望我的公众号粉丝越来越多;

给技术新人的几点建议

很多人在后台给我留言,说一直在看我的公众号,希望我可以总结几条建议,正好借着这个机会,我也跟大家聊一聊。

技术要先广后精

很多同学学技术的初期就希望成为某一方面的专家、行业中的大牛,然后就朝着这个目标坚定不移的前进。

首先我认为,这个想法是好的,也是值得肯定的,但是这个想法并不适合于刚开始接触这个行业,甚至说入行3年之内最好都不要太抱有这样的想法。做一个行业精英、技术大牛固然是非常好的,但是实际上,作为行业精英的背后是知识的积累,而这个知识的积累往往不是某一个深入领域的特定知识,而是针对于这个领域所涵盖的周边的,甚至更广泛的知识。

举个例子来说,假如想要成为NLP方面出类拔萃的人才,很多人只顾着去学NLP相关的知识是不够的,因为随着做的越来越深入,就会发现需要一个非常庞大的系统知识,其中包括各种各样的工程化知识,与系统开销和内存开销相关的操作系统知识,与数学相关的统计学知识,甚至如果你做医学NLP可能还需要去学习医学方面的知识,而这些知识怎么来?并不是说我临时去补一下就可以的,临时去补课学习,只能学到皮毛和表面,而这些内容,是需要通过长时间的知识沉淀以及大量的积累才能够获得的,因此,我建议各位,在初期学技术的时候,要注重周边知识和系统化的学习,这样未来的路才会走的更加顺畅。

coding要落实在行动上

所有人都知道,做AI这一行需要coding,很多大公司面试的时候,无论你是实习生,还是有多年工作经验的人,都需要进行coding,但是有的时候人往往是眼高手低的那一种,所谓的眼高手低就是,我感觉我差不多了,所以就不用coding了。

举个实际的例子来说,比如现在让一个人去研究textcnn的实现,很多人肯定就会去GitHub上面找一下textcnn的相关代码,然后看一遍,并结合论文来看看代码的实现,然后就去交差了,所以这里面存在着一个误区,那就是“你看着会了,实际上你不一定会”,很多人在学习的时候,总认为自己有过目不忘的本领,看着别人写的代码,看了2遍就认为自己已经掌握了,甚至就拿过来说自己做过这块的内容,但是当实际去聊技术实现细节的时候,就会发现,根本没有做过相关的内容。

因此,建议各位,coding要落到实际行动上,只有这样才能自信满满的跟别人说,ok,这个我会,没问题。

论文是AI不可或缺的一部分

作为AI领域的从业者来说,论文往往是AI不可或缺的一部分,这里所说的不可或缺,并不是说每个人都要发表论文,而是每个人都有看论文的能力,以及论文复现的能力。

一般来讲,当给定一个方向之后,我们第一步要做的就是去网上找相关内容的论文,以及对各个论文的详细介绍,然后去参考网上的对论文复现的代码,并试着自己复现论文,这对于这个,大家可以去看我之前发的那一篇《NLP应该怎么学(纯总结,无广告)》,这里面有详细的介绍。

0 人点赞