学习编程的五个关键点!你需要get它,并运用!

news2025/1/9 15:10:26

 总体来说,学习如何编程是一件较难的事情。我最近发现大学里的计算机课程和各种编程训练营错过了编程的一些重要因素,对新手的教学用了不太恰当的方法。于是,我准备分享一个成功的编程课程应该具备的五大基本支柱。

菜鸟的目标是掌握编程的基础知识并理解库和框架的重要性。

       高级主题(比如云计算,Linux操作或构建工具)不应成为课程的一部分。在设计模式方面,我也持怀疑态度,我认为这是对初学者的一种打击。

测试驱动开发(TDD)

       TDD能给编程带来诸多好处。但是这是一个高级话题,但对初学者来说太难了,无法理解。

       初学者不该写测试用例,这对他们仅有的基本技能来说太过分了,他们学习如何使用测试就可以。

       每个编程课程都应围绕着练习展开。使用单元测试扩展了练习,并为学生提供了一个已经设置好的用于运行这些测试的开发环境。

       所有学生所要做的就是游戏式的编码,然后察看试跑者的小灯从红色变为绿色,由此产生的游戏化是一个很好的促进作用。

       比如,技术是Spring,我会在Spring项目中提供练习和测试。学生们不需要知道任何关于Spring的知识。他们只需要知道是练习的地点和触发测试的按钮。

       另外,学生必须知道如何使用调试工具并在手边有REPL。在TDD中,运行时分析代码以及为小型实验设置场景非常重要。

       此处的重点是确保学生在获得核心编程技能后,不必学习基本的TDD行为。在以后学生职业生涯中改变习惯比现在学习这些习惯要困难得多,这也就是为什么我希望初学者应该从开始就习惯于进行单元测试。

       在软件开发的职业生涯中,人们应该对没有进行单元测试的项目产生反感。应该直观地看到没有单元测试作为反例。

基础原理第一

       我经常听到新手学习要从某个框架开始,这就好像教人们学车,把他们放在拉力赛车上,并要求他们避免过度转向,而忽略了这些人可能都搞不清刹车和油门的事实!

       当要指导人们学习像Angular这样的前端框架时,情况也是一样,初学者也需要首先了解编程的基本原理。需要熟悉JavaScript基本元素,以及在使用别人的代码之前理解代码的含义。

       函数,变量,条件和循环的概念对新手开始学习时是完全陌生的,而这四个元素构成了编程的基础,所有程序都依赖于这四项。

初学者可能听过这些概念,但最重要的是要能熟练掌握这些概念。如果不掌握基础知识,随后的一切看起来都像魔术一样,会导致代码混乱和严重的挫折感。       

       应该花更多的时间在这些基础知识上。但不幸的是,这个过程都太快了,主要问题是老师很难将自己置于学生角色之中。他们已经经历了很长时间的编程经验,已经忘记了初学者需要处理哪些类型的问题。这与专业赛车手非常相似,他无法想象有人需要在制动前需要考虑的事情,他只是自动做到这一点。

       在我们的教学体系中,会设计一种挑战的方式设计练习,通过上面四个主要元素的有机组合,在合理的时间内解决问题。

       举个例子,开发一个罗马字符和阿拉伯数字的转换器,这个挑战需要学生的耐心,如果他们成功运用这4个要素来解决挑战,他们会在激励方面获得巨大的自我提升。

       基础知识非常重要,不要跳过忽略它假前进,直到他们被解决为止。

