我想知道是否有人有任何好的建议,可以在我目前的开发阶段中写出我可以编写或处理的程序,以挑战我并帮助巩固我在课堂上学习的概念。这门课也不是太快进,到目前为止,我们只涵盖了类和对象的内容(尽管还未涉及继承或多态),现在正在使用数组进行操作。由于之前自学过一些,我对我们在课堂上所学的所有内容都感到很舒适。
如果有任何可以让我忙碌起来的事情的建议,将不胜感激。
使用GUI编写井字棋游戏
或者,你可以查看其他人编写的游戏,看看是否受到启发,添加新功能。在PyGame网站上有数十个游戏,处于不同的完成阶段。
P.S. 是的,我在推广Python。我喜欢基本语言的简洁性和高级特性的强大功能。你可以使用Python编写从微不足道的系统管理脚本到高级AI的所有内容。还有其他好的语言,我不想在这里引发语言之争,所以如果你想学习其他东西,那也没问题。
我强烈鼓励你通过编写程序来学习,并强烈建议你尝试不同的语言。我发现,即使是C这种相对原始的语言,在Python中学到的东西也使我成为了一个更好的程序员。经过多年的C语言开发经验,我没有预料到一种执行速度较慢的高级语言会教我很酷的东西,但它确实做到了。
尝试一个新项目。可以是任何你感兴趣的东西,例如:小游戏、简单音乐播放器、基本图片浏览器/编辑器、简单的网络应用等等。只需选择一个足够小但不太琐碎的项目。这将帮助您更好地了解该语言及其库。
尝试解决一些简单的问题,如在 SPOJ、TopCoder 和 Project Euler 等网站上的问题。除了编程实践外,做这些问题有助于更深入地理解和欣赏问题解决和计算机科学的普遍性。
找一本关于算法和数据结构的好书。CLRS 是我最喜欢的,但实际上任何一本好书都可以。
做一些视觉上的东西,会更有趣。创建一个游戏并使用缓动效果。这将迫使您考虑时间、回调和处理用户交互...
我最喜欢的编程书籍之一是《Pascal软件工具》。这本书让你实现一些简单的工具,这些工具可以很好地协同工作;基本上,你正在重新发明UNIX的基本命令行工具。
我建议你买一本这本书(亚马逊上说二手书价格从4美元起,包括运费),并尝试用Java重新实现书中的程序。如果你刚刚完成了入门编程课程,你应该能够理解书中的所有内容;你可能不知道如何编写Pascal语言的语法,但你会发现它很容易阅读。
如果你这样做,你将编写匹配字符串、搜索和替换、计算关键字索引和扩展宏等程序。我猜你不必写书中的每个程序,但我希望你至少能通读这本书。
多年前我读过这本书,在“敏捷”实践被编码之前,从中学到了一种有用的敏捷式开发方法。这本书称其为“左角设计”;你从程序的一些有用的微小子集开始,让它工作,然后逐个添加功能,直到完成程序。这本书通过示例向你展示了如何做。
我认为我作为软件开发人员的很多成功都来自于我从这本书中学到的经验教训,我强烈推荐它。