我如何成为了程序员
1. 序
过去经常有人问我,你是怎么学编程的?每次听到这个问题,我都不知道从何开始答起。
许多年以后,面对这样的问题,想起了小时候去网吧见识程序的下午。
2. 我的童年没有计算机
我是浙江农村小镇上长大,在那个小镇上,没有电话、没有红绿灯,也没有人行横道。小学也有计算机课,整个班级只有一台电脑——那是老师的。我们用小霸王学习机,课程的内容是练习五笔打字。只有老师最得宠的同学有机会在真正的计算机上操作——我还记得他用来画画。估计是 windows 画图板这样的东西。
到了小学五年级,真正的计算机终于出现在了我的生活里。有一天同学神秘兮兮地跟我说:“走,去网吧,打红警,我请你!” 那时候没有固定的零花钱,一块钱对我而言也是巨款。而网吧一个小时就要两块钱。到现在还记得他的慷慨。
前几年已经三十多岁,偶尔还是会打开 Windows XP 虚拟机来上几盘《红色警戒2》,然而永远都不会再有小学五年级暑假下午的快乐。
3. 少年时代:想要做个文学网站
“从前车马很慢,书信很远,一生只够爱一个人” 这就是少年时代江南小镇上的生活。小镇上没有新鲜事,那时的我最大的烦恼莫过于此,便去抓住一切可以阅读的机会。学校图书馆每一本有趣的书都读完了,就去看杂志,报纸,书籍,也会放学后在学校门口的小摊上找盗版音乐磁带。于是渐渐知道了有轻舞飞扬、OICQ、电子邮箱、个人主页。读了不少名著的我,自然而然想要做个文学网站。那个时代已经有一些榜样,例如黄金书屋、榕树下。最激励我的是《中学生时代》上一个故事,大概是说几个中学生想要做个网站,名字叫做狐朋狗友。于是他们聚在麦当劳策划,最后终于完成了网站。
在我们小镇上可没有什么麦当劳。有的是卖泡面的小卖铺,价格还是方便面的价格,提供免费热水。还有一块钱的小笼包。为了能去网吧,中午我就不吃午饭,改吃泡面和小笼包。到了中午,学校的小卖铺挤满了初中生。坚持一周,周末去网吧的钱就有了。当然光有钱也没什么用,那时候网吧爆满小学生,每个小学生都在玩传奇。必须得等着。说来也奇怪,大家这么爱玩游戏,我却从来没有想尝试下。如果我也和他们一样,那故事又会不一样了。
解决了上机问题,那编程知识又从何学起呢?
县城里计算机报刊杂志
小镇上不会有这类报刊杂志,我就在周末骑自行车来回 50 公里到县城找书店报刊亭。计算机的、音乐类都是我的最爱。拼命阅读,实在喜欢的也会买一本,赶在天黑之前回家,然后藏起来。有一次回家迟了,天都黑了。我爸怒气冲冲把我自行车扔进了门口的稻田,杂志也撒了一地。
当当网买书
是的,那时候已经有当当网了。读杂志发现了这个网站。同时代还有卓越网、贝塔斯曼等邮寄读书网站。那时候只要去邮局汇款,写明要买的书,就会通过邮局包裹寄来。还记得我决定要学 ASP,买了一本 ASP 的书。后来那本书都被我翻烂了,成为了我的启蒙书,靠这本书写了自己最开始的几个网站。
县城里的新华书店
ASP 学了一段时间后,发现自己 VB 语法看不明白,JavaScript 更是一头雾水。于是在县城里的新华书店,我找了三本书。一本是 VB 基础语法。这让我彻底掌握 Visual Basic 的使用。一本是 VB 网络编程,掌握了 TCP / UDP 之类的网络知识。还有一本,为了学 JavaScript,那时候 JS 是个很小众的领域,只有介绍特效的奇技淫巧书籍。挑了半天,买到了 Java 基础语法。这是年轻人第一次栽在了 Java 和 JavaScript 的梗上。
打印
我把中学图书馆里每一本计算机的书都读了,书实在是太老,印象很深是两本书。一本介绍做网站的,使用的还是 C 语言和 Perl 写 cgi 程序。另一本是乔布斯传,那时候他还活蹦乱跳着,iPhone 也没问世,江湖已经有他的传说了。
为了强化 ASP 学习,就去打印店把 DVBBS 核心部分的代码全部打印出来,反复阅读。
纸上写代码
而代码也都在纸上写,然后周末翻墙去网吧写出来。是的,学校是封闭式的,为了写程序,那得翻墙——那是真正的墙。还好那年代没有监控,不抓现行就安然无事。好笑的是,不仅仅要翻出去,还要翻回来。因为保安会查校牌,如果是住宿生,从校外回来你就会遇到麻烦。有一次从校外翻回来,附近的居民大喊:“抓贼啊”。那是我最慌张的一次。
高一时候语文老师也是我班主任,因为文笔而惜才,说看到了年轻时候的自己。然而我心思并不在文章上,我只爱写代码——在纸上。一次他看到了,很严肃得说:“又在做点无啥啥了”(意思是又在浪费时间)
后来上了大学,用 ASP 给他写了个交互式课件,他说要请我吃饭;工作后,他问我,工作内容和创作有关吗?我说没有,他便很是可惜;今年又联系了他,这次他说,听说你最近混得很好。这倒是让我很是惭愧,这谣言都传到高中班主任去了。身边的人可能无法理解你,但时间过去后,此一时彼一时了。
4. 高考:解脱了
我的高考自然一塌糊涂,大家在准备高考,而我沉迷于两本书,一本是 《Ajax In Action 》,一本是 Asp.Net。高考完,分数离本科线差两分。在填志愿时,就在目录里找计算机专业。当时只有极个别学校对文科生开放了计算机专业,我毫不犹豫选了其中一个。直到后来才听说,学校对文科生开放的原因是系主任想要电商专业来一些能背诵内容的。
终于不用再像在监狱一样的学校像珍稀资源一样学计算机。
高考完的暑假,我向学校门口打印店老板自我推销。于是,我有了第一份和计算机相关的工作:走街串巷修电脑,以及替企业做网站。别说,修电脑的经历还真是受益匪浅。
5. 大学:正式成为一个程序员
暑假结束,在大学上学时,终于有了人生第一台电脑,也拥有了大把时间可以自学、练习。那时候已经意识到 ASP 已经被微软放弃,而 .Net 对于我并不算友好。于是开始转到语法更为接近的 PHP。至于学校的教学质量,就不要指望了。
真正触动我,还是暑假时想要找份工作。杭州这么大,我发现竟然没有容身之处。别说计算机相关,连麦当劳服务员都不需要我;餐厅洗盘子也有一堆人报名,没能轮到我。最后去了表哥上班的服装厂当他助手。那一年是 2008,广播里放着奥运会开幕式,我正在裁衣服。不知道在彼时,读者朋友你在干什么。
暑假回来后,我开始留意各个企业的招聘需求,针对性学习。后来在 PHPChina 论坛上,收到一封私信,是杭州一家专门做水文水利系统的老板,他约我聊一聊。我就去文三路园区的办公室。老板只问了我一个问题,这个演示的动画效果怎么做,类似船在河流漂流的效果。还记得我的解答是 jQuery 定位位置。老板就站起来跟我握手:欢迎加入我们。
那个暑假,我在南宁没日没夜开发,第一次体验到了程序员的高强度工作。公司一共四个人。老板做 SQL Server 存储过程开发,我调用他的数据并展示,还有一个中山大学实习生,以及老板娘。早上九点演示功能,演示完回酒店继续工作。有时候一次困了,在出租车后座躺着就睡着了。
老板说,给你股份跟我干吧。但我还是没有留下来,虽然他领我入行,无比感激。
很多年后,我开始和朋友开第一个公司,他突然找我,说不再做政府项目,想要做点自己理想的东西。
但是我们各自有自己的未来在等着。
6. 尾声
这些年经常有人问我,怎么样才能学编程,当个程序员?我竟然有点恍惚。无数个夏天无数个冬天,所有煎熬和努力。但是回忆起来,从来就不记得其中的痛苦,只记得快乐。只记得那时每次进入互联网的世界时,我是自由的。如果要形容这种自由——不知道你有没有看过《肖申克的救赎》,就像主角安迪在监狱里放音乐,所有人都在聆听。
我只能淡淡说一句,有兴趣才能学好吧。