最近总是听到很多有同学问:怎么学到后面感觉越来越难了!

教程看完一遍后懵懵懂懂的

脑子绕不过弯来,我是不是不适合学

……

大多数人在入门之后,都会遇到一个比较大的“ 瓶颈期 ”:这个阶段,你已经了解了编程语言的基本语法,可以看懂入门书上的所有例子,但是 合上教程却又无法写出一个完整的代码 ,对于接下来的学习又缺少方向。以至于对编程这件事情感到迷茫,甚至自我怀疑。

这是种很普遍的感受,也是很正常的现象,而且不仅是在学编程上。

有种现象在心理学上被称为“ 达克效应 ”,指的是: 人在对一件事认知不足的时候往往会高估自己的水平;在经过适当的学习和训练之后,就会认识到事情的复杂度和自己的不足,转而对自己产生否定;继续坚持,走出这一阶段,就会客观看待,进入稳定的成长期 。

所以,如果开始感到迷茫,至少 说明你已走上正确的道路 ,比起很多刚刚接触甚至还未接触编程就觉得自己可以三个月成为软件工程师的人,你已经超越了一个阶段。

可以说,几乎所有的程序员都是这么过来的,包括我自己。你们看到教程前几课里的那个猜数字游戏,我刚开始学编程时,做了一个多星期;大一的暑假折腾了近两个月,才完成一个很蹩脚的黑白棋。以我的经验来看,这个过程甚至不只是一个达克效应的曲线这么简单,而是 无数个小的达克效应:你总是会不停地面对自信和自我怀疑 。

但 无论你的心态(纵轴)如何变化,你对于编程的认知(横轴)一定是增长的 。

那么问题来了, 我们该如何面对这种起伏呢 ?

在软件工程领域有个概念叫做“ 迭代式开发 ”。

最传统的“ 瀑布式开发 ”是遵循 需求->设计->开发->测试 这一开发流程,每一步都完善之后进入下一个阶段,直到最后交付成品,一步到位。这看起来是个很有效的模型,但实际中有太多不可预知的因素,造成了大量软件的开发失败。

“迭代式开发”则在其基础上做了改变,虽然同样是从需求到测试这一流程,但并不再是一步到位,而是把产品拆分成很多小版本,每次迭代只需要实现一部分功能,之后再根据实际情况调整下一版本。如今的互联网产品几乎都是基于类似的迭代开发方式。

迭代开发的好处显而易见,但到了学习这件事上,很多人就还没想通这一点,潜意识里还是觉得应该一步到位。你可能觉得编程学习是这样的过程:

但其实,它更类似于这样:

除了一开始很基本的一些语法外,后续的进阶内容很少是线性发展的,通常都是多个知识点的结合。所以你必然会在第一次遇到某个概念时茫然。

对此,你要做的并不是寻找一个按部就班的教程(这基本不存在),而是 坦然接受这种未知,不求甚解,硬着头皮往下看。在第一次学习的迭代时,去构建整体的认知,勿钻牛角尖;在后续的迭代中,这些曾经孤立的知识点就会在你脑中逐渐产生化学反应,形成连接。

这是个不断迭代的过程,也是个量变到质变的过程。所以让程序员去给新手讲一个概念,往往很难讲明白,因为这本身就不是通过“讲解”获得的认知,你没有相关的概念, 没有前9次的迭代,不可能直接领悟第10次迭代的结论 。

所以你以为的学习曲线可能是这样:

但实际上,它更可能是这样:

你需要不断经历反复的学习。大多数瓶颈期的问题,只是 因为学习的时长还没到位,写的代码还太少 。饭要一口一口吃,编程也是要一个坑一个坑地踩。但好的一方面是: 你每次的迭代学习,都会得到新的认知 。

所以说 进阶靠项目,目的就是通过实践开发,把你曾经看过的点都连接起来 。就像乔布斯说的:

Conneting the dots

你在向前展望的时候不可能将这些片段串连起来;你只能在回顾的时候将点点滴滴串连起来。所以你必须相信这些片段会在你未来的某一天串连起来。

虽然这话说的是人生大道理,但放在编程这件小事上,同样适用。

我们总是容易高估自己短期内能做到的事情,而又低估自己长期能达到的高度。

如果心态不好,急于求成,一时学不会就很容易自暴自弃。你想想看,专业的大学生再怎么不努力,好歹也学了四年呢,凭什么你觉得自己三个月就能跟别人竞争?要是抱着这样的心态,最后难免是21天从入门到放弃。

但说难很难,说简单也简单。难在并不是每个人都相信时间的力量,都能在尚未看到成果的阶段坚持下来,跨过绝望之谷。简单在于, 只要你做得够久,就已经胜过了许多人 ,跟什么天赋、出身都没多大关系。

学计算机不易,此路应携手前行。

如果你也想学计算机编程的话!

可以来我的C/C++编程学习基地,【点击进入】!

还有免费(零基础教程,项目实战教学视频)!

涉及:游戏开发、课程设计、常用软件开发、编程基础知识、黑客等等...

和志同道合的小伙伴们一起学编程吧!

