我意识到要成为更好的程序员,你需要编程!显然,练习越多,你就越好.
我的问题是这个.我目前在大学,我发现我的课程负担有点令人生畏,而且我没有很多空闲时间.我认为我不能真正承担一个大项目,特别是我认为我不会有动力去看它,我会更容易继续推迟,以支持应有的工作.学校.
但我还是想练习.所以我正在寻找任何可以在相当短的时间内完成编程挑战的资源.理想情况下,我可以在不到10小时的工作时间内完成这项工作(每天工作超过一小时),如果不是更小的话.
我听说过Google Code Jam,但我不确定它指定的程序的长度,也不确定技能水平.
有没有人有建议?甚至可能有关不同功能的教程纲要可能也很有用.例如,关于文件IO的教程是值得的(如果我还不知道的话),即使它可能是一个相当小的主题.
dys*_*oko 17
根据经验,我建议您重复执行一项任务并将其转换为程序.我还建议,严肃地说,重新发明轮子,以便进行编程练习.不要让人们因为它已经存在而告诉你不要做某事.如果您不知道它是如何工作的,请尝试自己编写.
我并不完全知道你所处的编程水平,但是不要尝试做任何过于疯狂的事情,这只是一个消极因素(比如试图为PS3编写游戏).
如果您已经可以使用IO导航,那么您应该尝试真正学习如何有效地使用集合.我认为我做过的最好的练习之一是重写Java TreeMap类.这是一个巨大的挑战,我通过这样做学到了很多东西.
以下是练习作业的一些建议:
获取一个包含大量信息的文本文件,抓取任何内容,如果您愿意,可以从这里获取一些内容:http://www.gutenberg.org/并制作一个程序来执行以下操作:
我最喜欢做的事情之一就是弄乱网页数据,转到投票网站,找到一个包含表格形式的民意调查数据的页面并执行以下操作:
或者只是查找任何站点并从中提取数据,只需确保该站点是机器人友好的http://www.robotstxt.org/,您不希望任何一个站点感觉它受到攻击.大多数情况下,这通常不是问题,因为如果您阅读该网站的使用条款,它明确规定您可以下载1份您正在查看的内容,只要您不打算出售它.当然,每个站点都会发生变化.
转到网站并以编程方式从页面中获取所有链接.
这是一个有趣的,Susan程序(我不记得为什么它被命名为Susan),我最初在Unix环境中使用C程序和两个Bourne shell脚本编写.这个程序的想法是分叉4个子进程,并为每个进程提供如下任务:
子1:读入文件,创建每个单词的字典及其在文件中的位置,将其输出到文件中.
子2:获取Child 1的输出并重建文档,将其输出到文件中.
孩子3:接受孩子2的输出并做孩子1再次做的事
孩子4:接受孩子3的输出并做孩子2再次做的事
这里的目标是在Child 4输出它之后获得原始文件的精确副本.这很有挑战性,有点没有意义,但这个练习的目的是为了练习.
在您的情况下,不要觉得您需要使用不同的线程,您可以只使用具有两个不同功能的单个程序,并按顺序调用它们.
再一次,不确定你是否处于这个级别,但尝试用递归替换你的程序中的任何"for"或"foreach"循环,就像练习一样.递归是一个痛苦的屁股,但知道和理解是有价值的.
这些是一些我认为能真正帮助你提高技能的建议.
请享用
http://codegolf.stackexchange.com可能有一些您喜欢的编程挑战。该网站上的很多答案都是打高尔夫球的(他们用最少的字符实现了该程序),但肯定有一些有趣的例子可供学习。