149 karma · joined August 18, 2011
A vaccine is a vaccine; arbitrary judgments about it's general efficacy over some hand-wavey timespan doesn't change that. And no, it's not justified to redefine it.
The combination of coding and employee skills usually also means that this person is a good candidate for a team lead.
If you've never worked with someone who's an A+ engineer as well as a fantastic teammate/subordinate, you don't know what you're missing. The unsocializable uber-geeks can do what they do best, which is produce great code, and the managers are much more informed (and relaxed). And the teammates (like me) find working with them a pleasure.
In summary, coding skill vs. employee skill is a false dichotomy; the alternative is someone who has both skills and whose value to a team and to management acts as a team & production multiplier.
I will happily say "Don't use megaframeworks; use microframeworks.". And, I'll add "read the code in these microframeworks, learn what they do and how they do it, and start to see ways that the different tools available to you can be assembled".
I also absolutely agree that one should not create your own (mega)framework in order to build your application. But luckily I never said that one should ;)
And, I agree with your last paragraph and can add to it: "I suppose my theory is that as long as you're using an open-source framework or collection of microframeworks,..."
In my own experience, over time the use of small, clean open-source libraries (the microframeworks) beats the hell out of the codebases built on the megaframeworks. Eventually, you have to replace something, and replacing one component among many is a hell of a lot quicker, easier, and efficient than plumbing one out of a larger, less simple, monolith.
There's no reason an engineer who's been around the block at least once wouldn't be familiar with the various OS libraries in various languages (these days, that's probably ruby, python, nodeJS, and maybe java if you're working in big data).
There's no way that someone who knows what they're doing would be able to learn Django or Rails implementations quickly but would take "x months" to learn a ruby + zeroMQ + mustache implementation. Months? Someone's sandbagging ;)
There's a big difference -- creating framework that solves a general set of problems is a different task than building an app.
This argument assumes that an engineer will create a framework to solve their problem ("build an app"), and create an ORM, and will recreate an auth process, etc. This isn't necessarily true.
Also - why assume that a skilled engineer will "hack" together anything? How hard is it to write a bunch of SQL? Not particularly hard at all - no need to hack (in the negative context of the work I infer you're using here).
In fact, a skilled engineer will re-use the micro-components he/she's created. An unskilled engineer will "hack" together a new "framework", "ORM", and so on - creating their own megaframework - to defeat the purpose of using microframeworks in the first place? Sorry, that kind of engineer needs more experience or skills.
Also, I think we need to clearly separate two things: writing an app, and writing a framework. I'm recommending using tools (microframeworks) to create apps, websites, etc -- not to ask an engineer to devolve into using these tools to create yet another megaframework in attempt to abstract away problems (that they probably don't fully understand, but should, as in your example of authentication) and failing.
In fact, I'll go ahead and posit that a skilled engineer knows how to create an auth process (using existing crypto and hash libraries instead of rolling their own). An unskilled engineer -- not so much.
(Imagine, using a python example, gEvent + zeroMQ + pystache + db-of-your-choice. You can do almost anything.)
Like anything, there's a reasonable-middle as to the salary requirements for an individual.
Related: An advantage of a "non-diverse" engineering culture is so the arguments can focus on meaningful topics that push the company forward, and not on topics that arise from basic, core cultural differences
I've been programming since the age of 9, and I'm well into my 40s.
What that statement doesn't say is that for some of those years I learned very little (even though I was spending some of that time coding, I wasn't really "doing" anything; I.e., wasn't learning).
What really matters is doing quality work, making quality mistakes (so to speak), and learning from that and from other good engineers around you.
It is improbable that someone is going to issue a DMCA letter because of this, but it does (to your point) outline a couple of problems in S.V., one of which is the misconception that "It's not stealing if you attribute the artist" is widespread. And incorrect, at least for anything (c)All Rights Reserved.
If in doubt, it's a good idea for startups to consult their attorney (and not the PM, or lead engineer, or friend-in-a-band) when in doubt when using music, art, or what-have-you in public fora.