There is a massive failure of education.
I am the web developer Michael Braude hates – or at least I was. I had no formal background in CS. I morphed from being a designer to a coder in the ugliest possible way. You all know the story: cutting and pasting JS, etc. Worse: I thought I was good at it and became a teacher, explaining to other people how to write spaghetti code.
The thing is, I had no way to know I was engineering things badly. Naturally, my crappy code came back to bit me in the end, but I just figured that happened to all programmers.
I didn’t know what books I should read, what subjects I should learn, or how to improve. Having read “Javascript for Dummies,” I figured I was an expert.
Luckily for me, I’m Mr. Self Improvement, so I stumbled around until I did find resources that could help me, and after years of reading books like “Code Complete” and “Refactoring,” and after being mentored by some experienced developers (who were also good communicators) that I just happened to meet, I can actually write code that doesn’t make me (or my co-workers) shudder.
I’M THE NORM. Many, many developers are not going to go through formal channels. They’re just not. We need to get over that, accept it, and start working to better the situation given that it IS the situation.
As I see it, there are two major things new developers need help understanding:
- How to write good, clean code.
- Why it matters.
(Their managers also need help understanding #2.)
If beginners don’t understand these things, that’s not their fault. It’s the fault of an industry that thrusts newbies into the ocean before they know how to swim. It’s the fault of companies like Adobe who pitch a message of “anyone who knows how to use a word processor can be a web developer.” And mostly its the fault of senior developers for not effectively passing on their knowledge.
If there was EVER a field that needed a mentorship approach, it’s programming.
I’m as much at fault as anyone. The irony is that I used to teach back when all I could do was make things worse. Now that I actually (somewhat) know what I’m doing, I’m not teaching any more.