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 awful long time, (like, years) before I would let them anywhere near my toilet.
A broken 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?
No! Never!
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.
It’s a failure to construct a win-win.
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?
Build useful things along the way.
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 are really just a simple math formula?
- What are some things that you keep track of?
Here are some premade ideas to get your brain going:
- 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! Check out this list of +project ideas , or join the Weekly Project Club to get a project in your inbox every Monday!