12

Possible Duplicate:
Programming Puzzles

Looking for ways to help me improve my C# coding skills. I thought it would be handy if there was a site that asked you to write a new method every day to perform a task (maybe even one for beginners, intermediate & advanced developers). Seeing comments as to how everyone pulled it off would be very handy to learn how to improve your technique.

Anyone know of anything like this? There has to be something like this on the interwebs :)

user22453
  • 477

5 Answers5

12

If you like math, I would suggest Project Euler. A question is released every week, but there are currently over 300 questions posted, so it could keep you busy for a while at least.

Tyanna
  • 9,538
8

One website that I love playing around with when I get a minute is http://www.pexforfun.com/ by Microsoft Research. It requires you to write code that will cause the unit tests to pass, without you knowing the specifics of the unit tests. All it tells you is what inputs it passes in and what outputs should be given. It's good for improving your algorithm skills, in my opinion.

Some of the puzzles are stupid (since they are user generated) but there are quite a few good ones.

KallDrexx
  • 331
2

I assume you are not just trying to familiarize yourself with the standard library. If this is your sole goal, refer to the other answers.

I doubt you would actually improve your C# coding skills with something like this. C# is an extremely feature-rich language, which makes it far harder to decide which tools (e.g. events, LINQ queries, covariant genericity, inout vs. ref parameters etc.) are best applied to what problem domain. Within the scope of a daily quiz question, the problem is too narrow to challenge these skills.

Instead, I would encourage you to find a cool project idea with a certain amount of complexity allowing you to apply all these different tools.

blubb
  • 2,774
2

Whenever I wanted to get up close and personal with a new programming language, I picked a project I always wanted to do, set aside some time for it and then just started doing it. And while I went along, I usually learnt not only about the programming language, but also about new algorithms and fundamental design principles, too.

The most important things are an explorative, open mind, and an approach that allows you to experiment. If something doesn't work, take a few steps back and try something different.

wolfgangsz
  • 5,363
1

A source of interesting problems with solutions is ActiveState's Cookbooks. This is especially true for Python (3300+ recipies), but there are entries for several other languages.

Peter Rowell
  • 7,518