Settings

Theme

Coding as a Hobby?

12 points by BlerckMajesty 5 years ago · 17 comments · 1 min read


Confession: I’m not a great programmer, even though I’ve done a few University level courses. Once upon a time I thought I might be able to go pro, but wasn’t to be. I want to take up coding as a hobby, though, because I really enjoy it. I have a busy job, which has nothing to do with coding, and I don’t practice. But I also don’t really have a project.

Any suggestions? Where to start?

komon 5 years ago

Depends on what you get out of programming, but here's some suggestions:

* Re-create one of your favorite websites or apps

* Create games, these can be as simple or as complicated as you like, and might be a re-creation of a classic (Tetris, Solitaire) or something from a relatively well-trodden genre (visual novels with Ren'py, idle games à la cookie clicker, text adventure games) or something all-new

* Corollary for the above, participate in game jams

* Contribute to open source projects

* Create interesting toys or demos (fractal rendering/zooming, "single-div" CSS demos, fun-looking pixel blotting with SDL or JS canvas, generative art)

* Try your hand at programming microcontrollers for automation, robotics, building keyboard or other peripherals

* Write scripts to automate away boring work, either at home or for your job. You might be surprised how much time/energy you can save by stringing together some python or building some IFTT/Zapier workflows. Automate the Boring Stuff with Python could be a good starting point here.

There are other ideas, but the most important thing is to pick something you find enjoyable, and don't be ashamed to drop a project when it ceases to be interesting.

Some of the most long-lived hobby projects are sustained by just one or two hour nightly sessions, or by weekend hacking.

simonblack 5 years ago

Any suggestions? Where to start?

Wherever you feel comfortable. Start with things as simple as 'Hello, World' and build up from there.

Give yourself a project. Any sort of project. It doesn't have to be useful, it's just there for you to learn with. As you progress in that project, you will strike roadblocks. Each one of which is a learning opportunity.

As you demolish all the roadblocks in your progress to your goal project, you will be learning all the way. In fact you will see, as you progress in the project, places where you could have coded things in a better way previously.

When you reach your goal project's completion, throw all of that code away. (It was rubbish anyway, wasn't it? Now that you can see it with an expert's eye.) Now rewrite it from scratch, but using all of your new-found knowledge.

Again, you will strike new roadblocks. Fix those. Rinse and repeat, learning as you go.

I have a 'pet' project, which is an emulator for an actual 1980s computer running CP/M. I have written and re-written that project at least a dozen times, in Z80 assembly, x86 assembly on MSDOS, C on UNIX using plain text, C on Linux using a curses-based text-UI, C on Linux using a GTK+ GUI. Each time that project grows a little, converging more and more towards the 'perfect' emulation of that original hardware computer.

saluki 5 years ago

Projects are everywhere.

Arduino

Here are some arduino projecst for inspiration: Bin Day Indicator https://www.youtube.com/watch?v=zLU1cOYf1dY Freezer Temp Alert https://www.youtube.com/watch?v=z59XS2wHOB8 Pedals to use with computer/gaming https://www.reddit.com/r/PUBATTLEGROUNDS/comments/9q4rph/hea...

Laravel has a great community it's a PHP Framework https://laracasts.com/series/laravel-8-from-scratch

You can build pretty much anything with it.

Pick something basic, maybe something to track something you collect.

Laravel Livewire is a frontend framework that makes it really easy to create real time calculating forms.

fundamental 5 years ago

If you don't have a target project of your own in mind, but are interested in exploring a given domain open source contributions are one way to go. It let's you exploit the fact that someone already has built something cool and you're just adding to it or otherwise modifying it.

Programming is like other hobbies/crafts in that observing what others do and how they've done something will teach you about how you can better approach problems. There certainly is a barrier to entry, but if you've already taken some university level classes you likely have the basics down. There's social conventions to collaborating, but that shouldn't be a huge blocker. In my opinion, contributing to different organization should let you sample different project domains and either help you decide where to stick around or what types of personal projects might interest you.

beforeolives 5 years ago

My most enjoyable coding-as-a-hobby experience was following along with Advent of Code last year - https://adventofcode.com/

The puzzles from previous years are all there too but being able to work through the problems along with other people on the subreddit and share ideas, solutions, tips etc. made it much more enjoyable than it would have been without the community interaction.

simplerman 5 years ago

If programming as a hobby, then start with something visual with a quick feedback. You don't want to get stuck in months long projects. When I was kid, I bought a book on video games programming and just typed in code from it. I still remember when I was able to move a box on screen.

Another option might be Arduino. After years of writing CRUD, my love for programming reignited when I was able to make LED blink.

LarryMade2 5 years ago

Scratch an itch,

either something that says to you: "I could make a program to do that" or "I got an idea for a program that would work better." Or maybe something thats says, I think that would be fun.

If you are looking for fun, might consider Processing which is a digital arts oriented language - https://processing.org/

  • LarryMade2 5 years ago

    Here's another route, as you aren't emotionally invested in anything just want to do stuff. Shoot for the moon

    Build the next Temple OS, driverless car apps, or a facebook rival, whatever, you probably wont get far (then again, you never know) but you will at least have a better story to share with people other than "I'm working on some new arduino to github interface..." :-)

shanecleveland 5 years ago

As others have suggested, build some small projects. Pick anything in your life or work that you commonly return to Google to find answer for or collect information. Automate it or make it better.

You may want to pick a platform/language that has a low-level intro course that walks you through a small project.

Let the challenges you encounter lead you to finding solutions and building your skills.

ryanchants 5 years ago

Why not try out Automate the Boring Stuff? Apply programming to your job and try to ease the burden. It can hard to decide on a project and try to learn more development at the same time, so focus on what you know and how to apply programming to it.

offtop5 5 years ago

Find what you want to build first, then ask again on how to build it best.

Pick an easier language , I suggest Python or Javascript.

  • ibraheemdev 5 years ago

    Also don't spend too long deciding on a language, or trying to find the "best" one. Just pick one and start learning it. You would probably want to start with a dynamic language (Python, JS) as those are generally easier to get started with.

muzani 5 years ago

There's always gaming. You don't have to make a game; just automate bits of browser games. I'd make scripts that monitor and track prices or calculate the likely value of raid targets as well as the optimal time to re-raid the same target.

This is another good place to start: https://xkcd.com/1205/

Find out what you're spending time on, especially little things that you do 50 times a day. You don't even have to be good at it. Take Simone Giertz for example. She makes completely pointless robots and people love them.

My personal side interests is procedural generation. I think it's a neglected field because you can just invest in AI/ML and get better results, but there's a certain level of beauty in procedural things. There's some interesting examples at https://www.reddit.com/r/proceduralgeneration/

BlerckMajestyOP 5 years ago

Such great suggestions, thank you all

runawaybottle 5 years ago

Do Leetcode, start with easy problems. Skip the fake easy ones with bad descriptions. It’s not that demoralizing.

agi_prometheus 5 years ago

Find a problem and start working on it. Since you have a prior knowledge of coding you can start by building a simple SAAS or mobile app for a very small problem. This will give you a little push you need to jump on some high end projects. This pump will motivate you to build something unique.

You can find some free material over here: 1) medium.com 2) freecodecamp.org 3) hackernoon.com 4) udemy.com

Best of Luck!

vroushh 5 years ago

Start exploring in areas you love; maybe if you love creating websites, start learning front-end. After practicing and creating numerous projects, try to make a back-end for it. Do this for your other interests; you'll become comfortable over time. Don't pressure yourself and enjoy the journey.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection