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?
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:
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:
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.
Top comments (4)
I thought it would be an article about Cobol.
I thought it would be about Googling
Haha, that’s also important but it’s not a measurable skill and is only as good as the information available to you
I have genuinely thought about learning COBOL, FORTRAN or FoxPro. The closest I came was an old job where lots of their code was still FoxPro. If you can take he learning curve and are happy mainly working in maintenance type roles there’s a lot of money to be made with those languages.