惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy International News Feed
Simon Willison's Weblog
Simon Willison's Weblog
I
Intezer
Spread Privacy
Spread Privacy
The Hacker News
The Hacker News
P
Palo Alto Networks Blog
TaoSecurity Blog
TaoSecurity Blog
S
Secure Thoughts
Google Online Security Blog
Google Online Security Blog
H
Heimdal Security Blog
N
News | PayPal Newsroom
Attack and Defense Labs
Attack and Defense Labs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
博客园 - 【当耐特】
Webroot Blog
Webroot Blog
小众软件
小众软件
Help Net Security
Help Net Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
PCI Perspectives
PCI Perspectives
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Cloudflare Blog
Cloudbric
Cloudbric
AI
AI
WordPress大学
WordPress大学
博客园 - 聂微东
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
Hacker News: Ask HN
Hacker News: Ask HN
H
Hacker News: Front Page
博客园 - Franky
V
V2EX
Schneier on Security
Schneier on Security
G
GRAHAM CLULEY
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
H
Help Net Security
量子位
S
Security @ Cisco Blogs
大猫的无限游戏
大猫的无限游戏
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Recorded Future
Recorded Future
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
C
Cisco Blogs
S
Security Affairs

Mobility

从薅 token 到管 skill:我的 pks 工具落地实践 把笔记、微信读书、知乎装进 Obsidian:我基于llm-wiki知识中枢搭建实录 免费AI视频生成器:我如何用零成本做出带旁白字幕的多场景AI视频 Agnes免费模型真能白嫖视频?我改造了ViMax来试试 教你薅token(二):构建agent无关的skills管理工作流 教你薅token:构建agent无关的AI工作流 用 AI Agent 完成 Hexo 主题迁移:从 Next 到 Butterfly 的全自动化实践 Vercel封禁163邮箱后,我是怎么恢复博客的 用LLM管理安全开发规范:一次llm-wiki实践 Vaadin框架教程:Java工程师的前端开发秘籍 hexo多语言方案总结及最佳实践 知乎增强工具-评论时间精确到秒 怎么理解数据库的四个隔离级别 kubernetes是什么-实用向教程 怎么更科学的用知乎摸鱼 读书笔记《系统之美》,如何面对现实中的复杂问题 分布式系统设计中的通用方法 高并发解决方案很难吗?轻松聊清楚高并发设计 SSP,DSP,RTB,ADX都是什么? 讲讲互联网广告的概念与发展 从redolog,undolog到隔离级别,刨根问底,讲清楚事务和ACID java项目低学习成本使用kubernetes的实践经验 剧变中的2021-一个中年工程师的年终总结 kubernetes环境下做金丝雀发布的一种思路 prometheus教程: 一篇文章讲懂prometheus 实现一个简单的java版本高性能获取ip地址所属国家工具 iterm2配置ssh书签, 实现记住密码和自动登录 怎样做一个好的技术分享 云原生究竟是什么 读书笔记 稻盛和夫《干法》-思考应该怎样去工作 review的个人价值 户口?大厂?高薪?生活?聊聊应届程序员的职业选择 RPC接口将所有输入输出封装成类是合理设计吗 设计模式的原则,设计模式究竟是什么 我提升开发效率的经验 通过合理的设计降低软件开发复杂度 信息传播过程中的衰减 看房小记-2020北京学区 读书感悟:文明、现代化、价值投资与中国 读书笔记-我曾走在崩溃的边缘 [翻译][关于分布式架构和系统设计]分布式系统的模式-综述 redis的对象 redis里的数据结构 设计模式备忘录 聊聊程序员的职业生涯,我对程序员这个职业的理解 通过mysql批量操作不生效问题聊聊java里mysql的batch 【实践经验】单元测试怎么写 关于rocketmq的readQueue和writeQueue 数据分析的利器-clickhouse介绍 通过位运算转换大小写 activemq多线程消费的不同处理方式 高并发下作余额扣减的一些经验 java细节:三目运算符和自动拆箱 设计一个开源的北京地铁路线规划小工具 java版本 redis cluster的数据迁移 jstorm源码解析之循环任务AsyncLoopThread activemq特性之持久化 activemq的安装及基本使用 activemq系列-概述 hexo教程:博客系统搭建及部署到github jstorm的监控metrics数据输出到第三方存储介质 camel系列之camel debugger的使用 jstorm源码解析之bolt异常处理 log4j动态添加appender 【翻译】java里编写基准测试的一些经验 java线程池:获取运行线程数并控制线程启动速度 maven里的mirror和repository: 配置多repository 使用maven shade plugin 打可执行Jar包 activemq plugin开发指南及示例 通过加入classpath的形式实现命令行运行java程序时引入第三方jar包 解决fatjar的 “java.lang.SecurityException: Invalid signature file digest for Manifest main attributes” 问题 通过实际操作理解redis cluster原理 一种实现在hbase中存储set的思路 log4j2.xml配置示例及与log4j的区别 不实现equals方法的情况下比较java list 使用lua脚本和jedis实现redis的hmsetnx命令,操作hash表时不覆盖原有数据 vitualbox虚拟机安装centos 7 及ssh访问、自启动等配置 在java独立进程(standalone app)中嵌入hawtio监控 java日志系统简介: 从tomcat大量打印debug日志说起 Java kryo/protobuf/protostuff序列化 or Json 性能对比 java分布式锁入门实战 leetcode第三题: 输出不包含重复字母的最长子串 java多线程实现三个字母顺序输出 一次kafka空间激增排查:kafka的数据压缩、批量发送等 java里128有何魔力? 聊聊Integer的缓存 storm/jstorm生态与周边工具,storm连接activemq,kafka,hdfs等 jstorm UI 介绍 五分钟学会写storm代码: jstorm/storm编码原理与普通java程序的区别 activemq web console的权限配置 storm ui 中一些关键属性的含义 activemq 5.6 连接池的内存泄露问题 关于apache camel的消息转发效率 一篇不错的lda模型入门文档 wordcount代码 hadoop基本的学习资料
程序员做业务开发的价值
流沙 · 2021-03-12 · via Mobility

