[关闭]
@buoge 2017-12-21T15:02:45.000000Z 字数 3777 阅读 1383

陈天: 开发工程师需要的业务能力和软件开发能力

程序构建


http://share.coderena.com/slides/shower/soft-eng-capability.html

  1. 要有持之以恒的耐心来不断应对变化
  2. 善于观察,思考对策
  3. 不断总结累积共性
  4. 孩子最终要从童话世界中走出,面对现实世界的厮杀

软件系统的演进,软件的发展阶段和声明周期

婴儿期:

PoC / MVP,本地运行,只关注成功路径。问题:它是否可行?
从 0 到 1 的成就感
没有脏活累活(错误处理,部署,监控等),全是新鲜体验
就是写代码,没那些乌七八糟的事

少儿期:

开始面对真实世界,加入错误处理,关注健壮性。问题:它是否有价值?

青春期:

日志,错误报告,安全,部署,更多商业逻辑。问题:它是否能为更多的客户带来价值?

成人期:

性能,CI/CD,监控,报警,统计分析,自动伸缩,自动恢复。问题:它是否能持续为客户带来价值,并立足于商业竞争?

 * 无穷无尽的线上问题(还要回头补充 UT,IT,和 metrics 防止 regression) 
 * 重压之下的问题解决能力
 * 很多跟代码无关的事情(业务挂了,你要写个事后分析吧,性能降了,你要分析和解决吧,等等)

消亡期

软件工程能力

什么样的能力可以从一套系统带入到下一套系统?问对问题有时候比解决问题还重要!!!

  1. 一个项目结束后,喘口气,找个可以独处的时间,问问自己:
  2. 这个项目我学习到了哪些我没接触到的东西?我能将他们应用在下一个项目中么?
  3. 我在项目中,哪些事情或者决策能够做得更好?
  4. 如果让我从零到一开发这个项目,我还缺失哪些知识和技能?
  5. * 和具体的功能无关 ——如何使用各种工具和资源,建立一套体系,让软件能够正常 运行 演进
  6. * 收集数据的能力,以及分析数据的能力
  7. * 快速应对问题,进行决策和解决问题的能力
  8. * 万金油 —— 什么都「略懂」

软件工程师能力的几个核心指标

系统架构能力

部署能力

数据架构(数据可视化和场景还原)

数据收集

数据分析

监控报警:核心指标检测

业务场景还原

服务完整性的验证?如何验证用户完整的走完了一个业务流程?还是走了一半卡住了?

如何跟踪用户的每一步操作,以及间隔,什么导致他快速完成,什么导致他等待?

如何发现这样的问题,分析下自身原因是什么导致了用户没有继续下去?

如何应对,使用什么策略,哪种方案来解决卡住的问题?完善自身的服务,更高的促进优化?

如何做 AB Test 来验证目前的服务是否被优化了,以及下一步怎么办?

反向来验证自己的业务和方法展现方式,是否有问题,可以更近一步的地方,在哪里,从哪里入手等等

日志系统

综合素质解决问题能力

快速决策和解决问题

  1. 知识的层次和知识的广度,经验技能决定自己的决策和解决问题能力,做的越多能力越强,正确和错误都会指引者自己往前进,都是学习,要勇于为先
  2. 大流量扛不住:升级硬件,和缓存策略,分流策略
  3. 请求响应慢:优化代码和数据结构,算法
  4. 用户停留时间短:优化推荐算法
  5. 总之,不怕出错,就怕什么也不做!

知识面广一些

责任心有担当,荣誉感

责任心:有担当

敢为人先:不要推辞那些你没准备好的事情

业务能力:离钱最近的职位

程序员的定位

每个人都应该知道的业务知识

市场环境

竞争对手

用户获取

花钱与赚钱

自己的小感悟:

后续感悟

选择关注度最高,离钱最近的职位

场景分析:用户时间的竞争

创业公司一些思考

创业公司核心kpi的考察

考虑公司业务,考虑公司规模
小规模没有挑战,不利于自己成长,接触到达的场景

创业公司中待久了一直成下降螺旋的态势如何补救?

朋友推荐,证明自己,为自己背书

想去理想公司,目前水平不够怎么办?

研究想去的公司,对口做功课

自学语言,或是其他方向

关于迭代周期

一般2周,和scrum 的流程契合
大家工作越久越熟练,衣服穿久了贴身,人用久了贴心

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注