I had a great conversation with someone on twitter today about learning to program. This post isn't about him, but he brought up some good questions and I thought I would share some of what I said.
Learning to code in this current age is like trying to lose weight. There's so many resources available it's hard to know where to start. Or, if you've started, it's often hard to stay on track because there's so many things pulling at you, and so much crummy advice. Which by the way, if you think this advice is crummy, feel free to read elsewhere :)
One of the things that came up in my conversation with him was the sheer amount of things he was trying to learn. You've probably run into this yourself. Or, you're doing a course, maybe finished a section and moving on to the next. I'll use a Udemy Bootcamp course as an example.
Most bootcamp courses claim to be "the only one", right? We've all seen the advertisements.(screw you spell check, for not knowing if I spelled advertisements right or not). Those courses usually encompass a stack of technologies that, by the end of the course, you should know how to deploy.
Only, you don't. In fact, you (hypothetical you, not you you) can't even code a single exercise on your own, even with directions. You SHOULD be able to, according to the course. But you can't. Why?
Cut out the noise.
You can't, because you're not really focusing on learning the main thing well. You're trying to learn to be a developer of some sort right? All these technologies. React. Redux. Jquery. node. Express. PHP. (Oh wait not PHP. PHP is dead :D ) All this stuff. All this noise. You have to cut it out.
The one thing you have to do well as a developer is program. Problem solve, using the language of your choice. Trying to learn all that extra stuff before you learn the fundamentals of programming well is like trying to do all the weight loss diets at the same time. You're not going to make any real, lasting progress.
Focus on that one thing, the language, that will make you a better programmer.
Slow down to speed up
Slow down, you say. But I need to get a job by x date. I set a goal, man! No time to waste!
Setting unrealistic goals won't help you get anywhere faster. What will is programming every day,focusing on learning that language well.
You have to slow down a bit, buckle down, learn your language really well. That's going to make learning all those fun frameworks/platforms/php(no wait) etc so much easier and faster to pick up.
Slow down to speed up.
Take your time, learn your language well. Find a book, or course, or some source of real exercises, and do a whole bunch of them. It's best if the exercises cover each concept as you go. For instance, if you're learning while loops, a bunch of exercises that force you to write while loops. The only way to get better at programming (or anything, really) is lots and lots of practice.
Before anyone says anything, I'm obviously not saying don't learn all those other technologies. Just get better at programming first. After that, all the noise will make a heck of a lot more sense.
Oh yeah. PHP isn't dead :D