你如何找到有趣的问题来解决?
我经常想学习新的编程语言.但是,我觉得要真正理解它,我必须写一些东西:
真实 - 它应该解决一些现实世界的问题.这个问题不一定是新的(事实上,有一个参考解决方案可能是一个好主意),但它必须是迫使我找出一些肮脏,肮脏的细节的东西.我不想解决数学难题或实现算法和数据结构,因为这只会教我如何解决数学(或A&DS)问题'new-language
.
我可以充满激情的东西 - 学习新编程语言的细节需要时间.这意味着我必须投入那段时间.为了帮助我保持动力,我想在某种程度上解决对我有吸引力的问题.我认为这部分是最困难的,至少对我而言,从我所有的半成品项目来看; 它也是最重要的部分.无论一个问题是多么现实,如果你没有解决问题,你就不会从中学习.
与热情的方面相关联,我想要的东西我有信心,只有在我的业余时间工作时,我才能带到可运输的状态.即使"C编译器"是非常真实的世界,我真的很喜欢编译器,但它有点大.即使是简单的表达式评估器,当您不熟悉特定语言的习语时,也可以多次重新设计,调试和优化.
那么,你(或者你)如何解决找到有趣工作的问题?
特别的解决方案 - 也就是工作上的问题 - 将受到高度赞赏,但是(原谅傲慢)他们只是"愚蠢的知识".我印象最深刻的是思考和攻击问题的新方法(即算法>>数据:D).
编辑:到目前为止,获胜者是"制作游戏"和"修复令你烦恼的东西(编程|使用comptuers)".
游戏建议认为有很多相当简单的游戏我可以重新实现(给我一大堆选择的问题进行攻击),它们绝对是现实世界,而且我是游戏玩家所以我对好的充满热情游戏.
"修复烦人的东西"具有内置的激情和现实世界,但它要求我不会因为事情正常工作而被破坏,并且修复不会修改一些不是用我想要的语言编写的程序学习.
(你们都赢得了一个赞成.接受可能正在接受)
为了产生想法,我发现询问"编程中有什么问题"以及"在计算机上工作有什么问题"总是有帮助的.
整理事物是另一回事.完成事情真的很难.如果您接受将拥有一系列项目,我认为您会更高兴,其中许多项目仍未完成.如果你完成了一切,你将有机会探索更少的想法和技术.
仔细选择你想要完成的项目,并记住Piet Hein的话:
放在一个
容易看到
神秘警告的地方T. T. T.当你感觉到
你的攀爬速度非常缓慢时,
记住它是很好的Things Take Time.
做一个游戏.你会学到很多关于任何语言的知识.它不一定是花哨的.做一个地牢爬行或什么的.
Jeff Atwood在一段时间后发表了关于编码实践"代码kata"的博客.
http://www.codinghorror.com/blog/archives/001138.html
另见(Jeff的博客中的参考):
http://www.codekata.com/