如何学习一门语言
◎ 基础知识:基本语法、关键字、变量与常量、数据类型、运算符、流程控制、异常处理、文件处理、编程思想(面向对象、面向过程、函数式编程)、多线程支持等。
◎ 应用知识:网络请求、数据处理、内置函数、对日志和调试的支持、对单元测试的支持、序列化与反序列化等。
◎ 高级知识:开源类库、开源框架、底层原理等。
带着问题学习
学习要由目标驱动,在目标驱动起作用后,我们还可以采用问题驱动方式进行学习,即在学习过程中多问问题。
问问题可以采用六何法。六何法,又叫作6W或5W1H分析法,即What、Who、When、Where、Why及How。
通过写博客来学习也是非常棒的一种学习方式,这对于新技术的学习十分有效,还可以通过技术分享、线下会议及线上教学等方式将自己学到的知识分享给他人,这就是教学学习法。
如何解决问题
解决问题时要有如下几个步骤。
(1)出了什么问题,汇总问题和现象,试着探究原因。
(2)找到解决问题的流程,应该谁负责驱动,流程有哪些环节,有哪些可选方案。
(3)按步骤解决问题。
空杯心态,就是时时刻刻把自己想象成“一个空着的杯子”。空杯心态并不意味着要否定自己过去,而是怀着一种放空的态度融入新的环境,对待新的工作和事物。
别怕犯错,最重要的是从错误中学习到什么。
注意细节:80%的错误可能隐藏在20%的代码中,这20%的代码可能是业务逻辑中非常边缘化的细节问题。
时间管理体系
对于工作繁杂的程序员来说,这套理论非常实用,可根据这套理论将手头的事情分一个优先级。
◎ 对于重要且紧急的事情,把它们安排在第一时间处理。
◎ 对于重要但不紧急的事情,要避免它们变成重要且紧急的事情,在处理重要且紧急的事情之余,要把重要但不紧急的事情进行拆解,并制定计划,按部就班地完成。
◎ 对于紧急但是不重要的事情,首先想办法看看能不能把它们变成不重要也不紧急的事情,如果还是无法改变,则可以考虑和同事分担。
◎ 对于不重要也不紧急的事情,不要做!
说不
对于需求,先通过讨论解决,解决不了再用代码解决。这才是正确的顺序。这不是指程序员要尽最大努力减需求,而是要对不合理的需求说不。
想清楚再做事
不管是做业务项目还是做技术改造,甚至对于小小的代码优化,都应该先思考一遍,尽量把涉及的细节都想清楚,在确认没问题之后再动手,这样可以大大节省后面的时间。
写业务代码的成长
◎ 第1个层次,让代码写得不一样。可从代码规范、可读性、可扩展性等角度着手,这也是程序员的基本功。
◎ 第2个层次,考虑业务问题和技术问题的匹配。可从写业务代码中理解需求,并做好分析与设计。被动接收需求和实现接口,确实成长空间不大。
◎ 第3个层次,总结相关方法体系,成为业务及技术双料专家。
学会学习
管理好自己的目标、利用好碎片时间,在同一时间只做一件事。
目标管理,主要可以分为如下几步:评估能力、制定目标、评估目标。
高效学习途径
- 阅读书籍
- 参加在线课程
- 参与线下会议
- 贡献开源项目
- 编程竞赛
- 创建博客
- 编码训练营
小频度尝试(小步子原则)、快速反馈(及时反馈原则)
高效学习的核心就是降低学习曲线,固化学习的知识,有一个短时间正向反馈的感受。这对学习非常重要。