How I'd learn to code in less than a year
2 years.
That’s how long it took me to learn how to code to a point where I could build and ship just about any product idea.
But if I were learning how to code today, knowing what I know now, I could get there in half the time.
I’ve got 5 strategies that I recommend you take advantage of, if you want to become a full stack software product developer in less than a year.
I’m Brian Casel, I’m a multi-time founder and full stack product designer and developer.
On this channel, I want to help you make the same transition that I made, going from a job, to freelancing, to building a products business.
If that’s you, comon and subscribe and let’s go.
OK, here’s your roadmap to learn to code and start building your own apps, this year.
The full stack developer roadmap
The term full stack developer can seem pretty daunting.
Usually what people mean when they call themselves a “full stack developer” is that they’re proficient in all the individual technologies that make up a software product.
That includes:
User interface design chops
Front-end HTML & CSS
Javascript
Multiple back-end programming languages, like PHP, or Ruby or Python
Databases like Postgres or MySQL
Managing servers and infrastructure
Git and development workflows
And lots of little things in between all of those.
But here’s the thing:
If your goal is be hired as a senior software engineer at a big technology company, then yeah, you probably need a firm grasp on all of these things.
But if you’re like me, and you just want to be able to design, build, bootstrap and ship your own products, then I’ve got good news and… less good news for you…
The less good news? You do have to make your way through that list.
The better news? You don’t need to be proficient in everything in that list.
The reality is, some of those items are really important, and you won’t very far in building products if you don’t have a firm grasp.
But for some of those items, you can get by with a surface-level understanding of what it is.
My motto with these items? Learn just enough to ship.
So let’s run down that list again, and for each item, I’ll tell you whether you’ll need a:
Confident command of the technology
Beginner-level, but productive
Just enough to ship
Another way to think about these classifications are:
When you have confident command, you’ll spend most of your time building and working in this area.
When you’re beginner level, but productive on a piece in the stack, you can build what you need to build, but you’re not going crazy advanced with it, and you probably don’t need to.
When you know just enough to ship, you can typically rely on tools that make it easy to implement, or you might look to hire someone to help in these targeted areas, when needed.
OK, let’s go down the list.
User interface & design chops: Beginner-level (or above).
You might becoming from a background as a designer, like I did. But even non-designers tend to have a pretty good design sense.
Front-end HTML & CSS
I’m gonna say, you’ll need a confident command of this.
But the good news? It’s probably the easiest type of “coding” to learn.
Javascript
Now, most people consider Javascript to be part of “front-end” development, because it generally functions in the browser, which people sometimes call the “client side”, and it handles a lot of the visual interaction that users see on the screen.
But I don’t like to lump Javascript in with HTML & CSS because Javascript is really more of a programming language, whereas HTML and CSS is more of a design language.
But you will absolutely use Javascript in your journey to building apps, and so you will need a beginner-level understanding of how to use it.
I wouldn’t strive for going beyond a beginner-level on Javascript, because it can get super complex. You’ll naturally grow in this area over time. For now, you’ll just need some of the basics.
Back-end programming languages, like PHP or Ruby or Python.
Now, experienced professional full-stack engineers, typically have a firm understanding of multiple languages, and the ability to easily pick up and learn new ones at will.
But for your purposes to build and ship your own products, I recommend choosing only one language to go deep on, and gain that confident command of building in that language.
I’d go so far as to say you can completely ignore and spend zero time learning any other back-end language than your chosen one. You’re much better off getting really comfortable with building and shipping in one language, again and again.
Now, picking a language to learn is a topic for another video. Let me know in the comments what questions you have about this, and I’ll cover it in a video soon
Databases
When it comes to databases, similar to choosing a back-end programming language to learn, you’ll probably settle on a single database tech to use on most of your first apps that you’ll build.
And the same goes for choosing your hosting provider and other tooling that runs your app and serves it to the world.
In my experience, unless these areas really interest you, you can get by with a “just enough to ship” mentality on these.
Understand what each of the pieces are, and how they work, but you can leverage tools and services to make the job of implementing these pieces A LOT easier.
And the last piece of the stack that I’ll touch on is using Git and your general development workflow.
Git is the standard when it comes to “version control”. It’s essential for saving, committing, reverting code, and for collaborating with other developers.
So you’ll definitely need at least a beginner-level understanding of how to use git in your day-to-day coding workflow.
But like most things, you can go super deep with it, but you probably don’t need to. There are just a few essential tasks that you’ll use on a daily basis in Git.
OK, so I’ve got 4 more strategies to guide your roadmap as you learn to code.
These will be quick, but don’t skip them because I know from experience that these will make a huge impact for you.
Build your cheat sheet
As you start to learn full stack development, piece by piece, there’s going to be A LOT of information thrown at you all at once.
You’re definitely going to need to learn and re-learn and see and try things multiple times before they stick for you.
But you’ll start to notice some of the things that you’ll need to use on a highly repeated basis.
For example, there’s a few git commands that you’ll type into terminal multiple times every single day.
Or there’s a series of things you’ll need to fire up every time you begin working on a new project with a new codebase.
Your goal is to build up your speed to build and ship. So you don’t want to have to constantly re-learn and refresh your memory on those things that come up again and again.
So my strategy for you here is to create your cheat sheet.
This is a document, or a series of notes where you store code snippets, or quick instructions for yourself. Every time one of these common tasks come up, if it’s not yet in your own muscle memory, you can reach for your cheat sheet, get the code or the command that you need, and then keep building.
Use AI to get un-stuck
Oh man, I wish this was a thing when I learned how to code.
Because when I started my learn-to-code journey, I got stuck 50 times per day. Something doesn’t work and I’d spend hours, days, sometimes weeks googling for the answer.
What made it even harder was that I often didn’t know the specific search term to look for, or the question to ask, that could unblock me.
Today? We have AI.
You’re going to use it, probably on a daily basis in your coding work.
Now, the misconception is that AI can build entire apps for you, and there’s really no need to learn how to code yourself.
We’re not in that world, at least not yet.
But tools like chatGPT and GitHub Copilot are indespensible at this point. There’s so much we can talk about when it comes to using AI in the full stack development flow.
But for your purposes, when you’re just learning, AI is your best friend when you’re stuck. And boy will you be stuck. Often.
So that’s Strategy #3: Use AI to get unstuck.
Work with a technical coach
Even once you have a grasp on the basics, and you’re technically able to code and build basic apps, you won’t yet have the experience level of a seasoned engineer.
So you’ll lack the common design patterns when it comes to building things.
For example, let’s say you want to build an app where users can invite team members, and users can belong to multiple teams or accounts in your app.
Soon enough, you’ll get to a point where you could figure out the nuts and bolts of putting a system like this together.
But a seasoned engineer would know that this architecture is known as multi-tenancy, and there are battle-tested design patterns that make up the optimal way to build something like this.
You’ll run into lots of these situations as you get into it.
And so this is where working with a coach is incredibly valuable.
Courses and YouTube videos will give you the building blocks.
AI can help you get unstuck.
An experienced coach will fast-track you to gaining that experience, which will help you build and ship better products.
Create real practice projects
At the very beginning, you’ll only be able to follow some lessons and tutorials.
Early on, you’re just “going through the motions.”
But as soon as you possibly can, your goal should be to build your own practice projects.
The tutorials will walk you through practice projects. But that’s not what I’m talking about.
I’m talking about, coming up with your own ideas for projects, and then setting out to build them yourself, using the knowledge you’ve picked up so far.
You should be doing this before you even feel ready.
Because here’s what will happen:
You’ll start building a project, let’s say you want to build a simple to-do list app, and soon enough, you’ll get stuck.
So then you’ll google, you’ll ask AI, you’ll experiment, you’ll find examples of how others built it, and you’ll keep going.
And through that process of getting stuck, and searching and finding your own answers, you’ll level up.
Do this again and again, and that’s what will really accelerate your pace of leveling up your skills.
And inside of one year, after doing a few, purely practice projects, my challenge to you is to make your next practice project a real product, that you intend to launch to real customers.
So those strategies should help you speed up your learn-to-code journey and do it within a year.
But you might be wondering, is it really worth it to go through all of this effort?
Well, I invite you to watch my other video, where I share the story of how the year that I learned to code CHANGE EVERYTHING.
I’ll see you there.
Brian Casel
I'm a full stack founder who has been bootstrapping and building products and services businesses on the internet for over 15 years.
How I can help
I currently work with founders, SaaS, and creators on building and shipping software products. To learn more and check availability, click here.