2020-08-07#自学编程方法论# 怎么学到后面越来越难?达克效应在作祟!相关推荐

  1. 想自学编程,先学什么好?给你三个建议,自己斟酌

    要学一门编程语言,我们要了解相应的语法规则,大概知道计算机读取代码的逻辑,培养机器思维. 学习编程,最开始应该先了解一下计算机的历史,计算机基础.因为你在编程的时候,你需要让计算机知道你的思维,你需要 ...

  2. python自学需要下载软件吗_编程入门先学什么软件 想要自学编程,先学的Python,需要下载什么软件,有什么推荐课程吗?...

    编程入门自学需要什么软件? 那要看你学啥语言了,如果java,就选eclipse,editplus.如果是c语言,我建议选择,vs或者C-FREE,python的话,我就不太清楚了.我个人基本不用py ...

  3. 0基础怎么自学编程?零基础自学编程应该怎么学

    零基础想要学习编程,第一步首先决定要学哪一门语言,了解它们的特点和应用的领域:第二步确定学习方法,自学还要结合一些辅助资料或工具:第三步,调整良好的心理状态,为学习编程创建一个稳定的心理环境. 第一步 ...

  4. 30岁零基础自学编程,先学哪种语言最好?

    说说我自己的经历.211大学,光学工程研究生毕业,和程序猿完全不搭边. 毕业后进了成都某国字头研究所,在行业里摸爬滚打了四年,2018年机缘巧合在家养病,开始了编程自学.选择编程的原因很简单:成本低, ...

  5. python适合自学编程吗-孩子学编程选Scratch还是Python

    我们都知道编程的重要性,编程要从娃娃抓起,但孩子到底是该学Scratch还是Python呢?Scratch和Python的区别是什么? 1.孩子应该学Scratch还是Python? (1)0-6岁的 ...

  6. 24岁零基础自学编程,先学哪种语言最好?

    看你是为了什么学: 1.如果是因为感兴趣,那么建议从弱语言开始学习. --特点:时间短,见效快. 2.为了找工作,而学编程,那么建议基础还是扎实一点,从C语言或者Java开始,这边推荐Java. -- ...

  7. 视频教程-2020新版C语言程序设计零基础入门小白自学编程-C/C++

    2020新版C语言程序设计零基础入门小白自学编程 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有node/java/python,专注于服务端研发 ...

  8. c语言程序设计自学跟谁好,双辽c语言编程学习,双辽学c语言编程哪个好,双辽学c语言编程自学好还是报班好...

    双辽c语言编程学习,双辽学c语言编程哪个好,双辽学c语言编程自学好还是报班好 首页 > 软件 > 双辽c语言编程学习 作者:镀金池   发布时间:2017-12-07 05:48 一个C语 ...

  9. 学计算机和电脑办公的区别,自学编程和计算机科班出身的差别在哪?

    自学编程和科班出身的差别最大的在于学习的主体--人 但毫无例外的是,当两者之间相辅相成之时所能发挥的力量更大. 自学编程和计算机科班出身的差别在哪? 不同人的不同看法 看到一段好的产品,科班出身的会问 ...

最新文章

  1. 初创企业股权架构_初创企业如何以每月不到200美元的价格利用生产级基础架构...
  2. 关于机器学习实战,那些教科书里学不到的12个“民间智慧”
  3. 嵌套类可以先在外围类中声明,然后在外围类中定义
  4. gentoo doc web site
  5. 前端教程之Intro.js轻松实现新手引导效果
  6. 2017-2018-1 JAVA实验站 第三周作业
  7. 通过 WIFI 用 adb 调试 Android 设备
  8. matlab for循环不覆盖,将输出保存到文本文件而不覆盖和打印矩阵中的N个条目[matlab]...
  9. js常用方法,JS实用方法,jq获得文件后缀,解析window。location,解析URL参数
  10. 悟透delphi 第十一章 面向对象数据库基础
  11. not in与NOT EXISTS亲历的差别体验
  12. (转)以太坊(Ethereum ETH)是如何计算难度的
  13. 百度api申请key
  14. java batik_batik详解1
  15. MySql锁机制:共享锁、排它锁;行锁、表锁、页锁;
  16. 为什么在Excel文档单元格中输入长段数字就变为公式?干货来啦!如何解决在excel单元格中输入数字变为公式的问题?
  17. 最近抖音上虚拟元宇宙项目-猜歌名,代码解析
  18. 微信订阅号之1-注册
  19. XP计算机桌面锁定进不去,XP系统电脑进不了桌面怎么办
  20. 《夏洛的网》思维导图读书笔记

热门文章

  1. PLG日志平台搭建: Promtail + Loki + Grafana 全步骤
  2. 阿里云API网关配置详解
  3. python表示差值_Python算法之差值查找-Testfan打卡学测开0116
  4. 如何手机桌面加计算机,教你自制手机、电脑壁纸|手机一键加字、加光晕特效,4步搞定!...
  5. excel单元格下拉选项怎么设置_表格设置下拉多个选项的方法_excel如何设置下拉选项图文步骤...
  6. 免费内网穿透远程访问家里的监控
  7. 华硕笔记本进入pe系统-华硕电脑从U盘启动-实测有效-转载--记录用
  8. 安装完固态硬盘后计算机里没显示,如何解决安装固态硬盘后系统看不到的问题[详细介绍]...
  9. java muti实现图片上传_MutiFileUpload.java 多文件上传
  10. 天天在捣鼓Docker,你是否真正的把握住了?