Technology moves at a frighteningly fast pace and for developers it can feel like we have managed to grab on to a tigers tail and are now barely holding on whilst flying across the open plains of this technological continent we have made.
From DevOps and Infra-as-code to React and serverless, there is an enormous array of technologies to learn and master, with new ones being released all the time. So, how can I possibly say that there is one to learn that will make you forever employable?
What magical technology is so foundational and ubiquitous that it could possibly be considered valuable enough for a developer to learn to give employability security for life? This magical technology is old, it's older than Javascript, older than Python and basically the same age as C!
Is it a bird? Is it a plane?
Some say it's a programming language, others say it's not, but it meets the modern trend of being declarative and also being cross platform. It powers some of the largest websites in the world whilst also being light enough to run in little phone apps.
The technology I am talking about is SQL, which stands for Structured Query Language and is a relational database technology that has been, and will continue to be, a core foundational technology of the web. If you are a web developer who doesn't know SQL you need to bump it to the top of your "To Learn" list today.
It might not get the press that NoSQL does, it might not be as hot as MongoDB or ElasticSearch and it might feel a bit too much like IT and not Dev'ing, but SQL is pervasive and is much better at solving many problems still than NoSQL.
NoSQL is powerful and amazing. The schema-less design approach allows you to feel very free and unconstrained, however when you want to start managing relationships and keeping duplicated data in sync across many documents you start to feel the trade off for that write time freedom.
Want to grab related data in SQL? Well it's just a LEFT JOIN
away
Where to learn SQL
You can start to learn basic SQL concepts and follow along with a Udemy course or searching for SQL on FreeCodeCamp.org however another good resource is the SQL murder mystery site:
Installing SQL
There are a number of free flavours of SQL like MySQL and PostgreSQL, either one is fine — people do have opinions on which is better, at this learning stage it really doesn't matter though.
You can get MySQL as part of a one click MAMP, WAMP or XAMPP installation, you can install them directly onto your system or you can run them in a Docker container if that's your preference.
Getting data for learning SQL
Database technologies can be hard to get really good at without some real data. Inserting small amounts of data in a tutorial like songs and albums is good for the basics but when you land in a job with a SQL database with 1,000 tables that is 15 years old you're going to find yourself wishing for more experience that that. Here are a couple:
Summary
SQL might not be the new hotness but it's also not going anywhere, it is a manifestation of relational algebra and has been used to build much of the web.
The idea that if you write Javascript you should use NoSQL is nonsense. You should use the best database technology for the data needs your project has. Most large systems will use multiple database and storage technologies including both SQL and NoSQL. SQL has been around for 50 years now and its relevance is only growing, especially with the growing importance of Data Science.
So, when you are burnt out on learning your 15th Javascript frame work and want to work on something stable you will be very happy you have SQL to underpin your career and skills.