Skills for Everyone in Tech

  • Comments posted to this topic are about the item Skills for Everyone in Tech

    Aunt Kathi Data Platform MVP
    Author of Expert T-SQL Window Functions
    Simple-Talk Editor

  • Darn I've always hoped the pizza - caffeinated beverage - headset corner combo would be enough :blink:
  • If knowing how to program in one language basically means that, with some syntax changes, you know how to program in every language, I wonder why so many people have such difficulty with the paradigm change required for programming in SQL.  Of course, it's the differences between what people call "procedural" languages and "declarative" languages.

    And SQL is quite different.  It varies greatly from one RDBMS engine to another, especially when you get into anything sophisticated.

    Heh... now, where's the coffee and what kind of pizza are we having today? 😀

    --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)
    Intro to Tally Tables and Functions

  • I have to disagree about the mathematics. I've heard this "need math!" creed my whole career (40 years) and it simply is not true. 

    Of course, if you're dealing with math-related programs (like statistics, plotting, mapping, 3D CAD, etc.) then you do need it. But the vast majority of applications and nearly all database work does NOT need anything beyond the most basic of algebra (and Boolean algebra). Even relational algebra isn't required for 3NF, only to derive the principles--which has already been done.

    It has been said programs are literally math and in a very special sense this is true, but the integer, finite-state math involved is as different from general, non-finite mathematics as the plant kingdom is from the animal kingdom.

    If I actually ever need to deal with higher math (say, calculus) I go find a mathematician (or more likely, Google the formulas needed).

    Finally, soft skills are important--if you're dealing with enterprise environments. There everything is political and you need basic political skills so you don't piss off somebody who then makes it their life's ambition to get you fired. In the SMBs where I've spent the majority of my career people skills beyond "don't be a jerk" aren't really needed.

    But then again, I don't really consider requirements gathering a people skill, it's more forensics, but I'm probably biased. 🙂

  • Jeff Moden - Tuesday, October 30, 2018 6:39 AM

    If knowing how to program in one language basically means that, with some syntax changes, you know how to program in every language, I wonder why so many people have such difficulty with the paradigm change required for programming in SQL.  Of course, it's the differences between what people call "procedural" languages and "declarative" languages.

    And SQL is quite different.  It varies greatly from one RDBMS engine to another, especially when you get into anything sophisticated.

    Heh... now, where's the coffee and what kind of pizza are we having today? 😀

    I think it's actually changing from linear to set-based which is more of a paradigm shift.

    Drew

    J. Drew Allen
    Business Intelligence Analyst
    Philadelphia, PA

  • I got my undergrad in math and have found about half of it very helpful in my professional career.  Discrete math is particularly helpful when working in SQL.  I am curious how many people here have needed calculus.   I had the option of studying either operations research (optimization) or statistics for my degree and I went with OR.  While it has been helpful on a few occasions, I really wish I also had the statistics background as I've run into many challenges, particularly in the areas where DBA and BI development overlap, that really require statistical proficiency.

    Anyone out there ever used calculus in their programming career?


    [font="Tahoma"]Personal blog relating fishing to database administration:[/font]

    [font="Comic Sans MS"]https://davegugg.wordpress.com[/url]/[/font]

  • drew.allen - Tuesday, October 30, 2018 7:41 AM

    Jeff Moden - Tuesday, October 30, 2018 6:39 AM

    If knowing how to program in one language basically means that, with some syntax changes, you know how to program in every language, I wonder why so many people have such difficulty with the paradigm change required for programming in SQL.  Of course, it's the differences between what people call "procedural" languages and "declarative" languages.

    And SQL is quite different.  It varies greatly from one RDBMS engine to another, especially when you get into anything sophisticated.

    Heh... now, where's the coffee and what kind of pizza are we having today? 😀

    I think it's actually changing from linear to set-based which is more of a paradigm shift.

    Drew

    Basically, those are the same differences as "procedural" and "declarative", IMHO.  A lot of people don't realize that, at its simplest, a SELECT is actually a loop or set of loops behind the scenes. 

    Whatever you wish to call it, the understanding that you have to think about what you want to do to a column rather than what you want do to a row helped me a whole lot when I was a beginner.  So much so that I carry that advice in my signature line below and have gotten feedback from some as to how it suddenly made SQL easier.  They weren't getting the "set based" concept but could easily grasp the "work on columns instead of rows" concept.

    --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)
    Intro to Tally Tables and Functions

  • Jeff Moden - Tuesday, October 30, 2018 8:01 AM

    drew.allen - Tuesday, October 30, 2018 7:41 AM

    Jeff Moden - Tuesday, October 30, 2018 6:39 AM

    If knowing how to program in one language basically means that, with some syntax changes, you know how to program in every language, I wonder why so many people have such difficulty with the paradigm change required for programming in SQL.  Of course, it's the differences between what people call "procedural" languages and "declarative" languages.

    And SQL is quite different.  It varies greatly from one RDBMS engine to another, especially when you get into anything sophisticated.

    Heh... now, where's the coffee and what kind of pizza are we having today? 😀

    I think it's actually changing from linear to set-based which is more of a paradigm shift.

    Drew

    Basically, those are the same differences as "procedural" and "declarative", IMHO.  A lot of people don't realize that, at its simplest, a SELECT is actually a loop or set of loops behind the scenes. 

    Whatever you wish to call it, the understanding that you have to think about what you want to do to a column rather than what you want do to a row helped me a whole lot when I was a beginner.  So much so that I carry that advice in my signature line below and have gotten feedback from some as to how it suddenly made SQL easier.  They weren't getting the "set based" concept but could easily grasp the "work on columns instead of rows" concept.

    I actually Googled procedural vs. declarative programming before posting, and it sounds like that is a different distinction than linear vs. set-based.  I do think that there is a high correlation between the two, but I don't think that they are necessarily the same.

    Drew

    J. Drew Allen
    Business Intelligence Analyst
    Philadelphia, PA

  • drew.allen - Tuesday, October 30, 2018 8:08 AM

    Jeff Moden - Tuesday, October 30, 2018 8:01 AM

    drew.allen - Tuesday, October 30, 2018 7:41 AM

    Jeff Moden - Tuesday, October 30, 2018 6:39 AM

    If knowing how to program in one language basically means that, with some syntax changes, you know how to program in every language, I wonder why so many people have such difficulty with the paradigm change required for programming in SQL.  Of course, it's the differences between what people call "procedural" languages and "declarative" languages.

    And SQL is quite different.  It varies greatly from one RDBMS engine to another, especially when you get into anything sophisticated.

    Heh... now, where's the coffee and what kind of pizza are we having today? 😀

    I think it's actually changing from linear to set-based which is more of a paradigm shift.

    Drew

    Basically, those are the same differences as "procedural" and "declarative", IMHO.  A lot of people don't realize that, at its simplest, a SELECT is actually a loop or set of loops behind the scenes. 

    Whatever you wish to call it, the understanding that you have to think about what you want to do to a column rather than what you want do to a row helped me a whole lot when I was a beginner.  So much so that I carry that advice in my signature line below and have gotten feedback from some as to how it suddenly made SQL easier.  They weren't getting the "set based" concept but could easily grasp the "work on columns instead of rows" concept.

    I actually Googled procedural vs. declarative programming before posting, and it sounds like that is a different distinction than linear vs. set-based.  I do think that there is a high correlation between the two, but I don't think that they are necessarily the same.

    Drew

    This may not be an entirely accurate description but it's what I used to get my head around the difference...
    In a procedural language, you're telling the computer what you want it to do. In a declarative language, you're telling the computer what result you want.
    The difference being, in the declarative language, algorithms, not the programmer, choose the actual process steps needed to get at the desired result.

  • david.gugg - Tuesday, October 30, 2018 7:52 AM

    Anyone out there ever used calculus in their programming career?

    Nope, not in my 27+ years of programming.

    -------------------------------------------------------------
    we travel not to escape life but for life not to escape us
    Don't fear failure, fear regret.

  • drew.allen - Tuesday, October 30, 2018 8:08 AM

    Jeff Moden - Tuesday, October 30, 2018 8:01 AM

    drew.allen - Tuesday, October 30, 2018 7:41 AM

    Jeff Moden - Tuesday, October 30, 2018 6:39 AM

    If knowing how to program in one language basically means that, with some syntax changes, you know how to program in every language, I wonder why so many people have such difficulty with the paradigm change required for programming in SQL.  Of course, it's the differences between what people call "procedural" languages and "declarative" languages.

    And SQL is quite different.  It varies greatly from one RDBMS engine to another, especially when you get into anything sophisticated.

    Heh... now, where's the coffee and what kind of pizza are we having today? 😀

    I think it's actually changing from linear to set-based which is more of a paradigm shift.

    Drew

    Basically, those are the same differences as "procedural" and "declarative", IMHO.  A lot of people don't realize that, at its simplest, a SELECT is actually a loop or set of loops behind the scenes. 

    Whatever you wish to call it, the understanding that you have to think about what you want to do to a column rather than what you want do to a row helped me a whole lot when I was a beginner.  So much so that I carry that advice in my signature line below and have gotten feedback from some as to how it suddenly made SQL easier.  They weren't getting the "set based" concept but could easily grasp the "work on columns instead of rows" concept.

    I actually Googled procedural vs. declarative programming before posting, and it sounds like that is a different distinction than linear vs. set-based.  I do think that there is a high correlation between the two, but I don't think that they are necessarily the same.

    Drew

    Guess I'll have to disagree a bit here.  You can actually do "linear set based programming".  It's a key to "Divide'n'Conquer" methods.

    --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)
    Intro to Tally Tables and Functions

  • roger.plowman - Tuesday, October 30, 2018 6:58 AM

    I have to disagree about the mathematics. I've heard this "need math!" creed my whole career (40 years) and it simply is not true. 

    Of course, if you're dealing with math-related programs (like statistics, plotting, mapping, 3D CAD, etc.) then you do need it. But the vast majority of applications and nearly all database work does NOT need anything beyond the most basic of algebra (and Boolean algebra). Even relational algebra isn't required for 3NF, only to derive the principles--which has already been done.

    It has been said programs are literally math and in a very special sense this is true, but the integer, finite-state math involved is as different from general, non-finite mathematics as the plant kingdom is from the animal kingdom.

    If I actually ever need to deal with higher math (say, calculus) I go find a mathematician (or more likely, Google the formulas needed).

    Finally, soft skills are important--if you're dealing with enterprise environments. There everything is political and you need basic political skills so you don't piss off somebody who then makes it their life's ambition to get you fired. In the SMBs where I've spent the majority of my career people skills beyond "don't be a jerk" aren't really needed.

    But then again, I don't really consider requirements gathering a people skill, it's more forensics, but I'm probably biased. 🙂

    I do agree with knowing mathematics is handy. Not so much how to do integration by parts or partial differential equations. But how to think logically. Mathematics teaches you that. Although, I'd point out that other degrees in college do, too, such as a degree in philosophy. (For those few who get degrees in philosophy.)

    Anyway, I've gotten a degree in mathematics and it's what helped me get into this field in the first place.

    Kindest Regards, Rod Connect with me on LinkedIn.

  • david.gugg - Tuesday, October 30, 2018 7:52 AM

    I got my undergrad in math and have found about half of it very helpful in my professional career.  Discrete math is particularly helpful when working in SQL.  I am curious how many people here have needed calculus.   I had the option of studying either operations research (optimization) or statistics for my degree and I went with OR.  While it has been helpful on a few occasions, I really wish I also had the statistics background as I've run into many challenges, particularly in the areas where DBA and BI development overlap, that really require statistical proficiency.

    Anyone out there ever used calculus in their programming career?

    Oh so true. Haven't touched an integral in decades, the only trig I've used is on my home projects.

    ...

    -- FORTRAN manual for Xerox Computers --

  • david.gugg - Tuesday, October 30, 2018 7:52 AM

    I got my undergrad in math and have found about half of it very helpful in my professional career.  Discrete math is particularly helpful when working in SQL.  I am curious how many people here have needed calculus.   I had the option of studying either operations research (optimization) or statistics for my degree and I went with OR.  While it has been helpful on a few occasions, I really wish I also had the statistics background as I've run into many challenges, particularly in the areas where DBA and BI development overlap, that really require statistical proficiency.

    Anyone out there ever used calculus in their programming career?

    Hmm... have I ever used calculus as in written a differential or integral equation to solve something since college, no I have not.  But I have gotten quite a lot of use out of some of the various lessons from computer science that are based on applied calculus.

  • jay-h - Tuesday, October 30, 2018 1:43 PM

    david.gugg - Tuesday, October 30, 2018 7:52 AM

    I got my undergrad in math and have found about half of it very helpful in my professional career.  Discrete math is particularly helpful when working in SQL.  I am curious how many people here have needed calculus.   I had the option of studying either operations research (optimization) or statistics for my degree and I went with OR.  While it has been helpful on a few occasions, I really wish I also had the statistics background as I've run into many challenges, particularly in the areas where DBA and BI development overlap, that really require statistical proficiency.

    Anyone out there ever used calculus in their programming career?

    Oh so true. Haven't touched an integral in decades, the only trig I've used is on my home projects.

    Same here. I've not used any Calculus at all. Nor differential equations (partial or ordinary). Like Jay-h said, I've used trig, but for home projects. Nice to know, though. Statistics and probability has been helpful in my career.

    Kindest Regards, Rod Connect with me on LinkedIn.

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

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