April 14, 2018 at 9:09 pm
Comments posted to this topic are about the item Desperation on the Forums
"The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
- Theodore Roosevelt
Author of:
SQL Server Execution Plans
SQL Server Query Performance Tuning
April 15, 2018 at 7:18 am
When I was a kid, I needed money to be able to buy the things I wanted. I found out there was some pretty easy money to be had by mowing lawns and racking leaves for my neighbors. I did my best but, oh my, the things I didn't know especially at first. I originally didn't understand things like making a plan as to the path I was going to take to mow the lawn to save on time but still get the job done. I was mortified the first time I blew a shedload of grass into the bark-mulched flower beds because I knew that I'd made a mess and was going to have to spend some rather tedious time cleaning it up. I learned that you do have to do some maintenance like change the oil more often and sharpen the blade. I also learned to not let a neighbor's grass get too high or it would take 10 times longer to mow it and I'd have to rake up the clippings because I didn't know what a bagger was and when I did find out what a bagger was, realized how quickly it can fill up. I manually trimmed all the edges because I didn't know of gas powered tools that would make it go so much faster and that I should do the trimming first so the lawn mower would grind them up. I also learned the hard way that you need to rake downwind. It was all because I was into quick money and thought I knew enough about yard maintenance to get the job done.
It took me a while to learn that I didn't know a lot of what I didn't know.
A lot of people have gotten into IT simply because they need some quick money and they think it's easy. Some do it because they're damned lazy and should be unceremoniously drummed out of the business. Like me mowing lawns when I was a kid, some just don't realize what they've gotten themselves into and either don't know how to find out more or they're too lazy/arrogant to do so. Others will realize that they don't know enough and will rise to the occasion to learn more through forums, etc. Others expect people on forums to do their jobs for them (heh... just realize those words rhyme) Because a whole lot of people haven't been taught how to communicate properly through the written word or they type with their thumbs (seriously... learn to type if you're in IT), it's frequently difficult to tell what kind of person you're actually dealing with. It's really frustrating when they know so little that when you tell them that they "have to sharpen the blade", they ask, "what's a blade"? I can understand showing them how to find and sharpen the blade once but then many come back with the same question a month later because they really don't give a damn about learning and just want to make the money. They think the job is an 8 hour a day job and want to be spoon fed on the job.
And then there are those that finally realize that they're in a box and what a box is and rise to the occasion to teach themselves more... sometimes enough to start helping others to do things right (you can't actually burn the leaves while they're on the lawn to try to save on raking time).
It's frequently a tough job trying to weed out the fakers and posers from people that simply don't know. Add in both a language and a jargon barrier and it can be even more difficult. I do find that people that don't actually want to spend any time learning outnumber those that do by a very wide margin. A part of the problem with this industry is that companies are desperate to have their lawns mowed and don't actually know how to hire the right persons to do that or want to get it done cheap.
It's worth trying to help, though. The folks that are trying to earn a living by having someone else do their jobs for them on the forums will make it pretty obvious in just several posts and, although you feel bad for the companies that they work for, you can simply ignore their posts. The others will also make it pretty obvious that they're actually trying and if you can help them not only with their immediate problem but also help them learn how to help themselves in the future, then it's all worth it. You're not only helping them, but you're helping the companies that they work for and all of the people that depend on those companies to erg out a living.
And, plus 10,000 to you, Grant, for writing this article because it's oh-so-true.
--Jeff Moden
Change is inevitable... Change for the better is not.
April 15, 2018 at 11:59 pm
Too true. Great post.
It's always mystified me how unqualified your general coder/DBA/IT Person is. As someone who has been through university and has an engineering degree and does freelance web-based database application work, I'm often competing against people who just decided they liked building web sites and decided they were a coder.
This is a continuum, but with Freelancer and similar sites, you get the feeling that a significant number of the coders on there get the contract and then desperately google what they have to do to fulfill it.
You'd never get to build a bridge if you weren't a qualified engineer with a lot of experience. But I guess the low barrier of entry for web based services applies also implicitly to the jobs behind them. It's an open market, and nearly anything goes.
April 16, 2018 at 1:53 am
ben.mcintyre - Sunday, April 15, 2018 11:59 PMYou'd never get to build a bridge if you weren't a qualified engineer with a lot of experience. But I guess the low barrier of entry for web based services applies also implicitly to the jobs behind them. It's an open market, and nearly anything goes.
Look at the design of msdb.
Look at the queries SQL Agent fires against this database.
There is no surprise they needed to limit the length of history log for the jobs.
It used to be 5k records for all jobs by default. Nowadays, with much more powerful servers with SSD's and massive amounts of memory you can afford to have longer history tracks. If you have no better use for the resources of the server.
Look at SharePoint. The database simply is not allowed to be in full recovery mode. Otherwise it will simply kill any server within several hours.
I cannot explain how horrified I was by the quality of SQL solutions used in one of the later MS products I happened to come across.
How low must have been the entry barrier for those software engineers (if I may use this term) who designed those products?
And it's Microsoft, the vendor of SQL Server, the software house which defines the standards, sets the benchmarks for the community.
What to ask from developers who work for small software companies from the third world who learned from those "masters"?
_____________
Code for TallyGenerator
April 16, 2018 at 2:19 am
Good point.
A major issue with software quality is the fact that you can't 'see' it unless you've got serious tech skills.
I often use the analogy when explaining to non technical people that if you paid to get an electrical switchboard wired up, and it ended up with all kinds of crazy wiring going everywhere without apparent pattern, you'd just refuse to pay the contractor until they did it right. However in software, it can look exactly like that, but no-one can 'see' it, and as long as the end user pages at least appear to work, no-one is any the wiser as to what horrors lie underneath.
Interestingly I think an essential element of well designed software is that it *is* structured quite like a well designed switchboard - there are cables racks, everything is neatly patched into major and minor runs.
It would be really interesting to work on code structure visualisations as a quality analysis tool. However I suppose it would still be easy to write very neatly architected code that scaled horribly, etc, etc.
We're already way OT <grin>. And I love how the Asia Pacific gets to discuss everything hours before the Americas 😉
April 16, 2018 at 2:53 am
If you think it's expensive to hire a professional to do the job, wait until you hire an amateur. Red Adair
There is unfortunately nothing from our side to do other than trying to keep helping.
The person that wants to learn will learn. That person is the one learning how to build a fishing pole to get a fish. They are the ones providing the positive feedback to helpers.
The majority however just wants to be handed a fish. And then come back the next day to ask for another. After three days in a row they are then "entitled" to "their" fish.
April 16, 2018 at 3:30 am
Along with the NOLOCK question I always see, the other biggest thing that terrifies me is the amount of questions I see (especially on SO), that are completely open to SQL injection. I see far too many questions, with a SQL statement like:
CREATE PROC sp_GetData @TableName varchar(4000) AS
DECLARE @sql nvarchar(MAX);
SET @sql = 'SELECT * FROM ' + @TableName
EXEC @sql
GO
Then you have the "question" (inverted commas, as it's not a question, it's a statement): "I have this SQL, it doesn't work"
The accepted solution will then be someone saying
You need to put @sql in brackets:
EXEC (@SQL)
Meanwhile, there are loads of comments about how much of a bad idea that query is, and another answer with 5+ upvotes that uses QUOTENAME and checks the tables existence via the sys objects.It terrifies me that these people simply accept the first answer that "works", and don't bother to actually read the other solutions and comments they are given. You also have a comment or 2 that mention the use of the "sp_" prefix is bad, and citing a blog on the topic (probably Aaron Bertrand's).
This, Grant, probably tells you why you can't reach this people as well though. You did touch on it, about it needing more than one button, but the fact of the matter is these people don't want to learn; they have no interest in doing so. So, why should they bother reading a more complex and complete solution, when that answer means they might learn something! How foolish! They'll have probably moved on by the time the injection attack happens, so it won't be their problem anyway. /facepalm. The person that gcve the above answer probably isn't too dissimilar to the person that posted the question either, as had they cared they would have edited their post after others made comments about the injection issue and downvoted their answer.
This, however, does make me so grateful when you see a well posted question. Someone who takes the time to explain their goals, show their research and what they've tried. Those questions are a joy to answer, and you I find I can learn from them too. Even if the attempt is inherently wrong, you can see how people might have come to the conclusion they did and as we advance through our career, and advance our skills, we forget what it's like to be "new" at something; thus it helps us teach a new generation (well at least those are willing).
Thom~
Excuse my typos and sometimes awful grammar. My fingers work faster than my brain does.
Larnu.uk
April 16, 2018 at 5:41 am
These are all good points. What bugs me most of all is when people here go out of their way to be helpful, giving their time and expertise freely, and don't even get a thank you. There seems to be a link between a high level of desperation and being less likely to say thank you, too.
April 16, 2018 at 6:37 am
Grant, you are right.
I have worked with people who are in over their heads all during my career. And, as you so eloquently stated, I was, and in some respects still am, one of those very green IT people. I think that might be the key, a small amount of humility mixed with curiosity, because flat out ignorance is going to get you in a lot of trouble when you're in IT.
Jeff Moden is right though. You have to take the time to figure out what you don't know about what you don't know. I still find out daily that I have tons to learn when it comes to being an IT generalist and part-time DBA. To that end, I am thankful for forums like SQL Server Central and Quora and Stack Trace. Not because I can just find the answer to what I am looking for, but because someone created the community for us all to post our questions and gain some knowledge. Sure, I like easy solutions, but I don't go into my searches expecting one, mostly because the stuff that I am working on now is pretty advanced. More often than not I find others who have run into a similar error or had a problem that was like what I'm dealing with and I find a bunch of solutions to NOT implement.
I marvel every day when I log into the Internet and complete a search and get millions of results in mere seconds. True, not all of them even close to what I was looking for, but still it is a miracle of technology. All of the things that I had to find in books that I had to try and find at the bookstore before there was Amazon. Massive technical tomes that I would spend hours reading through to learn my craft (sharpen the blade, Jeff Moden). I like the Internet search much better if I am being honest with myself, but I still find myself reading 5 or 10 of the sites that my searches yield before deciding if I was even looking at the right thing in the first place. Because I still don't know what I don't know. 🙂
Advice to those who are looking for an instant answer to IT questions: Be sure to spend some time really reading what someone took the time to post out in the blogosphere or forums, you may just learn something other than what you intended to fix in the firs place.
Regards, Irish
April 16, 2018 at 6:37 am
Sergiy - Monday, April 16, 2018 1:53 AMLook at SharePoint. The database simply is not allowed to be in full recovery mode. Otherwise it will simply kill any server within several hours.
I cannot explain how horrified I was by the quality of SQL solutions used in one of the later MS products I happened to come across.
Did you look in the version of Sharepoint that had all the dev comments disparaging DBAs embedded in the stored procedures? If you think Sharepoint was bad you should have seen MS SiteServer (with the invisible H). You couldn't patch SQL Server or any of a hundred and one things that were and still are standard DBA practice without the wretched thing blowing up irrevocably.
I think Jeff's analogy is harsh but fair. There's also the joke about someone asking for help after copy/pasting from StackOverflow. "Did you paste the question or the answer"?
A lot of effort goes into the SQL Server community on this site, meetup groups, SQL Saturday SQL Server User Groups, SQL Bits, MVP blogs, MVP Twitter feeds, independent blogs/web sites. These are all well attended/avidly read. At what point do you say enough is enough.
I've mentored a few graduates and they are voracious in their learning habits. Frankly I feel I've learned more from them than I could possibly teach.
For the people who Grant describes are they so panicked that they cannot process what they are being told? Are they fundamentally unsuited to the role? You can't really post anything in a forum that says "Have you considered an alternative career?" without appearing bad either yourself or making the forum look bad. Those sorts of conversations can only really take place one-to-one.
April 16, 2018 at 7:21 am
Jeff Moden - Sunday, April 15, 2018 7:18 AMA part of the problem with this industry is that companies are desperate to have their lawns mowed and don't actually know how to hire the right persons to do that or want to get it done cheap.
Everything you wrote is great, but this stood out the most. I do think the desperation starts with the organizations that need this work done.
"The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
- Theodore Roosevelt
Author of:
SQL Server Execution Plans
SQL Server Query Performance Tuning
April 16, 2018 at 7:24 am
ben.mcintyre - Sunday, April 15, 2018 11:59 PMToo true. Great post.
It's always mystified me how unqualified your general coder/DBA/IT Person is. As someone who has been through university and has an engineering degree and does freelance web-based database application work, I'm often competing against people who just decided they liked building web sites and decided they were a coder.
This is a continuum, but with Freelancer and similar sites, you get the feeling that a significant number of the coders on there get the contract and then desperately google what they have to do to fulfill it.
You'd never get to build a bridge if you weren't a qualified engineer with a lot of experience. But I guess the low barrier of entry for web based services applies also implicitly to the jobs behind them. It's an open market, and nearly anything goes.
Well.... coming at this as someone who started their career as a DBA and Developer by reading a book over the weekend before starting a job on Monday, I resemble this remark.
I can't get worked up about how someone got in. I can get worked up about how they continue. Ignorance should be a temporary state, not a permanent one.
"The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
- Theodore Roosevelt
Author of:
SQL Server Execution Plans
SQL Server Query Performance Tuning
April 16, 2018 at 7:25 am
Sergiy - Monday, April 16, 2018 1:53 AMLook at the design of msdb.
Look at the queries SQL Agent fires against this database.
There is no surprise they needed to limit the length of history log for the jobs.
It used to be 5k records for all jobs by default. Nowadays, with much more powerful servers with SSD's and massive amounts of memory you can afford to have longer history tracks. If you have no better use for the resources of the server.
Look at SharePoint. The database simply is not allowed to be in full recovery mode. Otherwise it will simply kill any server within several hours.
I cannot explain how horrified I was by the quality of SQL solutions used in one of the later MS products I happened to come across.How low must have been the entry barrier for those software engineers (if I may use this term) who designed those products?
And it's Microsoft, the vendor of SQL Server, the software house which defines the standards, sets the benchmarks for the community.
What to ask from developers who work for small software companies from the third world who learned from those "masters"?
Heck, the continued ignorance of the Sharepoint team. They publish doing things to the database, still, that are just wrong.
Sorry, pet peeve.
"The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
- Theodore Roosevelt
Author of:
SQL Server Execution Plans
SQL Server Query Performance Tuning
April 16, 2018 at 7:29 am
Thom A - Monday, April 16, 2018 3:30 AM...SQL injection...
I didn't see anything else but red after I saw this. It makes me absolutely insane that we're still dealing with this issue in CURRENT YEAR.
"The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
- Theodore Roosevelt
Author of:
SQL Server Execution Plans
SQL Server Query Performance Tuning
April 16, 2018 at 7:30 am
Beatrix Kiddo - Monday, April 16, 2018 5:41 AMThese are all good points. What bugs me most of all is when people here go out of their way to be helpful, giving their time and expertise freely, and don't even get a thank you. There seems to be a link between a high level of desperation and being less likely to say thank you, too.
Thanks for all you do. I see your answers a lot and skip the question because you're already on top of it. If no one else says it, thanks.
"The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
- Theodore Roosevelt
Author of:
SQL Server Execution Plans
SQL Server Query Performance Tuning
Viewing 15 posts - 1 through 15 (of 80 total)
You must be logged in to reply to this topic. Login to reply