当『后设学习』碰上『工程学思维』

news2024/12/24 2:30:24

只要我成为一个废物,就没人能够利用我!


雷猴啊,我是一只临期程序猿。打过几年工,写过几行代码。但今天我不想聊代码,我们聊聊学习这件事。

file


技术年年更新,尤其是前端框架,很多时候觉得学习速度都要跟不上框架的更新速度了。

而且还不能不学,不学就跟不上,甚至连面试机会都没有。

即使一直在一家公司苟着,如果只是靠勤奋工作,不提升自己的技能,也很难晋升。

比如最近流行的一个梗:前端的职业天花板是小组长。如果不抽点时间来学习其他领域的知识,那天花板真的就非常清晰了。

file


那应该如何高效学习呢?市面上有很多学习方法,但今天我想分享的是前段时间读过的一本书里面的其中一种学习方法:后设学习法


书的作者叫 Scott H. Young,他曾在一个月学会素描,一年学会四中语言,一年学完MIT四年课程。还声称自己不是绝世天才!

我真的大受震撼,被自己的废物震撼到了。

file


书中作者分享了他的多种学习方法,本文只挑了后设学习法出来介绍,这个方法适合想学习新领域知识的工友。

file



什么是后设学习?

引用书中的解释:

「后设学习」的英文是「metalearning」,其字首「meta」源自希腊词语 「μετά」,代表「之上」,意思是某事跟其自身「有关」,或处理的是一种层次较高的抽象概念。在这里,后设学习指的是学习关于学习这件事

file


很多人在学习一项技能时会专注于学习这项技能本身,而作者想强调的是我们可以先学习这个技能的方法。

后设学习的关键是在学习之前,先画出一张学习地图

而要画出学习地图需要先回答3个问题:

  1. 为什么?—— 了解你的学习动机,为什么要掌握这项技能?
  2. 做什么?—— 为了成功,你需要具备哪些知识和能力。
  3. 怎么做?—— 在学习时有哪些资源、环境与方法可以利用。

具体例子我们稍后再举,我们先看看这个 1、2、3 的思维模式,是不是有点像工程学思维的分解。



工程学思维又是啥?

作为程序员,我们对工程一定不陌生。我们每天开发的项目就是一个个工程。


《开窍》这本书将工程学思维整理出5点:

  1. 行胜于言
  2. 分解结构
  3. 量化
  4. 列清单
  5. 取舍

简单来说,工程师大多都是行动派,他们懂得分解任务,懂排期,会列todo list,会排优先级(还会砍需求)。


在这5点里,我比较看重的是“分解结构”和“取舍”。这两点对我们学习一项新技能时非常有用。

工程师会把一个复杂、庞大的问题拆解成一个个小问题,如果拆解出来的小问题还很复杂,那就继续拆解,直到拆解到一个最简单的可执行任务位置。

引用《开窍》里的一句话:工程师相信这个世界上没有解决不了的问题,只有承受不了的成本。

file



举个例子

那么如何将后设学习工程学思维结合起来呢?

举个例子。如果我们打算学前端,我们就不应该直接去b站找一套看似详细的前端教程,也不应该直接买本专业书从头看到尾。这样的学习效果通常不会很好,常见的结果就是学到后面忘了前面。相反,我们应该先搞懂为什么要学。你是为了找一份前端工作还是为了丰富主机的业余生活?


再举个例子,我们都知道 Python 很容易上手,可能也是很多其他职业的工友想学编程的首选语言。那你在学之前首先就要搞懂你学 Python 是为了干什么。是为了搭建一个自己的网站?为了写爬虫收集数据?还是为了进军AI领域?

file


当你的动机明确了,接下来你的目标就清晰了。就可以用工程学思维去拆解任务。


比如,我想找一份前端的工作,但我0基础,对前端什么概念都不懂的。这种情况要怎么做呢?

首先,我会打开招聘平台,搜前端岗位,看看初级前端的招聘需求。多看几个公司的招聘信息,然后把招聘信息里列出的技能点都记录下来,并统计每个技能出现的次数。接着再看看中高级前端的招聘需求,同样把技能点记录下来,看看哪些技能点是和初级前端必备技能点重合的。然后就开始找这些技能点的教程。

逛了一圈下来发现国内很多企业都需要前端懂 HTMLCSSJSVueReact。此时我们还不懂这几个单词是什么意思。没关系,都记录下来,逐个去网上查。

