- 计算机上运行的是确定性的事件。
- 计算机上常常运行的是非常复杂的大型系统,这是一个很复杂的确定性的事件。
- 给自己留条后路,考虑一下出了问题怎么办。怎样去进行恢复。
- 即使是最优秀的程序员,也无法做到全知全能,或者某方面的全知全能。这个完全就看个人经验的积累。所以会有资深程序员和高级程序员的区别。
- 实话实说,说自己会什么,什么知道,什么不知道。
- 对我个人而言,我比较喜欢的方式是知道这件事的意义,知道这件事的价值所在,而并非毫无自己独立思考地去被指挥。
- 任何事情的完成都是需要一定时间,一定资源的。
- 在技术团队中多做脊椎和神经器官,不要把自己定义为四肢的全部。
常见的团队合作过程中编程误区:
- 我一个人可以完成所有的编程工作。
- 我一个人可以掌握一个项目完成的技能点。
- 我做出错误评估、答应的事情,绝对会把它做到,而不会承认自己先前的判断失误。
- 项目中所有的不确定事项、待评估问题 我一定可以解决,只是需要时间而已。
- 我有必要掌握项目代码的方方面面,各个细节。
- 我全知全能。
软件开发从业人员的主要的技术专业技能:
- 自顶向下的全局性分析能力。P1
- 自底向上的快速上手能力。P2
关于这两方面能力如何平衡是需要不断实践、探索的。P1做的很强做起事来可能就会自己想要把所有的都看懂,P2做的很强很多时候理论就会有所欠缺。
一位经验丰富的前辈在淘宝的工作内容:
- 参与了数据交换工具DataX的开发,DataX支持插件开发,可以完成各种存储之间的数据交换,比如:将MySQL的数据导入Oracle中、MySQL数据导入HDFS等。
- 参与了淘宝数据库实时同步工具Dbsync的开发,MySQL通过分析binlog实现数据的实时同步。
- 参与了淘宝负责海量数据传输的分布式消息中间件TimeTunnel的开发,是云梯数据的主要来源。
- 改造了阿里历史悠久的全网日志系统。
- 参与Tengine以及Nginx模块开发,熟悉Nginx核心源代码。
- 使用Go语言开发了阿里集团日志搜索、分析的分布式平台;第一次从前端做到后台。
- 开发了阿里CDN调度系统的高性能DNS服务器。
- 看过不少Go语言runtime源代码。
- 给开源的流量复制工具TCPCopy贡献过代码。
大牛的工作内容对于自己而言是一个非常好的参考。
还有一句话:
小心划得万年水
工作也好,其他也好,多总结,多记录,快速总结,快速记录