狠狠撸

狠狠撸Share a Scribd company logo
成为一个合格的工程师

   20120328
   @highkay
成为一个合格的工程师
目标
?   事业目标型
?   团队精英型
?   技术高手型
?   得过且过或养家糊口型
独特的个性知识经验组合
? 纵向专业技能
? 业务领域知识
? 横向扩展技能
专业技能
?   前端( GUI )
?   后端( Server )
?   语言
?   ...

    够用的知识 - 〉系统的知识结构
领域知识
?   社交
?   游戏
?   电子商务
?   门户
?   金融
?   ...
扩展技能
?   演讲
?   运维
?   写作 *
?   沟通 *
?   ...
能力模型
? 设计能力(不要过早的编码,也不要过多
  的进行假设,可行的技术方案)
? 交付能力(代码胜于雄辩)
? 规范与协作(避免重复劳动,提高工作质
  量)
? 团队效率贡献(知识积累,分享精神,取
  长补短)
如何解决问题
?   准确的描述一个问题,你已经解决了一半
?   提供足够多的线索
?   你的想法,证据,尝试
?   结论
?   回顾总结(文档,代码)
知识获取的途径
? 官网 / 官方文档 / 官方邮件组 / 论坛(如果
  连官网都没有,建议直接放弃)
? Stackoverflow (依赖英文描述问题能力)
? Google
? iteye/csdn
? 论坛 /QQ 群
? 同事
不重复造轮子
?   apache (推荐 commons 系列)
?   sourceforge
?   googlecode
?   github
?   spring
?   ...
权衡 /Trade-off
?   复杂度(代码行数)和交付时间
?   功能点数量和交付价值
?   关键路径和一般路径
?   大概率场景和小概率场景
?   模式和反模式
?   ...

    采取一个 Trade-Off 时,是否对最坏情况进
    行过假设?
KISS
?   代码越少越好
?   (单次)交付的功能点越少越好
?   依赖越简单(集中)越好
?   细节越少越好

    简单! = 简陋
一个例子
如何做项目
? 分析需求,技术选型(切勿急着写代码,梳理出关键路径
  ,对涉及到的业务逻辑进行技术评估,最重要的是留下文
  档【数据库设计,联网接口设计,流程图 ... 】,明确项
  目周期【定义里程碑 / 节点】,不要扯淡)
? 完成代码框架,构建一个可随时发布的工程
? 根据关键路径制定开发 / 交付顺序,从近到远,从详细到
  粗略,注意项目组内的进度协调
? 开始集中精力编码吧,少年!在适当的时机考虑重构(不
  是为了性能,除非存在明显的性能问题,而是代码结构)
? 频繁交付,频繁发布,尽早测试(考虑实施单元测试)
? 发布之前进行全局的 profile ,适当的进行优化
如何做技术调研
? 寻找并且评估轮子( 0-1 天),一轮评估目
  标不建议超过 3 个
? 搭环境跑例子( 1-2 天)
? 看文档写快速原型( 1-2 天)
? 总结归档,确认方案

 不理想?在第二轮回归中加入自己造轮子
 的选项。
闲下来干啥?
?   业界新闻 via rss,web, 微博
?   读技术 blog
?   总结经验,更新文档
?   CodeReview 和重构
?   为项目做技术储备
?   自己写 blog/ 准备技术分享
?   维护一个开源项目
善用工具
? GTD : Google 日历、任务列表
? 资料同步工具:快盘、 dropbox 、 box
? 知识管理工具: wiki , evernote , wiz
引用来源
? http://timyang.net/management/engineer-
  performance/
? http://blog.csdn.net/myan/article/details/32
  47071
? 这个系列的漫画挺有趣的,都是程序员的
  哏
  http://blog.xiqiao.info/category/programme
  rs
谢谢

More Related Content

成为一个合格的工程师

  • 1. 成为一个合格的工程师 20120328 @highkay
  • 3. 目标 ? 事业目标型 ? 团队精英型 ? 技术高手型 ? 得过且过或养家糊口型
  • 5. 专业技能 ? 前端( GUI ) ? 后端( Server ) ? 语言 ? ... 够用的知识 - 〉系统的知识结构
  • 6. 领域知识 ? 社交 ? 游戏 ? 电子商务 ? 门户 ? 金融 ? ...
  • 7. 扩展技能 ? 演讲 ? 运维 ? 写作 * ? 沟通 * ? ...
  • 8. 能力模型 ? 设计能力(不要过早的编码,也不要过多 的进行假设,可行的技术方案) ? 交付能力(代码胜于雄辩) ? 规范与协作(避免重复劳动,提高工作质 量) ? 团队效率贡献(知识积累,分享精神,取 长补短)
  • 9. 如何解决问题 ? 准确的描述一个问题,你已经解决了一半 ? 提供足够多的线索 ? 你的想法,证据,尝试 ? 结论 ? 回顾总结(文档,代码)
  • 10. 知识获取的途径 ? 官网 / 官方文档 / 官方邮件组 / 论坛(如果 连官网都没有,建议直接放弃) ? Stackoverflow (依赖英文描述问题能力) ? Google ? iteye/csdn ? 论坛 /QQ 群 ? 同事
  • 11. 不重复造轮子 ? apache (推荐 commons 系列) ? sourceforge ? googlecode ? github ? spring ? ...
  • 12. 权衡 /Trade-off ? 复杂度(代码行数)和交付时间 ? 功能点数量和交付价值 ? 关键路径和一般路径 ? 大概率场景和小概率场景 ? 模式和反模式 ? ... 采取一个 Trade-Off 时,是否对最坏情况进 行过假设?
  • 13. KISS ? 代码越少越好 ? (单次)交付的功能点越少越好 ? 依赖越简单(集中)越好 ? 细节越少越好 简单! = 简陋
  • 15. 如何做项目 ? 分析需求,技术选型(切勿急着写代码,梳理出关键路径 ,对涉及到的业务逻辑进行技术评估,最重要的是留下文 档【数据库设计,联网接口设计,流程图 ... 】,明确项 目周期【定义里程碑 / 节点】,不要扯淡) ? 完成代码框架,构建一个可随时发布的工程 ? 根据关键路径制定开发 / 交付顺序,从近到远,从详细到 粗略,注意项目组内的进度协调 ? 开始集中精力编码吧,少年!在适当的时机考虑重构(不 是为了性能,除非存在明显的性能问题,而是代码结构) ? 频繁交付,频繁发布,尽早测试(考虑实施单元测试) ? 发布之前进行全局的 profile ,适当的进行优化
  • 16. 如何做技术调研 ? 寻找并且评估轮子( 0-1 天),一轮评估目 标不建议超过 3 个 ? 搭环境跑例子( 1-2 天) ? 看文档写快速原型( 1-2 天) ? 总结归档,确认方案 不理想?在第二轮回归中加入自己造轮子 的选项。
  • 17. 闲下来干啥? ? 业界新闻 via rss,web, 微博 ? 读技术 blog ? 总结经验,更新文档 ? CodeReview 和重构 ? 为项目做技术储备 ? 自己写 blog/ 准备技术分享 ? 维护一个开源项目
  • 18. 善用工具 ? GTD : Google 日历、任务列表 ? 资料同步工具:快盘、 dropbox 、 box ? 知识管理工具: wiki , evernote , wiz
  • 19. 引用来源 ? http://timyang.net/management/engineer- performance/ ? http://blog.csdn.net/myan/article/details/32 47071 ? 这个系列的漫画挺有趣的,都是程序员的 哏 http://blog.xiqiao.info/category/programme rs