我是怎么成了一名程序员

程序员是这个世界给我们这种以写代码为生的一类人的一种称谓,然而,我们还不得不接受,如果可以,我们更愿意换个名字。

读高中时接触到电脑报,开始了解计算机的一些东西,虽然初中时也上过“微机”课,但基本只是形式上的,接触一下计算机罢了,那时候机房的电脑装的是Windows 98,上课时都在玩游戏,泡泡龙,抢滩登陆。

高中时期,阅读报纸更像是学习之外的娱乐,生活本来就很乏味。但是,我没有自己的电脑,也没有学习过编程语言。高二的时候,有了自己的第一部手机,诺基亚5320XM,那时候iPhone还没成为街机,没进入中国,当然水货总是有的,市面上也只有屈指可数的几款Android手机。总之,此时触摸时代仍未到来。

有了一部手机,就可以接入互联网,一窥这个信息爆炸的世界。甚至沉迷于手机,就像现在许多的低头一族,虽然那时候手机应用其实真不多,很多用手机的人只是将其作为打电话的工具。移动互联网,貌似还没有这个东西,但我不那么看,我从一开始就不是为了打电话,现在的人应该会理解。

然后,进入大学,好像整个世界都不同了,离开家乡,来到陌生的城市。在大一下学期时,学习C++,第一次接触到编程语言,还上过计算机网络课。但当时就是什么都不懂,即使期末考试拿到90分,但实际上仍然比一无所知好不了多少。

后来就放任自流了,大学生活是很轻松的,什么压力都没有,如果你想,你可以大不一样,你也可以毫无长进。意识到这点并不困难,难的是在这种可能无人指点的情况下突围。大二开始讲了数据结构课,老师是大一讲离散数学的那位,那时老师说了一句不知是好久不见还是又见面了的话,让我一直觉得好像是昨天发生的事。噢,这时还上了数据库的课,觉得很新鲜,但没觉得好玩,老师其实很不错,可惜当时没能体会到。老师偶然提到曾经创过业,一笔带过,我们似乎也并不在意。后来,老师在13年又创立一家公司,已经完成B轮融资,达到数十人的规模,但仍然来学校上课,这些都是后来得知的。

到了大二下学期,好像没什么有趣的课了。我也开始思考出路,因为突然发现时间不多。记得,在图书馆拿了一本书,HTML5 canvas基础教程。那时候,图书馆讲HTML5还没有几本。大二结束的那个暑假,我借了一堆书回家,有canvas那本,有head first HTML5,有论道HTML5,还有几本貌似,这是我第一次这么干,直接从应用入手,并依葫芦画瓢,写了人生中第一个游戏,代号moon9。这个暑假,过得很充实,虽然大部分时间都呆在家里,看书,敲代码。

大三开始的时候,我给自己定下一个小目标,每周读一本书,无所谓类型,漫画都可以。也就是因为这个小小的决定,我找到了许多好玩的东西。黑客与画家,罗素的故事就是这时候读的,我还记得那时在英国文学那栏乱翻,也不知道为什么就拿起这本书,虽然这本书本不该归类到英国文学,我因此开始了解数理逻辑这个全新的领域,然后我去了解哥德尔,维特根斯坦,图灵,冯诺依曼。我经常在课余时间跑去图书馆,一方面发现新的好书,一方面完成每周的阅读计划,有时候同时读几本书。这个学期,绝对是一个转折点,或者说是从那个暑假开始的。我是从这时候才开始有了阅读的习惯,但一周一本的计划我只坚持了一年,大四的时候找工作的时候不经意的打破计划,但是一有空我仍然会去找书读,跟从前还是大不一样。

转眼大三的第一个学期过去了,上过什么课程已经记不清楚了。寒假,我又带回去好几本书,这时候读了javascript高级程序设计,之前从来没有读过一本讲javascript语法的书,从这时开始才真正了解js。并写下了fling这个游戏。这时候,我对整个web开发也算了解,知道服务器,数据库,HTTP协议这些概念。

大三下,转眼就要到了毕业的时刻,但还有时间。我依然保持着节奏,一边了解一些计算机各个方面的知识,软件工程,游戏AI,机器学习,大数据,许多C语言家族之外的语言,Ruby,Erlang,Scala,Clojure,Haskell,一方面读些看起来毫无用处的书,比如哲学,文学,艺术类,科普,我当然不觉得它们毫无用处。那个暑假,我开始为找工作作准备,虽然对于何去何从仍然毫无头绪,但得准备。我拿了算法,程序员面试攻略,effective javascript,think python,think Java,还有一些阅读计划的书。练习很多算法的例子,重写了fling,写了生命游戏的canvas版,汉诺塔的图形演示。

新学期开学,到了找工作的时候,可惜九月份被学校带到绵阳。国庆之后,开始大规模投简历,第一个面试机会是517na,表现得很糟糕,紧张加之没经验。第二个面试机会,是美团,进入第三个环节,可惜失败了。后来,又参与了好几次面试,并逐渐找到自己的定位,前端。然后,到十一月份,去全微实习。在这里,学到了很多,在自学时学不到的东西。后来,就来到阿里。

其实,主要的学习基本集中在假期,两个暑假,一个寒假,在学校很少有机会连续的学习,更多的随便做些新的尝试。然后,就成为一名程序员,一名前端工程师。

之前看到一篇文章,谈学习编程的年龄,自己二十好几了,现在学习编程难吗。难吗?其实没那么困难,像我这样不是也能写点代码么?

人总是不甘于平庸的,虽然拿到阿里的offer,但只是起点,我知道我欠缺的有很多。没人愿意一辈子无所作为,尤其是在信息技术飞速发展的互联网行业,不更新自己,简直是在自杀。

这两天,翻起笔记本,记录我的一些经历,比如框图,功能,简历。我喜欢一个本子,一支笔,周围尽是凌乱,头脑风暴,把自己想到的通通写下来,这种方法很适合我。在这一年里,反而不怎么使用了,大四的这段时间,好像经历过很多事情。之所以给我这种错觉,我想是因为之前的生活太过于温室化,波澜不惊,我放弃了尝试,所以最后一起扑向我。

我想起那个暑假在家为工作准备的我,肯定没想到后来发生的一切,未来的路还很漫长,谁知道会怎样呢,但是我知道,若是什么都不做的话,会比你想象的更糟糕。

Comments

« 一个小项目之后 2015 to 2016 »