THE SQL Server Blog Spot on the Web

Welcome to SQLblog.com - The SQL Server blog spot on the web Sign in | |
in Search

Davide Mauri

A place for my thoughts and experiences the Microsoft Data Platform

Know your data(base), or Introduction to the “For the Better Developer” series

After 15 years in Database Performance Tuning, Database Optimization, Data Modeling, Business Intelligence, Data Warehousing, Data Analytics, Data Science, Data Whatever, I’m back in the development space, where I lived also for the first 10 years of my career.

Huston, we have a problem

After 15 year I still see the same big problem: the huge majority of developers doesn’t really know how to properly deal with data. It’s not a critic or a rant. Is just a matter of fact: especially several years ago, if you spoke to a developer, it was clear that dealing with data and especially a database was not something he felt was part of his job.

This is not true anymore, any developer today knows that a bit of knowledge of database is needed. No, better: is mandatory. Still, that way of thinking that was common years ago created a huge hole in developer knowledge bag that is showing its bad effects now. If you didn’t learn how to properly deal with a database, it’s now time to fill that gap. Unfortunately 15 years is a lot of time and database evolved immensely in that time frame, especially relational databases, so trying to recover the lost time it may be really hard. Still, it’s mandatory. for you, your team and the company you own or you work for.

I do really believe in community and sharing so I decided to try to help to fix this problem. If you want to read the full story, go on, otherwise you can just skip to the last paragraph. As always, its your choice.

Changing times

The market changed, asking for more integrated and interdisciplinary knowledge in order to be able to react more quickly to changes. Developers needed a way out: database were just too old and boring, and they really didn’t want to learn SQL, that freakin’ old language.

The NoSQL movement for a while seemed to come to the rescue, promising developers to give them something that will take care of data for them. Auto-Indexing, Auto-Sharding, Auto-Scaling, Auto-Replication. JSON queries. JSON data. JSON everything. No Schema. Just freedom, beers and peace for everyone.

The world today

Of course that was (obviously) too good to be true. Even NoSQL databases, now that they have matured, needs to have data properly modeled, indexes correctly defined, used and maintained, not to mention security, transactions, and techniques to optimize performances.

There is a big difference between now and 15 year ago: now we live in a world where data is the center of everything and so developers needs to know how to handle it. Look at any work offer for developers and you will find that some degree of database knowledge is always required.

You probably already know how to query several database, be SQL or NoSQL: you had to learn it to survive.

Become a Better Developer

Frankly speaking, surviving is just not that nice. Evolving, thriving, accomplishing something bigger is nice. And to do that, you really be able to make the difference. To stand out from the crowd, there is only one thing you have to do. Become good, extremely good, in dealing with data.

You don’t have to become a DBA or a Data Scientist if you don’t want to. But dealing with data in a position of control and not just trying avoid dying under the data weight is something any good developer should learn.

Do you want to use MongoDB? Go and become the champion of MongoDB. You are excited about the new Google Spanner? Go and learn it like there is no tomorrow. Choose one or more database of your choice and master it. It will make a whole difference, since you will have the power to turn the data in what you want, without having to reinvent the wheel every time.

More and more computing power is moved within the database. It is just much more easier to move compute logic in the database instead of moving the huge amount of data we have to deal with everyday out to the application. This is already happening and will continue in the foreseeable future: knowledge of a database is now more important than ever. Performances, and thus costs, depends on how good you are in manipulating data.

The cloud make all these reasons is even more important, since the relationship between performance and costs is stronger than if you are on-premises.

A good data model, the correct index strategy and a cleverly written code can improve your performance by orders or magnitude. And reduce costs at the same time.

My choice

I have chosen SQL Server for myself. I think that nowadays is the most complete platform that supports all the workload one can ask and offers NoSQL, InMemory and Columnar capabilities all in one product. All with exceptional performances and with a great TCO. Plus, it lives in the cloud.

Just to make it clear: I’m not a fanboy. I’ve also studied and used MongoDB, CouchDB, MemCached, Hadoop, Redis, Event Store, SQL Lite, MySQL, ElasticSearch, PostgreSQL. But since the Microsoft platform is where I work most of the time, it make sense for me to use SQL Server.

To be 100% honest and transparent: I’m also a Microsoft Data Platform MVP. But that’s not why I like SQL Server and SQL Azure so much. It is because I wanted to be a developer who can make the difference that I have learned SQL Server so well which in turn drove me to be recognized as an MVP. Since I’m a data lover, I always take a deep look at what the market has to offer: I always go for an objective and rational approach.

“For the Better Developer” series

I really love development, and I love it even more when I am among talented developers who love their job and know the technologies they work with extremely well, because when that happen, great things happen as a result. When that happen my work become pure joy. It becomes poetry. I’ve been lucky to experience such situation several times in the past. And I want more.

