I recently came across a post on a forum by a developer who was just starting out. He was feeling overwhelmed.
He wasn’t learning much because he kept jumping form one online course to another. He felt that his problem was that there were just too many helpful online courses (and topics) out there to study.
In his words:
There are so many helpful resources out there that it’s super easy to lose focus.
I start learning one thing and then find something else that seems better.
In the end I feel overwhelmed and I don’t know what’s important any more.
I understand where he was coming from.
I too have suffered a fair amount of analysis paralysis when I have tried to learn new programming skills.
There have definitely been times when online courses felt very un-helpful and confusing. There have also been times when online courses taught me exactly what I needed to know.
Thinking back on my own experience the times when I felt the most lost and frustrated were the times when I was trying to ‘learn to code’ instead of ‘work on a specific project.’
If you are feeling stuck I believe the simple act of picking a project can help you.
You might have an easier time learning to code if you give yourself a project
So you’re learning to code… have you picked a personal project to work on yet?
If you answered “no” to this question, why are you waiting?
In my experience most professional coders learned (and continue learning) to code by first picking a project and then researching the skills they needed to get that project done.
What are the advantages of picking a project?
Having a project provides focus
When you lack a project it’s not clear what to learn… should you learn Python or Unity? Should you spend time studying architecture patterns or scalability?
The answer to these questions depends on what you intend to build.
Want to build a crawler to scrape web data? Python is useful… want to write a game? You should probably use Unity. Architecture patterns are important when you want to build big projects. Scalability matters when you are lucky enough to have a super-popular project.
The point is that when you have a project in mind you can answer these question… your goal is to get the project done so you should pick the language and tools that get the job done.
When you don’t have a project these questions have no answers and that can make you feel stuck.
Projects help you explore your personal passions and values
What do you want to use your new programming skills to do?
For some people this is a hard question to answer.
Code is a tool and it can be applied to just about anything… so what kinds of problems do you want to apply it to?
A tool without a problem-space to apply it to is useless so you will eventually have to pick a problem-space to work within.
Which problem-space should you pick? This is one of those tough questions without easy answers… basically you’ll have to ‘discover’ what kinds of problems interest you.
How can you discover what kinds of problems interest you?
The best advice I have is to start with a project which seems interesting.
Think you’re passionate about gaming? Try making a small game. Think you’re passionate about the stock market? Try writing some software to recommend trades.
In the process of working on these projects you’ll learn about yourself… what you like and don’t like. This information will be very valuable to you as you become more and more proficient with code.
Companies hire people who can complete projects
Do you really want to be a coder?
If the answer to this question is ‘yes’ then your goal is to get good at completing projects… from start to finish.
Although I think courses can help you learn the basics, you can’t really learn to do this from courses alone.
Courses smooth out all the bumps and rough spots. They pick the projects for you. They move you towards being a coder, but you’re not truly a coder until you can deal with the uncertainty of having no clear recipe to follow.
When people hire you they will have rough ideas. It will be your job to take those rough ideas and flesh them out into something real.
Start working on projects early. The sooner you start the sooner you will be good… then people will want to hire you.
To learn by working on a project follow this approach
Pick a project
What project should you pick?
I would say…
- Pick something that you find interesting
- That you feel you have a good chance of accomplishing
- That will expose you to technology you want to learn about
I would recommend you don’t over-think this step. Just pick something. Many developers I know started with simple text video games or websites.
It doesn’t really matter what you pick so long as you pick something reasonable.
Now that you’ve got a project, get it done
Once you have a project in mind you need to get it done.
For this step I have some advice…
First do it… then do it right… then do it better
I stole this quote from ahrefs (thanks guys)… I think it’s beautiful. This little philosophy accurately summarizes how I like to approach creative processes.
First do it–
Hack together your first version. Get it done however you are able.
You may need to learn some things to get the first draft done and this is fine…
But DON’T stop to research or analyze too much. You don’t need to do a good job on your first pass… you just need to get the project done.
Then do it right–
Once you have a first version you will have so many ideas for how to improve upon it.
You will understand what matters and what doesn’t.
You will have a sense of how to simplify your idea and make it pop.
Now you can go out and research… you’ll have certain topics you want some clarification on… and you’ll know what doesn’t matter in your particular project.
Then do it better–
Once you’ve incorporated the worlds’ knowledge into what you have created you can start to innovate.
New ideas will pop out at you and you can evolve your project into something really new and complete.
Rinse and repeat
Take screenshots of what you have created.
Post a link to social media.
Write about your project and upload your writing to your online portfolio…
That’s the process.
Do this a few times and you will have learned a ton! And you’ll have a pile of cool projects you can be proud of.
I hope these ideas help you get unstuck
I hope these ideas have helped you get unstuck.
This is the process that I (and most coders I know) constantly go through and in my experience the process is do-able by anyone.
Give it a try and see how it works for you. What have you got to lose? Good luck and I wish you success!
Did you enjoy this post?
Then consider signing up for my newsletter. I email from time to time with the latest insights from my business and research. Drop your email in the box below and I’ll send new stuff right to your inbox.
Absolutely no spam, ever. Unsubscribe anytime.
Want more? Then check out my other posts
- Picking a real world data project after you’ve learned Pandas or R
- Research technique: Use the US Trade Database for market research
- How to use the Wayback Machine to learn how other sites evolved over time
- Seeing customer development in action
- Why it’s a good idea to use a high stakes call to action in a landing page test