Here's a dilemma I've struggle with for years: I love programming but I never want to make a career out of it. Where does that leave me? How can I take joy in this activity without making it the center of my life? Maybe you've had thoughts like this, too.

The answer is to approach it as a hobby. Doing this is great because it can help you sharpen your skills in a practical way. It can also be a fantastic way to master a new programming language. And if you're an ex-career coder, the hobby approach can help reverse the effects of programming burnout and make it enjoyable once again.

So what are your options? 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.

1. Arduino

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 our introductory Arduino guide 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.

Ready to dive in? Check out these beginner projects for Arduino newbies.

2. 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.

3. 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.

4. 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. See our introduction to modding Minecraft for more details.

5. 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."

If you want to give it a go, check out these free game development tools. 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.

6. 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.

But if your future plans involve turning your hobbies into profitable side projects, then web development is an excellent option. Popular professional frameworks include Django (Python), React (JavaScript), Ruby on Rails (Ruby), and Laravel (PHP).

7. 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.

8. 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?

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.

9. 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 and CodinGame, which are two of the best coding games for improving one's programming skills.

10. 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.

Rainmeter, Geany, TeamSpeak, VLC, and Vim can all be extended with Lua. Winamp plugins are made with C++. Sublime Text plugins use Python while Visual Studio Code extensions use JavaScript. Automation bots for services like Twitch and Discord can be written in all kinds of languages.

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, bash scripting, etc.

What Are Your Programming Hobbies?

There are so many ways to make use of programming today, and we haven't even begun to peak yet. Now is as good a time as any to start learning how to code, even if you think you're too old. The future will be full of opportunities for anyone who knows programming.

What do you do with your programming skills? Is it all for work or do you have side projects going on? Share with us in a comment down below!