Hello Programming|用原子习惯编织编程梦

引言

曾经有没有发现自己开始看一个在线视频教程,结果在视频的中途,教程变得无聊?或者每次告诉自己,这次一定要看完整个在线课程,但当你坐下来开始学习时,感觉就像是洗碗和洗衣服一样枯燥乏味。最后,你还会发现保持高效生产力和取得进展简直比登天还难。

所以,在学习编程时,如何才能保持积极性? 成为了难题。

这时候就是《原子习惯》(Atomic Habits)这本书派上用场的时候了。

如果你没听说过这本书,那你可能真的不是什么自我提升书迷。在这本书里,詹姆斯·克利尔回答了一些很有趣的问题。

比如,什么是习惯循环?我怎么调整环境来实现我的目标?以及,我怎么利用多巴胺高涨来坚持好习惯?

通过回答这些问题,我将向你展示如何培养一种革命性的习惯学习编程。就像教计算机说hello world一样,让我们教自己说hello programming吧!

深入

举例

想象一架飞机从洛杉矶飞往纽约。就在起飞前,飞行员把飞行路径微调了3.5度,听起来微不足道。

这个变化小得连飞机上的蚂蚁都察觉不到。然而,当飞机降落时,乘客们却闻到了不对劲,因为他们走在了华盛顿特区干净的街头,而不是纽约。

这就是说,微小的变化完全可以改变我们生活的轨迹。就像乘客们一样,我们看不到这些变化的即时结果,但从长远来看,这些微小变化的综合效果和最终结果可能会大相径庭,就像华盛顿和纽约的区别一样大。

作为一名初学者程序员,你可能觉得要进入科技行业,就得建造一些革命性的东西。

但实际上,你只需要每天迈出一小步,然后在你意识到之前,你就已经到达目标地了。

就像编程中的bug一样,有时候最小的变化会让一切顺利起飞,而不是闹出一场灾难级的软件风暴。

分析

如果你一直在Tiktok上滑动或者沉迷于游戏,一年后你可能连比今天更优秀的自己都不是。

打造一些微小的原子习惯,帮助你每天学习编程,一年后你将毫无疑问地离软件工程师的工作越来越近。

记住,比起追逐低俗趣味视频,编写代码才是真正的程序员日常。

培养习惯容易,但坚持下去是大多数人挣扎且无法保持一致的地方。

当你开始学习编程时,你期望看到线性的进步,但实际上发生的事情是:

就像程序中出现的bug一样,你以为会一路向上,一帆风顺,结果却是磕磕绊绊的曲线。

有时候,学编程就像是参加一场盲人接力赛,你在黑暗中摸索前进,只能相信下一步会更有趣,而不是碰到一堵墙。

一开始,你可能看不到任何结果。詹姆斯·克利尔把这个图表的一部分称为"失望谷"。

这是大多数人失去动力、放弃并回到老习惯的地方。但实际上,你的努力所获得的回报是有延迟的。

一旦你度过了这个"失望阶段",你会感觉自己像是超级英雄。

学习新的编程语言、构建项目,进入各种工作,这一切都会突然变得自然而然。

当你回顾自己写的第一行代码时,肯定会对自己大笑不已。那时的你就像是曾经以写Hello World为荣的普通人一样可爱。

养成习惯

要养成一个习惯,首先你得搞懂"习惯循环"的概念。

这个循环包括"暗示"、 "渴望"、 "响应" 和 "奖励"。这就是构建我们一遍又一遍重复的任何好习惯或坏习惯的循环。

就像程序员的日常一样,我们从 Cue(暗示)开始,然后迫不及待地期待 Craving(渴望),紧接着展开 Response(响应)的代码编写,最后以 Reward(奖励)的bug修复结束。

就这样,一种习惯的循环被构建,好比编程中的循环结构,一次次重复直到你的生活变成了一段充满 Reward 的源代码。

举例

让我们通过一个我们都深受其害的坏习惯来理解一下习惯循环。

假设,你的手机放在你身边并且震动了(暗示),你渴望知道这个通知是谁发的(渴望),于是你拿起了手机(响应),然后你至少花了30分钟在Tiktok上滑动(奖励)。

就像程序员等待着程序编译完成一样,手机震动就像是代码中的通知,你对通知的渴望就像是等待代码的结果,然后你不自觉地执行 Response(响应)函数,最终在 Reward(奖励)中度过了时间。

说到底,手机震动和程序编译,都是我们生活中必不可少的 '奖励' 和 'bug'。

再想象一下,你对视频教程感到厌烦(暗示),你想看点有趣的东西(渴望),于是你拿起了手机(响应),然后你又看了一个小时tiktok的有趣视频(奖励)。

