卧室里家人已经熟睡,虽然已经是深夜11点多了,我却一点睡意都没有,窗外的马路上依然是车水马龙,我坐在电脑桌旁,带着耳机听着汪峰的《北京,北京》,想着MV里面里的那些人,高楼林立、街景复杂、平凡的男女,为了生活,奔波在这座城市的角角落落。
2012年,为了当年的梦想,我离开了自己工作了5年的古城西安,来到了这座年轻人都向往的城市–北京,从此开启了我的北漂生活。
这一晃就是7年,其实在大学毕业后,2007年参加工作算起,自己已经干技术有12个年头了,在这12年的时间里,见证了中国互联网的发展,从PC互联网到移动互联网,自己从ASP到JavaEE,再转型到Android应用开发的三次技术转型,而今年又是Java语言诞生的24周年,Java作为当今最流行的编程语言,它承载着一代编程人的青春和热血。在这个特殊的日子里,我想很有必要写一篇关于Java学习历程的文章,来纪念即将逝去的青春岁月。十二年风雨两茫茫,三次技术转型,不思量,自难忘,披荆斩棘,处处话辉煌。
上个周写了一幅字“Java无敌于天下”,这也是平时我的一点喜好。
16年前我与VB结缘
这一切都要从16年前说起,2003非典那一年经过高考的洗礼,自己从陕南安康的一个小镇,和自己姑父拿着母亲给买的两个大挎包,坐着绿皮火车经过一夜的颠簸,翻过大秦岭来到了13朝古都西安,走进了大学的校园,这也是我人生第一次坐火车,第一次走出家乡来到大城市,一切都充满着向往与好奇,为此在走之前的前一天晚上我激动的失眠了。
报道、军训、分班和全国各地五湖四海的同学聚在一起学习、生活,很快一学期就结束了,一切都是那么美好,就在这个时候发生了一件让我备受打击的事,期末考试的时候,自己的计算机基础与原理科目挂了,全班40多人,就我一个没有过。
自己是一个自尊心非常强的人,我当时就立下誓言,我一定超越其他人,于是在第二学期一开学的时候,我就在校外报了一个计算机二级VB培训班,在自己的努力下,经过三个月的学习自己顺利的通过了计算机二级考试,当时自己也是班上第一个拿计算机二级证的人,为此还骄傲了很长一阵子,说实话虽然当时考过了,感觉就是拿了个证,仅此而已。
一次转型ASP
2007年前后,ASP以其简单易学的特点,成为了当时最为流程的Web开发技术,当然自己也加入它的学习行列,因为自己之前有过VB的学习经历,所在现在学习ASP就轻松了很多,ASP就是基于VB语言的。
大学毕业后自己顺理成章找了一份儿ASP开发的工作。当时公司也是刚刚成立,人马不够,自己就身兼多职,除了平时做开发之外,另外一个非常重要的工作就是负责公司服务器的维护和管理。
那是一个黑客纵横的时代,刚进入公司一个多星期写了几个页面,第二个周的某天的早晨和往常一样,打卡、开机、撸代码,打开电脑后自己傻眼了,自己写好的ASP页面都打不开了,所有的ASP文件都变成了一个熊猫烧香的图标,这就是中国网络历史上著名的熊猫烧香事件,那一天公司的几乎所有的电脑都中标了,损失惨重。
那段时间,公司服务器的的多个ASP站点也隔三差五被黑客入侵,我清楚的记得那时候黑客直接修改篡改了站点的首页,并留下了银行账号,把站点的源码都拷贝走了,要求打款才给源码。
公司老总做了重大决定:实行白班夜班两班倒,来坚守看护服务器的运行。
在我看来这是一个非常愚蠢的决定,最后在我的建议下,进机房对服务器进行全盘格式化,从新做系统,做完系统升级打补丁,安装IIS,SQLServer2000,配置站点,经过一夜的奋战,服务器各个站点重新正常运行,可没过多久,网站再次被黑,不过这次都是小的页面篡改,并没有入侵到服务器内部。
找漏洞、程序打补丁,这样干了一年。这就当时的中国石油工具网,昨天还特意上网查了下,这个站点已经关停了,公司也倒闭了,毕竟已经过去十几年时间了。
二次转型Java
在第一家公司干了一年的时间,2008年初我离职了,到了另外一个公司,这一干就是5年的时间。
第一年很平常的做了一年的ASP开发,直到2009年,公司用ASP开发了一套付费阅读系统,发现了一个非常严重技术漏洞:生成的HTML静态页面可以绕过登录直接进行免费阅读。
而这个问题用当时的ASP技术可以说是一个无法解决的问题,网上查了一圈儿得知通过Java添加拦截器可以解决它,再加上ASP一系列的安全性问题,公司决定所有技术开发人员转型干Java,用SSH框架对这套收费发现系统重新开发。
由于老板要的是进度,并没有对Java基础做过系统的学习,直接网上找了一个开源的SSH框架,研究了一个星期,配置好系统开发环境,经过了稍微的个性化改造,框架搭建好,直接就开始开发了。
虽然有些地方当时还看不明白,但是都是模板化的代码,经过团队两个多月的奋战,开发完毕,通过对访问的所有页面添加拦截器进行访问权限的判断,完美的解决了HTML页面直接访问的问题,另外系统的安全性也大大的提高了。
通过这次的转型升级,让我深深的感受到了Java的强大。
项目是开发完了,有了空余的时间,但是有些地方还是不是很明白的,自己决定对Java基础进行重新的学习,当然看视频教程是最直接的学习方法了。
在那个学习资源贫瘠的年代,当时我找遍了整个互联网,就找到一套比较完整还算能看的视频教程:孙鑫主讲的《Java无难事》共12课时每节课平均两个小时,从简单的Java语法、if、For语句开始,再到接口、抽象类、IO流、多线程,学了两个多月,也算是Java基础入门了,接下来就是Struct1、Struct2、Hibernate、Spring的慢慢学习路。
三次转型Android
这样一干就是三年的时间,直到2011年,随着移动智能手机的横空出世,人类从PC时代进入了移动互联网时代,新闻报道中国移动互联网开发人才缺口近百万,以后肯定是移动开发的天下,于是我就萌生了学习的Android开发的念头。
当时公司也没有人知道我学这个技术,网上当时也找了一些零散的资料,从Android四大组件开始,不知不觉就学了两个多月。
就在这时公司的老板也看到了移动互联网的机会,决定把公司这套收费发行系统移植到Android手机上,我心里暗自高兴,练手的机会来了。
可是领导决定把这个项目外包出去,当时我作为技术部负责人,当着老板的面,我说我已经研究两个多月了,我们都是干技术的为什么不自己做,要外包出去。如果自己来做,以后技术维护也方便,还能给公司节约开发成本。
老板半信半疑,觉得我说的有些道理,就把这个事情交给我,当时也就我一个人,后台是另外一个人做的,就这样拼搏了三个月项目上线了。
这件事告诉我们凡事预则立,不预则废,机会都是留给有准备的人。
我的北漂梦
就这样通过一个实战项目的锻炼,我感觉自己技术积累的已经差不多了,我要到更大的城市去闯一闯,上大学的时候一直梦想要来首都发展,才毕业的时候感觉技术还不过硬,经验积累不够,这样一晃就是五年时间过去了,是时候了。
我清楚的记得走的那一天,晚上的火车,一起共事的同事那天也正好离职了,说过来聚一下,正好给我送行,那天我们喝了一点酒,走的时候天下起雨,哗哗啦啦下个不停,自己打了个出租车,很快就到了火车站,那晚的火车晚点了三次才走,经过绿皮硬座火车一夜的摇摇晃晃,第二天下午安全抵达北京西站。
接站的是我的高中同学,一天一夜的舟车劳顿,出了火车站以后一身的疲惫已经消失的无影无踪,拖着沉重的行李箱,我们直接的奔向了天安门,走在宽广的天安门广场上,远望着长安街对面的天安门城楼,我大喊了一声:北京我来了!
这是一个全新的开始,第二天我在智联招聘、51Job海投简历,这段找工作的经历使我终身难忘,甚至超过了刚毕业第一次找工作的那个时候,经历了近两个月的时间才把工作的事情落实下来,本以为自己已经很牛逼了,结果四处碰壁,后来回顾这段历史,还是北京人才济济,自己Android基础不牢靠。
后来我经常和同学们聊起这段往事,我就感慨万千,真是不容易,当时我是9月1号抵达北京,都快到了10月底了工作的事情还没有落实下来,我真是一点信心都没有了,把回去的火车票都定好了,把房子里面的东西都打包好,把电脑,一些衣服邮寄回去,准备打道回府回西安,下楼去找快递,就在这个时候一个电话打断了回去的计划,这是一家公司让我去面试的电话。
我想,我要再去试一试,就是这个电话,改变了了我以后人生的发展轨迹。
第二天我早早的就去了要面试的公司,与面试官简单的介绍一下自己,面试官给了一张纸、一支笔,说写一个冒泡排序。
我拿着笔,两分钟时间写完。面试官连说三个好,面试通过了。
人生它就是这样的戏剧性。
这次的经历告诉我,坚持是多么的重要,用马云的一句话来说就是:今天很残酷,明天很残酷,后天很美好,很多人都死在了明天晚上而看不到后天的太阳。
这是一家创业公司开发一款打车出行的App,类似于现在的滴滴打车,干了不到一年时间,由于资金链断裂,就倒闭了,这一年自己狠狠的把Android基础补了一遍,开年就开始重新找工作,这次自信了很多,也很顺利,很快就搞定了。
在这一干就6年的时间。
除了技术,还有艺术
一切都是按部就班,默默无闻的在这公司干了两年,2014年公司要搞年会,我想这是一个展示自己的大好机会,于是我也报名了,但是公司负责节目的人事总监并不看好,平日默默不闻的你,也能上台演节目?但我就是这样一个人。
这是自己原创的一个节目,剧本都是自己一个字一个字写的,坐在地铁上,公交上,时不时有好点子蹦出来,自己就一点点地记下来,自己花了很多的心思,最后定稿两千多字,自己一个人在台上脱稿20分钟,有陕西方言话的脱口段子,有6分钟的唱歌,最后一段儿还有一个跳秧歌的舞蹈,台下四五百号的公司员工,顶着巨大的压力,最后节目赢得了满堂彩。
当时我心中就只有一个信念就是要挑战自己,人生就是要赌,否则你连赢的机会都没有。
那次领导们重新的认识了我,都竖起了大拇指头给我点赞,开年后,领导找到我畅聊一次…。从那以后自己成了公司年会的常客,2018年会再次参加了表演的的节目是“新闻歪报”。
除了技术,还有书法
平日除了研究技术,最大的爱好就是写毛笔字,前一阵子,喜迎Java诞生24周年,忙活了一天,写了几幅字,希望各位码友都能马到成功。
2017自己参加海淀区职工书法大赛还获了奖,我把自己平日写的字都传到了CSDN上。
除了技术,还是技术
在CSDN的账号09年就注册了,而坚持在CSDN上写文章是从今年年初才开始的,也只有大半年的时间,坚持一周一篇,保质保量,分享实战开发经验,传业授道解惑,原创81篇文章,浏览量25万+,开通了五个专栏。
5月16号,大清早一不小心成专家了,也感谢平台的支持、肯定、与认可,知识在于分享,写作使你思路更加的清晰。
我是一名热爱开源开发者,喜欢把自己的代码分享给他人,方便他人学习和提供建议从而完善代码,我追求开发高质量及拥有良好用户体验的应用,擅长应用架构设计,编写了组件化+MVP框架FlyTour ,并把其发布到 GitHub 颇受好评;同时在后端也有一定研究,到目前为止已经形成了自己Fly系列的八大开源框架矩阵,GitHub地址:
https://github.com/geduo83/
编码要有道
三次的技术转型,让干技术的我经常在感叹,技术更新换代太快,但是不管怎么变,永远不变的一个核心思想就是“调用更加方便、更加安全、架构清晰、代码简洁、反对臃肿、代码之间的耦合度更低”,这是一个好的软件永远追求的目标。
在唐代有一位大诗人叫白居易,他每作一首诗,都要给不识字的老太太念念,老太太能听懂的,就要,听不大懂的,就改,这也是为什么他的诗一直在民间广为流传,而且还流传到了日本。
而我们写代码也是一样的道理,越简单也好,我曾经看过别人写的一个关于App应用市场下载的功能,一个简单的功能搞了十几个类,各个类之间层次不清,引用关系混乱,实在让人看不下去,一个好的工程师,不在于你写了多么复杂的功能,而在于你写了一个多么好的功能,代码简洁,结构清晰,人人都能看懂,这才是好代码,反对臃肿,真正的做到了简约而不简单,这才是编码高手。
技术要过硬
软件开行业有这样一句话,初级程序员写UI,中级程序员写框架,高级程序员写算法。
初级开发员不懂原理,不懂底层,只会调用框架。中级开发人员能够熟练各种框架的使用,并能根据自己项目的需要,搭建属于自己的项目框架,也就是我们所说的架构师。高级资深开发工程师是指在某个技术领域细分领域有自己深入系统的研究,比如在IM及时通讯、视频直播、系统安全,性能优化等方面的资深专家,这些都是可以深耕细作的方向,形成自己的核心竞争力。
另外作为软件开发人员,还是要有些工匠精神的,对于我们所写的代码,大部分开发人员都是开发完了,测试没有Bug就完事了。
其实我们在做完之后可以回头看看有什么可以优化的地方,包括我们的每一个类的命名,变量的命名,方法的命名有没有更合适的我们都要仔细去推敲,对于自己写的每一行的代码,实现的每一个功能有没有更好的实现方式?有没有什么更好的架构设计?我们都要深入的思考,把它当做是自己的一件艺术品去打磨。
最后我还要说一点儿,作为技术人员永远保持对新技术的狂热,永远保持对新技术的好奇心,对于新出来的技术要快速的去研究并掌握它,保持自己在整个行业的领先地位,形成自己的核心竞争力。
什么是自己的核心竞争力?
我认为就是:“别人会的,你也会,别人不会的你也会,而且还研究的非常深入”,这就是你的核心竞争力。
人品要过关
作为一个技术人员,不但要技术好更重要的是还要人品要好,平时除了技术我最大的爱好就是写毛笔字。
我最喜欢的四个字就是“厚德载物”,低调做人,高调做事一直是我的风格,这些年在这个行业形形色色的人也见了不少,有的搞技术官僚,搞形式主义,有外行领导内行型的,这种类型是最可怕的。
有新技术,新框架自己不懂反正就是不用,有保守型的,记得在多年前由于工作需要认识了一个在IBM工作的伙计,技术很牛,时常向他咨询一些技术问题要一些技术资料,总是一句话”网上都有,你可以的网上查查”。
还有满瓶子不响半瓶子晃荡型的,有的人知道一点儿,就觉得自己牛逼的不行,而且这种人还不少。
我觉得作为一个干技术的人,你永远要记:山外有山,人外有人,永远要保持谦虚,才能保持你在这个行业持久发展。
技术和人品都是成正比例的,我记得牛根生有一句很著名的话:“有德有才破格使用,有德无才培养使用,有才无德限制使用,无才无德坚决不用”。
人生要总结
我们80后这代人,时常在感叹,我们上小学的时候人家上大学是免费的,而且工作还是分配的,我们上大学的时候人家上小学时免费的,当我们大学毕业的时候,房价是暴涨的,我们中考的时候国家中考改革,我们高考的时候,国家高考改革。
做技术的我们有的随着年龄的增长,已经不做开发转做管理、转做产品了,这样的人也是大有人在,在软件行业有很多人都在讲:这是吃青春饭的。
其实我一直认为:年龄不是问题,要知道年龄越大,技术经验越丰富,除非自己很菜,没有自己的核心竞争力。
北漂7年了,7年前暂时的离别,也是为了7年后最好的相聚,此时,我想起了《钢铁是怎样炼成的》主人公保尔·柯察金说过的一句话“每当我们在回首往事的时候,不因虚度年华而悔恨,也不因碌碌无为而羞耻”。
每当听着汪峰《北京北京》都有着不一样的感觉,静静地听着。“欢笑、哭泣、活着、死去、迷惘……我在这里欢笑,我在这里哭泣,我在这里活着,也在这死去。”