What We Should Teach Up-and-Coming Developers

Published on August 31, 2017 (ā†» February 5, 2024), filed under and (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.

Was this useful or interesting? Share (toot) this post, or support my work by buying one of my books (theyā€™re affordable, and many receive updates).Ā Thanks!

About Me

Jens Oliver Meiert, on September 30, 2021.

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 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 for me to fix issues, learn, and improve. ThankĀ you!