Times are tough, and as society moves increasingly towards digital services and everything online, there is never a lack of jobs for those with tech skills. If you’re sitting there thinking “you know, I really ought to learn some new skills”, then peruse this list and find something that appeals to you.
You never know – magic might happen. Start learning some programming today, and you might find yourself sitting on the next Twitter, or perhaps the next MineCraft.
Unity 3D Game Engine
Unity is a cross-platform 3D engine and development environment, though not limited to gaming. Its success comes from focusing on the needs of indie developers, and the ability to “author once, deploy everywhere”. In short, it provides everything a budding game developer could need. And there’s a free version to get you started.
My interest in Unity is that the Oculus Rift developer kits will support Unity out of the box, which means I’ll be able to fully immerse myself in any 3D worlds I create.
Where to start? This MineCraft clone is a complete video tutorial series.
For web development, the combination of PHP server scripting and MySQL database is arguably the king of the Internet. Even the website you’re reading right now is built on this technology – but specifically WordPress – the most widely used CMS in the world.
Although you could start from scratch, the best way to get into web development with PHP and MySQL would be to begin by customizing WordPress, and then move on to PHP frameworks such as CodeIgniter. These are well established and give you a good structure upon which to build your site. Starting completely from scratch can often leave you with kilobytes of messy code.
Nearly all web hosts support PHP/MySQL and creating a local server is just as easy, so you can get started right away.
Where to start? Make your own WordPress Widgets!
Ruby On Rails
As a PHP/MySQL fan, I’ve found it hard to learn Ruby on Rails. It’s so radically different, but undoubtedly a powerful web development system that lets you concentrate on prototyping websites quickly by providing defaults and standard views. With Ruby on Rails, adding features is often a case of simply installing a new package (such as Facebook login, or the Twitter bootstrap web template).
If you’re tackling web development for the first time and enthusiastic about getting a complex system developed quickly, Ruby is probably for you. Don’t run into it with a preconception about how programming should be done, and you’ll do just fine.
The only downside to this is that it’s relatively unsupported. I had to make some serious configuration changes to a VPS just to get it running.
Where to start? This free online book will cover pretty much everything you need to get started.
Arduino is an open source electronics prototyping platform, and while it may not land you a new job, it will give you serious geek cred. Arduino makes it easy for absolutely anyone to create complex electronic projects and rapidly prototype ideas. From laser cat defence turrets to self balancing robots and home automation, really, anything is possible. Along with 3D printers, the Arduino is about empowering anyone to be a maker.
The Arduino process involves programming logic using a simplified form of C programming on the computer, then uploading your logic to the Arduino board through a standard USB port. The Arduino device has a number of IO pins so your software can react to whatever inputs are presented. You can even give them the ability to talk to the world, or give the world control over your mood lighting.
Arduino can be costly compared to some of the other programming projects here – you will find yourself wanting more shields or elaborate sensors – but it also brings your programming into the physical world. If you do come up with a really cool device, you might even think about raising production funds with a Kickstarter to bring it to the world.
Where to start? The MakeUseOf, of course!
Make a Mobile App With iOS
Though you will need a $99 developer licence eventually in order to publish in the iTunes App Store, anyone can get started by downloading the XCode development environment for OSX (Windows users; you can’t develop for iOS, you do need a Mac). XCode’s visual designer makes it really easy to connect complex GUI components to your data model, and there’s a vast amount of tutorials. Sure, you can throw together a simple iPhone app without learning any coding at all, but seriously, where is the challenge in that?
Where to Start? Available via iTunesU, the Stanford University iPhone development course is a top notch.
Whatever language or programming project you go with, the important thing is to just get started. You head may be full of fantastic ideas for projects, but ultimately ideas are cheap and it’s the process of turning them into products that takes real work and dedication. These languages are nearly all free to have a go, so try them out and find something that resonates with you. You might be a born programmer!