天天写业务代码的程序员,怎么成为技术大牛,开始写技术代码?

1)拜大牛为师 -- 你想得美
看起来很美好,实际上想拜大牛为师的多了去了,大牛凭什么看中你呀;而且一个公司或者部门的大牛本来就不多,你正好和大牛在一个组的几率是很小的;如果都不在同一个组,你根本都没有机会接触大牛,更别说深入请教和学习了;
如果是组内的小牛,一般都是骨干核心,本来工作也很忙,你天天问一些在他看来比较低级的问题,别人也烦呀。像我这种乐于助人好为人师的,可遇不可求 :)
补充:不是说不要向比你厉害的人学习和请教,而是说不要问书本或者google能够查到的东西;
2)业务代码一样很牛逼 -- 很傻
这样的答主我估计没有怎么真正参与业务开发吧? 实际上在公司里面,业务代码真的没太多技术含量,就是实现产品功能即可,而且翻来覆去就那么一些,写多了真的会很烦躁的。
3)业务代码写多了能力就上去了 -- 很天真
这也是误人子弟的,写一万行hello world,水平不可能提升的;redis也就3万行代码规模,几个人能写出redis ?你写10万行业务代码都写不出redis的。
4)上班太忙没时间自己学习 -- 你想多了
嗯,这是中国国情,难道你还指望每天上班给2小时给你自我提升 ?

我讲讲我是怎么混出来的。
最重要的是明确一个道理:靠自己!在你水平不高的时候,不要想着人脉、关系这些,不要被那些乱七八糟的励志书忽悠了。否则你会发现热脸贴冷屁股,要不就是浪费钱请人吃了饭而已。
要靠自己去学习提升,没有时间就挤出时间,将打游戏、睡懒觉、看电影的时间挤出来;
要靠自己去争取机会,不要等着机会砸到你头上。你说自己天天完成业务代码就OK了,从来不分享、从来不提优化建议、别人讨论nginx你连nginx是啥都不知道、有任务能推就推。。。。。。然后等着哪天主管突然给你安排一个有技术含量的事情?这是不可能的。
要考自己主动去探索,不管是熟悉更多业务,还是熟悉更多代码,还是了解整体架构,都需要自己主动去做。不要指望谁告诉你这里是重点,那里是难点,还有关键点在哪里。

总结一句话:只有你自己牛逼了,机会才会到你头上

前面讲了大道理,接下来讲我的实际方法,不多,就两条。
【Do more】
做的更多,做的比你主管安排给你的任务更多。

我在华为的时候,负责一个版本的开发,这个版本的工作量大约是2000行左右,但是我除了做完这个功能,还将关联的功能全部掌握清楚了,代码(大约10000行)也全部看了一遍,做完这个版本后,我对这个版本相关的整套业务全部很熟悉了。经过一两次会议后,大家发现我对这块掌握最熟了,接下来就有趣了:产品讨论需求找我、测试有问题也找我、老大对外支撑也找我;后来,不是我负责的功能他们也找我,即使我当时不知道,我也会看代码或者找文档帮他们回答。。。。。。最后我就成了我这个系统的“专家”了。虽然这个时候我还是做业务的,还是写业务代码,但是我已经对整个业务都很熟悉了。

以上只是一个简单的例子,其实就是想说:要想有机会,首先你得从人群中冒出来,要想冒出来,你就必须做到与众不同,要做到与众不同,你就要做得更多

怎么做得更多呢?可以从以下几个方面着手:
1)熟悉更多业务,不管是不是你负责的
2)熟悉更多代码,不管是不是你写的
3)熟悉端到端

比如说你负责web后台开发,但实际上用户发起一个http请求,要经过很多中间步骤才到你的服务器(例如浏览器缓存、DNS、nginx等),服务器一般又会有很多处理才到你写的那部分代码(路由、权限等)这整个流程中的很多系统绝大部分人是不可能去参与写代码的,但掌握了这些知识对你的综合水平有很大作用,例如方案设计、线上故障处理这些更加有含金量的技术工作都需要综合技术水平。
4)自学
写业务代码所用到的技术比较少,我们可以自己学习更多,说不定哪天就用上了。
以java为例,大部分业务代码就是if-else加个数据库操作,但我们完全可以自己学些更多java的知识,例如垃圾回收,调优,网络编程等,这些可能暂时没用,但真要用的时候,不是google一下就可以了,这个时候谁已经掌握了相关知识和技能,机会就是谁的。
以垃圾回收为例,我自己平时就抽时间学习了这些知识,学了1年都没用上,但后来用上了几次,每次都解决了卡死的大问题。

【Do better】
要知道这个世界上没有完美的东西,你负责的系统和业务,总有不合理和可以改进的地方,识别出来,并且给出解决方案,然后向主管提出,一次不行两次,多提几次,只要有一次机会,你就有机会了。
例如:
重复代码太多,是否可以引入设计模式?
系统性能一般,可否进行优化?
目前是单机,如果做成双机是否更好?
版本开发质量不高,是否引入高效的单元测试和集成测试方案?
。。。。。。。。。。。。。。。。。。。
只要你去想,其实总能发现可以改进的地方的;如果你觉得系统哪里都没有改进的地方,那就说明你的水平还不够,可以多学习相关技术,多看看业界其它公司怎么做,BAT都怎么做。

我2013年调配到九游,刚开始接手了一个简单的后台系统,每天就是配合前台做数据增删改查,看起来完全没意思,是吧?如果只做这些确实没意思,但我们接手后做了很多事情:
解耦,将一个后台拆分为2个后台,提升可扩展性和稳定性;
双机,将单机改为双机系统,提高可靠性;
优化,将原来一个耗时5小时的接口优化为耗时5分钟。。。。。。
后来我们这个组承担了更多的系统,现在这个小组5个人,负责了6个系统。

归纳总结一句话:靠自己、做更多、做更好
记住:不是因为给你安排高水平的工作你才有机会提升水平,而是因为你水平高了才有机会给你安排高水平工作!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值