高效掌握新技能的「树型思维」

大家好,我是Z哥。

不知道你有没有过这样的困惑,想学习某项新技能,但是很容失败。比如,出于职业发展的考虑,想学习一门新的编程语言,或者想了解一个新的技术框架;又或者看了某些综艺节目后想玩一玩滑板、练一下街舞等等。

在我看来失败的原因主要有两种:

  1. 要么不知道从何下手,然后拖着拖着就不了了之。

  2. 要么凭感觉随便找了一处下手,然后中途遇到困难,随后放弃。

也不用不好意思,反正这两种情况我自己都亲身经历过……

说实话,这个问题如果不解决,慢慢地你会觉得自己做啥都不行,开始进入到一个恶性循环中,逐渐把自己限定死在一个范围内,不想走出舒适区。

很多人都会告诉你,提前做一下规划就不会出现这种情况了。但实际上,不少人在规划这个步骤就卡住了,因为不知道如何规划。

你想一下,你对一个完全陌生的领域能做出规划吗?比如,让你规划一下如何才能将人送到火星?

很明显不能。所以,只有我们对某个领域有了一定程度的了解之后,才做得出规划。

那么到底要到什么程度才可以做规划呢?这就是Z哥今天要聊到事情。不过我分享的内容可不仅于做规划,而是能完全解决开头提到的如何掌握一项新技能的问题。

方法很简单,构建一个技能树,把掌握这个新技能所需的相关知识、信息等罗列出来。对,类似于魔兽世界里技能树那样。

因为构建技能树的过程,其实就是你将一片黑暗的陌生领域逐渐照亮的过程,只有眼前先看到前方有哪些路,你才能规划出前进的路径,不是么?

道理很简单,具体做起来也不难。

我的方法是,把你需要掌握的技能根据以下三个维度进行拆解,序号代表需要掌握的先后顺序。

  1. 概念(concept)

  2. 知识(knowledge)

  3. 技能(technique)

第一个维度的「概念」表示这个新技能所属领域内的“基本语言”。就是说,你要做这件事,首先得入这个门吧,入门的前提自然得懂这个领域内的人在说什么。掌握概念就是让你与其他人拥有共同语言。

比如,你要学编程,如果你搞不清楚什么是循环、什么是类型转换、有哪些数据类型,相信编程肯定学不好。

第二个维度是「知识」,它表示与这个新技能相关的前人总结的规则、规范、理论等等。这些东西更像是一种共识,是前人沉淀下来的精华,是为了让“后浪们”能少走一些弯路更快地接上“前浪”的班。

比如,还是拿学编程举例子好了,开闭原则、高内聚低耦合等等都称得上是「知识」。

第三个维度是「技能」,就是具体可操作的一些东西。

依旧用学编程举例子,熟悉某个IDE工具的使用、debug的技巧、服务器上的常用操作等,这些就是「技能」。

很多人之所以会半途而废,就是因为一上来追求的就是「技能」层面的事情。这些东西看起来最容易下手,但是如果前面两个维度的事情没做好的话,很容易囫囵吞枣的往前走,囫囵多了自然就吞不下去了。

如今,每当我遇到需要掌握一个新技能的时候,我会先通过搜索引擎去收集信息,将他们整理到思维导图里构建技能树。树的结构就是上面说的这三个维度。

然后呢,每搞定一个就给上完成标记,如果是一知半解的,先给上一个部分完成的标记,后续再花时间吃透。

在思维导图中做的这些标记只是一个参考,为的是让你能够一目了然的知道自己在这件事上到底有“几斤几两”。

如果你想让这个参考更具价值,更准确的话,你可以邀请对这个技能掌握的比你好,同时又对你的掌握情况有所了解的人来评估。

好了,总结一下。

这篇呢Z哥和你分享了我在学习一项新技能时的方法,主要是要先构建一个技能树,然后再花时间逐个击破就好。

技能树可以通过三个维度展开:概念、知识、技能。

希望对你有所启发。

