I was helping my brother check some database issues the other week, and he mentioned how impressed he was with how quickly I was able to come up with SQL queries on the fly. I told him that SQL was one of the skills I considered myself to have mastery over. This shouldn't be surprising given my early career path:
- for most of my first year working as a software developer, I was working on reports which involved lovingly handcrafted (and oftentimes quite complicated) SQL queries. And there was a lot of Oracle PL/SQL too
- by my second year, I was already conducting SQL training for new hires in the company
- by my third year and onwards, I was already regularly asked to help other projects with their SQL performance issues
Most of my experience was with Oracle SQL, but as the ANSI standard has evolved quite well, the knowledge translates well to other databases. (Maybe not the PL/SQL though.)
These days I feel like SQL knowledge has become a much rarer skill among developers, chiefly for 2-3 reasons:
- the introduction and widespread use of tools like frameworks with ORMs and business intelligence software, minimizing the amount of SQL that needs to be hand-written in most applications
- the modern software development stack is much more complicated than it used to be, particularly for web development. When I started out, almost everybody was a "full stack engineer", and that meant having to be familiar with most technologies you were using, including the database layer. These days, for any nontrivial project, developers on a team will often need to be specialized, with many working only on frontend issues, some on backend, and any SQL or stored procedure work is handled by a specialist developer or a DBA.
- a possible secondary reason is the rise of alternative data storage solutions such as NoSQL databases.
Realistically, the need for people who can write good SQL may never go away, but the poor of people who can do so may be getting smaller due to the reasons above. Well, maybe it's a good thing for me, since scarcity means it may become a more valuable skill as time goes on!