我们还会发现,要求懂 React 的公司不一定需要 Vue,反过来也一样。那这两个东西有可能就是二选一,遇到这个问题时同样也上网查一下这两个东西到底有什么用。然后再看看招聘平台,哪个工资高点,哪个招聘数量多点。再做取舍。

file

在这个查资料的过程中,我们会知道前端就是做网页的。再结合我们用浏览器上网的经验去思考,在浏览器地址栏输入https://www.baidu.com/ 打开百度网站,在百度输入关键字就能搜索东西出来。百度这个网站有他的布局方式,这应该是前端需要做的。还有各种数据,但查了一下和数据打交道通常是后端的工作,我们要聚焦,这部分我们先不管。同时我们还发现浏览器有前进后退功能(历史记录),这个暂时不知道和前端有没有关系,先记下来。


当我们把要学的知识点列出来,逐个去查它们到底是什么意思,之后就要去搞懂每一个技术点之间到底有什么联系。


最后我们会得到一份学习清单,学习大纲就定义好了。我们就可以拿着这份大纲去网上找学习资料,比如去b站搜响应的学习教程,学完回掘金搜实战经验类的文章看看,面试前也搜一下面经。

在学的过程中,我们还可以把任务进一步拆分。拆解到每周要完成什么任务,再拆解到每天要做什么,做好todo list。这其实已经是我们日常工作中的“排期”了,这样分解下去已经无限接近执行了。


在这个例子中,我们已经建立了一个学习地图,同时还运用了工程学思维,做取舍(在有限的时间内拿到前端offer,VueReact 二选一),把任务拆解。


这套流程其实也有点像 OKR。但这里就不展开 OKR 了,留到下次的水文里吧。

此时关于后设学习法的学习地图就清晰了(为什么?做什么?怎么做?)。这个过程中我们还运用了工程学思维,把任务拆解,

file



我的例子

我是一个表达能力不太好的人,经常出现词不达意的情况。意识到这点后,我想做出改变:训练自己的表达能力

怎么训练呢?像up主一样录视频发网上?我还没做好露脸的准备,而且我的普通话很普通(粤语人)。查了一下市面上很多文字转语音的工具,这确实可以满足当一个技术up的需求。但既然要先准备文稿,那不如先试试用图文的方式去训练自己的表达能力吧。

此时,“动机”和“做什么”就已经定义好了。

file


接下来要怎么做?

要写什么文章?我敲代码的,选技术类的文章会比较轻松。

什么技术都写吗?分解一下。我逛了一圈国内的技术平台,当时觉得掘金的氛围不错,而掘金又是偏前端娱乐圈的。

“前端,娱乐圈”这两个标签说明这里前端开发者比较多,应用、面试类文章比较受欢迎。那大方向就定下来了。

再分解,面试我不想写,那就剩下应用类。VueReact 这些热门框架的文章很多,我扎个头进去没优势。写啥呢写啥呢?要解这题,我换了个思路,既然我前面定义了“应用”和“面试”这两个标签,在“应用”找不到直接答案,那就用“面试”的思维去找“应用”的答案。于是我打开招聘平台,看了一下发现可视化方面的要求越来越多了。那就写可视化的应用吧。

再分解,写3D还是2D的可视化文章呢?3D却是是炫酷,未来可能是一个重要领域,但当时中小公司应用得不多。再看看2D领域,应用面真的广,那就选2D。2D比较热门的是图表,起步阶段我先躲开这个方向。找来找去,我找了 Fabric.js(详细分解我就不再写下去了,总之就是分析-分解-分析-分解下去)。

选题方向的定义过程:

写文章 -> 技术类 -> 前端 -> 可视化 -> 2D -> Fabric.js

Fabric.js 我以前没接触过,百度搜到的文章不多,官方文档又没有中文,官方文档的讲解对初学者不友好。如果我能把 Fabric.js 的入门教程写清楚,就算完成一次训练。


怎么学?

先去看看 Fabric.jsDemos 页面,把例子看完就知道这个工具能干啥。然后我挑了一个简单的 demo ,给自己定个目标:我要通过查文档去实现这个 demo

file

接下来就是粗略的过一遍官方文档。粗略了解一下 Fabric.js 提供了那些方法给我们用。经过2天时间我就自己实现了当初选的那个demo,同时也对 Fabric.js 熟悉了。有点输出倒逼输入的感觉。


怎么讲解?

自己入门了,那要怎么给工友们讲解 Fabric.js 呢?讲解部分才是我这次真正要训练的目标。

