Coding is hard
This is a mantra lots of experienced developers will say and this is a very honest thing to say but it's also a bit misleading. Coding can be hard, but coding is just the act of typing on a keyboard — that part is easy! The hard part is solving problems. This should say: solving problems is hard.
So I'd like to start this article by saying: set your expectations.
Don't assume coding is going to be easy and you can learn a little bit and get a high-paying-work-from-home-with-benefits job right away. I see a lot of developers learning to code, but they get stuck on things (like understanding functions or object oriented programming). And that's OK. This is a problem worth solving, and once you understand the solution (ie. how OOP works) you'll be much better off. But it's that initial learning curve that can be hard.
Coding takes time
Coding is a skill. Think of it like a trade. If you wanted to be an electrician.. well.. it's not going to happen over night. There's a lot to learn, and lots of different scenarios to learn. You'll make lots of mistakes (and that's OK). If you stick with it for long enough, it becomes second nature and it's no longer a difficult trade. Coding is the same way — practice, practice, practice.
Here's what nobody ever tells you: practice takes time.
Unlike a trade, like electrical work, you don't have a goal line. After 4 or 5 years in a general skilled trade, you become a journeyman ticket and, well, that's it. Coding doesn't have that, and that's what makes coding so hard. After 4 or 5 years you might not be a super awesome/amazing/prodigy of a programmer — once again, that's OK. But coding has something skilled trades don't have: unlimited access to real world problems, and the ability to solve them quickly.
How to learn faster
Becoming a good programmer (coder) shouldn't take 4 or 5 years. Imagine having to study for 4 years before you could get a job.. that's INSANE! You should be able to learn and find work at the same time.
I'm going to talk about ways to learn to code faster. But first...
The slow way
Coding the slow way goes like this:
- Learn the bare minimum to get a job (maybe go to school, or learn online),
- Learn the requirements of the job you just got,
- Stop learning because you're good at that one role.
Unfortunately I've seen this happen far too often. I see "senior" developers who were, at one point, very good coders.. but they stopped learning, and the world moved on without them. Now, they aren't considered "senior developers" because the world got more advanced and they fell behind. The less here: never stop learning!
The fast ways
I'll give you the bullet points (for those who like to skim blog posts). To learn fast, you must iterate over real world problems.
- Find real world problems.
There are probably millions of real world problems. Just ask anybody you walk by on the street what kind of problems they have with technology.
- Solve real world problems.
Making a calculator or a todo-list app is fun and great for learning, but it's unlikely you'll become a professional digital calculator developer. Every problem is slightly different, too.
- Expose yourself to other problems.
- Meet new people.
If you can solve 3 real world problems per day... imagine what 20 people like you could do; 60 real world problems per day. Learn from other people. Let them share their knowledge and guidance with you.
- Find mentors.
You don't know what you don't know. Too many developers get stuck here. They think they've mastered it all, but lo and behold they're just unaware of what they don't know. A mentor can help push you in the right direction and provide personalized guidance. But don't just ask people to be your mentor. You're more likely to find a mentor by making friends with developers who can code circles around you, and talking to them about ways to solve problems.
- Find a support group.
So many developers think they can do it on their own. And you can.. at least for a little while. But eventually you'll hit a wall and you need opinions and ideas from other people. In the world of coding, there's always more than one way to solve a problem. There are good way, better ways, and not-so-good ways. With a support group you can ask for guidance from several people at once. I have 3 other close friends who are all really good at different things. We talk on Slack almost every day and share resources, ideas and talk about nerdy things. I'm constantly exposed to new real world problems by 3 other people who I consider to be mentors of mine.
- Push yourself.
Get good at something. Then go a step further and learn the inner workings of things. Then go back and relearn the basics. For example: if I asked you right now, "How does a computer store data inside of a variable?", could you answer that with confidence? Variables are a simple subject, but the inner workings are not.
- Teach it.
Once you're confident you know something, write a blog post about it (you can even contact me about submitting a blog post here!). Teaching is the final (and best) way to solidify knowledge in your brain.
To learn fast, you must iterate over real world problems.
- Kalob Taulien (am I allowed to quote myself?)
For me the biggest components to learning quickly are having a constant stream of knowledge come to me. I don't seek them out, they just come to me. I subscribe to technology newsletters and notifications on GitHub repositories. And anytime there's a new interesting problem, I simply read about it.
Don't limit yourself
Before anything, don't ever limit yourself. Sure, you'll feel down at times — that's just life in general, but don't ever let that stop you from learning new things. Always be curious, join communities of developers, and always ask tonnes of questions!
Learning to code is not limited to a traditional educational system. You don't need to wait 4 years to become a good coder. You can choose to expose yourself to more real world problems, and you can decide to start solving these problems. Do this over and over, and you'll accidentally become an amazing developer.
I can promise you that if you start solving lots of real world problems as fast as possible, you'll learn so many new things you'll have no choice but to learn quickly.
And one day you'll wake up and realize you've been working really hard, and you've come a long way, and you're much better than you initially think you are.
Code on, young Padawan
Just keep at it. The faster you iterate over real world problems, the faster your brain will absorb the required knowledge.
Are you brand new to coding?
I have several high quality courses to help you get started. And also a huge Learning to Code Facebook Group you can join (it's free!).
The Ultimate HTML Developer
Learn HTML/HTML5 from scratch.
PHP For Everybody
Learn PHP from scratch
How to Get a Job as a Web Developer
Tips, tricks and industry secrets.
Join the support group on FacebookOpen the Facebook Group
Kalob TaulienWeb developer and dev teacher
Kalob has a huge passion for teaching web development and has taught over 250,000 students world wide.
Stay in the know
Get special offers on the latest web development courses, and updates from our blog posts.