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
Top comments (22)
I agree exactly! Currently all these libraries allow you to produce a result, especially most of the tutorials are based on just coding something without the fundamental knowledge.
When I am interviewing candidates, I saw years of experience but still they actually can not answer simple questions about fundamentals.
Just one thing PHP should be dead:P
You know, I've heard that somewhere! π yes the "project based" courses should be taken AFTER a solid fundamental level is reached, and after hopefully someone has done some coding on their own, and more for a guide, less of a code-a-long. I think all these bootcamps and courses are making it harder in some ways to get proficient and get a job, because they create an unrealistic expectation of what you should he able to do by the end of it, by not focusing/pushing the fundamentals and practice.
I despise Udemy, Udacity, etc. etc. I know they help some people, but they're generally very predatory platforms that end up leading people astray, in my view.
I have to say that it's more of a "buyer beware" environment. You need to do proper research before picking a class. Are there a good number of positive reviews? Are there current reviews? How long has it been since the class was updated? Is the instructor engaging with students in the Q/A section and/or via announcements? Just like any learning exercise, you will get out of it exactly what you put in to the experience. They are also never the complete answer to a learning path, but they are a step along a larger path. That path should include project excercises and other learning tools like print media and peer groups like Dev.to or forums on Reddit and Stackoverflow.
That's my opinion at least ;-)
-Fred
All good points, Fred.
I guess courses just aren't for me π I've taken well-reviewed courses in the past and have walked away disappointed and bored.
To each their own, I suppose!
Courses are definitely the way to go if you want to gain domain knowledge, though. For projects, I prefer just diving in head-first and digging myself out of any holes I stumble into.
I guess there is also a question of skill level? If you are taking something that is not challenging, it's easy to be bored or distracted. That said, while the videos are obviously self-paced, each learner will have personal preferences on the type of media and class structure they learn from best. The key point I have learned over the years is that there is never only one solution to a problem, or one path to a goal.
That's also true; I've often felt that some courses move too slowly for me, and that I'd rather jump ahead and get to the "good stuff." That's why I prefer Googling-oriented learning: searching what I need to learn, when I need to learn it, and going from there :)
Agreed, I have definitely run into the same thing. Taking a PHP class will end up rehashing a ton of basic HTML items. (Wait, PHP is dead). The last one I did though, I ended up picking up a few new tidbits that relates to VS Code as well and tricks with PHP includes. So, in my experience an open mind can usually make that Udemy class worth the $9.95 and a few hours of my time. LOL, I really am sounding like a Udemy fan boy π€£
I'd say if anyone is doing a course, to stop after doing the fundamentals part and try to find practice, unless you lucked into a course that includes a lot of exercises. I should start a list of courses that include real practice in them. So far I just know for sure of the one I'm taking.
Lately, I have been looking for classes that are based around building a project (or projects). It's admittedly more difficult to find something that hits all of the criteria I look for in a Udemy class that I am spending money on, but my experience with that formula has been pretty good over the last few months.
I agree to some extent. Udemy has some good courses, but most of the instructors basically do "heres how it works" videos but don't provide ny real practice, leaving beginners having to shop for other ways to practice the basics. Which also leads them to buying more courses.. lol. I'm doing a Java course on Udemy which has been great, but the instructor has 20+ years of experience and provides loads of exercises. I haven't really tried Udacity, but I've seen some of the monthly costs for things like treehouse (over 300 a month I think) which is ridiculous. That might be fine if a business is paying for it, but the average person cant afford it.
Article summary:
Can someone please make a graphic poster out of this?
The truth is taking Udemy , Udacity or any boot camp of your choice won't necessarily make you a problem solver.
I struggled with this at a point trying to learn every new tool or framework without even trying to master the language core fundamentals ( design structure and patterns). Now this day , I noticed if I am so good with the fundamentals , I can easily pseudocode and transform it to the language itself. My one piece for everyone is try to master the language fundamentals + advanced way ( better ways of doing things). If you do this, you can definitely work with any framework of your choice and build a solution, the goal of programming is to help end users.
PHP will outlive us all. π
(I've actually been meaning to do a post on my thoughts about why even thought it's Awful it's also perfect. Kind of like JS...)
I've never actually tried php, it's definitely far from dead. You should write it, that would be interesting.
Okay, written! dev.to/the3rdc/php-is-still-awesom...
ohh my gawd!! I was exactly thinking about this today.
My Conclusion was:
And I was thinking of starting a discussion about it.
I read your mind π
That is definitely true. Too easy for a new person to get caught up in all the tech instead of learning how to program.
You freakin' got some dev-magical powers..!! π¬
Any tips for people who want to get learn the fundamentals of programming? Since courses seem to not be the best option.
Courses aren't necessarily bad. I'm doing Tim Buchalka's Java masterclass on Udemy and it's fantastic. On Udemy you can filter courses by exercises. I would do that, and then look through the course. Worst case scenario, utilize the return policy. I've returned several.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.