高效学习方法论
2023.03.17 《程序员的三门课:技术精进、架构修炼、管理探秘 / 于君泽等著》学习笔记
学会学习
- 一、高效学习的方法
- 1、管理好自己的目标
- 1)评估能力
- 2)制定目标
- 3)评估目标
- 2、利用好碎片时间
- 3、在同一时间只做一件事
- 二、高效学习的途径
- 1、阅读书籍
- 2、参加在线课程
- 3、参加线下会议
- 4、贡献开源项目
- 5、编程竞赛
- 6、创建博客
- 7、编码训练营
一、高效学习的方法
高效学习的方法:管理好自己的目标、利用好碎片时间、在同一时间只做一件事。
1、管理好自己的目标
目标管理,主要可以分为如下几步:评估能力、制定目标、评估目标。
1)评估能力
目标管理的第一步,就是正确评估自己的能力。
每个人都有不同的能力,并且自己其实是最了解自己能力的人。
在评估自己的能力时,可以给自己画一个简单的雷达图,并正确评估自己在各个方向上的能力指标。
示例:
例如在学习方面,可能要依赖如下几种能力:理解能力、自控能力、坚持能力、智商能力、专注能力。
2)制定目标
在正确评估自己的各方面的能力之后,就可以根据实际情况及时间等因素,给自己制定目标了。
在制定目标时,建议给自己制定两个目标,一个长期目标和一个短期目标。短期目标可以有长期目标分解而来。这里的目标其实等同于计划,不仅有自己要达成的目的,还伴随着时间节点。目标的设定模板可以是:
在什么时间节点完成什么事。示例:
比如计划在三个月内学会 Java 9 的新特性,那么可以计划第1个月学会Jigsaw,第2个月学会JShell,第3个月学会Stack-Walking API。
3)评估目标
在评估好能力并制定好目标之后,还要养成定期评估自己目标的习惯。这就是我们为什么要设置短期目标,以及为什么要有时间节点,因为这样可以方便我们进行目标的回顾和调整。
示例:
例如,对于学习 Java 9 的新特性这件事,在第1个月要完成时,要及时检查一下自己是否真的学会了Jigsaw,并根据实际完成的情况重新评估自己的能力和制定新的短期目标,以期完成自己的长期目标。
2、利用好碎片时间
3、在同一时间只做一件事
在碎片的时间里如何更好地达成目标呢?那就是专注,即在同一时间只做一件事。在学习方面就是指在同一时间只专注地学习一种技术。
示例: 比如计划学习 Java 9 和 Spring Boot 2.0,则最糟糕的做法是同时或者交叉学习,这会导致两个技术都学不好。只有专注,才能达到高效学习的效果。
小结:
通过管理好自己的目标、利用好碎片时间及在同一时间只做一件事这三种方法,读者就可以高效的学习了。
二、高效学习的途径
1、阅读书籍
开卷有益。一般来说,学习知识最好的途径就是阅读,这是一种很古老也极其有效的方法。
互联网上各种平台,为我们提供了不同领域的内容,但这些内容大多数比较零散,不成体系。
阅读书籍则是一种比较好的选择,而且对于技术类知识来说,书籍中的内容也相对权威一些。书籍内容的特点:
成体系、相对权威。
如果你想高效地学习,那么阅读相关书籍绝对是很好的选择,它可以让你对所学的知识建立一个很好的知识体系,并且在学习过程中通过反复翻阅来巩固那些容易遗忘的知识点。另外,你在读书的过程中有足够的时间来思考,这个思考的过程在学习中是十分关键的。
阅读书籍的优势:有助于
建立很好的知识体系、可通过反复翻阅来巩固知识点、读书过程中有足够的时间来思考。
非常适合
原理性的技术知识,也适合实战类的知识学习。
- 适合对象:所有人
- 目标:构建知识体系、巩固知识点、有足够时间思考。
2、参加在线课程
对技术知识的学习,主要包含两方面:原理和实战。对于原理性的技术知识,建议通过阅读书籍等方式来学习;对于实战性的技术知识,则可以考虑学习在线课程,这或许会更高效一些。
优势:比较直观,可以看到真正的操作步骤,比较容易理解,很适合实战类的知识学习。
弊端:不容易使参与者集中注意力、没办法带动参与者一起思考等。
比较适合
实战类的知识学习。
- 适合对象:所有人
- 目标:可以更好地学习和理解实战类的技术知识。
3、参加线下会议
线下会议,也是近年来比较流行的一种方式,适合有一定经验的开发者,人们可以在会议中和其他人交流。很多时候,别人的经验是很宝贵的,所以,也是一种很不错的学习方式。
国内有很多类似的线下会议可供参加,比如 QCon、ArchSummit 等。
- 适合对象:有一定经验的开发者。
- 目标:可以在会议中和其他人交流,吸取别人的一些宝贵经验。
4、贡献开源项目
对于有经验的程序员来说,保持自我进步的最好方法就是参与开源项目。
- 适合对象:有经验的程序员
- 目标:保持自我进步。
5、编程竞赛
解决问题是提升开发者编程能力的最好方式。
国内外编程竞赛网站:TopCoder、CodeForces、Hackerrank、LeetCode 等。
- 适合对象:所有人
- 目标:提升开发者编程能力。
6、创建博客
创建并记录博客也是一种学习技术的好方式。“教是最好的学习”,学习某技术的最终效果,就是能够把学到的新知识经过自己的理解给其他人将清楚。
相比其他几种学习方式,创建博客也有很多好处。
能更深入地了解技术。在很难多时候,当我们想学习一个知识并且把它写成文章时,为了避免文章的内容出错,一般都会尽量阅读很多文献,来确保内容是正确的。所以,写文章之前的准备也是自我学习的一个阶段,而且学习的内容往往是比较深入和透彻的,这样才能保证自己写的内容具备权威性。
能更好地记忆知识点。写作的过程就是最好的记忆过程。因为在写文章的过程中会仔细推敲每一句话。这个过程就是多次记忆的过程。很多时候,你记不住别人说的话是因为其思维方式和你的不一样,但是通过自己的思维方式表达出来的内容就会很难容易记住。
- 适合对象:所有人
- 目标:能更深入地了解技术;能更好地记忆知识点。
7、编码训练营
我们一般称其为参加培训机构。
- 适合对象:新手
- 目标:成为一名开发者。
相关文章:
高效学习方法论
2023.03.17 《程序员的三门课:技术精进、架构修炼、管理探秘 / 于君泽等著》学习笔记 学会学习一、高效学习的方法1、管理好自己的目标1)评估能力2)制定目标3)评估目标2、利用好碎片时间3、在同一时间只做一件事二、高效学习的途径…...
C语言结构体(一篇学会)
C语言结构体 在C语言中,结构体是一种自定义的数据类型,它允许用户将不同类型的数据组合在一起。结构体由多个变量组成,这些变量称为结构体的成员。结构体成员可以是不同的数据类型,如整数、浮点数、字符或其他结构体等。 结构体…...
嵌入式软件开发之Linux下C编程
目录 前沿 Hello World! 编写代码 编译代码 GCC编译器 gcc 命令 编译错误警告 编译流程 Makefile 基础 何为 Makefile Makefile 的引入 前沿 在 Windows 下我们可以使用各种各样的 IDE 进行编程,比如强大的 Visual Studio。但是在Ubuntu 下如何进…...
普通Java工程师 VS 优秀架构师
1 核心能力 1.1 要成为一名优秀的Java架构师 只懂技术还远远不够,懂技术/懂业务/懂管理的综合型人才,才是技术团队中的绝对核心。 不仅仅是架构师,所有的技术高端岗位,对人才的综合能力都有较高的标准。 架构路线的总设计师 规…...
Java:SpringBoot实现ApplicationEvent事件的监听和发布
通过发布订阅模式实现数据的异步处理,比如异步处理邮件发送 新建SpringBoot项目 项目结构 . ├── pom.xml └── src└── main├── java│ └── com│ └── example│ └── demo│ ├── Application.java│ …...
星戈瑞-Sulfo-Cyanine3 azide?磺酸基-Cy3-N3叠氮基水溶性染料
Sulfo-Cyanine3 azide? 品牌:星戈瑞 CAS号:2055138-89-9 外观: 暗红色晶体 分子量:720.83 分子式:C34H45N6NaO8S2 纯度:95% 储藏条件:-20C 下避光保存 Sulfo-Cyanine3 azide 是一种…...
十大经典排序算法(下)
🍓个人主页:bit.. 🍒系列专栏:Linux(Ubuntu)入门必看 C语言刷题 数据结构与算法 HTML和CSS3 目录 1.6 快速排序 1. 算法步骤 2. 动图演示 3.代码实现 1.7 堆排序 1. 算法步骤 2. 动图演示 3. 代码实现 1.8 计数排…...
网络协议分析期末复习(四)
目录 0.前言 1.IP层对改善TCP性能支持的机制 2.TCP防止半开放连接的机制 3.TCP协议中强推位(P)和紧急位(U)的用法 4.TCP的流量控制和拥塞控制的异同点 异: (1)两者的特点不同:…...
Matlab对图像和视频的简单处理(图像视频文件读取和输出,转灰度图,取指定帧的图像)
文章目录1.图像文件的读取2.图像效果展示3.将彩色图转换为灰度图4.视频文件的读取5.读取视频中指定帧的图像6.图片文件的报错1.图像文件的读取 语法介绍: A imread(filename) A imread(filename, fmt)参数介绍: filename:要读取的图像文…...
ArrayList源码分析
ArrayList源码分析目标:一、 ArrayList的简介二、ArrayList原理分析2.1 ArrayList的数据结构源码分析2.2 ArrayList默认容量&最大容量2.3 为什么ArrayList查询快,增删慢?2.4 ArrayList初始化容量1、创建ArrayList对象分析:无参数2、创建A…...
SpringBoot IOC、DI、@Autowired、@Resource、作用域
一、初识Spring1.1 Spring是什么Spring是一个轻量级Java开发框架,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,Java开发者可以专…...
链表相关oj题
1.Leetcode203 移除链表元素 解题思路:从头节点开始进行元素删除,每删除一个元素,需要重新链接节点 struct ListNode* removeElements(struct ListNode* head, int val){struct ListNode*dummyheadmalloc(sizeof(struct ListNode));dummyhea…...
【Linux】操作系统(Operator System)
操作系统(Operator System )一、操作系统的概念二、操作系统的作用三、系统调用和库函数一、操作系统的概念 操作系统是一组控制和管理计算机软硬件资源,为用户提供便捷使用的计算机程序的集合,是配置在计算机硬件系统上的第一层…...
机器学习自学笔记——感知机
感知机预备知识 神经元 感知机算法最初是由科学家从脑细胞的神经凸起联想而来。如下图,我们拥有三个初始xxx值,x1,x2,x0x_1,x_2,x_0x1,x2,x0。其中x01x_01x01为一个初始的常量,专业上称作“偏置”。每个xxx的值都会乘上一个权重…...
C++ Primer第五版_第三章习题答案(21~30)
文章目录练习3.21练习3.22练习3.23练习3.24练习3.25练习3.26练习3.27练习3.28练习3.29练习3.30练习3.21 请使用迭代器重做3.3.3节的第一个练习。 #include <vector> #include <iterator> #include <string> #include <iostream>using std::vector; usi…...
colmap+openmvs进行三维重建流程全记录
window下的colmapopenmvs进行三维重建流程全记录 1.colmap安装与配置 可参考:https://blog.csdn.net/weixin_44153180/article/details/129334018?spm1001.2014.3001.5501 2.openmvs安装与配置 可参考:https://blog.csdn.net/rdw1246010462/article…...
yolov8命令行运行参数详解
序言 整理来自yolov8官方文档常用的一些命令行参数,官方文档YOLOv8 Docs yolov8命令行的统一运行格式为: yolo TASK MODE ARGS其中主要是三部分传参: TASK(可选) 是[detect、segment、classification]中的一个。如果没有显式传递…...
分布式锁简介
Redis因为单进程、性能高常被用于分布式锁;锁在程序中作用是同步工具,保证共享资源在同一时刻只能被一个线程访问。 Java中经常用的锁synchronized、Lock,但是Java的锁智能保证单机的时候有效,分布式集群环境就无能为力了…...
【嵌入式Linux学习笔记】Linux驱动开发
Linux系统构建完成后,就可以基于该环境方便地进行开发了,相关的开发流程与MCU类似,但是引入了设备树的概念,编写应用代码要相对复杂一点。但是省去了很多配置工作。 学习视频地址:【正点原子】STM32MP157开发板 字符…...
2023年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛(同步赛)(H题)(线段树)
又到了万物复苏的季节,家乡的苹果树结果了。像往常一样小龙同学被叫回家摘苹果。 假设需要采摘的一棵树上当前有a颗苹果,那么小龙会采摘⌈a/3⌉颗苹果,其中⌈x⌉表示不小于x的最小整数。 但是,为了可持续发展,若a小于1…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
Qt的学习(一)
1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...
ArcGIS Pro+ArcGIS给你的地图加上北回归线!
今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等,设置经线、纬线都以10间隔显示。 2、需要插入背会归线…...
MeshGPT 笔记
[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭!_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...
