关于代码积累


       最近在和几个同学聊天的时候,都聊到了代码积累这个事情,但是回顾了这两年在滴滴,貌似把这个事情放下了,想想还是不行,未律己先律人,不是我的风格,所以前两天review了一下以前的代码,准备重新拾起这个,继续搞搞,在这之前,重新review一下历史,把之前的言论系统化一点;


       首先问大家一个问题,工作1年和工作5年的工程师有啥区别?这个问题就不用大家回答了,以我自己为例,工作5年的时候大概是t6+,相当于滴滴d8+,请允许我恬不知耻的给自己增加个+号,在百度或者滴滴,如果不出意外的话,基本上都需要带团队,向下管理团队,对上完成任务;这个阶段一般都是转型期,不仅要面临较多的管理任务(比较生疏),业务压力(没搞过),还要冲在一线去写大量代码(主要参与者),非常痛苦,这是目前这个互联网特别火的时代,工作5年运气比较好的同学肯定会出现的一种状态,而刚工作1年的基本上就是写代码,所以可以看出1年和5年的区别,就是写代码和写代码+管理+冲业务;


       当然这个不够直观,再问一个问题,工作5年和工作15年的工程师有啥区别?这就比较难答了,因为目前来说,工作15年的工程师只有两种,一种是互联网大佬,另外一种其实过得就比较郁闷了;因为对于互联网这个行业,变化的特别快,带团队也不是每个人都有机会,而现在中国的互联网开始火也就10几年,所以10+的工程师其实挺少,不容易变成现象级,再过个5-10年,中国会出现大量的工作10+年的工程师,其中管理者较少,懂业务的工程师在我这么多年看来,更加凤毛麟角,所以基本上剩下的可以断言:5-10年后,中国会存在大量工作经验10年+的纯技术的工程师,所以他们的区别是?一个写了5年代码,一个写了15年代码?


       而这个时候,工作15年的工程师其实往往比较郁闷的,因为和刚工作1-2年的工程师比,缺少精力,拖家带口,缺少热情,写代码比较慢(时代变化很快),效率降低,而另外一方面,却可能要求比工作1-2年高的多的工资,所以这个时候,从公司的运作来说,我相信公司很快就要想方设法赶你走了;


       代码积累可以解决一部分的问题,让你不用那么累,释放大量的时间,把有限的精力去思考更高级更有意义的事情上。。。当然也不能解决所有的问题,最好的方法还是升上去,或者财务自由。。。


       然后回顾一下我自己的代码积累,主要是分为3部分:
       1. 第一部分是基础框架和代码,大概从13年初开始,这个框架覆盖大部分python的统计逻辑、python服务器、还有lxml和beautifulsoup对网页解析的一些逻辑,几个html模板、php框架、常用php库、发包程序等等,基本覆盖了做流量魔方、快抓、知心UI、统计等的大部分功能,比较的个性化,但是梳理一下,搭搭网页什么的还是挺快的;
       2. 第二部分和第三部分都是没成框架的,之前没有抽空梳理清楚,后面也就忘了;第二部分主要是一些策略的功能,包括切词、plsa、词性、主干分析、行业分类等一系列核心功能,还有gss/as/bs等等,这些都是原始代码,可以搭服务器,不过这个貌似没啥应用场景,搞老东家的给别人也不太好,所以还是偏理解为主;
       3. 第三部分是这两年整理的一些机器学习的算法,还有图像相似等等,这个之后找机会融进第一部分框架去,其实本来还有以前一些ub_server这种基础框架的,但是出来之后,发现写C的确实不多,用C的服务器,还不如用http或者python服务器凑合用用,这个就以后再说吧;




       接下来讲讲未来的一些计划,前几天稍微和文涛讨论了一下,我们接下来可以做的代码,从小到大可以是:
       3.1 组件,最基本的功能(比如按钮、python服务器等)
       3.2 模板(网页)
       3.3 模块(搜索)
       3.4 系统(MIS)
       3.5 复杂系统 (海外租车)
       可以分为这样简单的5个阶段,现在我们在1,2两个阶段做的还不错,在第3个阶段也有一些积累,这也是过去一段时间做的不错的最主要的原因;接下来可以分为几步走,从逻辑上:
       1. 继续积累组件和模板;
       2. 逐步搭建新的模块;
       3. 梳理可以通用的系统,并组装;
       4. 复杂系统上,尽量轻量级,不要做太多的耦合;
       从实施上,可以稍微抽象一些,拉更多的同学去讨论、实施,然后在这个基础上,相互碰撞,形成一些代码库,可以起到2个作用,一方面可以提高大家的开发速度,另外一方面如果能产生开源的东西,也是个人影响力的一些体现,所以未来一年我也会投一些精力往这个方向努力努力;

发表评论

电子邮件地址不会被公开。 必填项已用*标注