views:

344

answers:

9
+4  Q: 

Coding for fun

I would describe myself as a career coder - i.e. a developer at work but never really coded for fun.

Early in my career I've hit the management track though. I really like my current job and can't see me going back to coding anytime soon so:

Whats the best way to develop my coding skills and learn new languages in my spare time?

A: 

Would you be interested in web or desktop applications?

In any case, I would think of a fun project, something small and simple, choose a language which you want to learn and then get stuck in.

GateKiller
+5  A: 

For a little coding fun here and there the problems over at project euler can be fun. I like to do some when I am learning a new language to help me get the syntax down.

Matt Price
A: 

GateKiller - good question and I guess its a good place to start.

I've been an embedded C developer since Uni, working at the low level and then on mobile phone UI apps.

Compared to both of those I think web development appeals because its much more 'instant' when it comes to getting updates out.

I also like the idea of writing something for one of the more open mobile platforms.

Klelky
+8  A: 

There are several ways I have been trying to maintain and improve my coding skill. First, I have been organizing a Coding Dojo with co-workers to help work on basic programming skills and try out new languages together. Code Katas are also a fun way to challenge yourself with new languages and techniques, some good kata can be found here and here.

Finding an interesting open source project is also a good way to try out new things as well as learn from others code. Open source projects also offer a great resource from their users and developers, they are usually more than happy to help out with suggestions on interesting problems, patches, etc. You could have a mentor or advocate in an open source project help you learn and try new things as well. Check out all the code projects available at Sourceforge, Freshmeat,BerliOS, Apache, CodePlex, and GitHub. There are several others but this should cover a wide enough range of projects.

Sam Merrell
A: 

I would also consider trying to find an open source project or two that you like. Getting onboard an existing open source project can be an easier path than starting something new yourself from scratch - if it's your cup of tea.

If you find the right one (i.e. it is useful to you AND interesting), then working on it should be quite enjoyable. It may be less useful for experimentation in new languages often - but that all depends on the project too.

Joshua McKinnon
A: 

Thanks for the advice so far - with all the talk from Joel and Jeff about Ruby and after checking out some of the links on here which made me laugh -> http://stackoverflow.com/questions/6806/what-is-the-best-way-to-learn-ruby

I think I'm going to give that a go and then maybe try and get involved in a project.

Klelky
A: 

Come up with a project idea and work to implement it in the language. As others have mentioned, a project idea can come from other sites or suggestions, or your own ideas.

The most learning will come when, in the course of development, you find yourself saying "how do I do that?" The learning happens every time you answer that question.

Tom
+1  A: 

A few years back, I wanted to make an MP3 library/player in Linux. I used that as an excuse to learn PHP and MySQL, neither of which I had used before. So, my suggestion would be to think of something you need or just want to make, and implement that in the new language or environment that you're interested in learning. I think if you are working on something you have a more vested interest in, as opposed to some random puzzle or suggestion from someone else, you'll be more likely to keep going with it.

Corey McKinnon
A: 

Personally I like to try new things but because of the limited time I have for my spare time I need to find some small enough project todo, that is also interesting enough to carry through. If I find the "flow" it's not hard to keep going.

Trying something that has been done a thousand times on the net doesn't interest me. Most interesting is to do something "fun" that no one has thought about :) Then figuring out if all steps is possible and last to make it...like JumpingSteve I still can't stop laughing at that thing :)

So basically I think my advice would be, have an "fun" idea and then make a plan.

A project like this could be a great starter just to get up trying some coding for a kid or so Link to http://www.xgamestation.com/

epatel