说一下我个人的经历,其实在我刚毕业的第一家公司里,做的就是底层的中间件开发。但是做的过程中,觉得并不喜欢这种远离实际业务的感觉,所以后来换工作的时候就有意的选择了业务部门。所以,今天想讲一下为什么会做这种选择。

我为什么不做底层开发

首先,我想说一个很多人的认知,就是认为做底层的开发更容易学到东西,成长更快。我觉得这就是业务开发同学的臆想而已,底层开发没有大家想的那么利于学习,业务开发也没有大家想的那么不利于学习,原因我会在后边展开说。而之所以很多人有这样的认知,很大程度上是因为底层开发的招聘标准通常会高一些,所以这些人本身的学习能力和意愿就是要好一些。

其实底层开发的日常和业务开发也没有太大区别,都是在做需求。只是业务需求的来源是产品经理,底层需求的来源是其他开发,或者底层开发者本人的思考和想法。这里,我要说自己为什么不愿意做底层开发的第一个原因了,就是需求的来源不科学。首先,如果只做底层开发,而脱离了实际业务场景的话,对于技术的认知很可能是有偏差的,这样导致自己想做的一些事很可能是在自嗨,并没有实际应用价值。而如果从其他那些搜集需求呢,也会有类似的问题,业务开发的同学提出的意见可能也就是他自己的非常浅的想法而已,不一定经过了很完善的考虑;再者,业务同学对基础组件究竟该干什么也未必理解准确,他可能分不清楚什么事应该基础组件解决,什么事应该自己解决。

在这,引入了我不愿意做底层开发的第二个原因,就是职责边界不明确。这个和配合的业务方的能力强相关。有时候,自己有些事没做好,业务方也能找到办法解决;而有时,明明和自己没关系,也要被迫处理一些上层的逻辑。

