转:我从学习计算机到现在(2013年初补充版)
毕业快4年了,这个文章该改改了,我从学习计算机开始(2004)到现在应该还不到8年时间,也许对于很多人来说这个时间较短的了,但是这几年以来对于我来说算是对于人生的改变,从一个地方的小农村没见过电脑考入一个“很戳”的师范大学内部新办的一个软件学院,但是对于当时的我来说只要有大学读就不错了,我也没考虑太多,就决定去念了,当时对于电脑的概念是盲目的,没有任何概念,几乎可以说是一无所知,我还记得和同学一起参加入学考试的时候因为在电脑上面考试,我问他们怎么用电脑,同学叫我用鼠标对着正确答案点,我反问他:什么是鼠标呀!当时周围几个同学还开玩笑说:你连鼠标都不知道是什么来学计算机,当时这句话虽然是玩笑话,不过对于性格较强硬的我来说无疑是重重的一击,我只能在默默中学习计算机基础,认识计算机世界。
大一第一学习我几乎听不懂老师讲的课程,对于计算机基础可能有几节课我还能听懂一点点了,但是对于C语言课程我真是一点都听不懂,期末考试把书翻了好几遍,只是为了考试,考还虽然是考过了,不过真正的知识并没有学到;不过由于这学期大部分时间都在学习计算机基础,加上自己英语本身就很烂,所以英语挂科了,这也算是我大学唯一一次挂科了;这种事情对从农村出来的我来说,有些对不起我的家里人,这也作为我在大学的一个耻辱,我当时下定决定决心,如果第二学期再挂科,就放弃大学了;大一第二学期我静静的学习计算机基础,并把C语言从新翻出来学习,反复看,不过因为自己当时没有买电脑,只是自己空想空思考,对于很多东西还是比较茫然;但多少是觉得有点感觉了,知道一些东西了,那学期英语也没有挂科了,算是比较平静的一学期了;逐渐的敲开了一些思路,毕竟完事开头难,有了思路,后面很多事情就好说了。
大二第一学期开始学习C++语言,由于自己一直没有间断过学习C语言,所以对于C++上课我基本没有问题了,我如果没有记错的话,是开学一个月(05年的10月份),处于对C++学习的冲动,我管家里面要了3500块钱去买了一个台式机,然后开始练习C++,每天练习,从不间断,从我第一天调试通过第一个程序我一个晚上没有睡着以后,每天开始增加代码量,从每天几十行到几百行到每天一两千行,先按照书上的代码写,然后自己想一些逻辑来写,疯狂于C和C++编程,那边的课程设计也是自己从头到尾写了一万多行代码,也成为年级中编码的几个佼佼者之一,当时也对自己学好计算机有了信心;自己开始痴迷于编程,就连过年回家,寒暑假也从不间断编码,这也许就是一种兴趣爱好吧;在大学寝室,同寝室的几个玩游戏玩的轰轰烈烈,我也视若无物,完全疯狂于编码中;大二下半学期比较有影响的就是学习数据结构、操作系统等,当时接触到经典算法的总结,从基本编码找到了一些技巧性的路子;出于个人对编程的爱好,数据结构内部只要描述过的算法,基本都用C++写过一次,数据结构老师也蛮看我我,对我也有一些指导,在编写数据结构算法过程中,也逐渐包含了一些自己的思想在里面。
大二下半学期也算是我转折点吧,由于大二上半学期自己的C++已经在学院都有点出名了,和我同级几个编码佼佼者(大二上半学期自己编写课程设计能超过5K代码的同学)我们几个相互组织在一起作为一个兴趣小组在一起学习和研究,当然那个时候只是小打小闹,不过我们白手,起家万事总是有一个过程,没有一步登天的,而且在大二后的经历,也都是我们是自己一手创建自己的平台,不论成功与失败这都是来之不易的阅历,我们几个都是性情中人,想到什么问题和见解就要去问老师,在一次偶然的机会中,一个老师看中了我们,他准备带我们,在当学期的毕业设计中,老师考验过我们;一个礼拜从不会JAVA到自己编写一个老师指定的JAVA程序(其实就现在来看,这也是蛮有含量的),然后还要做PPT、WORD等相关文档以备课程设计的答辩,我当时真的认为自己完不成,因为还要复习期末考试,结果通过大家努力,一边复习期末考试、一边学JAVA编码、一边做、一边写文档,还真搞定了,我第一次对我所在的团队充满信心,因为每个人都在为之而努力奋斗;但是,我们同时也从此几乎告别C语言,一定程度上告别了算法,走上JAVA之路,至于JAVA和C有何区别,在学习过程的过程,我就不多说了,这些都是学习过程中品出来的,言传出来的只是皮毛上的区别而已。
大三之后几乎完全进入了实践,导师基本给我将所有的课程都请了假,在一个实验室内做各类项目,从学院的信息化办公软件,到学校外的一些应用软件,小的是一些动态网站,大大小小做了十多二十个,所有的东西都是我们从一无所知开始一手搭建起来的,包含工作流引擎、自定义框架等,而且中间无论大小项目都给我们带来过很多挑战(如大三时几个同学连续两天给紧急完成了一个全动态的网站平台并直接提供使用,等等事情现在还是历历在目);虽然那些东西对于现在我来说已经比较简单了,但是还是蛮实用的,同时为我自己的成长也铺开了一些路,而且这是自己我创新意识的结晶,也是磨练能力和意志的过程;我一直到毕业一直都在实验室做事情,大四有出去兼职和实习过;在大学实验室里面主要和导师一些学习数据库,开发软件也主要做数据库这块,开发过程主要用SQL SERVER,也有根据实际情况用ORACLE的。
大四虽然也在实验室做事情,但由于自己有徒弟(学弟吧,只是我教他一些东西而已,呵呵),所以事情要少很多,上半期我就在学校外找了一家做ERP的小公司做兼职的数据库管理员,这虽然是家小公司,不过蛮看得起我的,我还是没毕业的学生,别人把他们项目里面的数据库结构设计、管理以及优化工作都交给我来做了,我当时也是初入世道,不知道天高地厚,认为自己的数据库已经很强了,别人给我这些工作我毫不犹豫的就接受了,不过也算是缘分或者说机会吧,不给压力我也不能成长,我将那些事情做的还算可以,在这家公司我学到最多的知识就是公式化计算,也为自己后来的抽象问题的思路提供基础参考,细节就不多扯。
大四下半学期,我觉得自己刚毕业想去大公司见一见世面,辞掉了那家兼职的工作,准备去找一个大公司;在找寻大公司的路上,由于我个人的英语、学历、学校的问题几经波折,才进入一家较大的软件企业实习,实习期间我很快被导师发现了我的能力,在一个实习班上很快的成为老大,自己也觉得蛮欣慰的,回去给学校老师说他们也挺高兴的,因为我们毕竟来自很差的学校,其他还有很多好学校的学生,在同一个平台下我们成为了佼佼者;不过在一个地方做事情不论自己的技术和层次如何,我认为自我谨慎是永远不动摇的,过于迷信技术和过于相信自己很容易出问题,不论以前有多少次成功,下一次一样谨慎的对待任何一个细节,并在问题解决中得到经验和成长,这也是通过我在自我成长过程中以及和好大学学生的气质对比中得到的结论。
毕业了,至于毕业的一些伤心事我就不提了,我继续到那家实习公司去试用了,在试用期三月中也算是我技术升华的三月,因为那三月我虽然在公司实习,而且也有项目在做,但是那段时间不知道为什么,事情真的很少,我开始很无聊,非常无聊,在那边下班后同事都各自回家,我在不远处自己租了个房间,没有朋友和同学和我一起,时间长了闲无聊就开始用各种方式解闷,最终走上老路,开始学习技术,这三个月将很多SUN源码拿出来看,并根据其内核思想和自己以前的项目经验去提升,并去做相关的验证,当时还买了一本很牛的ORACLE书籍来研究,三月下来,自己对软件架构的认识达升华到另一个层次了,对于软件开发过程比以前更加有信心,从只研究数据库到应用系统和数据库的整体架构,从对数据库应用摸索内核,到内核印证实践,我也无时无刻感觉自己在每天的快速成长着。
实习完后我到了公司指定的另外的地方去上班,我去了公司指定的那个项目后,过了三四天我就发现那个项目眼看就快要失败了(项目拖快6个月了,很多外部的界面都看不到,大部分界面都是静态的,流程也跑不通),而且也是公司在那个城市最大的一个项目,也是公司在当地想砸开市场的一个项目吧,我当时很盲目,因为没见过拖这么长时间的项目;出于我个人对软件开发的冲动,我以自身做起,能带动多少团队的激情就带动多少,我们夜以继日的加班赶工,只要用户没说放弃我们,我们就要抢下时间给坚决拿上去,我认为这是我们作为软件开发人员的职业素养之一,终于在一个月后将项目成功上线,至于细节这里不多提了;随着在项目组时间的增加,我虽然是一个新人,但是逐渐在项目组中的技术和业务的说话权具有了威信,就算是项目经理要做一个比较全面性的东西基本也要问一下我,我感到很欣慰,自己在大学的坚持并没有白费,在项目组内部一段时间只要出现相关较为重要的问题也是亲自解决,不懂就学,学完就用,用完再学,不断反复,一年中我对那个公司内部很多东西已经比较熟悉,对于项目内部就更加不用多说了,大学所学得到凌厉精致的发挥,我发现最终落实于基础,不论如何实践、如何理论,最终落实到课本,理论基础真的很重要,大学课本中诸多前人的经典思想和解决方案都是世界级的,只要细细挖掘,诸多知识和思想可以在软件设计和问题解决方案上变得非常清晰和容易,不过由于种种原因(主要是待遇和用人观念上)我去年跳巢到了另一家。
09年6月我进入了另一家公司,是电信行业,我接触到了新的业务领域和开发模式,我开始有点不适应,毕竟在老公司自己说话比较算数,而且新公司的业务知识真的一点都不懂,现在又从零开始,也不知道自己是否还有激情去创造和发挥,不过我自己既然选择了,就应该尽力而为,而且个性很强的我从来不走回头路;在新公司我接触到很多工作十多年的牛人,我给他们说起了我的一些问题看法和思路,他们也给我说一些他们的经验之谈,我在知识体系上弥补了很多缺陷,在软件产品化的设计思想上,有了新的突破,逐渐发现到一个行业内部的产品软件并非不可以产品化,即使个性化业务,都是可以做成产品的,从不同抽象层次和抽象侧面去提取问题的各个分析切入点,将个性化做成平面,以不变应对万变;在新公司的开发软件思路和以前的公司截然不同,各有各的优势,项目运营方式和阶段而已;我个人在技术上也逐渐的更加成熟起来,尤其在ORACLE方面的学习,也在逐个性能问题的解决过程中逐步加深和巩固,使得个人在理论认识和实践闲的密不可分;我现在也在不断的超越自己超越现实,只有不断学习、创造、实践,才能不断进步;其实这不为什么,只为一句:这是我的职业;同样我很快成为了佼佼者之一,并且在这个公司各方面的待遇都还算是比较满意的,不过另外离开这家公司的最后原因是腐败,或许很多人觉得这样的环境蛮好的,不过对我来讲可能不算好吧,因为追求的东西不一样,至少我在毕业不到2年的时间内,还不想把自己的思想搞得那么腐败,成天至少有一半以上的时间是闲聊之事或者喝酒啥的,一年下来自己感觉技术层面退化得很严重,除了一些经验上的成长外,在技术本质层面,很多方面还不如一年前的能力了;于是我最终选择离开,而且离开我选择了给我薪水最低的单位,比当时我的待遇还要低很多,考虑的原因当然不仅仅为待遇而生存,因为现在追求的是技术和综合素养的提升,另外也有给我开除高薪offer的单位,我拒绝了,因为都是同行业的,我选择了跨行业,我选择了互联网,因为互联网的技术吸引了我,所以我选择了一个我毫无经验的行业,虽然我还有点技术功底去参加面试,不过由于技术能力已经和我的工龄不太成正比了,所以只是勉强通过了面试,我想要是当时要不是他们缺人我是进不去的,呵呵,我完全是以一个刚毕业的学生的级别进去这家公司,不过我还是很情愿的进来了,或许丢掉了一些经验上的东西,而且我在来之前也是有将自己清空大脑的想法和过程,甚至于真的丢掉了一些思想,因为我知道我应该可以比现在更好。
2010年年底我正式转型到互联网,做的事情怎么说呢,到目前为止来讲有点杂,技术层面的提升也是毕业后前所未有的,虽然起点低,不过我也很快的成长了起来,逐步超越了过去,找回了曾经疯狂于技术的自我,有点杂对于第一年进来的我来讲应该算是机会吧,因为没有面上扩展,点上的深入可能性并不是很大;面上的扩展更多的是带来生产力的提升,而点上的突破更多的在自我修为和功力境界的提高,也从那个时候开始我逐步开始找到自己所需要的方向和空间!
互联网的两年中,我成长了许多,一年所做与所见比以前好几年要多要好,个人成长也是自己可以看得见摸得着的,这里,技术牛人层出不穷,更加有业界各个领域的顶尖级高手,和他们的接触使得我自己既兴奋又感到卑微,也更加促进自我去成长,去深入挖掘,有这样一个open的平台,使得自己有更多的机会去挖掘更加精深的技术奥秘,同时也能有机会去实践和创造。
2013年3月补充版
在投身互联网后,刚开始的一年多,我开始发现天外有天,人外有人,同时我也看到人生的希望和目标,因为我终于发现了有一群和我一样执着于技术的人,而且在这里他们默默的奉献,且产生了巨大的价值,同时自身也可以获得不错的报酬;我学习到了很多很多从来没接触过的技术,从分布式计算、数据库、网络、高并发,再到CPU、内存、磁盘等等技术,并且由他们衍生出的结束无穷无尽,于是乎,我在一段长期的时间内,陷入了技术狂秘者,我疯狂的追求这些东西;
时间长了,当我在面上铺开后,我发现任何人不可能在所有领域去深入,当然知道是必要的,要深入挖掘一定要找到方向,这样才能有足够的精力和时间来做,虽然技术是相互关联的,不过非深入挖掘方向的技术其实是可以达到一般的水平,知道是什么在做什么,有什么就好了;
于是,在最近的一年多以来,我开始在不断摸索自己的方向到底是什么,因为以前兴趣太广,什么都想学,什么都是半斤水,但是什么都懂的感觉;在不断的纠结中,我选定了老路java,因为我逐渐的发现java并不是像我当初那样没前途或简单,他内部也有很多吸引我们这些技术人员去研究和发现的东西,由于java程序员很多,所以技术更多服务于业界的程序员,帮助业界去做更好的软件,在java的jvm、juc、byte code、java io等技术层面有了较为深入的认识,这也是我自学习技术来,第一次开始真正认可自己的技术,因为这个时候真的可以很彻底的看透一些东西;同时在java的分布式计算和高并发上的认识和经验,在基于服务的社会中,我也站在服务者的角度去思考我应当如何去研发自己的产品去创新自己的产品来服务自己的周边人员,服务于企业和社会,以业务为驱动,技术来解决我们的核心价值问题,也使得自己的技术拥有了很多用武之地;
2012年年底自己感觉开始对社会和世界开始有些成熟,我结婚了,老婆怀孕了,未来面对的是一个家庭,父母、孩子、老婆、老婆的父母,一个人将面临整个家庭的压力,不过一个家庭同时也会给我个人心里上的支持,因此在我成长的道路上将会更加具有动力,还是那句,我还是那么拥有激情,我同时愿意为技术奉献自我,因为我知道自己所做的事情是在为谁而服务,它所产生的价值是什么,技术追求也不会改变,因为他不仅仅是我经济收入的来源,更加让我体会到社会的变更,必须让我们也去不断的改变,才能与时俱进,自己能与时俱进,也同时证明自己在社会中的价值所在,这同时也是任何一个搞技术的人来讲,一种成就感的来源和动力。