Geek-It-Yourself: How to Learn New Tech Skills and Make Your Own Projects

Every day here at GeekTech, we feature all sorts of inventive projects--everything from cardboard robots to music made by scanning barcodes (and that's just in the last week!). The imagination and ingenuity of the people who make these sorts of creations is incredible... but it's also enough to make you feel a little jealous.

But just because you don't know everything about coding or engineering shouldn't stop you making something cool, because doing your own hacks is a great way to teach yourself a few new skills.

With such a big history of hacks, Tom is used to working in unfamiliar territory. He told GeekTech, "Most of the skills I've learned have come from the things I've made: rather than learning for the sake of it, I learn because I need to.

"The best example of this would be some of the projects I helped put together for the TV show Gadget Geeks last year: Suddenly, I needed to do lots of graphical displays, and so I learned Processing. Then I needed to work with a 3D printer--which meant I needed a crash course in Python!"

Any project starts with an idea. But once he's come up with that, how does Tom go from there? He explained: "The idea tends to arrive, fully formed, and then I've got to work out how to build it. Sometimes it just isn't practical--there are half a dozen things on my ideas board that won't work unless I have the budget to hire a helicopter. Most important is how to make it quickly: I have a worrying tendency to lose interest in things after a while...!"

So it's possible--and not unusual--to teach yourself new tricks as you go along with a hack. But how can you actually do it?

In my spare time, I've had a few silly hack projects--normally a joke website making fun of some aspect of British culture (hey, it's what we British people do best). Most of the time, I don't know what I'm doing, but it hasn't stopped me yet.

My first main tip is to break down the idea and figure out what it means from a technical perspective. When you start to figure out what the sort of functions it needs in order to work are, read about your selected topic online and get a bit of an idea for which bits of the puzzle you'll need to put together. Once you know the basics of the technology you're working with, it's easier to know which bits you need to look for specifically.

There's also no harm in working with what's already out there. There are plenty of great guides and tutorials out there, but if you're trying to do something quickly or don't need to reinvent the wheel, use what other people have made available for reuse as a starting point!

One of my projects was pretty much only possible because of this: I wanted to make a version of Twitter that felt like a Teletext service (the text thing you could get on analog TVs, like Electra in the 1980s).

Turning Twitter into the style of old TV text was much easier thanks to code released online.

Unsurprisingly, finding an open source Twitter client for Android that I could understand was a bit too difficult, but I did come across Fork-A-Twitter-Client, a hackable, JavaScript-based Twitter client. Just like that, I had my own working Twitter interface to hack around with.

The freely-available code already out there was much better than what I could come up with, and by working with it, I was able to better understand a bunch of the tricks involved.

Two sites worth keeping an eye on for work you can build on are Github and Instructables. GitHub is particularly useful if you're doing a coding project, while Instructables is great for learning about hardware hacks.

But if there's nothing ready to modify, don't feel too proud that you can't ask for help. If someone's managed to do something that stumped you, send them a message and ask for advice.

Another project of mine involved making a parody version of a popular Twitter snow map that collated people's tweets to build a real-time weather forecast. Who better to ask how to make that... than the maker of it himself? I asked Ben Marsh, the developer of #uksnowmap, if I could use some base code of an older version, and he kindly said, "Go for it!" And so, with my own tweaks and fixes, I got my project going in no time.

If you want to have a go at teaching yourself as you go along with your own hacks, Tom has one final bit of advice for you: "Never stop. If you spent ten pounds on it, it's likely to fail--but if you spend a million pounds, it's still likely to fail! So make lots of things, because each one is a different roll of the dice, and you never know which one will succeed!"

Jonathan Cresswell makes things about stuff on the Internet. When not wasting time on Twitter, he writes about video games and turns jokes into one-off websites.