这里同样运用了工程学思维:分解,然后列清单

我先定义一个要完成的大目标(让工友们学完我的文章可以做一个图形编辑器出来)。这个目标我没在文章里说,但确实我整个《Fabric.js专栏》的大主题。

如果一上来就说要完成一个图形编辑器,对于我来说很难,很难讲解。对于工友来说,没接触过 Fabric.js 也很难看懂这文章。遇到难题,首先要做的就是分解。我先写一篇入门文章,然后再围绕这个大目标,将各个功能点拆出来写。比如在 Fabric.js 里怎么做自定义右键菜单。

一套操作下来,目录也整理好了。接下来要做的就是每篇具体的文章要怎么写了。

file


关于怎么写好一篇文章,可以参考一下论坛里比较火的文章,看看他们的思路是怎样的。也可以找一些写作教程来看,然后将教程里的一些写作准则整理出来,按照这些规范来写。练习时间长了,表达能力应该会变强(讲道理的话)。


怎么写才能让工友们容易接受呢?同样需要分解。我把那篇文章要做的目标先定好,然后通过“1、2、3、4……”逐一讲解,循序渐进的讲。这个思路应该不会错的,先写一篇试水,有反馈再做调整。


file

长期使用这套方法,除了学习目标更清晰,还能更清楚自己的需求(很多人其实不知道自己的真实需求是什么),时间长了甚至可以去 猜测产品经理的想法。

他为什么要提这个需求?

A. 用户确实有这个需求
B. 试水
C. 产品经理脑袋温度很高
D. 他就是想整我

以上就是我对“后设学习”和“工程学思维”的理解和应用。虽然我的例子里很多细节都没拿出来说,但我猜工友们应该知道我想表达什么的,一定知道的吧~


道理我都懂,但就是做不好

file

代码仓库

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

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

相关文章

leetcode-栈与队列

C中stack 是容器么? 栈,队列往往不被归类为容器,而被归类为container adapter(容器适配器)。因为由底层的容器实现,同时使用适配器模式的设计模式,封装了一层。 我们使用的stack是属于哪个版本的STL?SGI ST…

【Java 进阶篇】解决Java Web应用中请求参数中文乱码问题

在Java Web应用开发中,处理请求参数时经常会遇到中文乱码的问题。当浏览器向服务器发送包含中文字符的请求参数时,如果不正确处理,可能会导致乱码问题,使得参数无法正确解析和显示。本文将详细探讨Java Web应用中请求参数中文乱码…

微信小程序 php java nodejs python课堂学生考勤签到系统zng1p

课堂考勤也是学校的核心,是必不可少的一个部分。在学校的整个教学行业中,学生担负着最重要的角色。为满足如今日益复杂的管理需求,各类基于微信小程序也在不断改进。本课题所设计的基于微信小程序的课堂考勤系统,使用微信开发者与…

shell中的运算

目录 1.运算符号 2.运算指令 练习 1.运算符号 运算符号意义加法-减法*乘法/除法%除法后的余数**乘方自加一- -自减一<小于<小于等于>大于>大于等于等于ji ->jji*j*i->jj*i/j/i->jj/i%j%i->jj%i 2.运算指令 (()) //((a12))let //let a12 …

JavaScript_Pig Game保存当前分数

上个文章我们基本上完成了摇色子和切换当前玩家的功能。 现在我们开始写用户选择不再摇骰子的话&#xff0c;我们将用户的当前分数存入到持有分数中&#xff01; ● 首先我们应该利用一个数组去存储两个用户的分数 const scores [0, 0];● 接着我们利用数组来对分数进行累…

SHCTF2023 山河CTF Reverse方向[Week1]全WP 详解

文章目录 [WEEK1]ez_asm[WEEK1]easy_re[WEEK1]seed[WEEK1]signin[WEEK1]easy_math[WEEK1]ez_apk [WEEK1]ez_asm 从上往下读&#xff0c;第一处是xor 1Eh&#xff0c;第二处是sub 0Ah&#xff1b;逆向一下先加0A后异或1E 写个EXP data "nhuo[M7mc7uhc$7midgbTf7$7%#ubf7 …

nginx请求时找路径问题

nginx请求时找路径问题 你是否遇到过这样的情况&#xff1a; 当你安装了nginx的时候&#xff0c;为nginx配置了如下的location&#xff0c;想要去访问路径下面的内容&#xff0c;可是总是出现404&#xff0c;找不到文件&#xff0c;这是什么原因呢&#xff0c;今天我们就来解…

