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.

For me, there have 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?

Code is a tool and it can be applied to just about anything… so what kinds of problems are you passionate about?

You need to discover the answer to this question and picking a project can help.

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.

Working on projects prepares you for real work

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!

Thank you for taking the time to read my article.

If you found this article helpful, let me know ???.

If you want to read more click the “follow” button below and follow me on twitter.

Want to read more? Check out my blog.

Or my other other related post:

Why you learn the most when you feel like you’re struggling as a developer