库与框架

       在学生花费大量时间进行编码后,必须让他们知道大多数代码已经以库或框架的形式存在,这其实更像是一种思维模式

       正如我们之前所说的,现代软件开发人员知道并选择合适的库。他们不用花几个小时,自己来写一个错误的版本。

       为使思维过渡成功,“基础阶段”中的例子应该可以通过用 Moment.js,Jackson,Lodash或Apache Commons等知名库来解决问题。

       这样,学生会立即理解第三方库的价值,他们曾经围绕着一些复杂的问题想尽了解决方案。而现在,学生们发现使用库能够很快解决了这些问题。

       与TDD类似,当同事吹嘘他们自己开发的状态管理库可以代替Redux时,学生应该能够进行质疑。

       当谈到软件框架时,学生一旦理解了库的用处,就不必理会它的重要性。

       我们所设计课程的时间表,很少将时间花在框架上。我已经指出,最重要的方面是将学生的思维转移到从基础编程到探索与使用库。

       我没有为这个支柱加入相关工具,它们只对经验丰富的开发人员有用。在这个早期阶段,学生无需学习如何集成和配置工具。

师傅与学徒

       在我20岁刚出头的时候,我想学习弹钢琴,当时我不并想找老师,我认为自己可以学习。5年后,我还是找了一位专业导师来教我,怎么说呢,我在1个月内比在5年前学到的更多。

       这位钢琴老师指出我在演奏中的错误,以前的我根本意识不到,而且给了我从未想象过的事物做了透彻解释。她还向我讲授了音乐与艺术的思想,这两者对我来说都是技术人员所不能企及的。

       编程学习也是如此,如果没有过编程经验,那么自学一定是个坏主意,虽然也能找到许多成功案例,但我质疑单独做这件事的效率。

       相反,应该有一个“师傅和学徒”的关系。在开始时,师傅给予学徒制定必须遵循的规则 - 听话照做即可!师傅可以解释这些规则,但通常情况下,这种规则的深意已经超出了学徒的理解。

       这些内化规则构成了一种安全网。如果有人迷路,总会有一些安全的方式返回。

       教学也不应该是一个独角戏。师傅会分别处理对待每个学生。他应该检查学生的学习方式,提供建议,并根据他们的进度调整课程的进度。

       一旦学徒掌握了一定程度,就应该鼓励他们去探索新的领域。师傅演变成一位分享“智慧”的导师,一起进行开放式讨论。

挑战和动机

       “让我们来开发一个XX商城吧!”,这不是来自一大群高级软件开发人员,以及CEO和数百万大元的预算支持。这种案例被做为程序员入门课程的练习,这样的承诺是不现实的。更糟糕的是,学生们被置入幻境,认为自己的技能超出了初学者范围。

       老师们需要意识到这一点,但是出于急于让学生成长的原因创造了这样的练习。

       练习的主要目的不是娱乐。它应该围绕特定的技术来创建,并应该帮助学生充分理解这项技术

       想法是好的,但不能牺牲内容。编程不易,如果学生没有内在的动力,编码可能不是很好走的路。

       新手应该体验成为专业开发人员的意义。在投入大量时间之前,他们应该知道他们要的是什么。

       例如,许多应用程序都以复杂的表单和数据为中心,进行这些练习可以传授给学生重要技能。而开发类似于复杂的成品应用可能不是学生学习的最好实践方式。

       同样,非正式的程序员可能会对开发人员每天写入的代码行数量感到惊讶,有时候我们会删除代码或什么都没做。

       为什么?因为事情总是会出错,我们花费很多时间来修复一些极其奇怪的错误。比如有些工具可能无法正常工作,因为库有小版本升级。或者系统崩溃,可能有人忘了给git添加一个文件,有时不小心多打了一个逗号等等,这个导致的问题会有一大篇。

       学生们应该享受这些体验,在时间压力下针对未知库的实践是正确的事。

       太阳在现实生活中并不总是闪耀着光辉。初学者应该为编程的实际困难做好一切准备。

小结

       最后的提示,也并非不重要。在2周,2个月或甚至一年内,你能否成为一名专业的程序员,这取决于你付出的时间和付出的极大耐心。

       老师不应该着急,我们应该关注学生是否理解基础概念,并能通过练习进行不断积累,而不是揠苗助长。

最后免费分享给大家一份Python全套学习资料,包含视频、源码,课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 在这里插入图片描述在这里插入图片描述

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。 在这里插入图片描述

五、Python练习题

