- 工程师往往忽略的软件开发能力
- slide 地址
软件开发能力
在刚开始的阶段大家对于语言的关注度往往大于系统层级,业务层级。
软件系统是个大工程,包括 separate programs, configration files ,代码或者编程语言都只是一部分。
发展阶段
- 婴儿期 :poc/mvp 最简单的代码时间,是否可行
- 少年期 :加强健壮性 是否有价值
- 青春期:日志,错误监控,安全,部署,效率 能否提供更多的价值
- 成人期:性能,CI/CD,监控,分析,BI 足够的商业竞争
- 消亡期
可以积累的经验,从一个系统经验抽象出来的能力,用启发式的问题自问
系统能力
-
软件部署 了解数据流转, 络架构
-
系统架构 ()
- 一个请求的完整 pipeline 心中有数
- Qos
- log
- 监控
-
数据架构
- 用户在使用系统时的行为
- 行为收集的event (地点人物事件)
- 多平台数据怎么统一
- 数据聚合,存储,分析,可视化
-
监控和 警
- 性能日志收集,处理
- alert
- 突发事件的快速相应
-
数据收集能力
- 什么数据值得收集(当前收集的数据跟核心业务符合吗,有需要改进的地方吗/li>
- 收集的数据流向了什么系统y
- 数据是怎么聚合的 (batch or realtime, how improve/li>
- how store datasli>
- ad-hoc or report query 视化
-
分析数据能力
- 如何读懂各个指标场景关联性
- 怎么解读数据趋势,同比,环比/B testing)
- 多维度数据变化对应的业务含义
- 异常数据li>
- 数据发现新知识(数据挖掘 )
-
快速决策和解决问题
- 软件开发的本质:, 大到技术栈的选型,小到变量,函数的命名,也是各种最佳实践,经验积累的体现,最终呈现的是我们的系统。这里就需要有个人的
- 决策:需要的是经验和胆识
- 解决问题 完美的方案,所以考虑时间成本 workround 的方案可能更合适
-
什么都略懂一些(万金油)
- 多了解其他的领域,前端,运维,运营,产品,可以更好的理解他人的工作,还有发现更多的机会,对自己的发展有利,不要 自己的角色。
- 交叉混合地带的知识和经验往往具有很大的价值,从历史的发展来看,交叉学科是必然的趋势,知识迁移组合往往发挥 的功效. 举个例子,代码写的6,又会表达,在沟通中就如鱼得水。
-
责任心,担当
- 出问题不怕,怕的的总是出一样的问题,持续改进很重要
- 不管是否自己 oncall,出了问题第一时间投入进去不解决不罢休
- 换位思考,把自己当成用户,将心比心
-
敢为人先:接受挑战
- 面对挑战,不要退却,推责
! 人靠谱最重要
业务能力
要了解的逻辑:
- 公司怎么赚钱的li>
- 离钱越近的职位越重要
每个人都需要了解的业务知识
- 公司如何获取用户给用户提供的价值是什么li>
- 如何留住用户用户产生的收益li>
- 公司和部门是如何花钱的li>
- 用户的单价,投入产出成本
- 用户的 li>
- 公司业务所处的市场环境发展的情况li>
- 公司的差异化在哪优势在哪li>
- 行业是怎么样的业标杆,标准是怎样的li>
从市场角度,财务角度,运营角度来分析公司优缺点,所处环境和未来方向。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!