A few weeks ago, a young aspiring web application developer asked me if I felt it was important for them to learn SQL or if it would be a waste of their time given how many tools are available without needing to know the Structured Querying Language. My first gut instinct was to shoot back immediately and say “Of course you should learn it, I use it all the time.” An answer like this however felt more like when my parents would tell me “’cause I said so.” Instead, I explained my history, what languages I had learned and how each was important to me. That natively lead me to SQL and how large a role it has had (and I believe “will”) play for me in the future.
How I Use SQL
The headless CMS platforms are expanding in small-mid sized markets and I’ve started to see more developers utilizing frameworks which remove the need to understand most SQL (such as Entity Framework). This post isn’t meant to determine if those platforms have their place and what the pros and cons are for scaling, etc. Instead, I call out those two examples because they are common examples where developers are given tools to allow them to query data using APIs which return structured data (typically XML or JSON). The actual SQL is written by the framework’s developers and is maintained by that product’s team.
I know what you are thinking, if there are so many options for developing without needing to understand SQL, why do I feel it’s still so important learn it? Well, at the core of most applications for the past 20 years is some form of database. The basic SQL language, while it has its unique commands in some cases on different platforms (MySQL vs MSSQL), the main query calls are nearly uniform and understanding the basics of those will help you logically break down what type of data you have at your disposal.
How You Can Use SQL
This isn’t just helpful for building new applications, but also for easy fixes to complex data problems. For example, let’s say your boss comes to you and says, “I need all references to phone number X in our database to be updated to Y.” If you needed to do this via APIs, you would need to determine all possible fields this could be stored in, develop an application to loop through each item (or run a query against each field) and then update the data accordingly. But if you were familiar with SQL and had access to this database, you could easily run a query to find all matching fields and perform a find/replace all in the same query. The time it takes to build this type of query and the accuracy of its results can be major benefits when you are dealing with site down or compromised data scenarios.
Another real-world practice example would be if someone from your accounting department came to you and asked you to find the list of “people who completed an order with us over the past year who had these 3 items in their cart, were part of these 3 membership groups and live in Arizona”. As long as you understood your database schema, you would be able to pull this data with a variety of basic SQL terms in a single query, including terms like SELECT, JOIN, WHERE, HAVING, GROUP BY, etc. Because you understood your schema and how to run your SQL queries, you were able to provide this list in a matter of minutes without having to write or deploy any code to your website. This would allow your accounting team to contact all your clients to let them know their orders were not processed correctly and quickly remedy the situation for all parties involved.
Why You REALLY Need SQL on Your Resume
To the young web application developer looking at the required skills to enter into the enterprise workforce, yes, SQL language understanding and a working knowledge is a must. If you need just one more reason to learn and master the language, just look at the employment and salary numbers for today’s marketplace. Over 70% of the employment listings for web developers on a major job hunting website have SQL as a requirement. Not having this basic skill would shrink your chances of finding that perfect job almost instantly. Plus, of all the languages I’ve learned over the years, SQL is the most universal and easiest to master. Below are a few resources you can leverage to start writing your own SQL queries:
- PluralSight - SQL
(They are also having a free weekend from 12/14/18 - 12/16/18)
- W3Schools SQL
- O'Reilly - Learning SQL
Once you are ready to try out your first query DB Fiddle - SQL Playground is a great place to practice with.