成为一个合格的工程师
- 3. 目标
? 事业目标型
? 团队精英型
? 技术高手型
? 得过且过或养家糊口型
- 5. 专业技能
? 前端( GUI )
? 后端( Server )
? 语言
? ...
够用的知识 - 〉系统的知识结构
- 6. 领域知识
? 社交
? 游戏
? 电子商务
? 门户
? 金融
? ...
- 7. 扩展技能
? 演讲
? 运维
? 写作 *
? 沟通 *
? ...
- 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