程序员的三门课:技术精进、架构修炼、管理探秘: 读书笔记(1) 如何学习

162 阅读4分钟

如何学习一门语言

◎ 基础知识:基本语法、关键字、变量与常量、数据类型、运算符、流程控制、异常处理、文件处理、编程思想(面向对象、面向过程、函数式编程)、多线程支持等。

◎ 应用知识:网络请求、数据处理、内置函数、对日志和调试的支持、对单元测试的支持、序列化与反序列化等。

◎ 高级知识:开源类库、开源框架、底层原理等。

带着问题学习

学习要由目标驱动,在目标驱动起作用后,我们还可以采用问题驱动方式进行学习,即在学习过程中多问问题。

问问题可以采用六何法。六何法,又叫作6W或5W1H分析法,即What、Who、When、Where、Why及How。

通过写博客来学习也是非常棒的一种学习方式,这对于新技术的学习十分有效,还可以通过技术分享、线下会议及线上教学等方式将自己学到的知识分享给他人,这就是教学学习法。

如何解决问题

解决问题时要有如下几个步骤。

(1)出了什么问题,汇总问题和现象,试着探究原因。

(2)找到解决问题的流程,应该谁负责驱动,流程有哪些环节,有哪些可选方案。

(3)按步骤解决问题。

空杯心态,就是时时刻刻把自己想象成“一个空着的杯子”。空杯心态并不意味着要否定自己过去,而是怀着一种放空的态度融入新的环境,对待新的工作和事物。

别怕犯错,最重要的是从错误中学习到什么。

注意细节:80%的错误可能隐藏在20%的代码中,这20%的代码可能是业务逻辑中非常边缘化的细节问题。

时间管理体系

对于工作繁杂的程序员来说,这套理论非常实用,可根据这套理论将手头的事情分一个优先级。

◎ 对于重要且紧急的事情,把它们安排在第一时间处理。

◎ 对于重要但不紧急的事情,要避免它们变成重要且紧急的事情,在处理重要且紧急的事情之余,要把重要但不紧急的事情进行拆解,并制定计划,按部就班地完成。

◎ 对于紧急但是不重要的事情,首先想办法看看能不能把它们变成不重要也不紧急的事情,如果还是无法改变,则可以考虑和同事分担。

◎ 对于不重要也不紧急的事情,不要做!

说不

对于需求,先通过讨论解决,解决不了再用代码解决。这才是正确的顺序。这不是指程序员要尽最大努力减需求,而是要对不合理的需求说不。

想清楚再做事

不管是做业务项目还是做技术改造,甚至对于小小的代码优化,都应该先思考一遍,尽量把涉及的细节都想清楚,在确认没问题之后再动手,这样可以大大节省后面的时间。

写业务代码的成长

◎ 第1个层次,让代码写得不一样。可从代码规范、可读性、可扩展性等角度着手,这也是程序员的基本功。

◎ 第2个层次,考虑业务问题和技术问题的匹配。可从写业务代码中理解需求,并做好分析与设计。被动接收需求和实现接口,确实成长空间不大。

◎ 第3个层次,总结相关方法体系,成为业务及技术双料专家。

学会学习

管理好自己的目标、利用好碎片时间,在同一时间只做一件事。

目标管理,主要可以分为如下几步:评估能力、制定目标、评估目标。

高效学习途径

  1. 阅读书籍
  2. 参加在线课程
  3. 参与线下会议
  4. 贡献开源项目
  5. 编程竞赛
  6. 创建博客
  7. 编码训练营

小频度尝试(小步子原则)、快速反馈(及时反馈原则)

高效学习的核心就是降低学习曲线,固化学习的知识,有一个短时间正向反馈的感受。这对学习非常重要。

link: blog.yodfz.com/frontEnd/20…