简单说,两个核心诀窍。
1、有钢要使到刀刃上。
2、化腐朽为神奇。
先说有钢要使到刀刃上。
一个人的精力是有限的,合理的分配它极其重要。
因此,请一定要学会“偷懒”,一定要最优化使用你的精力、不断的改进你的工作/学习效率——这个说来话长,就不深入了。
简单说,你要想办法提高自己、让自己能够像爱迪生、牛顿、爱因斯坦那样思考——学不会不要紧,能有一成半成相似也足够了。
然后就是第二点,化腐朽为神奇了。
比如,你说“做了两年游戏服务器开发,依旧徘徊在业务逻辑上”——嗯,的确,很无趣的重复工作……
但,有没有这么一个可能,就是……你能不能抽出业务逻辑的某种共性,然后自己发明一个框架,把今后的业务逻辑相关任务变成简单的几行配置?
比如,像我一样,抢在google之前,搞一个protobuf类似物,如何?
计算机基础知识对程序员来说有多重要? - 知乎 (zhihu.com)
或者,学学某个报社的咸鱼程序员,搞一个……django,如何?
当然,你不必一下子搞的太高大上;但你有没有尝试过,把你的无趣的、重复的业务逻辑,变得稍微自动那么一点点呢?
正常来说,当同一份工作,你总是比别人完成的更快、更好时,你就可以成为“技术大拿”;而当你能够写一个程序、把过去的工作统统变成配置时,你就是不想当“主程序员”,老板也不会放过你了。
你想成为技术负责人是好事,说明你是一个有事业心的人,如果真的想成为技术负责人就该卖力工作,多解决工作中实际问题,做到比别人业务更熟练,然后先成为骨干,再有合适的机会成为主程。
自己工作中出成绩,比你写什么框架都强。别搞反了,成天把时间费在和工作无关的事情上,耽误了本职,最终给别人留下一个:知道的挺多的,可惜工作不突出,做东西又慢的印象。
见过的凡是得到提升任命的主程们,无不是出色的解决了工作中各种实际问题,或者优化了性能,或者降低了整体开发成本,引入更多自动化机制,或者解决了效率问题。他们都是主动在工作中争取承当更大责任的人,不是成天钻研各种虚无缥缈的东西的人。
怎么争取承担更大责任呢?一句话,快,做东西要快,别人做两天你做一天,天下武功唯快不破。时不时告诉主程你已经做完了,接下来做什么?多问几次,然后主动跟他提,哪块还需要搞一下,你想把它搞一下,不然以后XXX。
承当了更多责任的时候,就可以象主程提建议说自己这边事情太多,能不能有1-2个实习生或者新人。然后从带好实习生和新人开始,多为组内培养人才,进而成为组内骨干。
最后谦虚谨慎,等待时机即可。
以前一位朋友是某团队技术负责人,产品上线前两天发现重大设计问题,机制考虑不周到,不是简单的bug,时间又是个deadline,他和另外一个同事连续奋战三十多个小时重写了数个相关模块,最后成功上线了,没提倡你象他一般加班,身体还是首位,但是在有限的合理工作时间内能否保持他那份持之以恒的冲劲来工作呢?(PS:人家是三十多岁的年纪了还那么拼)
世界就是那么残酷,你需要和别人抢工作,请用实际工作证明自己的能力,而不是一个人躲在出租屋里摆弄一些自己觉得高大上的小玩具。
------
注:楼下说,只写引擎不写业务,只写低层不写逻辑,我告诉你,任何一个团队所有程序员都是这么想的,但那么多程序员,主程该分谁写这些低层呢?让谁写对项目稳定有利,让谁写最可靠呢?第一是业务骨干,第二是他自己。你如果哪天成了主程,自然可以自己想做什么做什么,但如果连业务骨干都成为不了,怎么去“只写低层” 呢?
注:技术当然要学,个人当然该自我提高,这方面不用我强调,是个合格程序员都会自我提高,我是让大家别忽视和你自身利益最相关的本职工作,而一味把时间投入到一些虚无缥缈的东西里,而忽略了项目本身对人的锻炼,以及对个人价值的直接体现。
最后:要成为主程,先成为主程的得力助手,要成为业务骨干,先成为业务骨干的得力助手,职位这种东西要讲天时地利人和,但先成为一个业务骨干,一个主程的好帮手,却是完全可以凭借你自己的努力做得到的。
别总等着别人给你锻炼的机会,每个人都想要有锻炼的机会