For years, I've read and seen articles about how “all kids need to know how to code!”, and in many ways, I fundamentally disagree. Not everyone needs to know how to write javascript, or build a web app. It's not an essential skill.
At the same time, there ARE tech skills which give you superpowers, even in a small dose. Basic database skills and skills understanding technical documentation are incredibly powerful, in so many areas, even if you don't grow up to be a software engineer. Recently, I saved my kid's school thousands of dollars in consulting fees with just a few thoughtful database queries. That's the kind of super power that basic database skills give you.
I volunteer in my kid's school library regularly. Our collection is somewhat old in many areas, and we're going to pack up the library for a renovation, so it's time to undertake a major book culling process.
After a few months of hearing about how overwhelming this culling project was, with no progress, I approached the librarian. “I have a few ideas about how we might get data on which books to cull from the library catalog, if that's something you'd like help with.”
She was hugely relieved and showed me which kinds of reports she was able to get from the software, and what kind of information she didn't know how to get. I sat down at her computer, and started exploring the software and the documentation. Like most computer documentation, it was confusing. Which reports required the premium subscription and which were available to all users? How did I even get to the correct dashboard to generate the reports? Once I found the dashboard and report generating tool, it became a task of exploring what information I could get out of the reports.
I had a question in mind that I wanted to be able to answer. Which books in X subject area (say, geography) have not been checked out in the last 3-5 years, and were published more than 10 years ago, and what are their call numbers so we can find them in the library?
As I explored the report-making software, it became clear to me that it was a light-weight, somewhat limited GUI directly over the sql queries.
For me, this was great, because I could envision the database structure, and try to craft my queries. But for someone without SQL database knowledge, this would have been very difficult. I understood why the librarian was getting overwhelmed.
I managed to pull up a list of books more than 10 years old that had not been checked out in the last 5 years, but there was a glaring problem.
There was one report generating page that queried the circulation data (including publication date and when things were checked out). There was another report generating page that queried the collection data, including call numbers and publication date. The software had no way to do a join, and get both sets of data.
At this point, I threw up my hands on the report generating tool, but I also told the librarian I would get her these reports. I dumped both of the whole tables into XML files, zipped them up and emailed them to myself.
Once home, I loaded them into a MySQL database, and started playing around with queries.
Once I had done this, it was easy to make the join of the two databases, and then query for different subsets of information, and write those to a CSV the librarian could open in a spreadsheet. For instance, Geography books more than 10 years old, which had not been checked out in 5 years, EXCEPT a short list of regions that were more relevant for our school (and where the historical books were useful).
Because it's a relatively small dataset for a computer (13,000 rows), I don't have to think about performing the queries optimally. It's sufficient to make them happen quick and dirty. This would be, and was, completely overwhelming for a human.
I'm not a data engineer. I can handle basic SQL, and I can read the docs, but I've spent more time building deployment, operational and observability tooling for MySQL than I have preparing optimized queries on a large (by computer standards) dataset.
In an evening, I saved our school thousands of dollars of consulting fees from the library catalog company.
And that's really the point. Database engineering is an area where a tiny bit of knowledge makes you a SUPERHERO in everyday life. You don't need to be an expert. As my kid's art teacher tells them “A little is a lot”. This is true of glue, and also database skills.
You hear so much about the skills that kids need these days. Oh, every kid needs to learn to code! Let's teach them all javascript! or Rails! Oh, they need to know AI!
I don't agree with a lot of it. I'm in no rush to teach my kid to code apps. At 5, I'd rather she spend her time painting and digging in the dirt and dancing (what she loves to do). I'd rather my 1 year old NOT climb on the play kitchen to reach the scissors... but maybe practice climbing someplace safer, and practice cutting with supervision and safety scissors (he's determined to do the former though). However, there are some fundamental tech skills that really are superpowers today.
These are some of the tech skills I want to make sure my kids learn when they're older. I don't think these skills are going out of style any time soon, no matter what this AI revolution looks like.
- How to make a pie chart, bar graph and scatter graph something from a spreadsheet and perform a linear regression to get a line of best fit
- Have a mental model of how databases are structured and how to perform basic queries on them
- How to read software documentation and explore the software as you read it to figure out how it works
- Basic file and data manipulation on the command line – at least knowing to some extent what's possible
When you know what's possible, and you have the skills to learn to do what's possible, that's when you can be a superhero. Whether at work, or your kid's school, or even just dealing with beaurocratic paperwork.
I didn't know how to use regular expressions to search the library catalog by call number using the dewey decimal system to get specific subjects, but I knew it was probably possible, and I knew how to find out.
Knowing enough to know what's possible, and how to find out how to do it are the key tech skills.
- N.B. There's an entire other set of information, media, and data literacy skills that I also think is essential, but that's a different subject.
If you enjoyed this newsletter, please pass it on to a friend!
If a friend forwarded you this email, you can subscribe here
If this post sparked some thoughts for you, I'd love if you reply and start a conversation with me about them.
b'vracha, Caroline Taymor