业界大多数人都会遇到一个这样的问题,天天写业务代码,if-else,for,CRUD操作数据库,什么时候能成为技术大牛,写技术代码呢,决定一个项目的架构呢?
可能有的人会有以下几个想法:
- 找个有大牛的团队,带带我,每天给自己开个小灶或者给自己分配点难度高的功能,自己搞搞就能够成长起来。
- 业务代码写的很厉害,就很牛13了。
- 上班太忙,没时间自己学习
第一个想法,很美好,实际上呢,大牛的岗位,每天比程序员的负责的维度更高,内容更宽,哪里有时间单独给你讲解,大牛是在遇到问题,或者无法复盘大牛是如何解决问题的时候,请大牛指导讲解一下,大牛当时是怎么考虑的,为什么会这么考虑,基于什么判断的。大部分还是要靠自己的系统性的、有针对性的提升。曾经与阿里的张志远聊过,也是从一个很高的层次上,给了一些建议,前后不到500字,就去忙了!根本找不到太多的机会与大牛多频次的交流!
第二个想法,业务代码用了各种各样的技巧,比如用了封装和抽象使得业务代码更容易扩展,可以和产品交流,更好的理解和实现功能,日志记录的非常详尽,定位问题的效率提高了10倍...上面的这些都是肯定的,也是有技术含量的,但是这些只是作为一个程序员应该具备的,是最基础的,这些只是游戏中的小兵,小副本,打小副本到最后的升级是最慢的,此时需要更新自身的装备,锻造到新的等级,比如一刀砍6666666等,有了新的装备,就可以去挑战更复杂、更有难度的挑战了。如此往复,最后成为游戏站街的顶级大牛!!!有需要的小兵会自主的找上去询问一番~
最后一个想法,其实现在国内的99%的程序员都是这样的,每天下班也差不多8、9点了,996不是盖的,在这样的场景下,出现的大牛也是如有很多,阿里的这么多大牛,哪个不用霸王洗发露呢?!
其实学习,还是工作和利用碎片时间来学习的,自己的提升很大程度上是靠着写“业务代码”来提升的,每个程序员都是身处某一行业,做解决某个痛点的项目,都是从写业务代码,一步一步走上来的,区别只是写业务代码,非彼写业务代码而已!
那么如何做呢?
- 多做一些,比分配的工作,多做一点,比如在做完工作后,看一下整个系统的源码,对整个系统都有一个深度的理解和认识,对以后的工作都是有好处的。
- 做的更好,再多么完善的系统,总是会有问题的,所负责的总有不完善和需要改进的地方。如重复代码、系统性能低、单机改为多机、多个功能模块解耦等
- 多练习,光看不用,早晚都会忘掉的,通过一些模拟场景的代码,或者基于对原理的认识,自己写一套实现方案,与现有的成熟实现方案进行对比,看一下差距。还是老话,“自己动手,丰衣足食”
总起来就是一句话,在工作以及工作之余,自己多搞搞,系统性的和有针对性的提高学习,早晚有一天会成为大牛的,10年为一个周期