从士兵到程序员再到SOHO程序员

2013年9月13日,我从就任了一年半的S公司正式离职,并开始了我求之不得的“SOHO程序员”之路。前端

这对于我来讲,是一次人生道路上的重要选择,在这里,我想分享一下我是如何选择了这条道路的,同时也是对我到目前为止的程序员生涯作一个回顾。程序员

爱好使然

爱好是驱使我走上程序员道路的源动力,很小的时候家里就有那种用磁带做为数据存储介质的古老电脑,能够说我基本上完整的经历了从80年代后期到现在这段时间内我的电脑的发展历程,而电脑也成为了我生活中必不可缺的重要组成部分,因此从事一个可以与本身爱好相符合的工做是一件很是快乐的事情,而如何可以让爱好与工做快乐的结合起来则是我一直所追求的目标。编程

士兵生涯

个人第一份工做是军人,高中毕业,北京,汽车兵,2年义务兵+3年一级士官。这是一个与绝大多数科班程序员所不一样的人生道路,甚至不少人根本没法将这两个职业联系到一块儿去,因此这不一样的经历也塑造了我与绝大多数程序员不一样的性格、思想和处事方法。ruby

在5年的军旅生涯中,部队的特殊环境塑造了我受用至今——而且我坚信会受用终身的几个重要品质:坚韧果断不服输敢吃苦。另外,还有两个经历给了我特别重要的两件东西:框架

  • 一个是长期的部队军级机关工做锻炼了个人为人处事/社会交往能力
  • 另外一个是在两次考军校失败致使职业军人梦想失利后,经过自身努力从新从人生低谷找回自我价值的经历告诉了我,努力+坚持=回报

北漂程序员

其实程序员这条路并非我曾经优先选择的内容,如前面所讲,个人第一理想是作一生军人,在当时,程序员这个选项应该是排在前三之外的。工具

走上这条路,彻底是机缘巧合。2007年初,在我一级士官即将服役期满的时候,我父亲的好友(也是对我影响最大的人之一)给我了一个到他的公司当程序员的机会,同时也告诉我了一句至关重要的话:若是你不把本身最喜好的爱好当专业来干,那么就是在浪费时间。学习

因此,我开始学编程也就是从那时开始的。orm

个人编程入门语言是在部队服役后期突击学习的Delphi,只惋惜2007年的Delphi已经进入晚年,除了不少老软件公司还在使用它来维护已有产品之外,国内的软件行业已是Java和.NET的天下,可是无论怎样,Delphi让我第一次了解了编程是怎样的。blog

2008年,退伍后的我加入了父亲好友的E公司,因为公司发展和业务须要,我从刚刚入门还远未熟练的Delphi转型到.NET平台,开始使用C#进行WinForm开发。ip

可是这一年的我,对编程并无产生真正的兴趣,学习也并不主动,能够说浪费了不少的时间。另外,由于先前所说过的部队经历让个人人际交往能力比公司其余同事更强,因此我作的更多的其实是项目调研、需求分析、产品维护这样的工做。可是如今想想,其实这些工做对如今的我来讲十分的重要,由于经过这些工做,我走遍了半个中国的省会城市,让我在5年的部队封闭生活以后开拓了眼界,接触了各类人和事,同时还积累了大量客户需求与分析工做的经验

2010年,因为国内软件行业的客观环境,以及公司所属某集团公司的内部政策变化,公司的经营遇到了困难。我跟随父亲的好友空降到了H公司——一个隶属于某大型电力建设集团旗下,拥有央企背景的软件公司。

为了可以顺利的进入这个公司,并符合公司业务须要,在这一年的上半年,我开始学习ASP.NET以及WebForm框架,正式走向Web应用程序的开发道路。可是这个时候的我,依然没有对编程产生真正的兴趣,直到加入H公司以前,个人ASP.NET学习水平仍然很是的基础,仅仅可以达到作简单应用的水平,因此那时候的我对于进入一个“拥有央企背景”的“大软件公司”是至关忐忑不安的。不在父亲好友的建议下,认真学习了那个时候不少.NET程序员都不认真学习的Javascript,因此相对于其余入门级别的ASP.NET程序员来讲,我可以作出一些看上去比较“专业”的Web前端效果,这在我进入H公司初期起到了必定的“隐藏真实实力”的效果。

成长、回家

加入H公司以后的两个月时间,我在进一步熟悉了解公司状况和业务的同时开始发奋深刻学习ASP.NET。多是由于从小就对电脑特别熟悉的缘故,因此当我真正专心下来学东西的时候,进度变的至关之快,短短两个月时间,已经让我对ASP.NET的了解有了日新月异的变化,也让个人信心逐渐加强,在我眼中,我已经与其余同事没有明显的技术差距了。

可是就在技术实力逐渐丰满的同时,我发现H公司存在有特别严重的问题:公司一把手对技术一窍不通、毫无核心开发能力、技术水平低下、项目管理及其混乱、公司内部勾心斗角……等等。也正是由于这些问题,让我阴差阳错的得到到了一个特别重要的“战略缓冲期”:

  • 一方面,由于我先前积累的相比公司其余人员更强的社交能力和项目经验,我逐渐走上了项目管理岗位;
  • 另外一方面,坚持不断的学习,让我感受在技术上,我与身边的人逐渐拉开了距离(我学会JQuery是在广州返回北京的列车上完成的,当时的学习激情和效率至关之高),而这种进步的感受让我开始对编程逐渐产生兴趣,一发不可收拾。

