What We Should Teach Up-and-Coming Developers
Published on August 31, 2017 (ā» February 5, 2024), filed under Development and Management (RSS feed for allĀ categories).
On a recent return to Istanbul I wondered, whatās actually important to teach new web developers these days? And I thought, evidently, learning is important, and learning strategies are, too, and how to generally work on ourselves, absolutely, but what else to aim for apart from understanding computer science fundamentals, reading the specs, andācoding?
I believe we absolutely need to keep on pointing to basics and to specs, the latter because they are such great sources. But then we need to teach great principles. And also great ethics.
Great Sources
Great sources are sources that are accurate, of high quality, reliable, and that have the big picture in mind. An ad hoc definition (itās 7:41 am on a gray Wednesday morning here in Hamburg). Great sources are about learning our craft.
The big picture is most important, perhaps more important than accuracy. Why? Because our field, web development, consists of so many sub-disciplines that when only one of them just thinks of themselves, the whole field suffers, and web developers learn whack.
A quick example: When in 2009, performance evangelists (back then, that usually referred to Steve) measured the performance of selectors, we discovered that the universal selector is most expensive performance-wise. What did everyone start doing? Freak out, spell out a TSA-style universal ban on universal selectors, and thus make everyone write more complicated, less understandable CSS code. Now, Steve had done amazing pioneering work there, but great sources become even greater when they caution about conclusions and side-effectsāhere, because performance of selectors is largely irrelevant (about which Steve did caution). The occasional universal selector doesnāt hurt, and by the time our style sheets contain those slow-making tens of thousands of selectors, we typically have different problems. That is one example, and Iāll write more about this issue elsewhere.
The importance of reliability of a source should be obvious as should be, I venture to say, the importance of quality as well as accuracy itself.
What and where are those great sources? This is a little trickier to answer. Iām a skeptic (thatās why I sometimes seem a little strict or non-committing) but technical specs are one prime source for us, because they normally meet all demands from our list. (Big picture thinking may suffer there, too, howeverāweāve had some troubles with CSS for that reasonābut try writing even a small draft without looking into neighboring territories.) And then there are some great publishing houses and publications (mentioned first because they can exercise more power to cross-check the information given) and some great experts to consult. Which ones these are? Not for a single individual to answer, perhaps. (On my end Iāll update my list of sources to call out tech sources.)
Great Principles
Great principles are important to teach because they are structuring and guiding our work without making us too strict and uninnovative. They help us ācounter complexity and trends.ā
This is really important. Great principles are about our craft, too, but also about developing a vision. They are even more important to learn if one feels one would need to violate our very principles, for āthe young man knows the rules, but the old man knows the exceptions.ā Thatās a bit misleading, for focus here is on that we can only break the principles effectively (for our benefit) once we know and understand them.
Now, as our field and each of the related disciplines keep on maturing, we actually have a great set of principles to teach. The greatest overview is probably maintained by Jeremy (including higher level principles youāve known from this site) so to give a good taste.
Great Ethics
Great ethics are increasingly important, but existing materials are scarce here as Iām also a bit demanding. As web developers we also have responsibility. In the past that responsibility may not have amounted to much, because what is it to firing up and clicking around in Dreamweaver and uploading some .HTM files through WS_FTP (that was my agency work like in 1999).
But here are two responsibilities that would be good for us to exercise and teach.
One is that we, no matter that we are not politicians or celebrities from whom weād desperately wish greater character and better guidance, should lead by example. I donāt deem it out of bounds to ask us, as more experienced developers, to become better role models, both professionally and socially. Itās time we stop glorifying nerdiness to conceal social anxiety and lack of courtesy. Itās time that we step it up so that strong character and social skills are much part of a great expert in our field as are having a website and, sarcasm, collecting commits on GitHub.
Two is that we actually display more awareness of the actually ethical aspects of our work. What are we doing? This is easy to tell when weāre working for a governmental agency that builds a criminal, undemocratic surveillance apparatus and weāre doing the UI for the intranet homepage. Itās hard when weāre working for an agency that just so happens to build a marketing page for Krauss-Maffei Wegmann. No, we have no professional obligation to do something about immoral things. Yes, we absolutely do have a professional obligation to do something about immoral things. Speak up. Refuse. Leave. Do a Snowden.
ā§ Great sources, great principles, great ethics. I believe these should be paid most attention to in a web development and design curriculum. Itās probably easy to agree to this, as it reminds of the old Lippmann story of āsupport our troopsā; quoting Chomsky, āthe point of public relations slogans like āSupport our troopsā is that they donāt mean anythingā¦ thatās the whole point of good propaganda.ā But here Iām not writing as a scholar, as someone who offers up curricula. Iām writing as someone who likes to inspire others to think about these issues with me. And Iām writing as someone who realizes he cannot change much without other developers and tech managers. Developers and managers like you. Thanks š
In the manuscript of a new little book Iām working on, on CSS optimization, Iāll argue that teaching developers certain mindsets is even more important. I donāt see that as a contradiction to the points made here, but rather as summing them upāthe striving for excellence through the best sources, the strongest principles, the greatest ethics seem to convergeāor result!āin particular mindsets, on web development. I strive for but donāt claim perfection in the posts on this siteāotherwise I couldnāt publish a thingā, so Iāll ponder the matter a bit more, and if you have thoughts on this, please share them, too.
About Me
Iām Jens (long: Jens Oliver Meiert), and Iām a frontend engineering leader and tech author/publisher. Iāve worked as a technical lead for companies like Google and as an engineering manager for companies like Miro, Iām a contributor to several web standards, and I write and review books for OāReilly and FrontendĀ Dogma.
I love trying things, not only in web development (and engineering management), but also in other areas like philosophy. Here on meiert.com I share some of my experiences and views. (Please be critical, interpret charitably, and giveĀ feedback.)
Read More
Maybe of interest to you,Ā too:
- Next: In Defense of Bad Luck
- Previous: What Kills and What Saves Content Management Systems
- More under Development or Management
- More from 2017
- Most popular posts
Looking for a way to comment? Comments have been disabled,Ā unfortunately.
Get a good look at web development? Try WebGlossary.infoāand The Web Development Glossary 3K. With explanations and definitions for thousands of terms of web development, web design, and related fields, building on Wikipedia as well as MDN Web Docs. Available at Apple Books, Kobo, Google Play Books, andĀ Leanpub.