We’ve all been there. Learning to code, completing tutorial after tutorial, but getting nowhere. Then the self doubt kicks in. “This is too hard.” Or “maybe coding isn’t for me.” I’m sure you know the feeling.
I experienced this very same problem myself recently. I’m a fairly confident junior PHP developer, but I decided that I wanted to learn a little more about Python — especially Django.
I searched online and found what looked like the perfect tutorial. Complex enough to be challenging, but simple enough so as not to overwhelm.
Being a project based tutorial, I liked the look of the end project. I thought it would be another cool thing to add to my ever growing portfolio.
80% of the way into this tutorial, I suddenly had a spell of self doubt. I had watched the videos and manually retyped all the code. I had a neat project that I could show people. So why did I feel like I was no better off than when I had started?
Was it really that impressive to have a portfolio project that looked and functioned identically to everyone else’s? And which had code that was identical to the code on the instructor’s GitHub profile?
Had I really showcased any of my skills other than my ability to follow step-by-step instructions?
You see, following tutorials is great. You’ll get exposure to new skills. But just following tutorials alone, you don’t learn any of the other skills that are required to be a successful junior developer. I’m talking about:
- planning and organizing a project
- knowing what tools are best for a given business need
- researching solutions to your own problems
- overcoming problems that inevitably crop up during development
Tutorials are a good way to hit the ground running.
To put things in context, I’m a 29-year-old former plumber who now works as a junior developer for a software company. I decided on a career change around 12 months ago.
Like most new coders, I started completing the usual courses before moving onto more advanced tutorials. My main focus was on learning PHP (this was the only language that I’d really heard of when I started.) Soon I became familiar with its basic syntax and use.
Fast forward 9 months. I had completed enough tutorials, had enough understanding, and enough motivation to convince a local software company to give me an opportunity. (You can read more about how I convinced an employer to take a chance on me and pay me to learn to code here.)
At the end of the day, what helped me stand out as a candidate and get a job after such a short time was my ability to show real world examples of projects that I had built. And when I say projects, I mean my OWN projects…not just things that I had copied/pasted following along with a tutorial.
Tutorials will only get you so far. Then you need to start building projects.
Don’t get me wrong — tutorials are great. Especially for beginners who are learning the fundamentals. Of course, the quality of tutorials and level of explanation will differ greatly. But going through tutorial after tutorial will not on its own turn you into an expert.
You must build your own projects. Once you have an understanding of the syntax and basic implementation of your chosen language, then you need to start building things on your own. No more hand-holding.
When I tell people this, a common response is: “What do I build? I don’t have any ideas.”
Well, no one is expecting you to build the next big thing. And you probably don’t have the skills to do so, even if you did have the idea.
Here’s a list of about 500 projects you can build, with example solutions.
You can also build something like a blog, for example. Yes, there are thousands of tutorials based around building a blog. You might even have copied and pasted the code to one before. This might not seem like an impressive project but…
Build your OWN blog. Sit down, plan the different steps and features it will have before you start. Research and choose the languages and framework you are going to use. Figure out how to install the necessary tools and set up your development environment yourself. When you get stuck on a problem or feature, turn to Google and investigate the best way to overcome the problem you are faced with.
Do this and you will learn 10x more than following any tutorial. Do this, and this one project will be worth more than the 20 tutorial projects that you might have in your portfolio.
Depending on the complexity of your chosen project, you might not even need anything else in your portfolio in order to start applying for jobs. Your code might not be the best, but it is YOUR code. You can explain every line of it, and explain how and why you came to make the decisions that you have.
You will also have proved that you can manage a project, work independently, learn new skills as needed, and deliver an end product. You now have several valuable skills to offer a potential employer.
If you’re 12, 18 months into learning, and haven’t found a job or don’t feel that you are anywhere near ready, then don’t get disheartened. Don’t give up. Don’t start thinking that you need to spend thousands of dollars on a “magic” bootcamp. Just start building things and you’ll be amazed with how quickly you can progress!
The growing number of people who are getting jobs straight out of freeCodeCamp is probably due to its emphasis on project-based learning.
Projects are outlined and scoped at the end of each module. Then it’s down to the camper to find their own solutions.
I think it is this lack of hand-holding that helps freeCodeCamp create great developers.
Rick West | How to dig yourself out of the coding tutorial rut…