What kind of programming and/or scripting can you do that don’t involve big corporations or contracted clients? Here are several ideas that you can start exploring right now.
Arduino is the perfect blend of electronics, programming, and casual. It’s an open source microcontroller (i.e. a tiny, single-circuit computer) with various component pieces and programmable logic. Think of it as LEGO for adults using actual wiring, circuitry, and coding.
And it’s not as difficult as it sounds. All you need is an Arduino starter kit and a few introductory Arduino guides to point you in the right direction. Note that while Arduino does support multiple programming languages, you’ll probably find it easiest to stick with the official C-like language.
- Raspberry Pi
If you like Arduino’s idea of coding a small gadget that does what you want but you hate the electronics/circuitry aspects, then you’ll be happier with Raspberry Pi. It’s a single-board mini-computer complete with CPU, GPU, RAM, and I/O including USB ports, video and audio ports, and Ethernet port.
The two official programming languages are Python and Scratch, but others are supported as well. We recommend starting with a Raspberry Pi Zero because it’s the simplest and cheapest at only $5, yet powerful enough to create some amazing projects. Also check out these Raspberry Pi newbie projects. Once you’ve mastered or grown tired of the Raspberry Pi, you might even consider these Raspberry Pi alternatives.
- Drones and Robotics
Not all drones can be programmed, but a lot of them can, and doing so can be an awesome way to have some fun in your backyard or at the local park. It’s still unclear whether drone racing will become a “thing,” but that’s another way you can have fun with drone programming.
Or you can take it a step further and dive into full-blown robotics. It’s a more involved process, of course, but is perfect if you have equal love between coding and circuits. Many robot kits are based on Arduino, but you can also look into LEGO MINDSTORMS, Tinkerbots, and others.
- Game Modding
Years ago, I used to pour hours into making custom maps for Starcraft and Warcraft 3 as well as mods for AMX in Counter-Strike. These days, you can do so much more with custom maps for Starcraft 2 and Dota 2 plus modding for games like Skyrim, Kerbal Space Program, and ARMA.
But perhaps the most well-known and flexible example of game modding is Minecraft. You can pretty much tweak any aspect of the game, resulting in completely new gameplay experiences. It’s a great way to practice Java while having tons of fun.
- Game Development
Just because you like playing games doesn’t mean you should start making them. It’s quite a double-edged sword — think carefully before picking this up as a hobby. On the one hand, you’ll better appreciate the work that goes into your favorite games, but on the other, games will lose much of their magic because you’ll start “seeing behind the curtain.”
Unreal Engine, Unity, and GameMaker are the big names with Godot Engine quickly catching up. For coding-only frameworks, look into LibGDX (Java), Monogame (C#), LOVE (Lua), and HaxeFlixel (Haxe). There’s never been a better time to dive into game development.
- Web Development
Web development is very much a “professional” kind of programming. Not only is it one of the easier ways to be a freelance coder, it doesn’t really lend itself to hobby work. If you want to run a website, you’d probably use a framework like WordPress. Not as many people enjoy making websites just for fun.
- Mobile Development
Maybe it’s just me, but mobile development has a certain allure that other kinds of development don’t have. Seeing a self-made app run on your smartphone (and especially your friend’s smartphone) can be exhilarating, and if you can make people’s lives better with your app, all the better.
Like web development, mobile development has a lot of potential as a “hobby now, career later” option. Unlike web development, where your focus is to build skills to eventually work as a freelancer, the usual plan in mobile development is to create a viral app. A hobby app that strikes gold is pretty much the dream.
- Open Source Contributions
The world would be a terrible place without open source software. Can you imagine where we’d be without Apache, MySQL, VLC, Firefox, LibreOffice, GIMP, Blender, Android, Linux, or WordPress? (Fun fact: More than 1-in-4 websites run on WordPress!)
And none of these projects would be what they are today without open source contributors. If you have time and know-how, then lending your energy to some of your favorite open source projects could be a great way to sharpen your skills, expand your network, and give back to the community.
Not sure where to start? Here are a handful of open source projects that could really use your help and expertise.
- Puzzles and Challenges
Some people love jigsaw puzzles. Others love logic games like Sudoku, crosswords, and even browser-based puzzles. But as a coder, you have something more challenging and more rewarding at your fingertips: programming kata and challenges.
We’ve covered programming contests and competitions, but those are against other programmers. Kata and challenges are done solo, so there’s less pressure and more opportunities for growth. Notable examples include CodeWars, Project Euler, Daily Programmer, CodinGame, and HackerRank.
- Application-Specific Scripting
You may not realize it but many of the apps you use day-to-day can probably be extended or customized with scripting.
AutoHotkey is nifty scripting environment, with its own language, that lets you create keystroke-based hotkeys and macros on Windows. And don’t forget about the operating system level: batch scripting, PowerShell scripting, and bash scripting.