程序员该面向业务开发还是面向技术开发?
The following article is from 飞天小牛肉 Author 小牛肉
第一时间收到文章更新
就我个人理解,面向业务开发就是应用层开发,面向技术开发指基础架构、中间件等的开发,前者基本面向没有技术背景的普通用户,后者面向技术人员。
业务开发的难点首先在于需要有行业知识,针对现实需求去做抽象设计,并尽量预留好扩展以覆盖到多个未来场景,其次就是老生常谈的 toC 业务的三高问题。技术开发的难点在于首先要对各种底层知识有充分的了解,熟读源码,其次要能够切实解决底层问题,做好封装。
在网上看见的某个言论,我觉得很是正确:
“纯技术,需要有一定的深度,35 岁的时候要能解决 30 岁的程序员无法解决的问题;
搞业务开发,也不是说坐等需求,需求来了能按时按量完成就算完了,还是需要能理解业务逻辑、理解商业逻辑,并站在开发角色上,如何驱动整个组织的目标往前迈进;
所以,无论哪个方向,都需要能有公认的贡献度,到了一定的年龄,也要有该有的积累,这样才会有发展”。
业内可能隐约有一点点鄙视链,觉得做基础组件更加底层,技术更深入。但试想一下,如果你是公司老板,想开设一个新的部门做 CRM 方向的业务,招聘高级工程师的时候你是不是会看候选人有没有 CRM 相关的工作经验呢?
所以其实殊途同归,无论是技术开发还是业务开发,其核心竞争力都在于能不能产生商业价值,比如技术开发能否降低人效、提高稳定性等?业务开发能否充分理解业务逻辑,及时上线功能等?
技术是工具,如果写下的代码有没有产生价值,是业务还是底层都没有什么区别吧。