- 系统的认识。
- 科学的重复。
- 个人的理解与输出。
学习技巧
动手实践是必要一步,如果连上手操作都不肯,你会发现自己的理解很难有深度。
在交流的过程中你会发现,很多似是而非的理解,竟然在试图组织语言的时候,突然就想明白了,而且
别人的观点出发验证了自己的判断。技术领域尤其如此,把自己的理解整理成文字、输出、交流是个非常好的
提高方法,甚至我认为这是技术工作者成长的必经之路。如果你不能把它简单地解释出来,那说明你还没有很好的理解。了解-掌握-精通,这是我们对事物掌握的一个循序渐进的过程。从自己觉得似乎懂了,到能够说明白,再到能够自然地运用它,甚至触类旁通,这是不断提高的过程。
根据实践统计,工程师实际工作中,阅读代码的时间其实大大超过写代码的时间,这意味着阅读、总结能力,会直接影响我们的工作效率!这东西有没有捷径呢,也许有吧,我的心得是:无他,但手熟尔。
参考别人的架构、实现,分析其历史上掉过的坑,这是天然的好材料,具体阅读时可以从其修正过的问题等角度入手。
现代软件工程,节奏越来越快,需求复杂而多变,越来越凸显出抓白盒方式的重要性。快速定位问题往往需要黑盒结合白盒能力,对内部一无所知,可能就没有思路。与此同时,通过平台、开源框架,不见得能够非常符合自己的业务要求,往往只有深入源代码层面进行定制或者自研,才能实现。我认为这也是软件工程师地位不断提高的原因之一。
技术素养好,能够进行深度思考,而不是跳脱地夸夸其谈,所以你熟练掌握最擅长的东西。如果在最擅长的领域尚且不能仔细思考,怎么能保证在下一份工作中踏实研究呢。当然这种思考,并不是说非要死扣底层和细节,能够看出业务中平凡事情背后的工程意义,同样是不错的。毕竟除了特别的岗位,大多数任务,如果有良好的技术素养和工作热情,再配合一定经验,基本也就能够保证胜任了。
职业精神,是否表现出认真对待每一个任务。我们是职场打拼的专业人士,不是幼儿园被呵护的小朋友,如果有人太挑活,团队往往就无法做到基本的公平,有经验的管理角色,大多是把自己的管理精力用在团队的正面建设,而不是把精力浪费在拖后腿的人身上,难以协作的人,没有人会喜欢。有人说你的职业高度取决于你“填坑”的能力,我觉得很有道理。现实工作中很少有理想化的完美任务,既目标清晰又有挑战,恰好还是我擅长的,这种任务不多见。能够主动地从不清晰中找出清晰,切实地解决问题,是非常重要的能力。