It has already been three weeks since the end of the Code First Girls course on Data & SQL. We have celebrated the achievements on LinkedIn. I am greatly impressed by the final projects of my students. This article is for them to show possibilities how to continue learning SQL and excel as well as for others who have just begun their journey with SQL. It is well-known that practice is essential for mastering any new subject learnt. One way to do this is to learn in a real job with real world examples and senior colleagues as mentors. This is my take on how to prepare for such an opportunity in the best way. The amount of learning required may vary….if your plan is to become a developer for example you probably wouldn’t have to master every detail of SQL whilst being a data analyst with SQL as your superpower to analyze big data volumes it is a completely different story. I am such an analyst and rely on SQL as my primary language.
Now let’s dive in and cover different learning formats. My database platform is Microsoft SQL Server. So the examples are from the Microsoft Community. I do not want to sell that SQL Server is the best database in the world however I realized that it is a futile attempt for me to cover any database technology and this would lead me trying to boil the ocean (which I sometimes end up trying 😉).
I chose to put User Groups first. To me joining a user group (in my case PASS Germany) totally changed my way of learning and enabled me to connect to great people. And this is the big plus….you can learn with various media: books, courses, youtube videos whatever….but to be able to know relevant people and know who you can ask that can change your learning journey dramatically. It’s also a great place to get real world knowledge about databases. Certifications from vendors like Microsoft are fine but oftentimes within the data community you meet people who say straight out what works great in the product and other things that are not that great but how you could workaround….this is priceless.
Out in the data community there are so many helpful people who are passionate about data and more than willing to interact with you and answer your questions. Don’t be shy and approach them after a session for a discussion and ask questions you have. The session was about advanced things? Doesn’t matter ask them about the basics afterwards in private.
Now you just need to find a user group. A great place to look is Meetup. Just click on the link and it will open up a search pane for the term “SQL Server”…you can also try to search for SQL, Oracle, MySQL etc. Alternatively you can just google “SQL user group” and the name of your country or the next big city. There is also a dedicated website by Microsoft for the Azure Data-Community which you could give a try.
Learning from books is a learning classic. You can sit and read and revisit problems. However nowadays some people argue that the world keeps changing rapidly and books are already outdated as soon as they are printed. In my view there’s nothing bad about learning especially the fundamentals with a book.
For SQL the book T-SQL Fundamentals by Itzik Ben-Gan is a great starting point. In case you are wondering: T-SQL stands for Transact SQL and is the SQL dialect of Microsoft SQL Server. Itzik is a genius doing really complex things with SQL which I have problems to comprehend 😀. However he has done a great job by explaining SQL for beginners and also pointing out best practices and common pitfalls. For me the book is extremely valuable as it comes with excercises and solutions. So don’t just read the book but also do the excercises for yourself in order to really master these fundamentals.
There are numerous learning platforms out there….some free and some paid. Here is my (limited) experience I can share.
This is the most prominent platform and you can find thousands of videos there. However it is oftentimes difficult to assess the quality of the content especially as you are still learning. My friend Deepthi Goguri brought my attention to the video series from Kudvenkat. It covers a lot of ground and is definitely recommended if you would like to learn more about SQL with SQL Server.
This is a platform which comes from academic background with well-known US universities like Harvard, MIT and Berkeley running courses there. It is nonprofit and the learning experience is free. However if you would like to get a certificate you pay some money (typically 50-100 USD) and also get some extra perks like addtional Q&A with the university staff for example. You can attend a course while it is running and chat with your peers but also have the possibility to access an archived course which means that you would just have access to the videos. I used this platform a lot to learn about Data Science and really enjoyed it. A plus is that the content provided by universities typically is high quality and they have a great didactic approach how to teach it. On the downside it can sometimes be content which is particuarly interesting from an academic point of view but less useful in real world business.
Courses for Databases I would recommend:
Relational Databases and SQL (Stanford University)
This is the first of five courses in the database curriculum of Stanford University. You could skim through it and try to start directly with the second course on Advanced Topics in SQL. The course on Modeling and Theory would be one which is IMHO more academic. It can prove really useful as you set out to design a big database but in a real world scenario you probably wouldn’t follow the academic theory step by step.
This is the official Learning Platform by Microsoft and also offering some interesting Learning Paths for mastering SQL.
I would recommend the following Learning Paths in this order:
- Get Started Querying With Transact-SQL
- Write advanced Transact-SQL Queries
- Schedule Tasks using SQL Server Agent
- Program with Transact-SQL
- Optimize Query Performance in SQL Server
To my knowledge all paid platforms offer a free trial for a month or even less. So before you invest any money it is a good idea to try the platform first. You can also block some time and finish the most interesting courses in that trial period.
I actually have not used LinkedIn Learning much despite it was included in my company learning platform a few years ago. However I noticed that they have great content out there by some well known people from the community…even in German.
This is the goto learning platform for developers but they also have great content on databases. Pluralsight has build out curriculums with courses connecting to each other so it is a great learning experience.
I would recommend the leaning path Querying Data with T-SQL from SQL Server as a starting point.
The standard trial of Pluralsight is comparatively short….you can extend it by reaching out to a course author for example send an email to Paul Randall from SQLSkills.
You best learn SQL by practicing. It is important to get acquainted with set-based-thinking as this is the way SQL works best.
I have just come across that there are some nice enteratinment games online regarding SQL (thank you Naomi Arroyo).
This is a great online game by the german university of Kaiserslautern. You can play it in German, English and Portuguese. If the link pops up with the wrong language you can easily change it via the menu (burger icon).
You get stranded on an island and your mission is to get to know the other people living there (not all are friendly), earn some money and finally escape by freeing a kidnapped pilot. However this is not possible without some virtual blodshed as villains will just stay villains….a pity. You are doing all this by querying and updating a database.
It is fun to prove your skills and you can also get some help while solving the task. I would not recommend this game to people who are completely new to SQL however having some foundations it is fun to play.
My only criticism regarding this nicely written game is that their way of showing joins is a bit old school and quirky.
I prefer writing Joins with the JOIN…ON syntax like this:
SELECT v.name FROM village v INNER JOIN inhabitant i ON v.villageid=i.villageid WHERE i.name = 'Dirty Dieter'
At the end you get a nice certificate of completion:
Even more SQL games
Professor Brass from the german university of Halle-Wittenberg has compiled a nice list of Links related to Game-Based-Learning for SQL. From this resource I find the following links most promising:
This is a game based on a muder investigation. Looks interesting as well. However the implementation is a bit more basic than SQL Island IMHO either draft the complete solution on scratch or have a walk through on one page with examples.
This game seems to be designed for longterm enjoyment as there is no defined end. It is a space based strategy game designed on a PostgreSQL database.
This is a commercial website with learning games set in a police environment. There are some free excercises available which look interesting.
This is a game adapted from IBM for a PostgreSQL database. You need to be able to run your own database in order to play around with it.
A challenge is basically an excercise you are given with an existing data set and a printout of the results. This is a great way to grow your skills and practice SQL. Then go ahead and share your code on Github for the world to see it. If you add your Github repository to your CV your potential employers can already have a look at your avid work with SQL and that you really know how it works 😀.
This website hosts a great number of exercises with solutions. Looks like a great place to learn.
Data With Danny has an appealing website with 8 challenges. However to see the solution you would have to pay 30 or 50$….no big deal if you ask me however I do not yet know Danny.
Jacob Sebastian has published a great amount of SQL Challenges. However there are two downsides with this: Unfortunately his domain is offline so you would have to access it via webarchive…sometimes the links don’t work. Secondly his challenges do not come with solutions…so you would have to google solutions from others on the web.
Tutorials are online resources which guide you through the basics of SQL and are oftentimes combined with an interactive query editor for you to be able to try out SQL.
These are some tutorials I came across which I recommend:
Conferences are a great place to learn new things. Here you get the great chance to learn a lot of differnt things in a short amount of time and also connect with speakers and other conference visitors. They are ideal if you already have solid fundamentals to build upon but you can also take advantage of them while still learning the fundamentals.
A great thing within the data community is that there are a lot of free conferences. For most conferences you get recordings on their websites or YouTube sooner or later….so why attend in the first place? It’s about the community again. Your chance to network with people and to grab hold of your favorite speakers, buy them a drink and answer them a buch of SQL questions.
Talks are typically classified as Level 100-400 (sometimes even 500). I found a good explanation here. Still being a beginner with SQL you would typically aim for level 100 (Beginner) or 200 (Intermediate). You could go to higher levels for fun but don’t expect to understand everything. Something which is titled “Deep Dive” typically is a very advanced topic as well as the presenter doesn’t stop with how things work but typically also brushes on why they work or even how the internals of this stuff look like. Knowing internals can be very geeky and help you to understand a feature more inside out…however for most of us mortals this is not something which comes easily and also not something which automatically enables you to get better at work (as the internals are as they are….you can’t change them).
Going on…first of all let’s clarify on the term “PreCon” you might stumble accross.
PreCon stands for Pre-Conference and translates to a full training day regarding one topic. The speaker(s) of the PreCon typically have a lot of work for bringing it to life so a PreCon typically isn’t completely free and that’s more than fair. Compared to a formal training however the PreCon can come at a great price of a few hundred dollars. So this is typically much cheaper than a regular training class however keep in mind that also the amount of new things you can learn in one day compared to a full blown 4 day training class is limited.
This is just a small collection what comes to my mind. Chance is that there are even more free conferences around.
Formerly known as SQL Saturday these are free conference events which run on a Saturday. Oftentimes you even get lunch and refreshments paid by sponsors. Typically there is a small exhibition where the sponsors present their products, you can leave your contact details and then enter a raffle. There have been a few virtual Data Saturdays due to Covid but typically Data Saturdays are in person.
This conference is 100% virtual and was initiated by Brent Ozar a great community member specialising in Database Administration and Query Tuning. Idea is that the community can vote on the topics that they would like to here instead of a jury doing the selection.
Like Data Saturday this free 100% virtual community conference is also running on the weekend and is also completely free.
SQLBits is a paid conference, however they have the great custom to do a free training day on Saturday (just as a Data Saturday) and also are very open on publishing session recordings on their website allowing public access after a short amount of time.
There are numerous paid conferences but these are some of the most famous english ones. If you plan to go to a conference one day it pays out to book with the (super) early bird tariff as this is oftentimes only 60% of the regular price. One caveat is though that at this time typically the schedule is not published yet so you book in good faith that there will be great stuff for you to learn (which has been always turned out true for me).
As already mentioned SQLBits is a paid conference and runs for 3 conference days (2 paid) and 2 precon days in advance. It is one of the biggest if not the biggest data platform conference in Europe.
Data Platform Summit comes from India and is also one of the major Data Conferences worldwide. In 2022 it is even free as it is completely virtual. So make sure to save your spot.
PASS Summit has been the biggest and most important Data Platform conference in the world and I had the privilege to be there in 2019. Unfortunately PASS Global (Professional Association for SQL Server aka the global SQL Server user group) went bankrupt in 2020 and also Covid came along. However PASS was bought by Redgate which is a software company producing tools for SQL Server. Redgate managed to keep that legacy up by running a Community Summit in 2021 directly closing the gap to the last official PASS Summit in 2020. IMHO PASS Summit is still a great trademark and is still known as THE data conference and (one of the places) where (Microsoft) data professionals from all over the world gather.