首页 / 知识
关于语言不可知论:奖励*完整*初学者的代码项目
2023-04-13 03:52:00

Rewarding code projects for *complete* beginners对于被介绍编程的人来说,课程通常包括一个代码项目,我认为这是一个很好的学习方法。然而,这样的项目往往感觉太人为,因此工作不太有回报。 你对奖励代码项目有什么想法?(最好是容易开始,并且可以任意扩展以获得更高级的版本!). 编辑: @马克:谢谢你的链接,尽管我对那些完全不懂编程的人的项目更感兴趣(这个链接似乎更多的是指那些已经精通至少一种语言,并试图学习一种新语言的人——我会说的典型的这么多的听众)。 @凯文,维伯霍夫,加里:我在想那些通过一种语言学习编程的人,所以在课程开始的时候,有些人对控制结构一无所知(更不用说任何语法了)。然而,我考虑的是一个相当大的项目(通常在1K-10K行的代码范围内,可能是2到3个学生组成的小组)。这是在我的学校为完全初学者所做的,而且对他们来说确实很有用……除了他们中的大多数人觉得自己的项目很无聊! 如前几次所述,您试图教初学者的内容对项目非常重要。 我建议你计划这样的事情: 1)避免玩电脑游戏 一个计算机游戏,虽然制作起来很有趣,但并不能在早期就给程序员带来结果(它非常复杂)。您希望集中于小而有用的应用程序,如端口扫描仪。这个例子有点复杂,但它是我在网上看到的最好的学习项目之一。 2)早期教授图形 早点看到你的劳动成果是值得的,它激励你走得更远。无论您使用的是winforms、mfc还是win32 api、opengl或directx,请及早讲授。 3)许多小的经验教训和深入的信息 该原理与上述链接端口扫描器项目相结合,运行良好。把每一部分都教得很透彻,给初学者时间来吸取教训。我认为Zophusx提供信息的格式很好。太糟糕了,他大部分时间都放弃了自己的网站。 4)需要时间 别着急。没人能在几周内成为一流的程序员。试着把课程简单化,但要有吸引力,并不断从以前的课程中学习。 5)及早、经常得到反馈 你可能认为一个项目是非常有趣的,或者一个特别的课程,或者类似的,但是你不是唯一的学习者。你的学生会非常感激你早点问他们事情进展如何,以及他们想知道的更多。要有足够的灵活性,以便您能够满足其中的一些请求。 6)有趣的教学 玩得高兴。激情是具有传染性的,如果你的学生看到你对这个主题有多喜欢,那么其中的一些热情也会感染到他们身上。 希望有帮助! 一些很好的有回报的项目,就你所能学到的和在复杂性方面具有相当的可扩展性而言,其特点是:
关键是选择一个足够简单的项目,这样当您查看项目标题时,它的一些特性就会立即显现出来。如果真的有一个想法,你会发现更多的功能,你可以添加到它。 这个项目应该有足够的难度,使它的特性看起来刚刚超出初学者的范围,从而激励他一直学习新的东西。 我确实认为游戏和谜语是一个很好的起点,因为它们可以为开发更复杂的版本提供很大的空间。例如,一个tic-tac-toe程序可以被构建为一个简单的命令行程序,最初让两个玩家玩这个游戏。 这个步骤可以用来显示一个简单的数据结构或数组如何表示游戏板,简单的输入来获取用户命令/移动,简单的输出来显示游戏板和提示等。然后你可以开始显示一个算法如何允许玩家与计算机模式。我喜欢简单的魔方数学算法,因为它是基于非常简单的数学。在此之后,天空的限制,用户界面的改进,使用文件I/O来加载和保存游戏,更先进的算法来让电脑玩得更好等等。更复杂和令人满意的游戏仍然可以用文本模式或简单的图形制作。 多年来,我一直把索科班游戏作为展示很多技巧的一种手段。 我用过的最简单的游戏是一个倒数游戏。这涉及1-9之间的数字的混合列表。玩家可以在列表左侧指定要反转的数字。目的是把清单分类。这对初学者来说很好。游戏的每个小部分都可以单独编写和测试。 如果你在公司培训新人,那么把他们作为实习资源加入到实况项目中是非常有益的。 这会稍微增加主要开发人员的工作量(因为他们必须审查实习生所做的所有工作),但在人员培训和发展方面却有很长的路要走。 文本冒险。
请看一下《绝对初学者的Python编程》一书中的代码示例 这取决于你想教初学者什么。如果你想教语法,那么简单的"hello world"程序和那些把1到100之间的奇数都吐出来的程序就可以开始了。如果你想教数据结构,那么可能是20个问题的游戏或者简单的排序程序。如果你试图教递归,那么也许是一个广度优先的搜索程序。如果你想教数据库操作,那么像订单跟踪系统之类的东西是合适的。 |
最新内容
相关内容
python支持r语言吗?
python支持r语言吗?,代码,名称,培训,官网,第一,语言,对象,字符串,方法,后缀,python中可以支持r语言。python提供了一个模块rpy2,可以较好地完python是一种编程语言吗?
python是一种编程语言吗?,放宽,适当,平台,培训,语言,指令,计算机,机器,程序,解释性,python是一种编程语言,Python是一种跨平台的计算机程序设计Python语言中mod表示什么意思
Python语言中mod表示什么意思,环境,培训,表示,语言,结果,负数,语法,符号,两者,规律,python语言中mod表示取模运算符。语法MOD(a,b)通常情况下Python语言专题
Python语言专题,名字,工作,代码,异常,培训,信息,空间,函数,变量,模块,名字空间python使用叫做名字空间的东西来记录变量的轨迹.名字空间只是python到底是什么样的语言
python到底是什么样的语言,教育,软件,人工智能,培训,代码,简介,语言,类型,程序,动态,python是一种面向对象、解释型、动态类型计算机程序设计学习编程Python用什么电脑
学习编程Python用什么电脑,电脑,数据,培训,基础,产品,以上,固态,经济基础,算法,电脑硬件,python对于电脑硬件基本没什么要求,单纯学Python的话python怎么打包整个项目
python怎么打包整个项目,环境,标准,项目,培训,工作,工具,脚本,状况,以上,版本,distutils-Python自带的基本安装工具,适用于非常简单的应用场python语言受欢迎吗
python语言受欢迎吗,代码,工作,业务,活跃,设计,发展,人工智能,培训,数据,语言,python因其简单易用的语法而获得了很多赞誉。该语言强调代码的python编程根号怎么打
python编程根号怎么打,数字,培训,函数,根号,次方,开平,语法,平方根,静态,模块,python中开平方python数字sqrt()函数返回x的平方根(x>0)。语法pythonc语言取余和python取余的区
pythonc语言取余和python取余的区别,培训,资料,语言,负数,区别,被除数,符号,除数,规定,余数,今天看书发现python与C的负数取余运算结果不同,python学习python编程可以从事什么
python学习python编程可以从事什么工作岗位,工作,分析,网络,数据,数字,行政,销售,培训,资产,庞大,一、学Python编程能做的工作,编程方向:1、Webpython网络编程及前端常见问题
python网络编程及前端常见问题,数据,服务,分析,培训,状态,前端,区别,服务器,常见问题,上面,当我们学习Python时,需要掌握的的知识有很多,除了有