October 27, 2013 at 9:37 pm
Revenant (10/25/2013)
Luis Cazares (10/25/2013)
I'm losing faith in humanity here as I've been interviewing some candidates for BI developers at my job. The last one claiming to have 8 years of experience as .NET developer (using SQL Server) and knowing 75% of SQL Server couldn't make a simple query on his head (SELECT * FROM Product WHERE ProductName != 'Milk') saying he would use DISTINCT to filter values from a query and he used just jobs to import data from a flat file (no bcp, bulk insert or SSIS).I wonder what's going on in the world if people claim all that experience without knowing the simple basics.
I have been there before. I developed a simple trick: I ask the candidate how they rate their skills on a scale of 1 to 10. If the candidate has less than 12 years on SQL Server and rates himself - much less frequently herself - 8 or higher, the interview effectively ends right there.
I think the more actual experience you have, the lower you tend to rate yourself. I've got around 10 years experience and this just came up in my interview process. I rated myself a "7 or 7 and a half", mostly because of all of you. When I come up against that question, I'm not rating myself against all there is to know about SQL Server, I'm rating myself against other people I've seen in the field. Before meeting all of you, I used to rate myself higher. You've shown me just how much I don't know, but should.
--------------------------------------
When you encounter a problem, if the solution isn't readily evident go back to the start and check your assumptions.
--------------------------------------
It’s unpleasantly like being drunk.
What’s so unpleasant about being drunk?
You ask a glass of water. -- Douglas Adams
October 27, 2013 at 10:41 pm
Stefan - you are likely right on the money, see the Dunning-Kruger effect. Note the statement "Actual competence may weaken self-confidence, as competent individuals may falsely assume that others have an equivalent understanding."
Steve.
October 28, 2013 at 2:09 am
I find that the more I have learned there is also a lot more to learn. As you gain experience, for instance, in tuning SQL code you start to run into situations where what you have learned does not always apply when tuning code. How you tune code can be greatly affected by the design decisions (or lack there of) by those that came before you. And even though you may like to make changes to the design you may find yourself stuck with what you have as the processes needed to effect a change may be cumbersome and require changes beyond the database itself.
It has been said there are three piles of knowledge: The things you know you know, The things you know that you don't know, and The things you don't know you don't know. With more experience, you usually find that as you move things from the second pile to the first, you usually find you are adding more to the second from the third.
I know I am good at what I do. I also know there are others just as good and better that I can learn from. There are even others less experienced that may still be able to teach me something.
October 28, 2013 at 6:14 am
I like the analogy of the piles of knowledge. I'm in a similar situation where I consider myself good at what I do (Pile A), but I always want to learn more of what I don't know (Pile B). I find that the teaching can come from anyone. Usually, there are several good approaches to solving a problem. With experience, you start picking the better ones sooner rather than later. The proven approaches you've learned can help you when encounter a new type of problem (Pile C).
Experience is a great teacher and I hope to learn something from all problems I encounter.
October 28, 2013 at 7:50 am
Lynn Pettis (10/28/2013)
It has been said there are three piles of knowledge: The things you know you know, The things you know that you don't know, and The things you don't know you don't know. With more experience, you usually find that as you move things from the second pile to the first, you usually find you are adding more to the second from the third.
I prefer the theory that knowledge (and its absence) comes in 5 piles: (1) the things you know that you don't know and don't want to know, (2) the other things you know that you don't know, (3) the things you don't know that you don't know, (4) the things that know but don't know that you know them, and (5) the things that you know that you know. The more I read the low quality British tabloids (something I only do when I can't get to sleep on a train or plain and someone has left one of them lying around and I've finshed reading any available decent newspapers) the more I realise that the first pile is (at least for me) much larger than I used to think it was. The most useful pile is pile 4, because when using that sort of knowledge you don't have to think particularly hard or apply any great effort. Movements from pile 3 to pile 2 and from pile 2 to pile 5 are fairly common, but there is some movement from pile 5 to pile 3 and there is small trickle from pile 5 to pile 1 (eg knowledge of the autocode for a machine last manufactured about 1958 and already obsolete when I had to learn it) and an even smaller one from pile 5 to pile 4.
Tom
October 28, 2013 at 8:28 am
I'm with Lynn.
I know what I know and I know people (Paul Randal, Paul White, Jeff and Gail etc) who know a heck of a lot more than me!
I've been asked how good I am at SSIS - my answer has been I've used to solve problems, and I've known more than the rest of the team, but I know a lot of people who are experts with it.
I the like the idea that the more you know and the more other people you know you end up rating yourself lower because you peer group has got bigger and more knowledgeable so you adjust your personal rating.
We just filled a perm role in our team, apparently the guy came over as expert in the interviews. I ended up working opposite him. Nice guy seemed to know stuff but also lacked a lot of knowledge. He quit one month in, last Friday, he had decided he was out of his depth. :-O The only thing I can think was last two roles he was top of the pile and by default "The expert", moves to a job where he's no longer at the top and rather than use it to his advantage (learning + experience) has walked. That's the third person the position has been offered to, 2 didn't even make to first day! I would say does anyone want a perm role, but there is major reorganisation going on, and I'm not sure the permanent roles are very safe at the moment. Hopefully we'll know Jan / Feb next year, so I doubt they will re-advertise this side of Christmas.
Rodders...
October 28, 2013 at 8:34 am
Apparently the current top database guy at the company I'm joining is ecstatic about my joining them. From what I heard from one of the other devs, he has a whole bunch of questions he's planning to drop on my desk first day.
It's a good thing, if he resented someone coming in above him, could make things really unpleasant.
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
October 28, 2013 at 8:43 am
rodjkidd (10/28/2013)
I'm with Lynn.I know what I know and I know people (Paul Randal, Paul White, Jeff and Gail etc) who know a heck of a lot more than me!
I've been asked how good I am at SSIS - my answer has been I've used to solve problems, and I've known more than the rest of the team, but I know a lot of people who are experts with it.
I the like the idea that the more you know and the more other people you know you end up rating yourself lower because you peer group has got bigger and more knowledgeable so you adjust your personal rating.
We just filled a perm role in our team, apparently the guy came over as expert in the interviews. I ended up working opposite him. Nice guy seemed to know stuff but also lacked a lot of knowledge. He quit one month in, last Friday, he had decided he was out of his depth. :-O The only thing I can think was last two roles he was top of the pile and by default "The expert", moves to a job where he's no longer at the top and rather than use it to his advantage (learning + experience) has walked. That's the third person the position has been offered to, 2 didn't even make to first day! I would say does anyone want a perm role, but there is major reorganisation going on, and I'm not sure the permanent roles are very safe at the moment. Hopefully we'll know Jan / Feb next year, so I doubt they will re-advertise this side of Christmas.
Rodders...
Maybe your guy was one of those "expert beginners" we've heard about.
Jason Wolfkill
October 28, 2013 at 8:59 am
GilaMonster (10/28/2013)
Apparently the current top database guy at the company I'm joining is ecstatic about my joining them. From what I heard from one of the other devs, he has a whole bunch of questions he's planning to drop on my desk first day.It's a good thing, if he resented someone coming in above him, could make things really unpleasant.
Personally, I really enjoy working with someone who knows more than I do in a specific area. I learn the most from them. That's also why I read so much that's posted here.
October 28, 2013 at 9:08 am
wolfkillj (10/28/2013)
rodjkidd (10/28/2013)
I'm with Lynn.I know what I know and I know people (Paul Randal, Paul White, Jeff and Gail etc) who know a heck of a lot more than me!
I've been asked how good I am at SSIS - my answer has been I've used to solve problems, and I've known more than the rest of the team, but I know a lot of people who are experts with it.
I the like the idea that the more you know and the more other people you know you end up rating yourself lower because you peer group has got bigger and more knowledgeable so you adjust your personal rating.
We just filled a perm role in our team, apparently the guy came over as expert in the interviews. I ended up working opposite him. Nice guy seemed to know stuff but also lacked a lot of knowledge. He quit one month in, last Friday, he had decided he was out of his depth. :-O The only thing I can think was last two roles he was top of the pile and by default "The expert", moves to a job where he's no longer at the top and rather than use it to his advantage (learning + experience) has walked. That's the third person the position has been offered to, 2 didn't even make to first day! I would say does anyone want a perm role, but there is major reorganisation going on, and I'm not sure the permanent roles are very safe at the moment. Hopefully we'll know Jan / Feb next year, so I doubt they will re-advertise this side of Christmas.
Rodders...
Maybe your guy was one of those "expert beginners" we've heard about.
Thanks for sharing that link. It is an interesting article. I have been around some of those people. Some of them have been able to get past being an expert beginner, others have had to take their expert noviceness on the road.
_______________________________________________________________
Need help? Help us help you.
Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.
Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.
Cross Tabs and Pivots, Part 1 – Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/
October 28, 2013 at 9:10 am
L' Eomot Inversé (10/26/2013)
Jeff Moden (10/26/2013)
L' Eomot Inversé (10/24/2013)
wolfkillj (10/23/2013)
I've published my first technical blog post. I'd appreciate any feedback from this group on both the technical aspects and the writing. Thanks, everyone!Nice article. I liked seeing the use of STR for conversion as one option for solving the problems. Most people who write about approximate muneric problems appear to assume that the problem is rounding errors in the floating point arithmetic rather than conversion errors and representation errors, but you have spotted that the thing that needed addressing to fix these examples was conversion error (because convert and cast and implicity conversion can all cause errors by doing too much rounding and sometimes by rounding incorrectly, but STR doesn't because you can specify the precision wanted).
Until we get modern floating point in SQL, it will be sensible to use exact numerics for latitudes and longitudes; and even when we do we may still find that we have to use STR to avoid conversion errors if we use approximate numerics.
STR is pretty bad for performance and can produce some really unexpected rounding errors even with smaller numbers. Please see the following article for some of what I'm talking about.
http://www.sqlservercentral.com/articles/T-SQL/71565/
My recommendation is to forget that STR even exists.
Certainly STR causes problems when using it requires an implicit conversion from an exact numeric to an approximate numeric, because that conversion can introduce representation errors. But if one is starting from floating point that doesn't happen, because no implicit conversion is needed.
I guess I should go and try to discover whether a cast to decimal(38,18) followed followed by rounding to decimal(p,x) , where p and x are the required precision and scale for the output format, and then cast to varchar(p) has worse performance than just calling str when the starting point is float(53) but I take the view that the cost shown by the code example at the end of your spackle note on STR is largely caused by the implicit conversion from int to float which wouldn't be there if the starting point were a float, and when starting from float there isn't that performance penalty.
An interesting point that the wolfkillj article was making was that implicit conversion from float to varchar does the wrong thing and introduces errors that are not introduced by STR, and my point was that it good for an article to notice that because most authors are too busy believing that float rounding is worse than exact numeric rounding, which is the opposite of the truth: the rules for calculating the precision and scale of the result of an arithmetic operation on decimal values ensure that any long chain of calculation must include frequent precision-and-scale-reduction casts which introduce vastly greater rounding error than would an equivalent chain of calculation using FLOAT(53) throughout, which wouldn't need those casts.
That doesn't mean that I don't think STR should be avoided in every case where the starting point is not an approximate numeric: it certainly should, no-one would want to suffer representation errors arising from a pointless implicit conversion to float. But it shouldn't be forgtten altogether - if one has approximate numeric data that needs to be reported STR is a useful tool. Of course creating cases where STR is useful by using approximate numerics where they are not appropriate would be stupid - and generally they are appropriate only where long chains of calculation will happen or, sometimes, where the input is known to be approximate values, not exact ones. Approximate numerics as we currently have them are, as wolfkillj's blog entry pointed out, not a good way of representing lattitude and longitude if one wants to calculate the distance between two points. Another extremely good point made by the blog entry is that a believable wrong answer is worse than an unbelievable wrong answer.
Of course the whole problem should go away as soon as we get the latest floating point standard implemented in SQL, along with the conversions that it needs: either an improvement to STR to avoid conversion to the wrong sort of FLOAT or an enhancement to CONVERT to allow scale and precision to be specified for VARCHAR output when the input type isn't the wrong sort of FLOAT; this is because the one of the new FLOAT types suffers from representation errors only for values for which exact numerics have exactly the same errors. Maybe that kind of FLOAT should be classed as an exact numeric - but I suspect that will not happen. Actually I suspect that getting the latest floating point standard into SQL Server also won't happen, at least not any time soon.
I took the code from Jeff's article and modified it to operate on a temp table of 1,000,000 float values (which I populated by inserting the first 1,000,000 integers from my tally table since IDENTITY() doesn't work on a float column) . Here are the results:
(1000000 row(s) affected)
========== Cast, Concatenate, and Size ==========
SQL Server Execution Times:
CPU time = 983 ms, elapsed time = 984 ms.
========== The STR() Method is SLOWER ==========
SQL Server Execution Times:
CPU time = 842 ms, elapsed time = 839 ms.
I haven't had time to analyze these results or examine the causes yet (late for a meeting as it is). I did notice that CASTing the float value 1,000,000 to varchar(10) returned the result in scientific notation (as does CASTing 0.000001 to varchar(10), which becomes a problem when concatenating it into a string that is intended to be a valid WKT definition of a spatial object! I'll look into this a little more later . . . stay tuned!
Jason Wolfkill
October 28, 2013 at 9:13 am
Sean Lange (10/28/2013)
wolfkillj (10/28/2013)
rodjkidd (10/28/2013)
I'm with Lynn.I know what I know and I know people (Paul Randal, Paul White, Jeff and Gail etc) who know a heck of a lot more than me!
I've been asked how good I am at SSIS - my answer has been I've used to solve problems, and I've known more than the rest of the team, but I know a lot of people who are experts with it.
I the like the idea that the more you know and the more other people you know you end up rating yourself lower because you peer group has got bigger and more knowledgeable so you adjust your personal rating.
We just filled a perm role in our team, apparently the guy came over as expert in the interviews. I ended up working opposite him. Nice guy seemed to know stuff but also lacked a lot of knowledge. He quit one month in, last Friday, he had decided he was out of his depth. :-O The only thing I can think was last two roles he was top of the pile and by default "The expert", moves to a job where he's no longer at the top and rather than use it to his advantage (learning + experience) has walked. That's the third person the position has been offered to, 2 didn't even make to first day! I would say does anyone want a perm role, but there is major reorganisation going on, and I'm not sure the permanent roles are very safe at the moment. Hopefully we'll know Jan / Feb next year, so I doubt they will re-advertise this side of Christmas.
Rodders...
Maybe your guy was one of those "expert beginners" we've heard about.
Thanks for sharing that link. It is an interesting article. I have been around some of those people. Some of them have been able to get past being an expert beginner, others have had to take their expert noviceness on the road.
Just for the record, I didn't find that link on my own. I definitely read about it elsewhere. I think Steve Jones may have discussed it in the daily newsletter a few weeks back in a piece about stagnation and rot in development teams, IIRC.
Jason Wolfkill
October 28, 2013 at 9:49 am
Revenant (10/25/2013)
Luis Cazares (10/25/2013)
I'm losing faith in humanity here as I've been interviewing some candidates for BI developers at my job. The last one claiming to have 8 years of experience as .NET developer (using SQL Server) and knowing 75% of SQL Server couldn't make a simple query on his head (SELECT * FROM Product WHERE ProductName != 'Milk') saying he would use DISTINCT to filter values from a query and he used just jobs to import data from a flat file (no bcp, bulk insert or SSIS).I wonder what's going on in the world if people claim all that experience without knowing the simple basics.
I have been there before. I developed a simple trick: I ask the candidate how they rate their skills on a scale of 1 to 10. If the candidate has less than 12 years on SQL Server and rates himself - much less frequently herself - 8 or higher, the interview effectively ends right there.
That's a no-win for the candidate. I was asked to rate myself once. I rated myself a 9 on the technology. The interviewer said that's impossible; no one can be that high. The next interview I was asked to rate myself on the same technology I said 6. The interviewer said it's too low; that I have a low opinion of myself. So, now, when I'm asked to rate myself, I relate those two stories and ask what number they're looking for.
What is the right number? I have settled on 7 to 8. Most interviewers want to hear that.
Tom
October 28, 2013 at 9:56 am
OCTom (10/28/2013)
That's a no-win for the candidate. I was asked to rate myself once. I rated myself a 9 on the technology. The interviewer said that's impossible; no one can be that high.
If 9/10 is impossible, then that's not a scale out of 10, it's a scale out of 8.
I say 9/10 on the core database engine (not all the extra fluff that SQL includes). Mostly because if I don't know immediately how to do something I know at least the basic requirements and exactly where to look for the details.
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
October 28, 2013 at 10:04 am
GilaMonster (10/28/2013)
OCTom (10/28/2013)
That's a no-win for the candidate. I was asked to rate myself once. I rated myself a 9 on the technology. The interviewer said that's impossible; no one can be that high.If 9/10 is impossible, then that's not a scale out of 10, it's a scale out of 8.
I say 9/10 on the core database engine (not all the extra fluff that SQL includes). Mostly because if I don't know immediately how to do something I know at least the basic requirements and exactly where to look for the details.
Guys who work on that technology (building 35) usually rate themselves 8 out of 10.
Viewing 15 posts - 41,911 through 41,925 (of 66,712 total)
You must be logged in to reply to this topic. Login to reply