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 somewhat close to W3C and WHATWG, 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 views and experiences.
If youâd like to do me a favor, interpret charitably (I speak three languages, and they do collide), yet be critical and give feedback, so that I can make improvements. Thank you!
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 (2023). 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.