这个时候的程序员正处于啥都会但又啥都不会的阶段,为啥说啥都会呢,这个时候基本已熟悉常见框架的使用,google百度,语言特性,查阅手册等,一般业务上基本是没什么问题,干的也还是码农范围的活,离开了框架
设计就不行了,不知从何下手,这时候说明自己已达到瓶颈期需要突破了.
但怎么从重复业务中的代码学习,毕竟不能纯研究技术不工作,人毕竟要吃饭,这时就要把工作和技术结合起来,也不能那么冲动,一言不合就离职之类的.
可以看看以下文章;
天天写业务代码,如何成为技术大牛?
我这里摘录几点,个人比较赞同的:
归纳总结一句话:多学习、靠自己、做更多、做更好
记住:不是因为给你安排高水平的工作你才有机会提升水平,而是因为你水平高了才有机会给你安排高水平工作!
还有几个典型的误区我觉得有必要反驳一下:
1)拜大牛为师 – 你想得美
2)业务代码一样很牛逼 – 很傻
这样的答主我估计没有怎么真正参与业务开发吧? 实际上在公司里面,业务代码真的没太多技术含量,就是实现产品功能即可,而且翻来覆去就那么一些,写多了真的会很烦躁的。
3)业务代码写多了能力就上去了 – 很天真
这也是误人子弟的,写一万行hello world,水平不可能提升的;redis也就3万行代码规模,几个人能写出redis ?你写10万行业务代码都写不出redis的。
4)上班太忙没时间自己学-- 你想多了
嗯,这是实情,难道你还指望每天上班给2小时给你自我提升?
个人应对之策
由于负责的业务以还倾向于面向过程编程,所以可以从以下几步提高
1,代码转为面向对象
2,重新设计业务代码
3,分析前后代码优缺点(阅读性,稳定性,开发效率,扩展性)
4,阅读开源项目源码(先不看实现细节,重点看设计)
设计方面的知识点
1,UML图 一种表达方式,方便程序员能看懂的,不能光自己懂呀
2,设计原理,设计模式(必须理解,设计时查看) 踩在巨人肩膀上
3,类的设计(OO思想,设计到最后还得到类啊)
4,数据结构(集合(map,set,list),stack,数组,队列,树,图)
5,重构总得看吧,不能把重构和重写想提并论
推荐的书:设计模式,面向对象葵花宝典,以及博客专栏等
代码编写的知识点(编写之前必须设计好,不要蛮干)
代码整洁之美 总的看吧
算法导论了解(说实话用自己编写的算法业务场景比较少,一般都是开源的算法)
命名规范
还是面向过程啊
大数据相关方面的知识储备
附录几个干货博客
https://blog.csdn.net/hguisu/article/details/7712813(图的数据结构应用,个人接触的比较少)
http://blog.csdn.net/yunhua_lee/article/details/52710894