What to make over summer

David was kind enough to invite me into South Hunsley School today to give a talk to some computer science students seeking a bit of direction for the summer. I wrote a few notes, and I though I'd put them in a blog post too. I

What to make?

If you have a long summer stretching ahead of you and you are wondering how best to spend it Computer Science wise, here are a few tips. 

What language?

I don’t care about the language. Anything you use to practice programming is fine by me. Sometimes it helps to use something you know, but then again you will be expected to know many languages when you go out into the big wide world. Don’t get sucked into “my language is better than your language” debates. The best language is either the one you enjoy using the most, or the one you get paid the most to work with. End of.

I like C#, Python and C, along with a bit of assembler. But things like Ruby, Haskell and Prolog are great if you want to stretch your brains a bit. Take a look at codeacademy.com for online training.

What application?

Build what you like. Think of something you might find useful and have a go at that. Keep it simple and don’t add things. Every idea you have will make the job bigger. Write your ideas down, but don’t feel obliged to act on them. Take a look at hardware. I love the Arduino, I love robots, and I think you should have a go at this as well. You get the bonus of learning a bit of electronics too.

What for?

To find out if it is possible. To find out things by accident. For fun. It’s important to regard programming as an experimental exercise. Sometimes people write programs just to see if they work, or what they will do. Don’t be afraid to do this.

What with?

My strongest advice is to get yourself some Arduino kit and have a go at embedded development. Pick up a Sintron kit from ebay (search eBay for Arduino Sintron) and play with that. Buy one extra stepper motor and then you can think about making moving robots. Take a look here for help getting started and some things to do. 

What else?

Make sure you write about what you have done. Make a blog, get a domain, put your code on GitHub. It might be that only 10 people read about what you built, but if one of them offers you a job on the strength of it, it is worth doing. Employers prize the ability to write well and quickly, regular blogging will make you into a much better writer. And give you a destination on the web.