检查学习结果。 在这里插入图片描述

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 在这里插入图片描述在这里插入图片描述

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

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

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

相关文章

form表单发送put、delete、patch请求的实现过程

关于发送put、delete、patch请求底层实现过程 对于put这些请求,我们无法直接通过form表单发送,form表单仅支持get和post请求; 虽然我们无法直接通过form表单发送这些请求,但我们可以以form表单为载体做二次请求:使用f…

[附源码]计算机毕业设计Node.js宠物商店管理系统(程序+LW)

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

48数据流中的中位数 49表达式 50两数之和

48数据流中的中位数 第一次没看到要求排序&#xff0c;还以为题目答案写错了&#xff0c;用排序的内置函数也正好是nlogn import java.util.ArrayList;public class Solution {ArrayList<Integer> list new ArrayList<>();public void Insert(Integer num) {list…

小满nestjs(第二十七章 nestjs typeOrm关系)

在我们开始的过程中&#xff0c;肯定不会把数据存在一个表里面&#xff0c;我们会进行分表&#xff0c;把数据分开存&#xff0c;然后通过关联关系&#xff0c;联合查询。 typeOrm 文档 一对一 | TypeORM 中文文档 前端代码还是复用上一章的 增加了一个添加Tag <template…

腾讯安全联合发布《2022游戏安全白皮书》:外挂对抗仍然激烈

2022年以来&#xff0c;各类游戏安全事件的发生给不断影响着游戏生态的健康发展。同时&#xff0c;随着游戏行业数字化进程的加快&#xff0c;以及游戏全球化布局的不断推进&#xff0c;游戏厂商对于游戏安全的投入越来越大&#xff0c;掌握最新的行业安全态势有利于其安全防护…

外汇天眼:WiKiEXPO亮相香港亚洲博览馆,史上最强大咖阵容坐镇

凛冬已至&#xff0c;在这个寒冷的冬天&#xff0c;WikiGlobal将于2022年12月16日至17日早9:00--晚18:00在香港的亚洲国际博览馆举办为期两天的“Wiki Finance EXPO Asia 2022”。目前展会已拉开帷幕。  此次展会展厅面积高达5000多平方米&#xff0c;经过WiKiEXPO科学的规划和…

【数据结构】线性表之单链表

目录 一、链表的概念 1、概念 2、分类 3、重点 二、单链表模拟实现 1、准备 2、头插法 3、尾插法 4、指定下标插入 5、遍历 6、删除第一次出现的元素key 7、删除所有的key 8、双指针删除所有的key 一、链表的概念 1、概念 是一种物理存储结构上非连续的存储结构&a…

PS-历史记录

目录 哪里能找到【历史记录】面板 1、窗口→历史记录 2、编辑→清理→历史记录 还原 1、点击【历史记录】面板 快捷键 【ctrlz】 【shiftctrlz】 从当前状态创建新文档 创建新快照 给快照起名 1、右击你要创建快照的步骤 2、点击面板菜单 3、先按住alt不动&#…

Java 对象和类

Java作为一种面向对象语言。支持以下基本概念&#xff1a; 多态继承封装抽象类对象实例方法重载 本节我们重点研究对象和类的概念。 对象&#xff1a;对象是类的一个实例&#xff08;对象不是找个女朋友&#xff09;&#xff0c;有状态和行为。例如&#xff0c;一条狗是一个对…

猿如意|chat GPT测评

文章目录猿如意猿如意传送门猿如意个人使用感受好的一面&#xff1a;可以改进的一面:什么是猿如意chat GPT测评chat GPT使用过程使用场景描述&#xff1a;问题1问题2问题3问题4&#xff1a;问题5&#xff1a;主观感受&#xff1a;认为此功能不足的地方&#xff1a;对此功能的期…

学习编程的过程中可能会走哪些弯路,有哪些经验可以参考?

