工作三年多,记录下自己对写代码的一些认识。
技术积累阶段
离开校园,从事软件行业,就意味着在代码的道路上要不断升级打怪,不断提高自我了。开始可能从项目的增加功能开始,或者做个轻量型的产品/demo。多数情况下,公司的产品已经趋于成熟稳定,代码稳定,所以写起来难度不是,按照已有的风格方式去写就OK。
这个阶段主要是在于学习。当然不光是代码的学习,包括很多其他方面:
- 系统: 如果是Linux, 那么需要了解Linux,掌握常用命令,一些提高工作效率的个性化配置,工具
- 语言: C/Java/Go/Swift等等
- 代码管理:svn/git
- 配置管理:puppet/salt/ansible
- ……
当然,不光是技术,还包括其他软实力的提高:
- 沟通: 对于稍大的项目,总是需要多人合作开发,良好、有效的沟通是非常重要的一步
- 问题解决能力:这个需要长期的实践才能提高的,实践是检验真理的唯一标准嘛
- 好奇心:对技术要有足够的好奇心,将持续学习当做一种人生的态度,这样才能有持续的学习动力
技术提高阶段
这个阶段对产品的业务逻辑有了清晰的认识,各方面都能够适应了。毕竟产品注重的是业务逻辑,对技术的运用是有限的,可能不需要考虑到大并发、高性能(当然跟具体业务有关)。这个时候就需要有所专研了,找到自己感兴趣的领域去深入
比如后端的专研方向大致有:
- 网络方向 (网络优化、加速)
- 消息中间件 (mq, jms)
- 分布式方向(缓存、 数据库、 分锁)
- 大数据方向(hadoop、 openstack)
- 负载均衡方向(apache、 nginx)
技术的提高不光是靠看书,也需要经过实践的。 可以自己动手开发个demo,托管在github上,说不定就会备受关注,做成个成熟的开源产品呢。
全栈阶段
全栈工程师是:“掌握多种技能,病能利用多种技能独立完成产品的人”(baidu定义)。这个阶段应该不是局限在代码本身了吧,更多的是在项目架构设计、项目技术选择、项目整体进度调控等等。(此阶段离本程序汪还很是遥远, 需要继续奋斗)