致青春的编程之路
我来自农村,家里情况中等,初中的时候考上我们那个地方的重点中学,全家人都很开心。2000年高一的时候,第一接触计算机。那个时候网吧很少,而且大多数都是不能上网的网吧,就是所谓的电脑屋,打打帝国时代,三角州部队,5块钱一小时很贵。那时候吃份肉很多的盖饭,也只要3块钱。在学校里吃饭,素菜2毛,荤菜5毛。现在想想还真是舍得。然后,网吧里的游戏越来越多,价格也越来越便宜,5块变3块,3块变2块。html根本就没有游戏好玩。开始玩游戏,CS,星际,传奇。。。网吧待的时间多了,每个月的生活费根本不够花,又不能像家里人要。只好买最便宜的那种福满多方便面,一次买好几件。放在宿舍,每顿2包,成本3毛一包。吃得都想吐。玩物丧志。
我理所当然考上了大专。但是还是死不悔改学了计算机。大学3年,继续玩游戏,专业科挂科12门,C语言,C++,数据结构,操作系统,现在想想都头疼。大学最后一年,别人都在找工作,我还天天跟着师弟师妹上课重修。终于把所有科目都过了。但我觉得是因为老师不可能让我一个专科读4年,给我面子,放我一马。大学读完了,没有学到任何东西,游戏换了一个又一个。
06毕业了,无一技之长的我,不知道干什么好。但总不能再伸手向家里要钱吧。先想办法养活自己。
第一份工作,找了一个卖网络设备的公司,做送货员,月薪900,没有休息日,整天骑着单车在全城跑,送交换机,路由器,网线,每天回到出租房,第一件事情就是想睡觉,一个月后,我辞职了,因为我觉得,读了这么多年书,就干这纯体力活,太没有技术含量了。拿了老板给的850块钱,又开始找工作了。
第二份工作,进了一家网络公司,刚好那家网络的技术部经理跟我是老乡。于是我就做了网络管理员,每天早上到公司报道,领公交卡,跑网吧,换内存,换cpu,换硬盘,如果有新网吧开张就要通宵待在网吧,做系统,调交换机,配路由器,平时就要帮网吧维护pubwin EP 系统,又是跟网监连在一起,一出故障很麻烦。就这样,一边工作,一边学,后来终于可以独立出去解决网吧故障,,但是有一天,发生了一件事:我拿了一台路由器到网吧给他们更换,网吧是电信和联通双线接入,我换路由器拨错线,又插错线,导致网吧回路,全网吧几百人掉线,瞬间都走了。老板发火了,打电话给我们经理。我们经理把我狠狠骂了一顿。第二天,我辞职不干了。
这份工作干了差不多2个多月。工资1300/月
前2个月都没有头绪,一方面是自己浮躁之外,另一方面,大学里没有学到任何东西有一定关系。我觉得,为了生存,应该从头开始学一技之长。我没有去培训学校,而是进了新华书店,当了一名卖计算机图书的销售员。一方面缓解从学校到社会的不适应 ,另一方面再给自己点时间学学计算机。因为新华书店上班是上2天班休息2天,上班时间是早9点到晚9点。那学什么呢。网络我不可能再回过头去学了,而且学网络,另外我也没钱买设备 。硬件维修没有基础。只能学软件了。拿起大学时候上过的asp教材看,,一边在自己买的二手电脑上敲代码。asp学的很不顺利,完全不知道什么意思,照着抄代码,打代码,效果出来了,很有成就感,我记得当时为了搭建iis环境,还特别把电脑装成了windows 2003 Server。
php 在我眼里面是很高深的,因为看到书架上的php的书很少,而且特别厚。直到有一天,我在网吧看到一个台湾中原大学 孙仲岳老师讲的php教程,讲的特别风趣,他讲了第一节课,坚定了我学php的决心。他说,要看什么语言热门用的人多,很简单,在google里输入,看结果数就知道了。我把*.php,*.asp,*.aspx,*.jsp都放到输入框里查了一遍,发现php的结果数最多。我把他的教程全部拷到U盘里,带回去看,越看越兴奋。有的看了2,3遍,一直看到半夜3点。第二天上班,把书店里厚厚的那本php的书借回来看。。。然后,很多看不懂。顿时傻掉了,但是我知道,新华书店只是一个过渡的场所,我迟早是要离开的,如果什么东西都学不到,难道要和那些大妈一样,在里面待一辈子,天天收收书,打扫打扫卫生。我开始照着书上的所有示例开始做,搭配环境费了很大的功夫,那个时候不知道有wampserver 之类的集成安装包。书上介绍的,php mysql apache都是独立安装的,而且php是解压缩的。差不多花了2,3天的时间,网吧查资料,又看了另外一本php的书。运行书配的光盘demo,老是提示mysql_connect未定义,后来才知道,要把mysql扩展和另外2个复制到windows目录下。
我这时的状态:apache配置一窍不通,mysql只会select,php 只会echo 和foreach,html会皮毛,css会定义长宽,背景前景但书店有很多资源,借不完的书,而且新书很多。就这样,什么都看一点,其它的像js,linux基础,.net,java的基础也都是在书店的一年半时间学的我写的第一个php程序是从数据表里查询所有数据,并显示出来。然后改进,做了可以用关键字搜索,做了可以排序然后,做了可以进行分页,并写了个很丑陋的html,自己翻来翻去很有成就感,后来又做了关键字加红。最后,封装这个做成了一个函数。当时的想法是,做一个好的程序,拿出去好找工作,就自己慢慢的这样弄,到后来写php就养成了这样的习惯,先做基本功能,做完基本功能再一步步完善,最后再封装成函数或类。
过了半年多。自己一个人摸爬滚打,终于做完了自己的多用户博客,几乎都是自定义函数调用,功能主要就登录,注册,发文章,文章内容编辑还是textarea,不认识编辑器,管理文章,传照片,管理照片,日历统计,文章和日志的评论功能,所有的php文件几乎都是上面php程序,底部require一个html文件做模板,在html又写php输出,写了很简单的css样式,几个地方写了点ajax。php 完全没有空格和缩进,但是注释写的很多,几乎一行一注释。就这样,我兴冲冲的拿着我的第一个作品去面试了。当时还没有辞职,骑驴找马。
在网上看到有人在招phper,休息的时候就去了,是一家非常小的公司,办公室租在小区里一个一室一厅的房间,老板看了我的东西还很满意。让我下个星期就上班,
我问公司有多少人,
老板说,就他自己;
我问:没有美工吗
老板说,他自己就是
我问开多少工资,他说:2500+提成。
我非常开心,要知道,我从来没有拿过2000+的工资。自己一直都住在月租金200块的城中村。
回来后,开始犹豫,因为之前没有php编程经验,我去的公司没有程序员,没有人带,以后只能靠自己摸索,如果是这样,去了不能学到什么经验,而且当时在网上招php程序员的公司很多。
于是我决定,不去这个公司,我给第一家面试的公司老板打了个电话,那个老板姓刘,(这里暂且叫他刘总。后来还会坑爹的碰到他。) ,找了个很勉强的理由,说我书店签了合同没到期走不了。
其实我当时的理想想法是,去一个程序员多的公司,学得快,进步的快。
终于,过了2天,我找到了一份非常不错的工作,月薪3500+,08年,在昆明这样的小地方,这可以说是高薪了,当时在昆明,租2室一厅的房子,也就800块一个月。
于是我去面试了,一个中等公司,做旅游电子商务。有10多个程序员,10多个美工,进去的感觉工位像网吧一样
技术总监是个湖北人,问了一些我相关的php方面的问题,都是很简单的问题,如何判断值不为空,如何判断常量有没有定义等基础性问题,很幸运的,技术总监说让我进入试用期,试用期一个月,拿2500的工资。
从公司出来,感觉天都是蓝的,觉得自己真的开始新的生活了,离开那个一天站12小时上班的书店。
然后,辞了书店的工作,搬家搬来公司附近。就这样开始了第一份编程的工作。
每天我都早来晚走。我觉得我要比别人更用功才行,因为要找回那些被游戏所挥霍的时间。我记得当时让我做的程序是,上传文件到服务器,取得md5file的值,存到数据库,然后用md5file查询数据库可以提取文件,文件不能直接取得,是用header做的下载流。
每天都很充实,兴奋。
但是,就在我去了差不多10天左右,有一天,我正在电脑前面不亦乐乎的打代码。总监招集大家开会,总监说,他不在这里了,要回老家结婚,要离职。然后让我们留下来好好干,说这里的待遇还是不错的。然后总监单独找了我,跟我说,他和老总说了我的情况,觉得我很聪明好学,让我留下来好好干。我点头。
第二天,,老总招集大家开会,所有的人都到场了。坐满了会议室。老总说,公司转型,现在的项目不做了。所有的人员全部转到新的项目组,然后说了新的项目的项目负责人,然后让大家欢迎新总监。。
结果我傻了。是刘总,我第一次面试的公司的老总。散会了,我跑去办公室找他。他说,新项目组人太多了。可能还要裁掉一些,新来的就离开吧。就这样,第一份工作就这样没了,1个多星期的时间,我失业了。
然后紧接着,在一起5年的女朋友跟我分手。身上钱也快花光了。书店工资很低。工资1300一个月,存了一年多,也就买了台新电脑,然后搬家,付了2个月的房租,身上只剩下200百多块。高房阁楼,车来车往,我站在天桥上,莫名的惆怅。失落,无助,没背景混社会怎么就这么难。在这个城市,没工作根本就没有安全感,不知道那一天,睡在天桥和路边的那个人就会是自己,买了烟,拎着白酒,进了网吧,开通宵。不会抽烟的我,被烟呛得都是泪,连续2天2夜都待在了网吧。
发泄过了,难过过了,生活还是要继续,又只能出去找工作,再怎么说,需要先生存下去啊。
就这样,我上网找,招聘报纸,把所有在招phper的工作岗位,联系方式全用笔记下来,然后一个一个的打电话问。面试,然后没通知没下文。我以这么多年找工作的经验,凡是告诉你说,回去等通知,或者我会给你电话之类的。通常都是没戏的。。如果真的想要你。会直接问你什么时候来上班。但是还好,大概一个星期后,我找到了一家公司,是专门做企业网站和OA办公系统的。试用期1500,我去面试的时候,经理和我交流了很长时间。由于 我学php的时间比较长,很多函数,我都是死办法强背记住的,包括参数,用法。所以php和mysql相关的基础的东西都能回答上来。经理说,技术部的都过来,看看有什么要问的。这时候,一个小女生问我:你会jquery吗?我顿时愣住了,我的闭门造车式的学习方法,根本 就不知道jquery是什么东西,
当然,也就是这个小女生,后来成了我的女朋友。我没能答上来什么是jquery。但最终我还是来上班了。做的第一个项目是公司自己的项目,把公司卖的笔记本电脑,做个网站放到网上卖。设计师出了个平面给我。我就开始写后台了,差不多花了一个月写完了后台,一星期写好了前台的5个页面,首页,商品列表页,商品详细页,文章列表,文章详细。后台功能很弱,商品图片上传不能预览(那时候不知道插件),而且上传的地方只有判断后缀没有判断文件类型,前台也有很多地方过滤 不严,存在sql注入。。上线后,没有流量,也就没有黑客光临,还跑了一个月。但是后来有一天,网站被人挂马了,所有页面都被人加了20几个js文件,打开要加载老半天。后来才知道是sql注入取表得到后台权限传上去的马。然后google不停的找php安全方面的东西。修修补补了前台,又把后台登录密码做了二次加密,就是自己弄个key,结合md5加密。把整 个网站全下载到本地,用DW找木马,那时候认为,所有木马都是eval,找了后,果然是找到了一句话马。删了木马,又网上找资料,在apache上设置在图片路径上不能执行php程序。就这样,总算告一段落了。
有时候,学习其实就是事情来了逼得你不得不学。就这样,第二个月,终于拿了2300的工资,第一次拿了上2000的薪水,公司发的工资都是现金。拿在手里感觉好多。但是随之而来,08年物价高涨,房租也涨,生活反而比以前拮据。每个月几乎没有余钱。
在这家公司,也只有我和另外一个程序员,他是写delphi的。。其实也没有师傅来指点一下,一切还是只能靠自己。后来在公司学了smarty模板,逐渐开始接触面向对象。开始学会把数据库的CURD操作,封装成类。图形验证码,分页,文件缓存,文件上传也都封装成类。但是一个递归无限目录,把我头都搞晕了,好长时间才理解了,都怪大学的时候都只顾打游戏,没有好好学习编程。在这个公司,设计师只负责出平面,其它所有的事情,建数据库,程序,html,css,js都是需要自己去搞定的。学了jquery后,才发现js原来是这么的好玩。
当然,在这个公司,不是纯网络公司,总公司是销售笔记本的,所以,有时候也会跑去学校里发DM 单。泡在网上的时间多了,也经常关注一些科技博客和论坛。然后接触了很多种不同类型的CMS,dede,帝国,phpcms。
于是开始偷懒了。做站就变得很轻松,设置设置分类,写写模板,去去版权,就挂到网上。最快的时候,一,二天就能做一个网站,但是经理还是要和客户说,流程有多复杂,工程量有多大。需要2,3个星期等等。
再到后来,公司业务不行。经理离职,公司合并,我们一个独立的网络公司合并到了总公司的技术部。然后去上班没事可干了。然后狗改不了吃屎,我又开始玩游戏,迷上了澄海3C,连上班的时候都玩。就这样混了一年,到了09年。公司裁掉了另一个程序员,只剩下了我一个。而且老是混日子没事可干,这样下去总不是办法。与其让公司裁我,还不如我先做好准备,开始在网上投简历。本身这个行业就是这样,没有工作经验很难找工作,有了工作经验后,很多人都会找上门来。有一天,接到一个电话。说,他们公司有一个OA项目,基础框架已经搭建好了,现在没有人做开发,而且急等着要。问我有没有兴趣去做。我去见了那个公司的老总,谈了一下,是一个政府的内网OA项目,只做了基本的文档发布功能,需要做一个显示在线员工,在线交谈,还有通讯录之类的。说给我一个月的时间,3000块钱让我做。我只是觉得这个系统挺复杂的,但是想都没想就答应了,拷了代码,然后我一边上着班,一边开始做OA。一个月过去了,我按他需求书上的功能做好了。他看了。
然后对我说,要不你辞职来我们公司吧,我这边几个月都在招人没招到合适的。你过来专职做这个OA,这个OA是需要长期跟进的,而且做好了,以后可以找政府关系推广到全省。谈好了待遇,3k/月。公司供伙食。然后回到了公司,找了老总,说了一翻,我要辞职回老家考公务员之类的瞎话。辞职很顺利,也没有克扣工资。
世界上真的有那么巧的事情,去年,我碰到了我第一份工作的经理,他在餐馆里吃饭。他跟我说,当时把整个网吧弄掉线不怪我,怪他们没有提前和我说,网吧是双线接入的。关于那个刘经理,我为了那份工作,从昆明北市区(北边),一个人搬到关上(最南),辞掉了工作,来到这个公司,当时那样的情况,真的是很恨他,但后来想想,人家凭什么给你一个0经验的人机会。现在的公司是用人,不是培养人的。所以好多公司要求你是做程序,你一来就要创造价值。不能一边学习,一边还拿工资。。。其实我很反感这样的公司,尼玛,你都不给我实习的机会,我那里来的工作经验。
我来到了新公司,这家公司,是我在过的公司中办公环境算比较好的,在2楼,很明亮,早上冷的时候还可以烤太阳。饮水机是那种高档的,一边出热水,一边是冰水,烟灰缸一大个,摆在桌子上很霸气。还打了公司的logo。冬天到了的时候,还每人发一个热管烤火器,昆明不像北方有暖气,特别让我难忘的,就是公司的饭做的非常好吃(回族食堂,公司老板是回族)。我就是在这年从70kg吃到了82kg。
来这家公司的目的是做OA,说好听点是OA,说不好听点,其实是政府的形象工程,装点门面,证明我们也是无纸化办公。所以很多功能实际上是并不实用,刚来的时候,做了点OA比较基础的。这个系统比较复杂的是权限这一块。分成组权限(领导组,管理员组,员工组,后勤组等等),部门权限(办公室,财务科,档案室,建管科等等),而且权限精确到某一篇具体的文档,比如某一篇公文,只允许某个部门,或者某个组的人查看,或者只允许指定的人看。用最终权限 = 部门权限+组权限+个人特别权限,最终权限还要到具体文档上又判断一次,以用户id、部门id,组id的方式。查看文档要求记录下看文档的人,以及查看文档的时间有多长。(这个是那边主任提的要求,这样领导就可以在后台看那些人偷懒没看文档。)像其它的功能,都不是很复杂,站内信,站内消息,还有之前做的,显示在线人员列表等。通信录是改的最多的。一开始是显示所有人的通信录信息,电话,qq,住址,照片等信息,后来领导说这样不行。领导可以看下面人的,下面的人不能看领导的。然后改成领导可以看其它人的,其它人的不能看领导的主任又提出,有时候领导应该可以看领导的。再然后,主任又提出大领导应该可以看小领导,小领导不能看大领导的。纠结来纠结去。。。
我决定做个通用的,想给什么部门看,什么组看,或者给什么人看自己的信息,自己的名片自己设置,对部门公开或对组公开或对个别用户公开。
后来加需求了,要做无纸化公文流转, 上级发来的公文,通过内网传送给其它人看(公文流转前指定),每个人看完,要签字,所谓的签字,是每个人写自己名字在白纸上,扫描仪做成图片,通过个人中心传到服务器上的图片。最后公文汇总之后统计那些人没看没签字,然后公文归档。
他们的领导不会用电脑,鼠标也用的很不熟悉。为了减少打字,只好在需要领导批阅公文的方,数据库里存一些常用的用语,像同意,批准,报上级,发回讨论。领导很和蔼,给他们做系统使用培训,我很紧张,他安慰我说,别紧张。说的不好我们不怪你,我们不懂再问你。这是政府官员第一次给我留下的好映像。
在这家公司的一年多时间,每个星期都几乎要出差,带着U盘,带着笔记本,跑去公交车站,坐6块的公交车去那个ZF单位,把前次提的需求,改好的程序,装到他们的机房windows服务器上,然后负责这事的主任又跟我谈下一步的需求。我用笔记下来,又回来继续做。
说说这一段时间代码吧。
但是这一时期写的代码,有缩进了,也有注释,但是很多时候,我喜欢把单条语句写在一行上
比如
if($a > 0){$b++;}
但是如果有else
if($a > 0)
{
}
else
{
}
又是这样风格的。
直到后来,才形成
if($a > 0){
}else{
}
其实我一直不明白为什么这样子的是标准,但是其实比起上面的代码,少了3行,而且,if(){}打完后,只用移动光标回一格再回车。语法我一向是喜欢先打结构,再补充内容。最后写注释。这样的好处是,除非打错字漏标点,不然很少会有语法错误。
这样,一年很快就过去了,转眼到了2010年。OA项目已经收款。而且,没有其它的事情可做了,又闲下来了。然后迷上了偷菜,又开始和以前的同学一起玩网络游戏。
我觉得,游戏一定是我这辈子的克星。我始终逃离不了他。从一开始的帝国时代,CS,传奇,到大学时候的到天堂2,war3,魔兽世界,然后后来的澄海3C,dota,永恒之塔。忙的时候想不起来游戏,一闲下来,除了打游戏就没有其它的爱好。。【吊丝本质】有一天,经理招集大家到办公室,说,由于我们部门亏损严重(一年只做了一个OA,赚的钱不够开销),公司决定把我们部门撤销,员工发放遣散费。
于是,我又失业了。从做程序以来,好像就形成了这样的怪圈。我到那家公司,要不是公司倒闭,要不就是部门解散。
接下来,我真的不想再找工作,自己想做点事情,做个网站在网上卖机票吧,网站做好了,机票代理接口也买好了。而且用代理接口做了二次开发,采集数据到网站上,域名申请好了。vps也买好了,但我发现自己运营网站真的是个外行,一窍不通。不知道如何推广。。苦苦挣扎了半年,花完了之前的积蓄。结束了。然后,是否再找份工作。但是实在讨厌了那样的生活。正在犹豫的时候,一个之前做互联网的朋友找上我,邀我一起开公司创业。然后成立了个小公司。跟亲戚借了钱租了办公室,开始做公司。一开始是做了很多装修网站,放在网上做区域推广,从网上接装修单,再转包给装修公司。然后装修公司给提成这样,做了一段时间,发现赚的钱,几乎都奉献给了百度。推广费用太高。剩下的钱仅够维持生活。然后,又跟一个卖茶叶的老板合作做商城。网站做起来了,没钱推广,又挂掉了。
转眼2年就过了,碌碌无为。还欠下一堆外债。这段经历实在不想去细细回忆。
2012年,对于我来说是比较重要的一年。这一年,我离开了一起创业的兄弟,进了一家国企,顺便帮另一个朋友做服务器运维,又过上了朝九晚五的生活。现在只是感觉这样的生活让我踏实,不想再像前3年一样漂泊无依,自己都养不活自己。这一年,系统的学习了linux和java还有安卓开发,现在几乎已经转向java开发,php也只用用TP和YII。也用python做一些linux运维监控。
我现在的生活又稳定下来,每月10K多的工资,我觉得在这个城市生活的很好,但是程序员之路还能走多远。。但是呢,我的创业梦想呢。。。
程序员,谁没有想过自己去创业当老板。。
这个故事是个反面教材,有梦想+努力 != 成功。
可能大家要失望了,因为这并不是一个好的故事,这是我自己的真实经历。一个快要30岁的吊丝,默默无闻,却一直有梦想的吊丝。一直想要逆袭,却缕缕被打败。现在这样的生活并不是我想要的,但是能有什么办法,面临婚姻,面临家庭,难道还能继续折腾。
博主话语:每个人不一定都会成为非常成功的人;不是每个人都能像马云,盖茨那样抓的住机遇,等得到机会;但是就算你荒度了曾经的青春,哪怕你大学毕业了都没有半点知识技能学过,也可以成为楼主那么能干的,一点点接近成功,接近自己想要成为的人。不要等着别人来裁自己,而是自己去找机会,创造机会,让自己处于不败之地,就算突如其来的改变,你也可以很好的去适应一切。这需要我们很强的适应感,很好的心理自我调节能力,承受能力。不管你想成为什么样的人,都希望能够每时每刻都在努力准备,可以累得时候稍微休息一下,但是不要停歇太久,很容易产生惰性。其实不仅仅我们程序员工作不好找,现在什么工作都很难找,不要对世界太挑拣,或许未来的你,都会感谢现在的这个,曾经的选择。
博主看完这篇日志觉得,虽然作者最后是失败的反面教材,其中不乏一些激励鼓舞我们的事情。所以,不管怎么样都要奋斗下去,坚持下去、这样才对得起青春,对得起人生。