2011年,我凭借本身对技术发展的判断,在国内相关资料还很匮乏的状况下,开始购买国外的正版英文PDF教材自学ASP.NET MVC 2,以及很快便推出的ASP.NET MVC 3。经过这样的学习,让我得到了特别重要的几项进步:

  • 不再怕看英文教材,这样我可以比他人更早更快更准确的获取并学习新的技术;
  • 经过对ASP.NET MVC的学习,让我彻底从ASP.NET WebForm的传统开发思想上解放了出来,对Web应用程序开发有了更加深刻和总体的认识,同时也对流行技术和TDD等思想有了更加全面的了解和学习;
  • 在学习过程当中,了解并学习了敏捷软件开发这个至关重要的东西,而且直接影响到我对软件行业的见解和对将来发展方向的认识。

2012年初,我已是项目管理部副主任,正当我努力改变公司项目管理混乱的状况并尝试推行敏捷思想的时候,一场突如其来的由高层勾心斗角引起的栽赃嫁祸砸到了个人头上。此时的我,已对北京的生活压力和我的能力没法彻底发挥感到心力交瘁,因此我毅然决然在春节前辞职,凭借以前不断学习积累的技术经验和自学的ASP.NET MVC技术加入了提倡敏捷与我的发展的S公司西安第一分公司,从北京回到了我阔别9年的西安家中。

煎熬

2012年3月,S公司,一直到如今我都认为很是不错的公司,践行敏捷,注重我的成长。

在S公司,我第一次接触了欧美离岸外包项目,以及敏捷实践,在这里让我对敏捷软件开发有了深入认识和体验,技术水平也有了进一步的提升。能够说,在加入S公司以后的至关长一段时间内,我都是快乐的。

可是,随着时间的推移,我所在的团队和项目中的一些我没法改变的客观问题逐渐暴露出来:

  • 因为我所在的项目是西安分公司的第一个大项目,团队组建的比较仓促,招人时要求不够高,技术水平与项目要求存在差距;
  • 团队成员不肯主动学习技术,尤为是去主动学习流行技术,致使相似JQuery这种东西在一年后依然用的磕磕巴巴,另外不少有益的东西没法推行下去,好比TDD;
  • 团队成员并不爱好编程,在我看来依旧是把编程当作混饭吃的工具,没有什么技术追求;
  • 团队成员一些根深蒂固的观念难以扭转,敏捷依然停留在表面形式上,没有扎根到内心,甚至到一年之后,不少敏捷开发中的重要内容,好比CodeReview和回顾都没法坚持作下去;

这时,经过和公司经理的几回技术交流中,我对Ruby on Rails有了初步的了解(先前只是据说过但没有研究过),在进一步了解的过程当中,我逐渐发现Ruby语言和Ruby社区对个人吸引力愈来愈大,也让我对开源软件和开源文化有了愈来愈多的认识,以致于最终让个人思想有了完全的改变:原来程序员的世界能够这样的快乐和活跃

随着对Ruby及Rails如痴如醉般的不断学习,我感到工做变得愈来愈不快乐,工做效率也愈来愈低,这种感受甚至能够说是是一种煎熬。

在我看来,这些不快乐是因为如下因素形成的:

  • .NET程序员受国内环境以及微软技术的影响,社区活跃度不高,广泛技术水平偏低,对流行技术和思想的接受速度太慢,难以在技术上找到共同语言或者同道中人。
  • 我的经历所塑造的性格与周围的同事差别太大,虽然尝试不断改变本身,可是这种过程至关艰难,而且很不舒服;
  • 我的技术进步与团队成员造成的落差(世界上最遥远的距离不是我努力学习,你不努力学习,而是我在努力学习你却认为我是在装逼)。
  • 由于团队的能力不足,形成项目在交付阶段问题重重,而我我的又无力改变这一切。
  • 长期拴在一个项目之上,让我没法将业余时间所学的东西用在实际当中。

自我改变

既然没法改变环境,那么只能改变本身,我开始寻找可以让本身快乐起来的办法——参加技术社区活动,去寻找志同道合的伙伴。

2013年,我在ruby-china上结识了Andy Wang和Allen Wei等西安地区的Rubyist,后来你们一拍即合的组织起了Xi'an Rubyist的线下技术交流活动。

因为Andy和Allen均是SOHO多年的资深Freelancer,在与他们的接触交流过程当中,我忽然意识到我所学的Ruby和Rails等技术与其余技术不太同样,在社区更加活跃、自由、新潮的同时,还有一项特别实惠的优点:在家办公的可能性更大

在他们二人的鼓励和支持之下和研究了他们的SOHO经验以后,Ruby on Rails + SOHO这对组合彷佛能够成为解决个人煎熬状态的首选解决方案:

  • 我能够用一个我喜好的技术来工做,而不是用为工做而选择的技术;
  • 我能够拥抱一个崇尚技术的社区,找到志同道合的人,选择本身喜好的团队;
  • 我能够享受SOHO带来的一系列提高生活质量的好处(至于都有什么好处,ruby-china上已经有不少经典帖子来讲明了,在此再也不重复);

换句话说,是时候走出个人温馨区了,我须要再一次改变,技术在身,无可畏惧

因此,在持续了五个月的疯狂学习以后,我选择了辞职,走上了SOHO程序员之路。

在路上

如今,我在家中,心情舒畅,没有了每天堵车上班的痛苦,也没有了先前的烦恼。

写下这篇文章,做为SOHO程序员之路的开始,我知道后面的道路会有之前未曾有过的各类困难和挑战,可是我很喜欢Terry Tai同窗分享给个人一句话:

“当你决定出发,最大的困难已不复存在!”

我信,我行!

相关文章
相关标签/搜索