不知怎的,最近疯狂迷上了一款叫做“骷髅峡谷”的迷你主机,精致便携,CPU够强劲,没有独立显卡(我也不玩大型游戏,甚至只想装个Linux),没有笨重的机械硬盘,甚至连SSD也只能用M.2接口的小片,所有的配置都甚合我心,没有哪一点不足也没有哪一点多余,总之是让我不能自拔啊~
要是在去年,也许做做思想斗争,假意权衡一下就拿下了,可是今年不同往日,现在的收入只有去年的一半,口水肚里咽,还是罢了罢了~
看一下日期,从1月20号到今天,跳槽到浪潮信息做程序猿正好十个月了。下意识地翻出了当时写的一篇《一只想做程序猿的咨询汪》——
- 去年的这个时候,我就是这么一种状态,一只特别特别想做技术的咨询汪,就像现在迷“骷髅峡谷”一样迷上了技术;
- 去年的这个时候,看到做技术的外部公司的同事在黑色的命令行界面娴熟地敲击着命令,感觉特别酷;
- 去年的这个时候,趁着项目不太忙,把《Java编程思想》看到了就剩最后一章,虽然没有完全消化,却也有满满的成就感;
- 去年的这个时候,把Spring framework的代码从github克隆下来,从BeanFactory开始捋,感觉以前自学的那点面向对象就像小孩过家家;
- 去年的这个时候,开始知道程序猿的世界已经实现了共产主义,那就是开源;
- 去年的这个时候,开始知道程序猿们不是不善交际的宅男宅女,而是一群乐于分享的人,无论是微博微信上、博客上,甚至是写的书上,总是毫无保留的倾尽所学所知,分享出来~
于是,去年的这个时候,开始在网上扫描IT公司(一件很尴尬的情况就是济南几乎没有比较大的IT公司,互联网公司更是凤毛麟角),然后就这么去了浪潮。
跳槽后还是有些东西要去适应的。出门不能打车了,买了辆自行车上下班;公司发的自产的笔记本有点弱,自己又买了一个性价比巨高的本儿;收入拦腰砍,也没有了住宿补助,还好房子下来了,不过明显感觉攒不下钱了。。。那时候其实都有心理准备,但是有件事确实是我心理上没有准备好的,到了项目组上之后,大家都叫我“康哥”,组长都小我一岁,在QQ群里瞅了一圈,就俩人比我大几个月。。。在以前的公司没觉得怎样,毕竟已经是技术组长或项目经理,但是在这边是从普通程序猿做起啊,身边都是技术资深的小鲜肉,情何以堪。
程序猿的成长其实就像骑行,如果是自己骑,逐渐速度就会慢下来,但是如果跟着一个骑行特别快的人,自己的速度也会很快。我是幸运的,刚到项目,碰巧就遇到一个大牛,当时赶上整个项目组从SVN切换到持续集成的开发方式,然后就兼职进行持续集成环境的搭建,而这个事情是由项目组里的一个大牛牵头的。大牛关注的技术多而且新,所以我这边很多的工作就是调研,也正是这段时间让我这个井底之蛙突然有了刘姥姥进了大观园的感觉,我调研了各种新奇有牛叉的技术或开源产品,然后为我们所用。那种感觉就像电子发烧友进了华强北,小孩子进了糖果店和文具店。另一个收货就是,大牛的学习和工作方式也慢慢影响了我。
- 这十个月里,从隐约懂一点Linux,到现在也能像以前憧憬的那样在黑色的命令界面酷酷地飞快地敲击着命令,学会了写shell、python、fabric、puppet,项目组里持续集成方面的自动检查、rpm和iso打包、自动部署、自动装机与系统测试等等的脚本已经全都拿下,《鸟哥的Linux私房菜》也啃完了。
- 以前遇到问题查查百度,顶多看看日志;现在动不动就“看看源码”,这都是跟大牛学的坏习惯啊,开始觉得很惊诧,慢慢也就习惯了~说实话,以前听人说“搜索引擎得用google”,总是觉得不以为然,甚至觉得他们装X,现在出现问题首先想到去google、stackoverflow之类的查,虽然大部分是英文的,但是内容质量比较高,真能解决问题啊~
- 上个月我第一次参加了一个开源大会,大牛也去上边讲了(之前还说拉着我一块讲,不过可惜不能两个人一块报名),说实话触动还是挺大的,虽然没我之前想象的火爆场面和T恤,但干货还是不少的,争取尽快研究出些自己的东西,也上去讲讲,刷刷存在感~
- 以前一直对操作系统内核、JVM虚拟机等等这些底层的东西敬而远之,直到有一天看到大牛桌上摆着《自己动手写CPU》,其实他底层的书很多,各种内核、ARM之类的,他如果说自己写个操作系统,估计也见怪不怪了,但是看到这本书我有点不淡定了。后来想起来当初学自动化专业的时候,也有PLC进行逻辑编程,也许差不多。回想以前自学的都是Java SSH框架等社会培训机构几个月就可以教会的东西,也逐渐明白为啥大学计算机系总是教一些微机原理、编译原理、操作系统,甚至汇编语言这种感觉不会用到的东西了,因为这些都是基础,理解了他们,才能够理解比如现在我们搞的虚拟化、容器等方面的底层机制。看来我这个非科班又大龄转IT的要有不少功课需要补喽,以前不敢动的一些底层和源码分析的书也可以拿出来了。今天在京东双十一前搞活动的最后一本书也到了,这次活动非常给力,“200满减100”加“满300-150”,凑了600块的书150就到手了,跟买盗版书几乎一个价了,极大满足了我这个“松鼠症”患者,够啃一年的了,借用我们校训里的一个词,“学无止境”啊!
- 因为持续集成先前没有经验,因此我们整个把OpenStack社区的openstack-infra许多组件搬到了内网开发环境。说实话,这种全球性的开源社区,DevOps方面做得确实是相当不错。这段时间的调研,不光英语阅读水平硬着头皮给磨出来了,更多的是这种测试驱动开发、持续集成的开发模式让我切实开了眼界。想想以前我们做项目,搭一个SVN就上手开发了,没写过单元测试,更别说集成测试脚本了,上线前熬个通宵带着bug就上线了,跟闹着玩儿一样~现在代码提上去要经过语法检查和编译检查,人工审查,单元测试才能入库;各个模块的每个commit入库都打包上传到内网源,其他模块直接yum update就可以;开发文档也是自动构建最新的,每天晚上还有自动PXE装机+系统测试~
- 进了虚拟化项目组,有个好处就是能够了解和接触到云计算的技术,现在我们也在写自己虚拟化产品对接OpenStack的driver,幸好我也有参与,另外关于容器的预研也马上要开始了,因此逐步对docker也有了一定的了解,毕竟无论是DevOps还是如今日益流行的微服务架构都离不了它。
最近看到新闻,说现在有些牛X的白帽子已经开始出现00后了,也许对我来说转行真的是晚了,也许我津津乐道的上边这十个月来补充到的IT知识在很多计算机专业在校学生来说都早已经了然于胸了。但是我越来越感觉,虽然IT和咨询行业交集不太多,如今在IT行业的经验却完全可以构建与自己之前在咨询行业关于企业信息化的工作经验基础之上,两方面的知识和经验互相发生化学反应产生的一些新的脑洞才是更加宝贵的。
去年找工作的时候有公司让我去做技术负责人,说实话自己半斤八两都没有,根本不敢接,怯怯地给谢绝了。现在如果再有这样的机会,我想我是有信心担任这一职位的,不光是因为我知道了如何确定系统架构,如何进行Linux高可用环境的构建,如何高效运维服务器环境,如何基于容器的微服务部署方式构建系统等具体的技术问题,更是因为身处IT行业中,能够更加了解如何吸取并应用开源社区的先进模式,如何保证系统或产品的项目进展和降低项目风险,如何在大型企业里实现各部门协同的产品孵化~
吹起牛逼来就停不下来,贱笑了。
写这一篇其实主要是给将来的自己看的,就像我翻看十个月之前的那篇一样,会有些更深刻的体会。同时,我也知道能看到这篇文字的人恐怕是跟我境遇差不多的,已经或意向做一个“高龄”转行IT的尝试,我的一点拙见是:如果确实对IT有一腔热血,那就干吧!这种选择就像“是选择坐在宝马里哭还是坐在自行车上笑”,在保证家人孩子有稳定的经济供应的情况下,答案就是唯心而已。而且如果是真心爱这一行,努力投身这一行,它给你带来的收益应该是不会让你失望的。
其实你最大的顾虑在于,这个年纪了,转行还来得及?还记得上个月听开源大会的时候,Apache的副总裁也在场做了个演讲,其中就揭示了IT行业的一些现象,其中有两点我记忆犹新:
- 从上世纪50年代开始,程序猿的数量是以每5年翻一番的速度增长的,因此,如果你担心从头开始经验不够,没关系,经验不足的大有人在,而且你只要有心,相信超过80%的同行不是很难和很久的事情;
- IT行业技术日新月异,新技术层出不穷,OpenStack出现满打满算不过六年,Docker也就三年就迅速崛起,当新的技术趋势出现时,每个人都是新人,因此平日注意基础知识和技术的积累,新的技术就像路上一辆一辆的顺风车,当它出现时敏锐地抓住它,就能弯道超车,厚积薄发。做生意的讲究商业机会,搞技术的也要抓住“技术机会”,不做一直闷头干的“低品质奋斗者”。
不过代价也是有的,无论是程序员习以为常的加班还是下边后的自我充电,是需要牺牲掉大量的自由时间的。所以除非是爱好,这些时间才能叫做“享受”到而不是“牺牲”掉的。最近翻了翻《操作系统真象还原》这本书的前言,才知道作者是辞掉了百度运维的工作,在家专心用了19个月的时间写就的。他为了这份执着,不仅牺牲了时间,还有薪酬,不过也相信他的心血必定会进一步成就他新的高度。
擦,最后竟然写成鸡汤了,那就鸡汤到底吧,刚才从论坛上看到一个人的签名挺好:一个只有真正努力过的人才知道,天赋有多么重要。相信如果一个人真正到了需要拼天赋的地步,他的天赋也不会差!
种一棵树最好的时间是在十年前,其次是现在~