第1阶段:机会
你很开心,你一直想学这个新的内容,比如说某编程语言,无论是规划还是环境所迫,总之你终于有这个机会学习了。
第2阶段:没有根据地乐观
谷歌搜索——挑选一两个自己感兴趣的教程,买资料和书,然后开始MOOC(大规模在线开放教程)。教程很有趣,甚至还有在线REPL,可以让你玩耍,你觉得你正在进步中。当然也有烦恼——手指还不熟练,但你坚持,不肯放弃,并准备向你的第一个项目进军。
第3阶段:绝望的深坑
你开始从“Hello, World”延伸开去,例如,先是将内容更改为“Hola,Mundo”这样小心翼翼的尝试,然后胆子稍微肥了点,开始肆无忌惮了——于是乎,错误信息,堆栈跟踪,随机行为纷至沓来。即使不管所有的错误信息,那些能在教程中正常工作的代码,也许你亲自操刀的结果却是一片空白。你恍然发现,哪怕是一些看上去愚蠢但良性的细微差别,也会造成狂风暴雨,让你阴沟里翻船,陷入绝望的深坑。即使是最简单的任务都让你痛苦不已,你开始怀疑自己,怀疑自己其实压根就没有编程的天分。
第4阶段:放低身段
慢慢地,通过试验和错误的洗礼,通过向同事、StackOverflow、博客寻求帮助,你开始一点一滴地积累知识。你开始懂得如何显示数据,如何与数据库进行交流,如何创建接口,如何覆盖方法。虽然你还并不能真正理解上述任何一个的工作原理,但是在不断掌握这些神奇的咒语,扩充知识领域的同时,完成一些特定的、必要的任务渐渐变得不在话下。对于有的咒语,你可能会用得非常顺手,甚至在一些有问题的情况下也生搬硬套,觉得只要完成就好,哪怕内心明白自己这样做并不对。调试是一种挫折锻炼。无论是因为自我觉得目标已经实现,计划将时间放到其他地方,还是因为太难因此望而怯步,亦或是自诩已经掌握了专业知识从而做出了自认为理智的选择,总而言之很多人止步于这一阶段。
第5阶段:黎明的到来
到了这一阶段,由于你已经积蓄了足够多的信息片段,于是开始能够找到它们之间的连接。你开始能够灵活应用知识,而不是像之前那样生搬硬套。你对一些基本规则开始有所谓的直觉,开始从死板地遵守向接收知识转变。这也是一个不均衡的过程——对这方面心意相通的同时可能仍然困惑于另一方面——但是你有信心一步一步地拿下,你开始享受这个过程。
第6阶段:专业
一段时间以后,你完全掌握了基本模式,开始觉得编程就像吃饭那样轻松自然。你已经可以直观地了解事物的工作原理,并且在架构、编码和调试之间轻松斡旋。一般说来你已经不必刻意地去思考问题,就像你从家里到商店去买东西——你知道怎么走,如果有一些新造的道路,你也能瞬间权衡不同的选项,并选出一条最佳的路线。此时,碰到问题最难的应该是问题本身,而不是操作系统来支持你想要它做什么事情。
第7阶段:成就
你现在已经是一个有着多年经验的专家了。你投入的时间和精力通通有了回报。你写博客文章,助力开源项目,成为了同行中公认的专家。这俨然成为你的身份和荣誉,也成为了你的枷锁,你的所作所为需要匹配专家这个名头。突然有一天,新生事物出现了。你内心也明白,这个新事物很好,将会很有用,能帮助轻松解决现有工具不足以解决的问题,将会是未来的潮流。但与此同时,你清楚地知道成为专家所需要付出的努力和时间,需要再次感受不足和挫折,需要去向他人求助等等,你不愿意了,你退缩了。你宁愿闭上眼睛,墨守陈规,将自己蜷缩成一团,就好像枯萎的枝干慢慢死去。
译文链接:http://www.codeceo.com/article/7-steps-learning-programming.html
英文原文:Seven stages of learning
翻译作者:码农网 – 小峰
相关推荐
在这个阶段,程序员通常会掌握一门编程语言,如C++、Java或Python等,能够熟练地编写基本的代码,理解语言的基本语法和数据类型。这一阶段的重点在于理解和运用语言的表面特性和基本结构,就如同武术中的基本招式和...
编程学习的旅程可以分为四个阶段,每个阶段都有其特定的挑战和成长点。首先,我们来看看“手把手辅导的蜜月期”。在这个阶段,初学者通常借助诸如Codecademy、Treehouse和Code School等在线平台,以游戏化的学习方式...
7. **第6阶段实战-基于STL泛化编程的演讲比赛资料**:通过使用STL的模板和泛型编程,学习者将设计一个演讲比赛管理系统,这要求对C++的泛型编程有深入理解,能够编写出更加灵活和可重用的代码。 8. **第7阶段-C++...
- 在这一阶段,学习者将接触逻辑回归模型,用于分类问题。可能包括二元逻辑回归的实现,以及交叉熵损失函数的计算。此外,还会涉及到正则化技术以防止过拟合。 3. **神经网络与深度学习(machine-learning-ex3.zip...
JAVA编程学习的正确顺序是指学习JAVA及相关技术的步骤和方法,本文将从四个阶段对JAVA编程学习的正确顺序进行详细的解释。 第1阶段:掌握JAVA语言基础知识 在学习JAVA编程之前,需要掌握JAVA语言基础知识,包括...
第五个阶段是多事件多任务的机器人编程学习,目的是让机器人能够同时完成多个任务。 最后,文章强调了在高中生中推广机器人编程学习的重要性。学习的动力主要是来自于解决实际问题、实现个人价值和成就感。学生在...
随着孩子逻辑思维能力的提升,他们可以开始接触可视化编程工具,如Scratch,进一步深入学习编程概念。此阶段应以兴趣为导向,制定系统的编程学习计划,但避免过度压力,确保孩子在快乐中学习。除了基本概念,还可以...
Matlab+Yalmip两阶段鲁棒优化通用编程指南(上篇),内容包括: ①.拿到一个复杂的两阶段鲁棒优化问题的分析...这份资源是本人博客的配套学习代码,包含Matlab+Yalmip两阶段鲁棒优化通用编程指南(上)所涉及的全部代码。
在这一阶段,孩子们的逻辑思维能力开始形成,但并不意味着必须从这个年龄开始学习编程。家长可以选择一些适合孩子的编程小游戏,例如无字母编程游戏,通过控制角色完成任务,锻炼孩子的逻辑思维。例如,使用Scratch ...
少儿编程学习是一个逐步深入的过程,通常分为初学阶段、进阶阶段和精进学习阶段,旨在适应不同年龄段孩子的能力发展和兴趣培养。 **初学阶段(4-6岁)** 在这个阶段,孩子的逻辑思维能力开始形成,适合通过游戏化的...
根据孩子的年龄和发展阶段,编程学习可以分为三个主要阶段:初学阶段、进阶阶段和精进学习阶段。 初学阶段(4-6岁): 在这个阶段,孩子们的逻辑思维能力开始萌芽。为了吸引他们的注意力并培养兴趣,可以采用编程小...
本文将根据提供的书籍推荐列表,为读者梳理出一个逐步深入的编程学习路径。 首先,从入门阶段开始,HTML和CSS是网页设计的基础,而《HTML 与 CSS 入门经典(第 7 版)》能够帮助初学者快速理解这两门语言的基本概念和...
- **所需时间**:学习编程的时间长短不一,具体取决于个人的基础、学习效率和个人目标。一般来说,从完成第一个简单的“Hello World”程序到能够独立完成一些小型项目,这个过程可能需要几个月到一年不等的时间。 #...
学习数控编程分为三个阶段。第一阶段是基础知识的积累,涉及数控加工原理、程序编写和加工工艺等。第二阶段主要学习数控编程技术,特别是基于CAD/CAM软件的交互式图形编程。第三阶段则是实践阶段,通过实际产品编程...
进入中学阶段,孩子可以开始深入学习编程语言,如Python、Java、JavaScript或C++等。这些语言提供了更强大的功能,适合开发更复杂的软件。此时,重点应放在实际项目和编程实践中,通过编写程序解决实际问题来提升...
在儿童编程的学习过程中,通常可以分为三个主要阶段:初学阶段、进阶学习阶段和精进学习阶段。每个阶段都对应着孩子不同的认知能力和兴趣发展,因此选择合适的教学方法和工具至关重要。 **初学阶段(4-6岁)** 在这...
本文从【第三阶段程序员C++核心编程.pdf】文件内容中提炼出的C++编程知识点包括内存管理、面向对象编程、new和delete操作符以及引用的使用等多个方面。 首先,C++程序在运行时的内存分配主要分为四个区域:代码区、...
这份压缩包包含的资源旨在帮助学习者逐步提升C++编程技能,从基础入门到核心编程,分为三个阶段。 第一阶段:“第一阶段C++基础入门讲义.pdf”是初学者的起点,通常涵盖C++的基础概念。这一阶段的学习者将了解C++的...
【资源包(阶段性学习,含编程工具)】这个压缩包是一个综合的学习资源集合,主要针对HTML编程语言的学习,包括了编程工具和相关的学习材料。HTML(HyperText Markup Language)是网页开发的基础,它用于定义网页...
兔妮妮则是一款强调不用编写代码来学习编程思维的游戏,通过互动的方式让儿童了解编程逻辑。 除了这些专为儿童设计的游戏,还有一些编程语言和工具也因其简单易懂、形象生动的特点而受到孩子们的喜爱。例如,...