6 comments

[ 3.1 ms ] story [ 22.2 ms ] thread
I was confused at the ah-ha of "it's a program meant to emulate folders and cabinets" but then the writer mentions he only interacted with DBs through GUIs. Not to disparage the realization but I think to the (many) CS folks on here this may seem obvious.
For some NoSQL champions it may still be eye-opening that with SQL you can push down resultset correctness and processing logic to the cabinets, instead of implementing all this (again) in the application layer...
> Despite programming since high school and holding a computer science degree, it took me years to truly grasp what SQL is and what it does.

> This realization may seem basic, but for those who are just starting out, understanding that SQL is simply a program designed to interact with databases can make a huge difference.

I'm by no means a SQL expert, I'm not very good at it, but my understanding of what SQL is has been at the level of what's in this blog post since probably my first year of CS at university, potentially even the year before when I was doing some freelance web development at age ~17.

It's good that the author has learnt this, and it's good that the author recognises that this is a relatively basic realisation as well. To me this post says more about the state of education about computing than it does about SQL. 40 years ago, to be a software engineer necessitate being partly a hardware engineer, 20 years ago you could know far less about hardware, I'd suggest that in the last 10 years you can now be a software engineer and not understand a lot of software.

Do you need to know how an OS works to be a software engineer? Not really anymore, at least not for certain classes of software engineering. It seems you don't even need to know how to use a database to be a web developer anymore because things are wrapped up in so many layers. I'd argue that knowing these things makes you a much better software engineer, but if outsourcing, coding bootcamps, and AI tools have shown us anything, it's that most software engineering does not need to be done by experts.

(comment deleted)
(comment deleted)
I've met plenty of people who have worked in computing for some time and have problems understanding anything more than an inner join with SQL. However, this article is really bad. Their relization is that SQL is a program is bizarre in both simplicity - everything running on your computer is just a program of sorts - and not the problem most people need to overcome to understand SQL. And what do they even mean by program? Some databases are talking to another running program that executes your queries, others are using libraries and executing as part of your own program.

What most people who struggle with it are failing on is having a mental model of how it is operating on sets of data. You're working in a procedural language and interacting with something that is not procedural. It flummoxed me for awhile in my first job. I feel lucky that my first job was very heavy on the database side, and had me converting from a file+cursor based database to a SQL database.