| How many of you honestly know of a job available for anyone who can crank out some interpreted code and knows HTML? Or even positions open to recent college graduates who "only"[1] have a CS degree? It would seem the actual threshold for a software engineer position, is at least: * CS degree * Good knowledge of algorithms and ability to recall and implement them * GitHub page and some nontrivial tool or open source contributions A typical non-senior-level job description might call for ruby, javascript, SQL, knowledge of algorithms, and personal projects that would (presumably) impress whoever is hiring you. I have seen anecdotes recently of liberal arts people learning one language and getting programming jobs, however I have trouble believing that this is very common at all, because I can't imagine where they are finding these "give 'em a chance" jobs. Let's not confuse competition for mid and senior level software engineers with JOBS FOR EVERYONE. [1] Even at a state university, its more than possible for an engaged person to work with everything from algorithms to Lisp to robots to compilers and many other things HN holds dear, just from classes. |
From what I've heard/experienced the thinking is there is an overwhelming percentage of software developers who are mediocre. So all that I take your meme to mean is that if you are better than that majority then yes, a job is waiting for you - I agree.
I don't think your average developer knows how to write native, optimized, sql queries. I actually am peeved more and more with rails because you basically spend all your time learning how to be a rails programmer. Your world becomes AR voodoo, and you work toward gem integration mastery. It's kind of weird imo. I doubt most rails devs know how to write a gem!
So that's just my take on it from things I've seen and experienced. It's generally good advice to not reinvent the wheel. Well in the rails community I feel they take it too far. How do you expect to get better if you let everyone else program for you? Forcing yourself to build out some of your own components may take a lot more time but those are the things that level you up as a developer.
I can't say this approach is common, and therefore, good programmers are rare.