翻译github上最近很火的一个工程HowToBeAProgrammer,
讲述如何做好一个程序员,
适合不同阶段的程序员阅读,
翻译好的中文版本在这里How-to-Be-A-Programmer-CN,欢迎star收藏,
已经被merge到原工程中
可以在gitbook查看:地址
贴一下目录方便大家了解:
入门
- 个人技能
- 学会Debug
- 如何分离问题debug
- 如何去掉一个Error
- 如何用Log来Debug
- 如何理解性能问题
- 如何解决性能问题
- 如何优化循环
- 如何处理I/O开销
- 如何管理内存
- 如何处理偶现的Bug
- 如何学习设计技能
- 如何进行实验
- 团队技能
- 为什么预估很重要
- 如何预估编程时间
- 如何搜索信息
- 如何把人们作为信息源
- 如何优雅地写文档
- 如何在垃圾代码上工作
- 如何使用源代码控制
- 如何进行单元测试
- 没有思路的时候,休息一下
- 如何决定下班时间
- 如何与不好相处的人相处
进阶
- 个人技能
- 如何保持活力
- 如何被广泛信任
- 如何在时间和空间权衡
- 如何进行压力测试
- 如何在简洁与抽象间平衡
- 如何学习新技能
- 学会打字
- 如何做集成测试
- 沟通语言
- 重型工具
- 如何分析数据
- 团队技能
- 如何管理开发时间
- 如何管理第三方软件的风险
- 如何管理咨询师
- 如何适量交流
- 如何直言反对意见以及避免如此
- 判断
- 如何在开发质量和开发时间权衡
- 如何管理软件系统依赖
- 如何判断一个软件是否太不成熟了
- 如何决定购买还是构建
- 如何专业地成长
- 如何评估面试
- 如何知道何时实施昂贵的计算机科学
- 如何与非工程师交谈
高级
- 技术评判
- 如何从不可能的事情中找到困难的地方
- 如何使用嵌入型语言
- 选择语言
- 机智地妥协
- 如何与时间压力作斗争
- 如何理解用户
- 如何获得晋升
- 服务你的团队
- 如何发展才能
- 如何选择工作内容
- 如何从你的同伴身上获得最大收益
- 如何分割问题
- 如何处理无趣的问题
- 如何为一个工程获取支持
- 如何发展一个系统
- 如何高效交流
- 如何把别人不想听的话说给他们听
- 如何处理管理神话
- 如何处理混乱的组织