大家也可以看到,上边两个问题都极度依赖同事的能力,所以,如果你一定要做底层开发的话,一定要去技术能力储备强的公司,这个直接关系到你的工作幸福度。公司的选择还影响一件事,就是工作内容,简单的说,就是要造轮子,还是完善开源工具,两类工作可以说是天差地别。造轮子,需要对各种底层知识很熟悉,确实是很能促进进步,这个也是“做底层有利于成长”这种想法的来源。但是这种事仅存在为数不多的几家大公司中。其他大量的完善开源工具的工作,其实和业务开发没有任何区别,只需要了解一下开源工具的边边角角,就可以完成大部分工作,既没有深度,也没有广度。我开篇的时候说底层开发并不能帮助学习,原因也就在这。

所以,要做底层开发,公司的选择至关重要,大,技术能力强,两个条件缺一不可。大家肯定会问,我去这样的公司做不就行了吗。话是这么说没错,但这带来的问题也就来了,这也是我不想做底层开发的第三个原因,职业选择面太窄。国内java底层做的好的也就某里某团两家而已,这两家的企业文化大家也都清楚。所以,不想去这样的公司,是不是就不干了?即使你能接受,巨大的供需量对比,也会带来疯狂的内卷,就像算法岗那样,你是否有足够的把握赢得这场内卷游戏呢?而对于业务开发来说,大厂经历只是一段必要的学习经历和自己简历上的一个亮点,当你对大厂的整个规范流程熟悉了之后,就可以自由的选择想去的公司了。

业务开发的价值

前边讲底层开发说的太多了,下边进入正题,就是业务开发的价值。在我看来,业务开发带给我的能力提升主要在三个方面:业务知识的积累,技术广度的提升和综合能力的提升。

先说业务知识,业务知识其实就是对现实世界的理解。对于我个人来说,工作之余,了解一下其他行业的运转模式,首先就是一个很有意思的事情。其次,不断的去了解不同行业的行业知识,我是完全能感受的到对我认知能力的提升的。这种能力能不能变现?当然是可以的。比如去炒股,工作中的积累让我有了分析一个公司商业模式的能力,对于什么样的是好公司好股票,显然可以比一般人理解的深一些。当然,这儿扯的太远了,大家看看就好,关键是看自己的兴趣,有没有意愿去了解一些技术之外的事情。

接下来是技术广度。业务开发和底层开发的最大区别,其实就是底层开发对深度要求更高,而业务开发对广度要求更高。业务开发需要对各种各样的框架、中间件都有所了解,并且不能了解的太浅,也需要一定的深度,要能够理解它们能解决什么问题,又会带来什么问题,适用于什么场景;面对复杂的业务场景和复杂的系统,要能够全面理解;发生问题时,要有能力快速定位到问题在哪。这些除了需要知识的积累,也需要实际场景下经验的积累。

然后说一下综合能力的提升,相比底层开发,业务开发对人的通用基础能力会有更大的锻炼,比如沟通能力、分析解决问题的能力、权衡取舍的能力。这些能力可以说和技术有关,但关联也没那么大,极端的讲,即使你将来转行了,这些普适性的能力也会很有帮助。我时常在想,学着用一个开源工具,和打王者荣耀,究竟有什么区别。作为新手,参考着现成的例子做一个demo, 就相当于第一次接触这个游戏,随便打打。而随着对这个逐渐熟悉,有的人可能就成了没有感情的调包机器,而有的人就可以逐渐去了解底层的实现。就像游戏里,有的人一直浑浑噩噩,打了几千场连电刀和无尽战刃有什么区别都不知道,而有的人就会去探索伤害的数值机制。所以,我觉得大家别把程序员看成一个多特殊的职业,它和其他职业并没有什么本质的区别。大部分职业事实上都是在用不同的方式解决问题,比如律师是依靠法律,基金经理是依靠对市场和基本面的认知,程序员就是靠代码。我们在不断的工作中,锻炼的是解决问题的能力,而解决的方法并没有人要求你一定要限制在技术之内。

我们在业务开发中,就是要不断积累上边三个方面的能力,这样才能滚起雪球,从而从容的应对中年危机。我写这篇文章,当然也并不是要说业务开发就是好,主要还是想帮大家分析清楚业务开发和底层开发的区别,从而做出一个理性的选择。

如果大家有什么想法,也可以来和我沟通。

原文地址: https://lichuanyang.top/posts/40071/