初级工程师的困惑
曾经有公众号的小伙伴后台联系我,咨询一些问题。有一个粉丝问过这样一个问题:
群主,向你请教一个困扰我很久的问题,从毕业到现在,我一直从事大数据平台开发d的工作,主要是搭建CDH周边产品,并在基础上开发一些BI产品和内部的分析系统。我很喜欢这份工作,但就是离业务太远了,很少了解用户到底需要怎么的BI产品和数据平台。所以每次看到数据分析师接触真是的也无需求,可以把自己的想法和业务结合起来,得到老板认可的价值,我都会很羡慕。目前公司的大数据平台产品还不是很成熟,需要作为技术平台核心人员的我比较受重视,但是随着公司数据平台的完善,对于不懂业务的我,是不是会淘汰呢?
收到收到这条消息,我很欣喜。首先,作为一个刚毕业两年的同学,能有这种居安思危的想法,已经超越了很大一部分职场人。其次,我其实和这位同学有着相似的经历,很愿意去分享一些自己的想法。
技术 or 业务
首先,其实除了很少岗位不需要懂业务外,大部分公司的技术岗位都需要懂业务的,随着大数据平台的逐步成熟,有了平台开发这样一个岗位,他们主需要关注平台的功能,不需要关注具体的业务逻辑,随意大数据平台开发人员存在着和业务脱节的问题。作为开发人员我们经常嘲笑产品经理只懂业务,不懂技术,但是我可以明确的告诉你,只懂技术,不懂业务,在绝大数公司中是不会成为核心骨干的,技术永远都是服务于业务的,特别是在商业公司中。这也是刚毕业学生和资深工程师的区别,工作5年后,绝大多数工程师都会成为某一领域的业务专家,能够把业务和技术灵活的结合起来,解决企业实际的问题,以及在看到一些技术问题时候,会通过业务的变通来解决问题。那么在实际工作中,我们如何平衡技术和业务的关系呢?
记住下面一句话:撸代码的时候别忘了思考!
曾经的同事
我曾经遇到过一个同事,开发了一个XX分析应用系统,但是当业务人员问他这个数据怎么来的时候,他完全搞不明白,只是一句话,这个需要问产品经理。问产品经理固然没错,但作为系统核心开发人员,也要清楚的知道自己每个接口开发的逻辑,服务的业务。我们总是嘲笑产品经理不懂技术,产品是不是也会把开发当做撸代码的机器呢?
即使是作为平台底层的开发工程师,大部分时间都是对读写进行优化,但是读写的场景你都不了解,怎么去优化呢?只是一味的升级技术?增加内存?上固态硬盘?你需要去了解访问高峰时在什么时候,哪些场景下读高并发?哪些场景写高并发?那个复杂的查询SQL是在什么业务场景下触发的?这些都是作为开发工程师需要了解的,也许你花了很多时间和资源去解决的一个慢查询,只需要通过业务角度的一个转换就可以去解决掉了。
我的故事
记得之前做数据开发的时候,领导给我们布置了一个任务,去看业务系统的设计文档,现在想起来,真是感谢领导给自己指了一条明路。后来团队来了一个高级工程师,进公司的一个月内,把公司的各个业务系统都熟悉了一边,收集的一些资料都是我们干了两年都没有接触到了。通过这件事,我也养成了这个习惯,进入一家新公司后,首先是通过各种资源,获取公司目前开发的业务系统知识文档,熟悉公司在干什么。
当然,这样说着很轻松,其实要在干好自己本职工作之外,再思考学习,你也许就需要加班。提到加班,很多人已经反感至极,but me too!但是初期都会有这样一个阶段,每个办公室都会有那么一两个人走的比较晚,后来你发现慢慢的这几个人要么走了,要不成为了你的领导。
数据产品
当你熟悉的公司的产品之外,研发人员也可以成为产品经理的。特别是随着大数据平台越来越普及,来了一个新的职位:数据产品经理,这个职位还真不是一般产品经理能干的。不懂几个大数据技术栈和后端系统设计的,你还真接不了这个活。
解惑
所以,现在我想给那位大数据开发同学说,趁现在,去了解公司的业务吧,多去和数据分析的同事聊聊,和产品聊聊用户需求,不要迷茫,也许数据产品就是你的方向。