I want to start out by acknowledging how crazy hard it is to teach yourself programming. I don't mean to say that programming itself is somehow way harder than other jobs, it's just as challenging as any other profession.
But imagine for a moment you decided to teach yourself to be a professional plumber instead of a programmer.
How would you even start? You need, a bunch of like, pipes? I guess?? Would you build like a little plumber shed that you could run pipes through, and then tear it all out and do it again differently to like, practice?
It sounds ridiculously hard. And if I needed work done on my pipes, someone would have to have been teaching themselves plumbing for an awfully long time, (like, years) before I would let them anywhere near my toilet.
This is a great example because I (and probably you as too) have absolutely no idea what being a plumber actually involves. There are just so many things that we don't even know we don't know about plumbing, so many unknown unknowns.
Teaching yourself any skill is ridiculously hard. Even starting down that road takes courage.
Part of why teaching yourself a new skill is so scary is because there is some risk. For the self-taught plumber, they have to spend a bunch of money getting the tools and materials they need to practice.
Learning that new skill is an investment, and we expect a return on our investments. If the only return on our investment we accept is 'getting a job doing x', if there is any other outcome, you've just lost your investment!
Say you get struck by divine inspiration next week and you're now a gifted sculptor.
Guess you've wasted all that time plumbing, huh?
Luckily for us programmers we just need a computer (Which can be as low as a hundred bucks). But there's another element of risk: Time.
What happens if you spend all your nights and weekends for the next 2 years learning to program, and still can't get a job?
Guess you've wasted all that time programming, huh?
There's something deep in my bones that I hate about this line of thinking. It's not that I despise plans not turning out the way I expect them, that's life.
Whenever there is risk involved, it is usually possible to arrange things so that no matter what happens, you will always turn out to be the winner.
So how can you arrange things so that if you teach yourself programming and then can't/don't want to get a job as a programmer, you still end up getting a return on your investment?
Building useful stuff now lets us get a return on our investment right away, no waiting for a job!
Here's how to think of useful projects that you can do right now:
These are questions that I ask myself every week to create projects for the Weekly Project Club.
- What are things you do every week that are variations on a theme? Things that are similar to each other, but different in predictable ways. (workouts, recipes, sometimes schedules)
- What are things that you have to 'figure out' regularly that is really just a simple math formula?
- What are some things that you keep track of?
- A workout generator catered to the sets you want to do
- A calculator that will tell you when you'll need to refill your gas tank
- A meal plan generator based on your fav meals
- A tracker that records how many glasses of water you drink every day.
And if you want more project ideas, you're in the right place! Every week I send members of The Weekly Project Club a project just like the ones above. Except this week is special, I’m going to be working on this week's project LIVE on twitch! I won’t just be coding (I’ll probably be doing that too), I want to work through the problem and give you a solid starting point to work on the project yourself.
So if you're interested in hanging out and working on a cool project, please join me Tomorrow night, Wednesday, April 8th at 6pm EST at twitch.tv/samborick.