I discovered this open letter to developers in an HN comment thread the other day. The author points out an concerning trait of many software developers to be overly critical and hateful towards beginners.

Almost every accomplished designer I know has disparaged Twitter Bootstrap and (implicitly) the people who use it. I admit I have the same tendencies. As a backend Web developer, I wince just a tad when someone mentions they’ve abstracted their entire application using something like Parse.

##The Tables Turn It is easy to ascribe this defensiveness to snobbery or “get off my lawn” attitude. But in reality, it is easy to see why the old guard sees newcomers as an affront to their skills. Making a concept accessible necessarily requires replacing nuance and individualism with sweeping generalizations. It hurts when the precepts of your craft are reduced to sound bites, code snippets, and cargo cult practices. Vitriolic essays comparing the software to terminal illnesses result.

But then I had to design a front-end for a side project I was making and I found myself with the daunting task of learning all about design. I could pore over articles about typographic style, proper layout and spacing, and graphic design or I could just drop a single Bootstrap script at the top of my HTML. I, the cynical backend guru, could finally empathize with those I had criticized.

##Embrace It was then I realized that these easy-to-use tools are not just a convenience but a necessity for a novice. Technology has progressed to the point that no single person can reasonably know everything about the full software stack. So much of what we know is encoded in implicit knowledge and oral tradition that a beginner would have to struggle for months before they could even get started. Abstraction is required.

There will always be people in the world who have no appreciation for your craft. Such people have always existed, even before starter kits and frameworks “dumbed things down.” There is nothing you can do except accept that fact. But for everyone else, the availability of tools provides an entry point for learning more advanced theory.

##Standing Up For Your Principles Any developer will agree that abstraction is one of the defining tenets of development. A designer should not be expected to know about databases and concurrency, nor a programmer about proper line heights. To disrespect tools like Bootstrap or Parse is to disrespect that principle.

Now, before I denounce anything aimed at beginners, I remind myself that before learning things “The Right Way,” it is necessary to learn it in the first place.