Somewhat of a budding programing looking for programing exercises. I'm kind of middle ground between not knowing anything and what you might call a novice. So really I know just enough to be dangerous and have ideas too big for my skills. What are some good exercises (mostly thinking C# [mono] here) that will help me develop into at least a novice? More after the break.
I've developed a few applications for myself in the past. All in Visual Basic 6 and they were nothing too great but also nothing to scoff at either (a time clock where the users would clock in/out with a RFID tag read though a RFID reader connected via USB with the information being stored in a database, a custom slide show screen saver with a built in pong clock clone for a home made digital picture fame, as well as some odd programs here and there).
I'd like to start working with C# [via mono]. I'm very famillar with the C style syntax so that's not a problem. I work with PHP a fair bit. I've also read many many books on C, C++, and C# but the problem was I just read them I never did anything in them. I understand the basics of OOP (an object is both data and functions) but I'd like to really understand it.
So I'm looking for exercises that will keep me interested yet at the same time not start with a simple hello world application nor expect me to understand OOP totally or even some of the more advanced C#. I know the best exercises are the programs you yourself need to fit some problem but right now I don't have any of those.
Also please keep in mind that even though I have a windows 2000 box with a copy of C# 2005 express edition on it. I'd like to do all this with the cross platform version mono. I know that shouldn't be too much of a problem but I thought I should point it out.
Also I don't know if I made it sound like I've never worked with C# before, I have and have made a few simple, simple programs the biggest one would copy the mp3 files that are downloaded via
Pandora rename them with the artist and track title and copy them to a directory of my choice.
- Implement an existing protocol: write an IRC client or an FTP or HTTP server. This has the benefit that you know where you're going with it and you get immediate reinforcement that you've done it right when it works with other software. A stateful protocol like IRC is perfect for OOP, since a connection is basically an object.
- Do something cool: like your Pandora program, the most satisfying code is the code that ties into something cooler than itself. Use Google or other online APIs to visualize data in an interesting way. Get your hands on an interesting piece of hardware and make it computer-controlled. Point a webcam at your coffee maker and publish its status online.
- Start coding fast: don't spend a lot of time on initial design, since you can get trapped there and never end up programming. If you write careful, concise code, you can review your design and improve your program's structure ("refactor") as you go.
- Knock something off: I wrote a couple of different variations on "tower defense" games, just for fun; there's nothing special about them, but they were still fun and educational to write. Don't worry about reinventing the wheel or copying someone else. If your program won't be distributed, feel free to grab graphics, sounds, concepts, and gameplay.
posted by pocams at 6:44 PM on May 22, 2007 [2 favorites has favorites]