Start Actually Making Progress on Your Tech Idea by Learning Less
Have you ever spent hours and days going through tutorials only to realize that you're not any closer to getting the results you wanted? Here's a different approach.
Hey there! I ran into a problem this past week during my first dive into AR/VR development that I’m guessing you’ve run into (or will run into) as well.
You want to learn about AR or VR (or anything really) so you can build a kick-butt app and make lots of money.
The only problem is, you have no idea where to start.
So you spend hours (sometimes days) going from one tutorial to the next, hoping that you finally find the one that makes all the pieces come together.
After a while, you get frustrated that it’s taking you so long just to get something basic up and running.
This is a big problem with learning anything new in tech. After 6+ years as a software engineer at various Forbes 100 companies (most recently Amazon), I’d like to share some thoughts on what I think is the fastest way to learn something new.
Lower “Tutorial Time”
When I started out in tech, I went through tutorials and courses like they were those Little Debbie brownies.
I need to learn Python? Better start this 12-hour-long Coursera video series!
I need to use React? Better watch every YouTube video I can find on React and how it works so I don’t miss anything!
My biggest takeaway?
90% of what I watched or read didn’t apply to what I was actually trying to do (or applied years later at which point I’d forgotten what I’d originally learned).
Tutorials, courses, and excessive reading can make you feel productive, but it’s a trick.
It’s a form of procrastination and analysis paralysis related to perfectionism and not actually getting anything done.
The problem with tutorials, courses, etc.
I’m not saying all tutorials are bad. I’m saying that most of them we consume don’t get us closer to our goals.
The worst tutorials are the ones that show you what to do, but not why you’re doing it.
You know the ones? They tell you to do this, and then this, and then voila! You created exactly what they showed you, but you have no idea what you just did and wasted an hour.
The other problem with general courses is they have no context. They don’t know what you are trying to build.
So they teach a bunch of topics that probably don’t apply to you when you go through them.
On top of all that (in the tech world at least) tutorials get outdated pretty quickly.
Begin With the End in Mind
Learning should never be the objective itself. What you learn dies with you. What you create or achieve with that knowledge is what matters.
The simple “secret” to productive learning is to: set a target, aim in that direction, and take one step forward at a time.
These next five steps are what I’ve used to get results faster.
Running through this process can take anywhere from 5 minutes to an hour…but it could save you days of “wasteful” learning.
1. Figure out what you want to do in the long term.
What is your long-term goal? You may not be sure how realistic the goal is and that’s ok at this point - you can always change it down the road.1
Think of going on a long hike somewhere. Where do you want that “somewhere” to be?
Personally, I want to build a profitable business in the AR/VR space, starting with an app idea I’ll share in a future post.2
2. Use the long-term goal to figure out your very next step.
Given your long-term goal, what is the very next step you need to take to get closer to the goal?
Back to the hiking example, you can’t see the final destination, but you don’t want to be staring at your map the whole time you’re walking. You want to choose a visible target you can walk toward.
In my case, I need to understand the basics of Unity - what resources are available, what the fundamentals are that I’ll need to know for any project, and where I can go for help.3
And this leads us to the core of getting faster results: Only learn what you need to take this next step.
Instead of trying to learn all of app development at once, learn the basics of computer science (conditionals, loops, basic data structures). Go broad, but not deep.
Then set a “next step” of displaying something on a UI and only look up tutorials or docs on this. Then getting that UI to pull information from somewhere else. Etc.
3. Figure out how you’ll prove you took the next step.
If someone asked you to prove that you took the next step from step 2, what could you give them?
This is so important and often overlooked…every objective should have evidence.
It could be a proof-of-concept app, a basic script, a document with your findings, a blog post, a record of emails you sent out, etc.
This makes sure that everything you’re learning has a purpose.
Learning for the sake of learning is great. Learning to reach your long-term goal is better.
Two rules to follow when coming up with evidence:
1. Your evidence should be something you can control. For example, you can't control how many people respond to an email, but you can respond how many emails you send.
2. If it'll take more than a few days to take the "next step", you probably need to shorten your next step a little. No problem - go back to step 2 and break it down even more. Trust me, the smaller your goal, the more FOCUS you'll have and the faster you'll get stuff done.
4. Execute
It’s time to be like Bitcoin - based on proof-of-work (sorry to any crypto haters out there).
Execute your next step and build your proof.
At this point, you might find that your long-term goal isn’t as realistic or enjoyable as you originally thought.
If that happens, great! Go back to step 1 and pivot.
5. Share your evidence and repeat
Once you have your proof, share it with others.
This may be the most powerful learning of all.
People now have something to give feedback on. Plus people are more willing to give meaningful feedback to someone who’s put actual effort into something. At the same time, you’re marketing your work…win win win!
Now go back to step 2 and work on the next step.
Keep the Balance
The other extreme to learning too much is learning too little.
I think people have two main fears when it comes to learning too little.
The first is that you’ll realize too late that something you could’ve learned early on could’ve saved you hours or days of frustration down the road.
For example, I recently saw a Tweet from a guy who just found out that you can use `Shift + Tab` to reverse indent in VSCode after years of doing dev work.
That’s rough.
One solution I use here is making my first “next step” for a project to be getting a basic understanding of the fundamentals of whatever tools you’ll be using.
Remember, this should be well-defined and not take more than a few days. If not, you’ll end up going down too many rabbit holes.
In my case, I started by looking up the fundamentals of Unity and AR. Do I know everything now? Heck no.
And that’s something you need to accept to be successful in business and tech.
You don’t need to know everything.
That’s not your job. Your job is to know enough to take the next step. To build. Let go of your ego and embrace the noob mentality.
The second fear of not learning enough is that you’ll miss out on learning something important through serendipity.
That means hoping that by learning more than you need to reach your goal, you’ll get lucky and come across information that comes in handy down the road or that you didn’t know you needed.
For example, if you’re not scrolling through random feeds, how would you find out about something as impactful as ChatGPT?
For starters, it’s ok to scroll through random feeds or look up random information. Just accept that it’s mainly for entertainment and is rarely productive.
On top of that, if you’re following the 5 steps above, it’s likely you’d eventually run into any impactful information like that.
In the end, here’s what I think:
Forget serendipity. Forget luck. Instead, wait to get frustrated.
For example, if you’re frustrated because development is taking a long time, take an hour or so to read through posts on speeding up development. Don’t try to get it all at the beginning.
Learn Less. Do More.
By staying focused on the steps above, you’ll be able to iterate faster, get more and better feedback, and spend less time stuck in “learning land”.
Don’t let imposter syndrome and fear keep you stuck.
Learn as you create. Learn toward a specific goal.
And ultimately - have fun.
You’re the only one with your context so do what makes you happy. For me, it’s getting results and building cool stuff.
- Matt
Tune in next week for my recommendations for learning Unity faster and starting to get into AR development for my first AR app.
If this is for your job, your "long-term" goal may be completing a single sprint epic or story. Your short-term objective (see step 2) should always be a single story task though.
You may be tempted to break this long-term goal down into medium-term goals you'd like to hit before going to step 2 (at work, this may be in the form of high-level "milestones" or stories). While this is useful for working with multiple team members and teams, I don't think it's as useful as an indie founder. Mainly because: 1) they add complexity to the process and complexity == friction, 2) your ideas will change a lot as you iterate, 3) the process becomes too much of a distraction and excuse to not execute, 4) you need to be flexible and change as you get constant feedback from users. It's ok to have a "backlog", but you probably want to hold off on solid plans until the business is a little more stable.
We can talk about idea validation in another post if you’re interested. For the sake of this post, I’m just focusing on the tech aspects of the idea.