Is learning Python/R an advantage for SQL Server Developers? Need an expert advice.

  • Hello Guys,

    Is it time for SQL Server Developers to start learning R/Python to excel in their career? Expert advice needed.

    Regards
    VG

  • GroverVivek - Wednesday, January 24, 2018 5:50 AM

    Hello Guys,

    Is it time for SQL Server Developers to start learning R/Python to excel in their career? Expert advice needed.

    As these are now baked in to 2017, I'd say that it is a good idea. Whether you need learn both is a different question ... personally, I'd go with Python only.

    The absence of evidence is not evidence of absence
    - Martin Rees
    The absence of consumable DDL, sample data and desired results is, however, evidence of the absence of my response
    - Phil Parkin

  • You should be learning constantly. Whether it's R or Python (I prefer R) for data work that can't easily be done in the DB engine, or Powershell/Bash for automation, or U-SQL if you work with 'big data' or.... is up to you

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • In general, they're good to learn because they are popular, they are on the rise, and they mostly deal with data.

    If you will actually use it in the work place is up to the business. A lot of companies that are Microsoft shops may lean away from it still and lean more towards .NET, Powershell and so forth regardless if SQL Server or Visual Studio support it and the resources have been using it with the tech for years. But, there are some that do embrace it because it's needed for analytics/data science as well cheaper to develop in (i.e.: Python was originally for prototyping and thus is faster to develop apps in than .NET)

    Personally, I think you should. I use Python every day with SQL Server and especially Azure. The cloud and advanced analytics is on the rise and it has the most need for Python for automation and even data pipelines. Python specially is great for converting R scripts into automated applications that can be injected right into the heart of your SQL Server as well other enterprise applications you may be developing in other languages.

    Python is more of a need for you than R because R is domain specific and really is not much use to you from a SQL Developer standpoint. Python is better for actual development, ETL, API's, apps, and especially automation and even maintenance.

  • SQL Server Developer is such a broad title, that it's really impossible to tell, as that role will vary from company to company.  I'd suggest it's important to understand how each is used with SQL Server, but if your role doesn't fit the purpose of the language then it doesn't make sense to learn it.

  • Learning Python as a language is easy, if you have any experience with programming languages. The trick is that there are 6,300 published Python libraries. Spending 10 minutes on each to find what it can do for you is a full time two years job. (If you can remember the first library after you examine the last one, otherwise you could start over.)

  • GroverVivek - Wednesday, January 24, 2018 5:50 AM

    Hello Guys,

    Is it time for SQL Server Developers to start learning R/Python to excel in their career? Expert advice needed.

    Heh... yes... but only if they actually know T-SQL very well first. 😉  Many people fall way short in that area and then resort to other things to try to make up for their lack of knowledge in T-SQL because they frequently don't even know IF T-SQL is capable of doing something.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Jeff Moden - Wednesday, January 24, 2018 12:51 PM

    GroverVivek - Wednesday, January 24, 2018 5:50 AM

    Hello Guys,

    Is it time for SQL Server Developers to start learning R/Python to excel in their career? Expert advice needed.

    Heh... yes... but only if they actually know T-SQL very well first. 😉  Many people fall way short in that area and then resort to other things to try to make up for their lack of knowledge in T-SQL because they frequently don't even know IF T-SQL is capable of doing something.

    Yes, but.

    Different tools do different things. I like to use R for some visualizations that SSRS doesn't do well for me, also keep trying to dream up new ways to visualize existing data for others to get better use out of it, and R has a lot of capability for a pretty low learning curve. Also a lot of depth if you want to apply statistical analysis and understand how to do it properly (not necessarily me, but always trying to learn more)

    -------------------------------------------------------------------------------------------------------------------------------------
    Please follow Best Practices For Posting On Forums to receive quicker and higher quality responses

  • jonathan.crawford - Wednesday, January 24, 2018 1:06 PM

    Jeff Moden - Wednesday, January 24, 2018 12:51 PM

    Heh... yes... but only if they actually know T-SQL very well first. 😉  Many people fall way short in that area and then resort to other things to try to make up for their lack of knowledge in T-SQL because they frequently don't even know IF T-SQL is capable of doing something.

    Yes, but. 

    Different tools do different things. I like to use R for some visualizations that SSRS doesn't do well for me, also keep trying to dream up new ways to visualize existing data for others to get better use out of it, and R has a lot of capability for a pretty low learning curve. Also a lot of depth if you want to apply statistical analysis and understand how to do it properly (not necessarily me, but always trying to learn more)

    Valid point, but I can't see how this negates Jeff's comment in any way.

    The absence of evidence is not evidence of absence
    - Martin Rees
    The absence of consumable DDL, sample data and desired results is, however, evidence of the absence of my response
    - Phil Parkin

  • Because I don't have to know T-SQL inside out and upside down in order to use R for something that SQL won't even do.

    -------------------------------------------------------------------------------------------------------------------------------------
    Please follow Best Practices For Posting On Forums to receive quicker and higher quality responses

  • jonathan.crawford - Thursday, January 25, 2018 6:56 AM

    Because I don't have to know T-SQL inside out and upside down in order to use R for something that SQL won't even do.

    And for some things that T-SQL can do, R is easier to work with.
    For example, I could calculate quantiles and other measures of distributions of data in T-SQL, but if given a choice I'll use R for that.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • jonathan.crawford - Thursday, January 25, 2018 6:56 AM

    Because I don't have to know T-SQL inside out and upside down in order to use R for something that SQL won't even do.

    There's no question that R brings some fantastic stuff to the table and that there's a lot of stuff that it can do that T-SQL can't do never mind being super easy to do in R and I'm not challenging that.  What I am challenging is the use of R, Powershell, SQL CLR, VBS, etc, etc, etc to do things that are actually quite easy to do in T-SQL that people just don't seem to take the time to learn because they think that SQL Server is just a place to store data.

    My favorite example is when 2005 came out and the use of SQL CLR was all the rage.  To make a much longer story shorter, a "developer" brought me an SQL CLR to deploy to production and I refused.  He stormed out of the room before I could complete the word "No" and explain and he took it to management and I was called out on the carpet because it was supposedly a showstopper holding up a project.  What did the SQL CLR do that was so critical.  It calculated a MODULO.  You know... the one that uses the "%" operator in T-SQL. <headdesk><major facepalm>

    That's what I'm talking about.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Jeff Moden - Thursday, January 25, 2018 7:48 AM

    jonathan.crawford - Thursday, January 25, 2018 6:56 AM

    Because I don't have to know T-SQL inside out and upside down in order to use R for something that SQL won't even do.

    There's no question that R brings some fantastic stuff to the table and that there's a lot of stuff that it can do that T-SQL can't do never mind being super easy to do in R and I'm not challenging that.  What I am challenging is the use of R, Powershell, SQL CLR, VBS, etc, etc, etc to do things that are actually quite easy to do in T-SQL that people just don't seem to take the time to learn because they think that SQL Server is just a place to store data.

    My favorite example is when 2005 came out and the use of SQL CLR was all the rage.  To make a much longer story shorter, a "developer" brought me an SQL CLR to deploy to production and I refused.  He stormed out of the room before I could complete the word "No" and explain and he took it to management and I was called out on the carpet because it was supposedly a showstopper holding up a project.  What did the SQL CLR do that was so critical.  It calculated a MODULO.  You know... the one that uses the "%" operator in T-SQL. <headdesk><major facepalm>

    That's what I'm talking about.

    I'll also add "silo-ing" to that.  In the various companies that I've worked for in the past, it seemed to be rampant and seems to continue even in today's world of DevOps.  What I'm talking about is people who just don't know something in T-SQL even though it may be super simple to accomplish.  Rather than asking for a bit of help, they limit themselves to the tools that they do know and that's wrong at so many levels.  They may even teach themselves how to do something in R or whatever.  While such learning isn't a bad thing, they didn't take the time to learn the right thing nor even ask if there was an easy way to do what they need in T-SQL.

    I also get the tired ol' lecture of "Just because you can do something in SQL Server, doesn't mean you should".  While I do agree with that, a lot of people use that as an uniformed, ring-knocker, ad hominem attack to make up for their lack of even simple knowledge of SQL Server.  They typical follow that with the totally over used and totally desperate attempt to save face by saying that "SQL Server isn't the center of the universe".  My normal response is, "Fine.  Let's turn it off and see if you're right". 😉

    I definitely subscribe to the idea of using the right tool for the right thing but the right tool isn't always something outside of SQL Server.  That's why I have the play on words in my signature of "Just because you can do something in SQL Server, does mean you SHOULDN'T". 😉  At the very least, ask someone who might know if T-SQL is the right tool or if the tool you're familiar with is a better tool, especially if you don't know squat about T-SQL.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Jeff Moden - Thursday, January 25, 2018 7:48 AM

    jonathan.crawford - Thursday, January 25, 2018 6:56 AM

    Because I don't have to know T-SQL inside out and upside down in order to use R for something that SQL won't even do.

    There's no question that R brings some fantastic stuff to the table and that there's a lot of stuff that it can do that T-SQL can't do never mind being super easy to do in R and I'm not challenging that.  What I am challenging is the use of R, Powershell, SQL CLR, VBS, etc, etc, etc to do things that are actually quite easy to do in T-SQL that people just don't seem to take the time to learn because they think that SQL Server is just a place to store data.

    My favorite example is when 2005 came out and the use of SQL CLR was all the rage.  To make a much longer story shorter, a "developer" brought me an SQL CLR to deploy to production and I refused.  He stormed out of the room before I could complete the word "No" and explain and he took it to management and I was called out on the carpet because it was supposedly a showstopper holding up a project.  What did the SQL CLR do that was so critical.  It calculated a MODULO.  You know... the one that uses the "%" operator in T-SQL. <headdesk><major facepalm>

    That's what I'm talking about.

    But that doesn't require 'knowing T-SQL very well'. You're talking there about knowing the basics of the language.
    If you use R because you don't know the first thing about T-SQL, then you're not a T-SQL developer using R for something they don't know is in T-SQL, you're an R developer.

    And, if I may be blunt, using "developer" to refer to someone who develops predominantly/only in other languages is frankly insulting. Sure, the guy may well have had an attitude problem and should have asked if the C# was necessary before he wrote it, that doesn't mean he's not a developer.
    I work with a whole bunch of data professionals who don't know the first thing about T-SQL, or the base SQL language in general. That doesn't make them inferior.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • GilaMonster - Thursday, January 25, 2018 8:50 AM

    Jeff Moden - Thursday, January 25, 2018 7:48 AM

    jonathan.crawford - Thursday, January 25, 2018 6:56 AM

    Because I don't have to know T-SQL inside out and upside down in order to use R for something that SQL won't even do.

    There's no question that R brings some fantastic stuff to the table and that there's a lot of stuff that it can do that T-SQL can't do never mind being super easy to do in R and I'm not challenging that.  What I am challenging is the use of R, Powershell, SQL CLR, VBS, etc, etc, etc to do things that are actually quite easy to do in T-SQL that people just don't seem to take the time to learn because they think that SQL Server is just a place to store data.

    My favorite example is when 2005 came out and the use of SQL CLR was all the rage.  To make a much longer story shorter, a "developer" brought me an SQL CLR to deploy to production and I refused.  He stormed out of the room before I could complete the word "No" and explain and he took it to management and I was called out on the carpet because it was supposedly a showstopper holding up a project.  What did the SQL CLR do that was so critical.  It calculated a MODULO.  You know... the one that uses the "%" operator in T-SQL. <headdesk><major facepalm>

    That's what I'm talking about.

    But that doesn't require 'knowing T-SQL very well'. You're talking there about knowing the basics of the language.
    If you use R because you don't know the first thing about T-SQL, then you're not a T-SQL developer using R for something they don't know is in T-SQL, you're an R developer.

    And, if I may be blunt, using "developer" to refer to someone who develops predominantly/only in other languages is frankly insulting. Sure, the guy may well have had an attitude problem and should have asked if the C# was necessary before he wrote it, that doesn't mean he's not a developer.
    I work with a whole bunch of data professionals who don't know the first thing about T-SQL, or the base SQL language in general. That doesn't make them inferior.

    It was meant as a strong insult to that particular person because of his poor attitude.

    Agreed on the "very well" comment.  To be sure, I'm not talking about the "Black Arts" that a lot of us know how to do.  I'm talking about what most of us would consider to be "the basics", like how to do a 3 table join, when to use an inner join or an outer join, what many of the functions in the language do, a bit about how to write a SARGable query, and maybe even how to use APPLY

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

Viewing 15 posts - 1 through 15 (of 35 total)

You must be logged in to reply to this topic. Login to reply