我十年前刚刚从业时,还是一名网管。从一名网管成为架构师,需要走过多少路,蜕变多少次,从中获得坎坷成长,这次分享就自身的履历跟大家浅聊一下,希望能为同样成长过程中的朋友带来一些帮助。今天不谈架构,不谈技术,只谈成长。 在开始之前,我先和大家介绍下我这10年大概的工作经历: 2002 ~ 2006 读大学,上学期间成立研发工作室,接外包项目。 2006 – 2008 混沌生活,网管,摆地摊,咨询管理公司销售。 2008 – 2010 传统企业集团网络部经理,管理传统IT和企业信息化团队,大规模企业信息化架构研发,开始研究应用系统性能。 2010 – 2012 易车集团技术经理,管理互联网数字营销产品线工程研发团队,经手大量互联网项目,深入研究 高并发/高性能/高可用/大数据 的架构和解决方案。 2012 – 2014 知名互联网传媒公司资深研发,深入研究LNAMP技术栈底层源码和实现原理。 2014 – 至今 加入云智慧,任首席架构师,同时负责云智慧APM产品的架构和研发。 在这十年的技术生涯中,我和许多技术人一样,曾经徘徊过,也迷茫过。从刚毕业的懵懂无知,再到十年后现在的自己,这中间有太多的成长感悟。接下来,我先分享自己影响我个人成长的故事。 研发工作室和摆地摊的经历 我们几个同学来自不同的系,学习着不同的专业,却组成了这个研发工作室。那时一帮毛小子不知天高地厚,不计成本,接了不少外包项目。那期间,分工明确,产品,设计,研发,测试,实施,整得不易乐乎。 当时最辛苦的时候,为了赶一个项目进度,我们在工作室里连续工作超过了72小时,每天只休息大约4个小时。钱确实赚得不多,大家也觉得很开心,事实证明兴趣不仅是最好的老师,还是让你不辞辛疲前进的动力。 摆地摊又是另外一个体验:二百块钱进货,当天晚上售空,第二天继续进售;接触了市场上鱼龙混杂的各色人等,不管喜欢或讨厌,想在一个环境上生存,必须要主动地向外沟通。 在开封的那段时间,也做过一段时间管理咨询公司的销售,卖的是管理咨询课程。开封是一个比较休闲的城市,当时的本地企业管理者也普遍比较安逸,突然出现了这家管理咨询公司,也算比较奇葩的。在卖之前首先要学习更优秀的企业管理理念,再学习一些通用的销售技巧和沟通技巧,要特别感谢这家管理咨询公司的老板教会了我很多事情。 这期间的影响是,收获了丰富的沟通经验和技巧,同时也建立了以人为本的思想。没有这群兄弟,基本上时间就和普通大学生一样,在毕业即失业的年纪,时间很容易就混过去了。 做网络管理员的经理 到北京一家传统企业做网络管理员,后来升任网络部经理 这期间各种事情掺杂,网管的工作琐碎的让人抓狂。印象最深的两次,一次是接到集团老板的需求,要将一批废弃的笔记本维修到可用状态,各种清洗各种检测;一次是要用普通网线将两个厂区的网络连通,困难就不说了,在走线时从二楼跌落到一个货架上,造成了左大臂内侧两条小肌肉的断裂。每天最想干的事情,就是去到保安室,因为那里最安静,可以好好地读一会书。 后来升任了网络部经理,开始负责集团信息化的工作,包括ERP、CRM、HRM、OA、WorkFlow等等。在后面的几年里,参与了非常多的项目,可能说出来大家都不会相信,最忙的时候,我的15人团队要同时并行40个项目,这种感觉简直太过酸爽了。 我在这期间的收获是,协调资源和全局掌控,设计/实现/敏捷/测试/服务化 等工程能力。 涉足互联网 从甲方进入已方,从企业信息化涉足互联网 当时是从华泰汽车集团,跳到了易车,从甲方进入到已方,因为在甲方那里真的是太过清闲了。这时的影响是,完全不同的思维转变。企业信息化关注的是如何最大限度的实现无纸办公,流程自动化,信息流通和存储,避免孤岛和数据的多维度交叉分析;而进入互联网行业之后发现,互联网中的信息完全是另外一个玩法,眼界一打开,整个世界都豁然开朗起来。 在易车,让我真正有机会深入研究 高并发/高性能/高可用/大数据的架构和解决方案。 接触LNAMP底层 我的语言学习过程也比较曲折,再抹一把鼻涕泪。 学校里学的VB、VF、C那一套略过不提了。 真正应用过程中的路线是:ASP -> ASP.NET -> Python -> PHP -> Lua -> C -> Golang。 通常,一门语言的学习会先从语法学起,然后进行习题,小项目实践;我的学习实践过程稍有特别,先从小项目实践,再作习题,然后学习语法。 在读一本书时,我的做法也是类似的。读完序和尾声之后,会先读一遍提纲,然后从最感兴趣的地方开始,通常最感兴趣的都是在中后段的实践章节,然后才会是前面的基础部分和发展部分。 这种学习方法适用于有两门语言基础以上的同学。可以在非常短的时间内掌握并深刻理解一门语言,这个时间一般我不会超过两周。 PHP源码量并不大,有C语言基础的人,不超过三周时间,就可以通读一遍。接着阅读的还有 Memcached、Linux、Apache、MySQL,惭愧的是,一直没有读完Linux。 通读底层实现的影响,是可以让你在短时间内迅速提高,并且架构选型和解决问题时,可以快速定位。疑难杂症,即使再复杂,也可以快速解决。 投身开源 做开源的想法,最早是从易车开始的,因为那时接触了太多的项目,也做了太多的解决方案,由于项目规模参差不齐,就特别需要补充开源解决方案的涉猎,如Python、PHP社区相对比较完善,所以当很多问题反馈出去之后,能得到非常及时的回答响应,这给人的感觉是很爽的,后来寻找高性能PHP的解决方案时,在PECL看到了鸟哥的Yaf,那时Yaf刚刚Release到PECL,我也有幸进入Yaf群,跟张洋,天峰,大门这帮夜猫子一起交流,也算是那个时候,有了归属感。感谢鸟哥。 开源对个人成长的影响极其大,它可以让一个人找到组织,有了归属感,也就有了幸福感。 上面是我的个人成长履历,和一些关键影响点,希望某一点能对大家有启发。记得,人生路上,不要害怕付出,付出必有回报,这已经被无数人验证过了。 成长心得 总结一下,这十年来,算是有三点心得吧: 1. 做人: 三省吾身 在十年间,我有过两次抑郁的过程。分别是2008年和2010年。这两个时间段,基本上都是面临着重大抉择,向哪个方向走,如何选择团队。 2008年很直接,奥运会开幕式当晚,我一夜未睡,第二天回到了北京。 2010年比较痛苦,经历了两个多月每天晚上发呆满脑子混乱的时间,最后选择了离开了轻松的甲方,去到易车做一线的研发团队管理。 人最可贵的,不是拥有多少知识和经验,而是能认清自己的优缺长短,扬长避短将优势最大化地利用,积极学习争取弥补短板。 2. 做事: 三思后行 无论在什么位置,是新手还是老鸟,做事情时都不能着急。 急于求成,浅尝辄止的事情,万万不能做;要么不要动手,想清楚之后,去做一件事情,就要一针见血;对于难于抉择的事情,在做好备案之后,快速行动。 很多人会问,如何确定自己的决定是正确的。人的认识都是建立在个人对事物的理解认识上的,我们并不能确定一个决定是否永远正确,只能确定在当前的理解认识基础上相对正确;当犹豫时,多数原因是对历史的认识不清,和对未来的未知恐惧,那么最好的做法是,把解决问题可能的方案都摆出来,每个方案再列举出利弊,剩下的事情是选择一个成本最低的,快速试错。 3. 做打算: 拥抱变化 无论做人还是做事,都要积极地拥抱变化,一根筋是万万要不得的,那不是执著,是傻;在做一个方案的选型设计或具体方案时,在技术因素之外,随时都要考虑人的因素; 人聚在一起力量是最大的,也是最不可控的因素之一。人与人之间的信任,是最大的一笔财富,信任体系不是加分制,而是减分制;以人为本,尽可能与所有人成为朋友,避免信任减分,是一个聪明的作法。 上面的这些,绝对不是鸡汤啊,各位煮酒论茶,权且休闲吧。