热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

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

大家好,我是Z哥。不知道你有没有过这样的困惑,想学习某项新技能,但是很容失败。比如,出于职业发展的考虑,想学习

大家好,我是Z哥。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 概念(concept)

  2. 知识(knowledge)

  3. 技能(technique)

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

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

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

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

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

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

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

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

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

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

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

好了,总结一下。

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

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

希望对你有所启发。

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

推荐阅读:

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

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

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

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

可以试试点击「阅读原文



推荐阅读
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 深入解析 HDFS Federation:多命名空间架构详解
    HDFS Federation 是一种扩展 HDFS 架构的方式,通过引入多个独立的 NameNode 来解决单点故障和性能瓶颈问题。本文将详细探讨 HDFS Federation 的工作原理、优势以及潜在挑战。 ... [详细]
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • IT项目管理过程中的方法、工具、技术
    工欲善其事,必先利其器。而对于一个软件开发项目,最重要的器就是方法,工具和技术。而这三要素中重要的又是方法论,方法是基础&# ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文介绍了如何在具备多个IP地址的FTP服务器环境中,通过动态地址端口复用和地址转换技术优化网络配置。重点讨论了2Mb/s DDN专线连接、Cisco 2611路由器及内部网络地址规划。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 如何在窗口右下角添加调整大小的手柄
    本文探讨了如何在传统MFC/Win32 API编程中实现类似C# WinForms中的SizeGrip功能,即在窗口的右下角显示一个用于调整窗口大小的手柄。我们将介绍具体的实现方法和相关API。 ... [详细]
author-avatar
卡农的信仰144
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有