We have a guest editorial today as Steve is away on sabbatical.
I am not a SQL Server expert. I am a developer who at times develops against and with SQL Server. I think I am a reasonable developer but I know that I am no SQL Server DBA. Having said that I have ensured that I understand that SQL is a declarative set based programming language where, more often than not, the best optimisations I achieve is by writing the simplest T-SQL and let SQL Server itself generate an efficient execution plan. I know a bit more, but that was my professional starting point.
Our community often discuss what are the basic skills required to work with SQL Server. In fact there is an ongoing one here. Whilst I find these discussions interesting, they lack the focus for what I think is the intended outcome; a list of areas for any given person to start with. For me this just doesn’t work. We all have a finite amount of time and, whilst essential, I have yet to meet anyone whose job definition could be defined as “personal development”.
I guess what I am doing is challenging us all to find a consensus of what are the minimal requirements to start to do what I and many other developers do: develop applications against SQL Server with minimal assistance from a DBA. I think there are two types of tasks; development and administration. The following is a starting point but any suggestions going onwards might be for removal as well:
Development:
- Set theory
- SQL Logical Query Processing
- Script execution
- Security model
Administration:
- Backup and restore
- Script execution
- Security model
The list is about as little as I think anyone could get away with as a (professional) beginner and maybe I have deliberately not tried to complete this list. Also there were many that I added and then removed because sometimes our minimum expectation is more than the absolute minimum. There will be those whose sector or products might require certain aspects, e.g. geospatial support, but I am looking for a list for someone looking at SQL Server with little or no experience of RDBMSs.
Many of us have discussed how poor some interviewees’ technical skills are and this is an opportunity for us, as a community, to highlight what we would demand of even a junior. It is difficult to remember how little we all knew when starting on our journey to where we are today but we must try and cast our minds back if we are to guide those following in our footsteps.