很多人学习编程, 走的弯路可以总结为以下几点: 一言不合找视频&#xff0c;几十集视频刷半年。 很多人学习编程的时候&#xff0c;喜欢看视频学&#xff0c;我这里总结一下看视频学习编程的弊端。 1. 完善的视频资源往往稍稍过时&#xff0c;比如你会发现很多java的教学视频…

产品设计市场调研有哪些特点?

产品市场种类繁多&#xff0c;变化无常&#xff0c;消费者需求各异。在工业设计之初&#xff0c;需要对行业和区域环境进行调查分析&#xff0c;深入了解市场情况、市场供求关系、客户引导、趋势等&#xff0c;客观合理地对新产品进行适当定位。只有有了正确的新产品概念规划方…

三方接口签名验签简易设计与实现

本人水平有限&#xff0c;对密码学的理解相当浅显。错误与疏漏&#xff0c;欢迎各位指正。 〇、写在前面 接口安全防护是个永恒的话题&#xff0c;提供给前端的接口需要登录&#xff0c;提供给服务的接口(下文简称"三方接口")也需要鉴权&#xff1b;当前大环境下,ht…

chatgpt教我内存对齐,对齐了但没完全对齐?

文章目录内存对齐关于chatgpt的回答总结内存对齐 关于chatgpt的回答 我与chatgpt的对话如下&#xff1a; 我现在来描述与总结上述对话都干了啥以及我为什么要问这个。 我本来是在学习rapidjson源码里面的内存池实现&#xff0c;然后 RAPIDJSON_ALIGN 没有看懂&#xff0c;所…

JSP课设:家庭相册管理系统(附源码+调试)

JSP家庭相册管理系统 &#xff08;1&#xff09;登录模块&#xff1a;分为普通用户和管理员两种角色&#xff1b; &#xff08;2&#xff09;普通用户模块&#xff1a;相册管理&#xff1a;用户可以对自己相册进行编辑&#xff0c;可以进行批量删除相册、新增相册、编辑相册以…

【Golang】案例为基浅谈Go的变量与常量

&#x1f4d3;推荐网站(不断完善中)&#xff1a;个人博客 &#x1f4cc;个人主页&#xff1a;个人主页 &#x1f449;相关专栏&#xff1a;CSDN专栏、个人专栏 &#x1f3dd;立志赚钱&#xff0c;干活想躺&#xff0c;瞎分享的摸鱼工程师一枚 &#x1f352;前言 在上一篇文章中…

Python图像识别实战(三):基于OpenCV实现批量单图像超分辨重建(附源码和实现效果)

前面我介绍了可视化的一些方法以及机器学习在预测方面的应用&#xff0c;分为分类问题&#xff08;预测值是离散型&#xff09;和回归问题&#xff08;预测值是连续型&#xff09;&#xff08;具体见之前的文章&#xff09;。 从本期开始&#xff0c;我将做一个关于图像识别的…

“命悬一线”复试上岸浙大MBA的经验分享~

作为去年踩线上岸浙大MBA的幸运者&#xff0c;希望自己的一些经历和经验能够帮助到今年的考生。因为去年在联考初试准备的时间不是很充分&#xff0c;加上在职工作相对比较忙&#xff0c;真正能用到学习上时间真的不多。笔试成绩只拿到191分&#xff0c;在去年的复试考生里算是…

Qt+C++基本绘图(画线,画圆,矩形, 撤销,重做)

程序示例精选 QtC基本绘图(画线&#xff0c;圆&#xff0c;矩形画线&#xff09; 如需安装运行环境或远程调试&#xff0c;见文章底部微信名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《QtC基本绘图(画线&#xff0c;画圆&#xff0c;矩形, 撤销&am…

Redis常见面试题(四)

1、Redis有哪些淘汰策略? Redis目前有8种淘汰策略: 1&#xff09;Volatile-lru: 设置了过期时间的Key使用了LRU算法淘汰; 2&#xff09;Allkeys-lru: 所有key使用LRU算法; 3&#xff09;Volatile-lfu: 设置了过期时间的key使用了LFU算法淘汰; 4&#xff09;Allkeys-lfu: …