OpenAI : GPT-4 发布更新,整合了画图、插件、代码等能力

本心、输入输出、结果 文章目录 OpenAI : GPT-4 发布更新,整合了画图、插件、代码等能力前言GPT-4 的复合能力更新中的 automatic (自动的)获取天气我们看看讯飞星火的表现放大后内容并不是我们想要的我们看看百度文心一言的表现弘扬爱国精神OpenAI : GPT-4 发布更新,整合…

CSS3中的字体和文本样式

CSS3优化了CSS 2.1的字体和文本属性&#xff0c;同时新增了各种文字特效&#xff0c;使网页文字更具表现力和感染力&#xff0c;丰富了网页设计效果&#xff0c;如自定义字体类型、更多的色彩模式、文本阴影、生态生成内容、各种特殊值、函数等。 1、字体样式 字体样式包括类…

画个哆啦A梦吧

可自定义名字 源代码 #!/usr/bin/python # -*- coding:utf-8 -*-# from turtle import * import turtle as t# 无轨迹跳跃 def my_goto(x, y):t.penup()t.goto(x, y

多个相同地址的I2C设备,如何挂载在同一条总线上

前言 &#xff08;1&#xff09;如果有嵌入式企业需要招聘湖南区域日常实习生&#xff0c;任何区域的暑假Linux驱动实习岗位&#xff0c;可C站直接私聊&#xff0c;或者邮件&#xff1a;zhangyixu02gmail.com&#xff0c;此消息至2025年1月1日前均有效 &#xff08;2&#xff0…

提高抖音小店用户黏性和商品销量的有效策略

抖音小店是抖音平台上的电商模式&#xff0c;用户可以在抖音上购买各类商品。要提高用户黏性和商品销量&#xff0c;四川不若与众帮你整理了需要注意以下几个方面。 首先&#xff0c;提供优质的商品和服务。在抖音小店中&#xff0c;用户会通过观看商品展示视频和用户评价来选…

M1安装OpenPLC Editor

下载OpenPLC Editor for macOS.zip文件后&#xff0c;使用tar -zvxf命令解压&#xff0c;然后将"OpenPLC Editor"拖入到"应用程序"文件夹 右键点击"OpenPLC Editor"&#xff0c;打开这个""文件&#xff0c;替换为以下内容 #!/bin/bash…

No174.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

Godot 官方2D C#重构(4):TileMap进阶使用

文章目录 前言完成内容项目节点结构TileMap设置图片资源备选图片添加物理碰撞添加y轴遮罩判断Y Sort Enable是干什么的&#xff1f; 脚本代码 前言 Godot 官方 教程 Godot 2d 官方案例C#重构 专栏 Godot 2d 重构 github地址 完成内容 项目节点结构 TileMap设置 图片资源 备选图…

git 推送到github远程仓库细节处理(全网最良心)

我查看了很多网上的教程都不是很好 我们先在github创建一个仓库&#xff0c;且初始化 readme 我们到本地文件初始化仓库 添加远程仓库 这时候我们就 git add . , git commit ,再准备git push 的时候 显示没有指定远程的分支 我们按照提示操作 提示我们要先git pull 提示我…

39 :C语言与汇编语言混合编程

目录 编译过程 编译小知识 C语言中函数是如何进行调用的&#xff1f; 寄存器压栈过程 C语言函数调用过程 函数调用过程 函数返回过程 C语言中的调用约定 gcc编译器使用的栈帧布局 ebp是函数调用以及函数返回的核心寄存器 用汇编语言编写Linux应用程序 交互关键字 …

windows下基于vscode的ssh服务远程连接ubuntu服务器

Ubuntu端配置 1.确保ubuntu端已启用ssh服务 首先&#xff0c;安装ssh服务 sudo apt-get install openssh-server 安装后&#xff0c;打开ssh服务 sudo service ssh start 如果显示有sshd就说明成功了。 判断是否成功打开 ps -e|grep ssh 同时也可以通过如下方式确保ss…

Spring-AOP概念及相关术语

AOP概念 一、概述1、相关术语2、作用 二、基于注解的AOP1、准备工作2、各种通知3、切入点表达式语法4、重用切入点表达式5、获取通知的相关信息6、切面的优先级 一、概述 回顾&#xff1a; 什么是面向对象 什么是AOP AOP&#xff08;Aspect Oriented Programming&#xff09;是…