当然,从技能树的结构来看,它是可以无穷尽的,叶子结点可以不断的增加和延展。这也意味着学习是无穷尽的,你需要不断地去更新你的技能树。赶紧动起来吧。

推荐阅读:

  • 如何做一个懂产品的程序员?

  • 分享几个亲测有效的高效工作技巧

原创不易,如果你觉得这篇文章还不错,就「在看」或者「分享」一下吧。鼓励我的创作 :)

如果你有关于软件架构、分布式系统、产品、运营的困惑

可以试试点击「阅读原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/307963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue2的响应式原理学“废”了吗?继续观摩vue3响应式原理Proxy

一文了解Vue3的响应式原理一、🟩回顾Object.defineProperty二、🟨Proxy基本使用三、🟦学习Proxy语法:Reflect四、🟧Vue3如何用Proxy实现响应式1、实现响应式2、Proxy总结(1)深度监听&#xff0c…

一名“企业定制化人才”的自诉:“我不愿意,但却无可奈何”

这是头哥侃码的第214篇原创几个月前,我曾在大智慧时期的一位同事跟我聊微信,说自己所在的公司这两年业务一直不温不火,而且从19年底就逐渐缩减技术人员。今年上半年又因为疫情的关系,公司干脆直接砍掉了剩余的三个技术部门&#x…

一文了解分而治之和动态规则算法在前端中的应用

一文了解分而治之和动态规则算法一、分而治之1、分而治之是什么?2、应用场景3、场景剖析:归并排序和快速排序二、动态规则1、动态规则是什么?2、应用场景3、场景剖析:斐波那契数列4、动态规则VS分而治之三、分而治之算法常见应用1…

leetcode1. 两数之和(两种方法)