这就像是程序员对于复杂问题的回避一样,视频教程就像是那个待解决的棘手问题,而你则是程序员中的 Response 函数,转而执行了手机中的 Entertainment 指令,最终获得了tiktok级别的 Reward,让你在无聊中找到了生活的一份乐趣。

很快,你的大脑开始建立起看tiktok和教程无聊之间的联系。最终,你养成了在编程时浪费时间的坏习惯。

就像程序中的错误循环一样,你的大脑在 WatchTiktokGetBoredWithTutorial 之间建立了牢固的连接。

这就好比程序员在代码中无意中创建了一个死循环,而你在编程时也无意中陷入了 WasteTime 的坏习惯循环。

不过,别担心,就像修复bug一样,你可以找到适当的 Rewards 来调整这个循环,使之更有益于你的编程学习之旅。

就像你可以用同样的习惯循环来养成良好的习惯一样,你可以将自己的笔记本当作学习编程的提示。

詹姆斯·克利尔就在他的书中提到过这一点:通过将你的提示放在每次你看到它都会引起注意的地方,你可以使提示变得明显。

就像程序员调试代码一样,你可以通过将 LearnProgramming 函数插入到你的 Cue 中,使其在每次你打开笔记本时都显眼。

这就像是程序员将一段重要的代码放在最显眼的地方,确保每次浏览代码时都会被注意到一样。这样,你就能在每次看到你的笔记本时,立即感到编程的冲动,而不是像看到 WatchTiktok 时那样感到无聊的冲动。

仅仅有提示是不够的,你还需要善用实施意向。

研究表明,大多数人不能坚持好习惯的主要原因不是因为他们缺乏动力,而是因为他们对自己的目标缺乏清晰的认识。

当你说"明天,我会学习编程"时,那只是一个没有明确目标的愚蠢梦想。

所以,与其只是说,不如利用"习惯叠加"方法。下一次你决定学编程时,不要只是说,"我要学编程。"

相反,将其与另一项任务结合起来,比如,在刷牙后,我会坐下来写代码两个小时。

这个强大的过程就叫做习惯叠加

就像程序员在代码中实现函数一样,你可以在生活中实现 LearnProgramming 函数,使其与其他任务有机结合,从而更容易达到目标。

这就好比程序员通过将功能模块化,使得代码更清晰易读一样,你通过将学习编程与其他任务结合,使得目标更加明确清晰。

2 分钟法则

要养成足够的编程习惯,2分钟法则将助你一臂之力。

当你为自己设定不切实际的目标时,保持动力去实现它们就变得很困难。

就像程序员拆解复杂的问题一样,2分钟法则是将学习编程任务分解成小块,使之变得更加可行。

不要一开始就给自己设定一个庞大的目标,就像程序员不会在一行代码中解决所有问题一样。

相反,通过将任务划分成小块,每次只需花2分钟去完成,就像是程序员一行行地构建代码,你会发现自己更容易保持动力,最终完成整个编程习惯的构建。

詹姆斯·克利尔建议从每天只有两分钟开始。

比如,如果你想养成读书的习惯,可以从每天只读两分钟开始,然后逐渐增加阅读时间。

学习编程也是一样,你不会一夜之间变成专业程序员。

与其在两天内观看整个40小时以上的课程,不如尝试通过看一个视频然后实践所学的内容,来充分利用它

通过这样做,你可以避免挫败感,建立起一个高效学习新事物的长期习惯。

就像程序员逐步构建代码一样,你会逐步构建起自己的编程技能,而不是一蹴而就。

这篇文章就到这里。我希望你喜欢它,并从中学到一些新的东西。

相关推荐
golitter.7 分钟前
Ajax和axios简单用法
前端·ajax·okhttp
雷特IT27 分钟前
Uncaught TypeError: 0 is not a function的解决方法
前端·javascript
九圣残炎34 分钟前
【springboot】简易模块化开发项目整合Redis
spring boot·redis·后端
长路 ㅤ   1 小时前
vite学习教程02、vite+vue2配置环境变量
前端·vite·环境变量·跨环境配置
亚里士多没有德7751 小时前
强制删除了windows自带的edge浏览器,重装不了怎么办【已解决】
前端·edge
micro2010141 小时前
Microsoft Edge 离线安装包制作或获取方法和下载地址分享
前端·edge
.生产的驴1 小时前
Electron Vue框架环境搭建 Vue3环境搭建
java·前端·vue.js·spring boot·后端·electron·ecmascript
awonw1 小时前
[前端][easyui]easyui select 默认值
前端·javascript·easyui
爱学的小涛1 小时前
【NIO基础】基于 NIO 中的组件实现对文件的操作(文件编程),FileChannel 详解
java·开发语言·笔记·后端·nio
爱学的小涛1 小时前
【NIO基础】NIO(非阻塞 I/O)和 IO(传统 I/O)的区别,以及 NIO 的三大组件详解
java·开发语言·笔记·后端·nio