[LMG] Issue 0: Why write a newsletter?
Where do I start?
Someone I know just took up a (sponsored) course to learn HTML, CSS, and eventually maybe Javascript and maybe even Python!
What does it meant to have been taught HTML? What does it mean to receive a certificate stating that you have learnt HTML? Why would anyone need to learn HTML? Will you be able to make a webpage, knowing some HTML? Will you be able to make a nice website with CSS? Many of these courses claim you can. That’s why you’re paying for them, right?
These courses often guarantee that in the course of 2 hours, you will learn how to write HTML. You will learn what CSS is. But here is what these courses cannot guarantee:
- whether you are able to link HTML and CSS to everything else you know about computers, webpages, and the internet.
- Whether you know how to google for help when you want to try to do something else with HTML, CSS, and whatnot.
- Whether your big-picture view of computers has improved in any way.
They cannot guarantee that because it takes more than just knowing programming. It’s a kind of generalised knowledge that lately is becoming the kind of common sense that any internet denizen must know to keep themselves safe and avoid trouble on the internet.
I’ve spent more than 10 years using computers: toying with MS-DOS, escaping lab staff while trying to complete an accelerated download in Go!zilla, assembling computers by hand, googling every question in my head, processing data in MATLAB for undergraduate research, mucking around in MPI and FORTRAN for my final year project, setting up a home server, crashing the disks and losing all the data, figuring out how to restore a disk array, crashing the disks and losing all the data again, writing scripts to do Rube-Goldberg backups, giving up and simplifying my life, doing it all over again, and finally deciding to start writing useful things.
This is what I learnt:
- It is better to know a bit of everything than to know everything about only one thing.
- You can learn one thing a lot faster if you know something about everything related to it. And you can remember it a lot better too.
- Having examples really helps. Real-life examples are a million times more helpful than contrived examples if you’re not sure what’s going on.
- Knowing why you should do something is as important as knowing how to do it.
- You don't need to be an expert to make something. You only need a reason to make it. And lots and lots of time. Having a laptop with an internet connection would really help.
This is what I think:
- Software engineers are responsible for more and more of our digital infrastructure today. They do need to be held accountable for their decisions.
- That means everybody needs to understand a little about computing to be able to grasp what it is they are doing, and the implications of the decisions they make.
- Knowing some of the jargon of software engineering greatly expands your library of experiences. It helps build up a vocabulary of what it means to collaborate and to build. It is inevitable that every programmer builds from the tools and pieces created by other programmers. Their work is indirectly coordinated through some really cool systems. Knowing that these tools actually exist(!) and are actually possible(!) is immensely inspiring.
- Knowing some of the common practices of software engineering can help you recognise when something is broken and can be improved.
- Knowing computing at a very broad level helps you realise that many aspects of computing are really human decisions. Understanding a computer may require logical thinking, but understanding software ultimately requires understanding the engineer’s perspective.
I want it in newsletter form and not as a blog because:
- Maintaining a blog is tiring. Everybody can read a blog—actual software engineers looking to nitpick, a random troll looking for a target, spammers spamming the comments, …. and writing for a blog becomes a kind of defensive act of trying to say things that are correct for as many people as possible.
- Email is more personal—I’m writing only to people who actually subscribe! Not to a nebulous, amorphous audience.
- I can drop the email from my mind once it’s sent out. With blog posts, I am tempted to go back and edit it again for correctness, grammar, tone, etc. Too emotionally draining. With email, what I have written, I have written.
In these newsletter issues, I will be telling stories. Stories about what things were like in the past. Stories about what I’m doing now. Stories that hopefully resonate with something in you, inspire you, or intrigue you enough to put a search term into Google. Stories that I write within an hour, to stop me from being bogged down by the inertia of trying to write a masterpiece.
Thank you for coming on board. It makes it less lonely :)
—JS
This is the zeroth issue. Subsequently, all issues will be available online at https://buttondown.email/laymansguide. If you have any comments, requests, or corrections, just reply to this email! Please feel free to forward the online issues to anyone you think will benefit from it. And encourage them to sign up too, at https://buttondown.email/laymansguide, if they like it.