我的技术学习方法论 |
您所在的位置:网站首页 › 推荐5篇合成控制法方法介绍与应用论文 › 我的技术学习方法论 |
一、背景
最近有个朋友问了一个比较有代表性的问题: “我有个困惑,虽然有时间学习,但是碎片化的,学了以后自己的技术还是停留在 CURD 上,不是很系统。解决问题上一些思维逻辑,不能体现一个程序员应有的专业度,怎么办?希望你可以给我一点建议,如何系统学习?” 比如一些考研四门课的视频,隔一两年偶尔翻一下,比如《操作系统》、《计算机网络》、《数据结构》、《编译原理》。 还有《深入理解计算机系统》这类讲解深入浅出的计算机专业知识的图书。 每隔一段时间,如每隔几个月,主动学习或温习下各种常见中间件(如 Es 、Hbase、Redis、Kafka 、Dobbo、Spring 等)的原理。
可以去知识付费平台系统学习自己感兴趣的技术的专栏,技术专栏相对没那么枯燥,文章质量也比较高,经过作者的加工,更容易理解。 2.2.2 学习的思路 (1)以准备面试的方法来学习单纯看某本书可能会有些枯燥,而且读完某本书后由于没有验证,也不知道自己掌握到什么程度。 俗话说:“温故而知新,可以为师矣”! 这和经典的 PDCA 原则很相似:即是计划 (Plan)、实施 (Do)、检查 (Check)、行动 (Action)的首字母组合。它是一种科学的管理方法,无论哪一项工作都离不开 PDCA 的循环,每一项工作都需要经过计划、执行计划、检查计划、对计划进行调整并不断改善这样四个阶段。 我们可以将日常的系统设计、中间件的原理和计算机专业基础进行纵向类比;也可以将各种中间件进行横向对比,找到内在的联系,这样知识更容易融会贯通,更容易泛化。 比如我的 《性能优化方法论》 中介绍的内容就是将专业基础和各种中间件原理以及日常开发中的一些性能优化经验相结合,总结出来的。 比如《Pipeline 设计模式的优缺点和实践案例》 就是将设计模式和用过的某个推荐系统的源码、用过的 Java 相关 API 放在一起对比的思考。 比如 《编程技巧篇之特殊处理留痕迹》 就是我在工作中需要设计可以通过请求上下文中传入特殊参数,将 DEBUG 日志临时提升到 INFO 级别打印的功能,设计该功能时遇到如何将提升的日志和普通的日志区分开的问题,借鉴 Spring Factory Bean Prefix 为提升的日志加前缀,方便区分。 比如《Java 实现有限状态机的推荐方案》就是在学习了枚举类中可以定义抽象方法来实现更丰富的功能,状态又通常定义成枚举,因此突发奇想,是否可以用枚举做简单的状态机呢?因此就有了这个方案。 再如,下图是我对化整为零思想在多个地方运用的整理的局部截图: 再如:需要做一个不同版本的对比功能,就需要对不同的版本存储快照,原计划需要上线后刷数据,但是设计的时候借鉴了 ThreadLocal获取数据时清空过期数据的方案,采用执行版本对比时,如果没有快照就去存储的方案,就省去了刷数据的步骤,降低了复杂性。 (4) 专题学习大家可以根据自己的兴趣和需要,可以在某个时段对某个技术进行专题学习。 正如我在文章中无数次提到的:“每一个问题,都是我们彻底掌握某些知识的最佳机会”。 这也是很多人工作几年,依然知识掌握得不够深入,成长很慢的原因。 2.3.2 知其然,知其所然这样每遇到一个问题,都能够将知识贯穿起来,能够夯实相关的基础和原理,这样成长更快。 示例1:比如使用 ConcurrentHashMap 的 put方法时,不管是 key 还是 value 为 null 都会空指针异常。此时,我们决不能记住不能放 null 就完事,一定要了解为什么不允许为 null, 思考如何解决这个问题 。 我将该问题总结在: 《什么?你不知道 ConcurrentHashMap 的 kv 不能为 null?》 一文中。 示例2:比如使用 BeanUtils的 getProperty 获取属性时,出现 NoSuchMethodException,可以趁机到源码中分析学习。 我将该问题总结在: 《使用 BeanUtils.getProperty 获取属性时出现 NoSuchMethodException: Unknown property 问题分析》 2.3.3 a small step forward我们不仅要在遇到问题时找到根本原因,寻找可行的已有解决方案,还需要努力思考是否有更好地解决方案,哪怕只是往前走一小步,也非常有意义。 示例1:在某个业务场景下,需要在 Map 的属性发生变化时,做一些额外的处理。借鉴包装器设计模式,借鉴 SynchronizedList代码的思想,对 Map 进行二次封装,即可实现写操作时自动触发某个特定动作。 我将问题总结在:《Map 有变动时触发特定行为实现》 示例2:在工作中某个特殊场景下需要前端以某个字符对数据拼接后传给后端,然后以 HTTP 的 GET 请求的方式传给后端,后端再根据分隔符进行拆分。最后参考 ASCII 码的特定不可见字符,更好地实现了这个功能。 我将问题总结在:《前端分隔符传递数据给后端的通用方案》 示例3:工作中看到有同事使用策略模式时,需要注入类型到对应 Bean 的 Map ,以便使用时可以根据类型获取对应的 Bean 执行业务操作。发现每次新增子类都需要修改配置,很容易遗忘,因此思考如何改进。 我将问题总结在:《巧用 Spring 自动注入实现策略模式升级版》 2.4 以教为学大多数人是 Input 太多, output 太少,只有输出才能更好地理解。 尤其是积累到一定程度,可以尝试对某个问题或者专题进行写作,写作的时候又需要重新思考,需要查资料等,对知识的掌握又会更加系统。 也可以尝试进行一些投稿活动,主动讲自己所学提取整理,这样知识掌握更牢固。 如上面的性能优化,还有一些其他的文章(包括本文): 《如何写出高质量的文章:从战略到战术》 《我对“结构化思维”的理解 》 《猿创征文|弃文从工,从小白到蚂蚁工程师,我的 Java 成长之路》 2.5 探讨交流我有时间时,喜欢在技术群里回答和探讨技术问题、也喜欢在工作中参与技术方案评审。 这是一种很好的学习方式。 这种思维非常重要,这就像自己先做一遍题,再对照答案判断自己做的对不对,有没有更好的方案。 如果直接去看答案,容易眼高手低,以为自己都懂了,其实没有掌握,更没法做到活学活用。 通过前面讲到的遇到问题时,抓住机会掌握原理,甚至寻求改进方案。再通过猜想和验证的方法,就会有很多学习和验证自己所学的机会,通过不断的思考、训练,知识掌握的会越来越牢固。 2.6.2 本质思维遇到任何问题时,需要找到根本原因,探寻问题的本质。 这样才不至于从表面上解决问题,自己对知识的掌握不深,也无法从根本上解决问题。 比如开发中,前端同学说某个查找员工的接口无法搜索到外包,问是否可以接受。很多人可能就得过且过直说可以。可以去了解为什么不支持搜索外包同学,是否还有其他接口可以支持。 2.6.3 Zoom In & Zoom Outzoom in 和 zoom out 是摄像技术用语。zoom in 指(照相机等)用变焦距镜头使景物放大,即将景物推近;zoom out 刚好相反,表示用变焦距镜头使景物缩小,即将景物拉远。 六顶思维帽能够让我们切换不同的视角更全面的思考问题,对我们进行技术方案设计、某项技术学习,进行技术写作都有很大帮助。 六顶思维帽是一种由爱德华·德·博诺博士开发的思维训练模式,或者说是一个全面思考问题的模型。它提供了“平行思维”的工具,避免将时间浪费在互相争执上。它使用六种不同颜色的帽子代表六种不同的思维模式,分别是白色、绿色、黄色、黑色、红色和蓝色。每种颜色的帽子有其特定的功能和意义,可以帮助人们从不同角度思考同一个问题,从而创造高效能的解决方案。 六顶思维帽每种颜色的含义如下: 白色思考帽:中立而客观的,思考的是客观的事实和数据;绿色思考帽:创造力和想象力,创造性思考、头脑风暴、发散思维等;黄色思考帽:价值与肯定,从正面考虑问题,表达乐观的、满怀希望的、建设性的观点;黑色思考帽:否定、怀疑、质疑,合乎逻辑地进行批判,尽情发表负面的意见,找出逻辑上的错误;红色思考帽:情感和直觉,表现自己的情绪,也可以表达直觉、感受、预感等方面的看法;蓝色思考帽:控制和调节,负责控制各种思考帽的使用顺序,规划和管理整个思考过程,并负责做出结论。变通一点执行的话,学习某个技术的时候,了解相关资料,了解优点和缺点,对比相似的技术,了解使用场景,思考改进方案等,让自己对某个技术的了解更全面。 2.7 利用好工具比如微信公众号有很多质量较高的资料,可以借助 搜狗微信搜索 来搜索学习。 比如可以和 PDF聊天的 ChatPDF, 可以导入 PDF,直接对 PDF 进行提问,给出你所在的页码,可以大大提高学习效率。
如 《Pipeline 设计模式的优缺点和实践案例》 中 Pipeline 推荐系统的代码示例,就是基于 New Bing 给的代码改造而来,提高了不少效率。 可以对一个问题进行提问,然后不断追问,就可以快速对某个问题进行系统学习,再结合前面提到的专业基础和中间件的原理,理解会更好。 总之,人工智能的时代来了,利用好 AI 工具,变革学习方式,提高学习效率。 三、总结本文介绍了自己的学习方法论,如夯实专业基础、主动学习技术原理、把握遇到问题的时机来学习知识,以教为学,和善用工具等。 欲速则不达,想要走的更远,需要打好地基,需要掌握方法,需要耐得住寂寞,需要有足够的热爱。 在日常开发的同时,还要停下脚步夯实基础,将知识横向和纵向关联,加深对知识的理解,增强自己知识的泛化能力,以便更好地“学以致用”! 希望对大家有帮助。 创作不易,如果本文对你有帮助,欢迎点赞、收藏加关注,你的支持和鼓励,是我创作的最大动力。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |