2011年秋天,是大四的时候,我开始“正式”学习软件开发。之前专业和计算机相关,因为数据结构等专业课,略微接触过代码。当时正值“十二五”期间,雨花软件谷蓬勃发展,于是我便有了廉价接受培训的机会。
后来入职制造业国企,一直从事信息化工作,既做开发,也做运维,也有设计、数据库、数据分析、智能制造等一系列的内容。和互联网公司的开发人员不同,作为甲方开发,大多数时间里,我一直游离在项目之外。我常使用自己的办法,从减少自己的运维工作出发,去分析需求,设计系统。这一期间,终于在不那么紧迫的情况下,自己单独经历了完整的写代码、复制代码、复用代码、设计模式、性能调优、测试自动化、持续构建、持续交付。
我所经历的这个过程,在我身处其时看来,是很复杂的,因为一直没有人在我身边可以指导我,需要我自己“享受”岔路的旅程。我接触到的供应商、培训机构在解决问题时,一般是以“可以这么做”、“用XX可以实现XX”等“完成任务”的角度出发的,他们通常忽略了这么做的目的,不关心“你为什么要这么做”。这我可以理解,毕竟他们多做一点,我就可以少做一点,我们的利益看似是互利共进,实际上却是利益对立,这是由现实中各种条件导致的。
正是因为如此,我在信息化的道路上,走上了找寻我“为什么要这么做”的道路,业务不断在变化,技术不断在演进,我需要自己的方法,而不是供应商的广告。我的同事也需要这样的方法,可是大部分他们更愿意别人替他们完成这次寻找之旅。所以最后,注定还是需要我来独自完成。
到目前为止,我将自己的开发经历分为了四个阶段。
第一个阶段是“功能”,在这个阶段主要关注怎样完成需求的功能。第二个阶段是“设计”,功能完成得多了,那么初学者很多复制粘贴等坏习惯带来的弊端就渐渐显露出来了,这一阶段关注的是设计模式和代码复用。第三个阶段是“性能”,代码略微上道了,但随着系统运行的积累,数据越来越多,开始会出现性能问题了。这一阶段虽然开始关注性能,但解决手段首先还是设计手段。第四个阶段是“测试”,功能越做越多,信息化的需求反而变得越来越频繁,测试工作变成了一个庞然大物,幸好测试不一定是要自己手工一步一步做的,而且测试工作的进步本身对质量、设计、过程又有一个促进作用。所在公司为离散型制造业,至今为止,数据的体量还没有达到“大数据”,甚至仅使用设计手段即可解决性能问题,因为很多重要的问题反而并不是那么“紧急”。
作为甲方开发,我远离市场很久,眼光应该很浅,以我目光所及,发现甲方自主化的趋势正在上升,在一定程度上也的确有其优势所在,适逢最近读名人传记有感,在此期望记录一点点的过程,让有缘人或能有所共鸣。
本来是在CSDN开通了博客,准备在那里写的,后来发现连字数统计都没有,所以还是搬到简书上来了。
2019.11.29
网友评论