一:题目 二:上码 1:方法一 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {vector<int> v;for(int i 0; i < nums.size() - 1; i) {for(int j i1; j < nums.size(); j) {if(nums[i] nums[j] target) {v.push_…

排坑 | Exceptionless 5.x 无法正常发送邮件

【问题解决】| 作者 / Edison Zhou这是恰童鞋骚年的第282篇原创内容你有碰到过通过docker部署Exceptionless无法发送邮件的问题吗&#xff1f;此解决办法适用于Exceptionless 5.x版本&#xff08;如果你不想升级6.x的话&#xff09;。1问题起因去年这个时候&#xff0c;得知Exc…

一文了解贪心算法和回溯算法在前端中的应用

一文了解贪心算法和回溯算法在前端中的应用一、贪心算法1、贪心算法是什么&#xff1f;2、应用场景3、场景剖析&#xff1a;零钱兑换二、回溯算法1、回溯算法是什么&#xff1f;2、什么问题适合选用回溯算法解决&#xff1f;2、应用场景3、场景剖析&#xff1a;全排列三、贪心算…

leetcode454. 四数相加 II(思路+详解)

一:题目 二:上码 class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {/**思路:1.我们用map容器的key值存进去前两个数的和并记录其个数,然后在后面两个数…

ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用

一文了解集合和字典在前端中的应用一、&#x1f4dd;集合1、集合是什么&#xff1f;2、前端与集合&#xff1a;使用ES6中的Set3、用Set模拟并集、交集和差集&#xff08;1&#xff09;模拟并集运算&#xff08;2&#xff09;模拟交集运算&#xff08;3&#xff09;模拟差集运算…

leetcode383. 赎金信(两种做法)

一&#xff1a;题目 二:上码 1:第一种方法 class Solution { public:bool canConstruct(string ransomNote, string magazine) {unordered_map<char,int>m,m1;for(int j 0; j < magazine.size(); j) {m[magazine[j]];}for(int i 0; i < ransomNote.size(); i) …

使用BeetleX在Linux下部署.NET多站点服务

在windows下常用IIS来部署.NET的多站点服务&#xff0c;但在Linux下就没这么方便了&#xff1b;虽然可以使用一些代理服务器如nginx&#xff0c;jexus等来反代或部署应用&#xff0c;但nginx对.NET应用的托管就相对没这么方便了&#xff0c;jexus的确是个不错的服务应用;在这里…

模块化妙用!用vue3实现一个鼠标追踪器和异步加载组件

用vue3实现一个鼠标追踪器和异步加载组件一、&#x1f5b1;️鼠标追踪器1、功能实现2、给静态页面绑定功能二、⚙️异步加载组件1、功能实现2、给静态页面绑定功能3、用泛型改造异步组件功能三、&#x1f4da;结束语周一最近学完 vue3 新特性&#xff0c;就想着用 vue3 来捣鼓…

leetcode15. 三数之和(三指针)

一:题目 二:思路 1.这里的去重是指的是我们在遍历元素的时候&#xff0c;遇到相同的挨着的相同的元素的时候要跳过 2.对元素进行排序&#xff0c;为了后面的比较 3.我们用的是三个指针&#xff0c;第一个指针i指向第一个元素&#xff0c;第二个指针left指向第二个元素,第三个指…

vue3的传送门teleport究竟有多神奇?suspense发起异步请求有多简约?

一文讲解vue3的Teleport和Suspense一、&#x1f44b;用teleport实现打开模态框操作1、teleport是什么2、实现模态框功能&#xff08;1&#xff09;设置锚点&#xff08;2&#xff09;定义子组件&#xff08;3&#xff09;定义父组件二、&#x1f91a;用Suspense1、Suspense是什…

【BCVP】实现基于 Redis 的消息队列

聆听自己的声音如果自己学不动了&#xff0c;或者感觉没有动力的时候&#xff0c;看看书&#xff0c;听听音乐&#xff0c;跑跑步&#xff0c;休息两天&#xff0c;重新出发&#xff0c;偷懒虽好&#xff0c;可不要贪杯。话说上回书我们说到了&#xff0c;Redis的使用修改《【B…

leetcode18. 四数之和(双指针)

一&#xff1a;题目 二&#xff1a;上码 class Solution { public:vector<vector<int>> fourSum(vector<int>& nums, int target) {vector<vector<int> >ans;vector<int> v;sort(nums.begin(),nums.end());for(int i 0; i < nums…

过去3个多月的1200个小时里,我收获了什么?| 2021年年中总结

&#x1f55b;序言 今年三月初&#xff0c;善后了上学期事情之后&#xff0c;我开始在想&#xff0c;我的未来规划。 身边的好朋友和同学都在筹划着自己的未来&#xff0c;考研的考研&#xff0c;考公的考公。父母和老师们也在劝我说考研&#xff0c;问我考不考研。 依稀记得…

WPF 消息框 TextBox 绑定新数据时让光标和滚动条跳到最下面

WPF 消息框 TextBox 绑定新数据时让光标和滚动条跳到最下面独立观察员 2020 年 9 月 3 日我们在使用 WPF 的 TextBox 作为消息展示框时&#xff0c;如果想在出现滚动条之后&#xff0c;新消息到来时还能够被看到&#xff0c;也就是说让滚动条始终在最下面&#xff0c;或者说光标…

leedcode344. 反转字符串

一:题目 二:上码 class Solution { public:void reverseString(vector<char>& s) {//双指针for(int i 0,j s.size() - 1; i < s.size()/2; i,j--) {swap(s[i],s[j]);}} };

组件库实战 | 用vue3+ts实现全局Header和列表数据渲染ColumnList

用vue3ts实现全局Header和列表数据渲染ColumnList&#x1f5bc;️序言&#x1f4fb;一、ColumnList数据渲染1、设计稿抢先知2、数据构思3、视图数据绑定4、数据传递5、挠头情况☎️二、GlobalHeader全局Header1、设计稿抢先看2、数据构思3、视图数据绑定4、数据传递&#x1f4f…

初识ABP vNext(8):ABP特征管理

点击上方蓝字"小黑在哪里"关注我吧定义特征应用特征用户数量社交登录前言上一篇提到了ABP功能管理&#xff08;特征管理&#xff09;&#xff0c;它来自ABP的FeatureManagement模块&#xff0c;ABP官方文档貌似还没有这个模块的相关说明&#xff0c;但是个人感觉这个…