I love hearing about our origins with Logo, HyperCard, and the Pinball Construction Set.
There is even something oddly magical about a simple prompt and a
random number generator. The hours lost to playing with all the voice
options with the
That personal webpage with hit counter and guestbook. That devoted fansite to an anime series or musical artist.
And just now, I am learning about the impact of the HTML tutorials provided by Neopets on a new generation of developers.
I agree that early web development has its roots in reverse engineering.
All browsers could "view source" and minification tactics were not as prevalent as they are today. If you saw something that was interesting or new, you could view the source, copy it, modify it, and apply it on your own webpage.
This has undoubtedly led to many current day programmers.
But the Geocities/Tripod/Angelfire years are now gone.
The digital landscape now shies away from any form of expression beyond an avatar and a header background. Web designs have been largely reduced to the same grid-based patterns.
It feels like our technical remix culture has been pushed to the edges of Minecraft modders and Tumblr themers.
Some of us have grown up in a harsh world of Read The Fucking Manual (rtfm) or Let Me Google That For You (lmgtfy).
I have witnessed and participated in snarky reactions to bad or broken code and have come to the conclusion that this doesn't benefit anyone.
Instead of just taking it to Twitter or Reddit comments to mock errors in sidechannels, let's reach out directly to the site authors and code contributors and provide them with resources that will help steer them on the correct path.
Instead of getting riled up about standards and policies being violated by new participants. Invest in avenues to make the rules more approachable.
We were all beginners once.
Most early web developers were generalists out of sheer necessity. The tools and services just weren't available so there was no other option but to learn how to do nearly every aspect of designing, developing, and maintaining a website.
Those that have been a part of the industry for a while have the benefit of essentially growing up with the technology. As standards and practices have changed, the amount of additional learning that is required for them has been only a couple versions of difference.
We should not expect beginners to have the depth or the breadth of knowledge that we have. They have the challenge of not only learning the new changes, but the entire history behind those changes as well.
I don't know if we have a good solution for this problem as more time progresses and technology continues to develop. We will likely see more specialized jobs and more depth than breadth.
This Worked For Me
I share the following personal experiences with the caveat that they may not be applicable to others. I do not want to enforce "learn as I have learned" as we all learn differently.
But they have become a frequent part of my responses when helping beginners that it is easier to type out than continuing to repeat myself.
Things changed dramatically with the development of Firebug. This removed a lot of the "black box" guessing with markup and styles and provided a much more tangible connection between code and what was rendered in the browser.
The next great leap was code style guides. I was getting very lost with all the different ways to solve problems. It was helpful to be presented with a suite of best practices and bring a little order to my undefined chaos. They were excellent training wheels and now even in the absence of them, I can still adhere to a consistent style.
I believe good code style guides, syntax highlighting, linting, and tab autocompletion help cut through all the little headaches of consistency, typos, braces, and semicolons.
I now leave all this upkeep up to the computer. Let the computer handle all the computer-y stuff. I can keep focusing on solving problems.
Part of my awakening to what the world of professional programming truly had to offer was a catalyst of subscribing to blog feeds and newsletters, following active Twitter users, and attending meetups and conferences. This exposed me to new ideas and concepts and I was able to define the edges and give shape to what was before a very rudimentary understanding of developing for the web.
I was largely self-taught and my practices were limited to what I gleaned from blog posts and snippets. Getting a much higher level view of what a contribution to a modern project workflow required and provided in the grand scheme of things was revolutionary for me. jQuery and Bootstrap development in particular.
I benefitted from reading lots of "Not So Secret Sauce" and "Playbook" entries on the web. Thoughtbot's playbook in particular.
I scrutinized large bug reports and postmortems to learn from the lessons of others.
I took notes on every error message and each step I took to resolve them.
I used tools like Pinboard to bookmark everything. And used tools like Trello or Evernote to capture everything. I advocate for offloading as much as possible from my head so I am not overwhelmed.