动态编程一时爽、代码重构火葬场。
- 不以赚钱为目的选择学习的内容
- 以自己是否能造出轮子来衡量学习的效果
- 坚持每天写自己的代码,前十年每天至少6个小时,不包括学习和工作时间
- 对所做的事情的理解越深,你就会做的越好。
- 服务:将单页面单请求拆分为多个请求,拆分服务
- 代码级别的文档,只写别人经常看的文档
- Component-Driven dev 模块驱动开发
- 测试驱动开发
- 数据驱动开发
软件工程师的基本素养
- 计算机程序的构造与解释
- 深入理解计算机系统
- 算法引论 算法导论
工具的使用
- git
- vim
- maven
- phabricator
- Jenkins
程序员的核心竞争力
- 专业领域技能:不可替代性
- 跨领域的技能:解决问题的能力,类比抽象的能力,扩展重用思维发散考虑周全的能力
- 学习能力:keep hungry keep foolish,持续学习,不断思考
- 性格要素:沟通交流能力,清晰表达观点的能力,理性思考,好奇心,自省,keep an open mind
什么是能力
- 遇到问题的态度
- 处理问题的思路和方法
- 独特的个性知识经验组合(绝无仅有,实践中的价值
- 以最小的代价解决问题(思维的方式
- 重构是程序员的主力技能
- 工作日志可以提高脑容量
- 先有profiler调查,后有优化
- 要写注释,要写注释,要写注释
- 写单元测试总是不会错的
- 从实现中提炼框架
- 代码层次清晰,结构清楚
- 管理行不行,就看工作流
- 编码不要畏惧变化,要拥抱变化
- 常充电,程序员只有一种死法,土死的
- 把不靠谱的需求放到最后再做,很可能到时候需求就改了
- 可维护性比性能更重要
- 解决专业问题的时候,请找专业人士,不要自己瞎钻
- 学习新技术,先过一遍文档,后看博客
- 删代码,找bug
- 搜索
- debug
- 多看书
- 多写代码
- 多思考
- 多学习新知识
- 多运动
- 闭环
- 谁难受谁推进
- think bigger
什么是好代码
完成功能的代码
高性能的代码
易读的代码
可测试的代码
可扩展的代码
如何编写可读的代码
逐字翻译
遵循约定
文档和注释
编写可发布的代码
处理异常
处理并发
优化性能
日志
可维护的代码
避免重复
划分模块
简介与抽象
如何做出好的设计
设计模式
单元测试
从哪获取信息
推荐刘未鹏的书《暗时间》