So I want to increase my chances to be in that situation and that’s why I’m starting a series of articles that will try to help everyone who want to become a better developer with SQL Server and SQL Azure.

If you’re a developer that needs to use SQL Server or SQL Azure, you will find in articles of the series a quick way to learn the basics and also learn where to look for more deeper knowledge.

Here I’ll keep the updated list of the articles I have written so far:

SQL Server Indexes

Published Sunday, April 02, 2017 5:37 AM by Davide Mauri

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

Jon said:

With tools like PostgREST and such it makes you wonder if you even need the middle layer, especially with new tools like AWS Lambda and Azure functions to pick up the slack. I spend most of my time in SQL writing stored procs/functions and just a little bit of time in ASP.NET Core (my employer loves Linux machines).

April 6, 2017 10:14 AM
 

Davide said:

Right Jon, the world it changing and the only thing that is still sure is SQL :)

April 6, 2017 10:12 PM
 

Satish said:

Hi Davide,

First of all thank you for the nice article. I am working with SQL server from 6 years. So now I want to learn & move to Hadoop(as scary to stay as SQL server developer). But I love SQL SERVER.

If I understood correct, you are saying as "be master in your technology whatever it is, so you will become one of the best developers". So with this article I am rethinking, better to bind with SQL server instead of moving and be master in SQL server.

Please correct if I am wrong / advise me / let me know if I did not convey or ask properly.

Thanks,

Satish

April 7, 2017 1:31 AM
 

Davide Mauri said:

Hi Satish

the point here is that we "only" have 24h in a day and some of them are dedicated to sleep and other activities...therefore one must choose what to learn and what not, and to which level he want to dig into each choosen topic.

I try to do this by being a "Generalizing Specialist": http://www.agilemodeling.com/essays/generalizingSpecialists.htm. For me this means to have a great knowledge of one database (SQL Server and SQL azure for me) and have a good knowledge of other platforms. For example I know how to use Hadoop but surely I'm not an expert like on SQL Server. Luckily thanks to the cloud, this is not a big deal since if you use Hadoop in the cloud (the only place where it make sense IMHO) you don't have to deal too much with technical details since deployment and maintenance are greatly simplified by PaaS offerings like HDInsight. But Hadoop means also Hive and/or Spark, where SQL is still very useful so you can leverage your SQL knowledge. You need to learn also Python and/or Scala so keep also this in mind. So as you can see becoming an Hadoop master will take a lot of resources. So ask yourself: is that what I really want to do? Do you love Hadoop so much? And there is enough work for you to focus for the biggest part of your time on Hadoop?

Hope this helps.

April 10, 2017 10:53 AM
 

Satish said:

Thank you David for your useful reply.

Definitely if I start learning Hadoop , it will take lot of time for me. So my Idea is better to be Master in SQL server & Azure and should have knowledge on them(Hadoop,etc..).

But If I am continuing the SQL Server career only , do I face any job threats?

So please share your thoughts..

Thanks,

Satish

April 11, 2017 5:14 AM
 

Davide Mauri said:

The question you ask is the "1 Million Dollar question" :) I obviously cannot foresee the future, so it's impossible to say. What I'm sure is that SQL Server is now the most popoular database in the world (https://blogs.technet.microsoft.com/dataplatforminsider/2017/01/23/sql-server-named-dbms-of-the-year-by-db-engines/), so I would hardly see a decrease in job offers in the near future. Give that if you know it you also know SQL Azure, you should be able easily find work. Even more SQL Server cover a lot of the data spectrum, from OLTP to BI, ETL and Analytics.

I would so try to keep on with SQL Server, and since you want to also learn Hadoop I would focus on the BI/BA side of the world, leaving development and administration as a second priority. R is usable on both platforms, SQL Server CAN BE integrated with Hadoop with Polybase, so here you are: one investment on one platform can help you in the other, effectively helping you to reach your goal with the maximum efficiency.

April 13, 2017 4:17 PM

Leave a Comment

(required) 
(required) 
Submit

About Davide Mauri

Davide Mauri - MCP, MCAD, MCDBA, MCT, MVP on SQL Server - has worked with SQL Server since version 6.5, and his interests cover the whole platform, from the Relational Engine to Analysis Services, from architecture definition to performance tuning. He also has a strong knowledge of XML, .NET and the Object Oriented Design principles, which allows him to have the correct vision and experience to handle development of complex business intelligence solutions. Having worked as a Microsoft Certified Teacher for many years, Davide is able to pass all his knowledge to his co-workers, allowing his team to deliver high-quality solutions. He currently works as a Mentor for SolidQ and can be found speaking in many Italian and internationals events.

This Blog

Syndication

Privacy Statement