你问我做技术研发需要哪些能力?
要回答者问题其实很简单,咱们把眼光投射到具体的公司上。
首先先需要明确公司找一个人来是要做什么?
显而易见,就是要去负责一块儿业务。
那么,负责一块儿业务应该具备哪些能力呢?
一、技术能力
这个是基础,无需多言,厨师不配刀还叫什么厨师!
不同的公司有着不同的业务,或者即便是相同的业务,在不同的公司所应用的技术栈也有不同。
所以,有一点就很明确,就是你不可能学习到完美覆盖所有公司技术栈的技能。
那么此时又该如何呢?
主流、大多数、流行的技术栈最好能够掌握,这样你就能覆盖80%需求。
至于什么是主流的,大多数的,流行的,去看看那些大的互联网厂商在用什么就知道了。
学会了这些也只是具备了基础的参与能力,或者说入场能力。想要标新立异,那么就必须拥有自己独到之处。
二、技术广度
什么是广度,简而言之,就是多一点,宽一点。
数据库、NoSQL、中间件、应用框架、服务器等等。
仰观宇宙之大,俯察品类之盛。熟读唐诗三百首,不会写来也会抄。
很多东西你得先知道,才能拿来堆砌解决实际的问题。
举个栗子:
以前见到过有人一个业务代码存了很多份,我问题你为什么存这么多份?他说,要保留历史版本,以防以后有问题再用。
三、技术深度
技术的广度,可以让你广泛适配,但是业务能够做的多精就需要技术深度来支撑。
比如一个接口当前的相应时间是1s,那么怎么才能优化到 500ms,甚至 200ms、100ms 呢?
这里你就要从业务逻辑,基础技术架构方面进行思考了。
是不是响应数据可以精简?
是不是有的业务流程可以合并,或者并行?
是不是底层数据表可以拆分?,水平还是垂直?是不是可以做冗余加快响应?
是不是可以把数据上移到缓存层?缓存用分布式缓存还是本地缓存?还是结合使用?
是不是某些非关键业务流程可以做成异步?异步那种中间件?
等等吧!
四、owner 意识
让你负责了一块儿业务,那么你就要有担负起一块儿业务的负责人意识。
什么是负责人?
简单来说就保障业务良性运作。
1、已有的业务要保持稳定运行
有问题能够快速及时解决。
这里用了叠词,快速及时,这很重要,记住这一点。
互联网化的今天,任何业务面前都可能站着成千上万的客户。客户拉肚子了,你厕所门打不开是不能容忍的。
2、新的业务需求丝滑掌控
技术方案确定,部门协作沟通,项目进度控制等等。
业务来了你能拿出方案,需要什么样的技术,多久的开发周期,能够实现什么样的效果等等。
需要哪些部门配合,产品、测试、运维都需要协作支持哪些工作。
项目排期、进度控制、风险控制、验收收尾等等。
3、持续优化的能力
什么是持续优化?
技术服务业务讲究快、稳、准,响应快,服务稳,数据准。
那么持续优化就是永远对当前不满足!
还要更快、更稳,更准!
200ms 要看 100ms;4 个 9 要看 5 个 9;不实时的准要看实时的准。
4、积极的意识
这个尤为重要,你要明白是你要推着业务往前走,而不是别人推着你和业务走。
该你操的心你不操心,慢慢的你就不用操心了,慢慢的你也就不再被需要了。
五、影响力
可能会有人觉得这个有点虚,影响力跟业务有个毛毛关系啊!
确实,它跟实际的业务没有直接的关系。但是它能影响关联方对你的协作力。
什么是协作力,这里我把他定义为合作、助力意愿。
你的影响力决定了你的输出能够被他们接受的程度。
当你有了权威,你说的就不需要再去解释,你要做的就会有人主动积极的协作,追求的是事半功倍。
马云说的和你们村头二蛋说的【梦想还是要有的】是不一样的!!!