There's a reason writing late at night can be bad. It invites a rambling nature. Also, the 'E' key on my keyboard is out, so if I miss any letters, I do apologize. Great. Poor spelling and too long. Here's the three-line recap:
A few friends have recently asked me how to learn web development. You know, HTML, JS, and CSS. It's a bit of a tricky question—it should be easy to answer. And there are some good answers:
These resources all offer focused and curated information. By receiving the information from a knowledgeable source, readers are able to reach a baseline of competence more quickly than by simply reading message boards and web tutorials.
I don't mean for a moment to discredit good tutorials and message boards. Stack Overflow is, without a doubt, a website that is used daily by professionals and hobbyists alike (with only occasional, amusing, inaccuracies). Similarly, there are many high-quality tutorials.
The problem is there are trolls and mediocre tutorials. Or, often, there are inapplicable artciles. I wrote something about styling parents with CSS that is at best a theoretical article about trying to hack CSS to do something that CSS shouldn't do. Something like this probably shouldn't be used in practice.
Building a base level of competence helps boost the beginner to the novice or intermediate level. Novices and intermediates have the proficiency to determine which resources apply to them.
So now the basics are out of the way. The question remains: how do you get through this monstrous intermediate layer and develop mastery of the subject?
This is a widely applicable question. For traditional crafts, apprentices become journeymen. In the scientific realm, there is often a solid half decade of moving from the lower layers of being intermediate—graduating with a baccalaureate—to moving to the advanced levels of mastering enough subject material to receive a PhD.
Outside of work, with hobbies, intermediates are normally those who are well-practiced. Good photographers have taken tens or hundreds of thousands of photos. Musicians have practiced for hours. Dancers have spent a lot of time on hard wood floors, working on learning and honing movement.
I was at a balboa dance on Tuesday with a friend of mine. Balboa is a swing dance that was popularized in the 1920's, when ballrooms got so crowded that swingouts and Charleston couldn't be danced. It's a neat yet obscure dance. On a good night, with a decent crowd, you can normally see someone dancing it for a song or two.
Anyway, we were at a dance dedicated to balboa. Since there are few dancers who know and dance balboa regularly, this is not the most crowded of nights.
So we got to talking about mastery and breaking through to an initial mastery of a dance. At university, he was an instructor for the Swing Club. This was a really great student group—student-run, student-taught. We had a couple hundred dancers turn out at the beginning of each semester, of which a large number would remain dancing throughout the term. We hosted dances with 21-piece big bands and brought in outside instructors for workshops. Most importantly, after hours of dancing together, we'd get food, sit down, and talk about dancing.
All these events bonded us. None more than just hanging out dancing and talking about dancing.
It was this community that founded the basis of our knowledge and a shared empathy towards our likes and dislikes in the dance. Similarly, successful tech meetups are formed of people with a strong passion for the technology, a willingness to learn and share, and a couple more advanced members who can help elevate the entire group.
Web development, like swing dancing, is made up of many different pieces. The master of one area doesn't have to be a master of another. Meetup groups can be elevated by shared mastery and expertise spread between many people.
There are many paths to mastery. Here's one: finding solid resources, practicing, and finding a community of really smart people to learn from.
Have tricks on getting through the beginner and intermediate stages? Drop a line to @honzie.