- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Maybe he actually doesn't know? It takes some skill to be able to assess skill, after all. That's the findings of an excellent article: http://www.apa.org/journals/features/psp7761121.pdf#search=%22unskilled%20and%20unaware%22
Regarding protected and private: you don't need to use them if you instead declare abstract classes in your headers, and factory functions, and then define the implementation class in your .cpp file. Because everyone talks to you through the abstract interface, no worry about anyone getting their grubby mitts on your data.
"protected" is the worse, because it's ONLY useful when you do implementation inheritance, which is more often than not Dangerous and Wrong. (Yes, there are cases when it isn't -- but those are not the majority)
Admin
Nah, he's confused by a wrench - must be a college professor.
Admin
Maybe it's because you don't have any friends willing to twiddle your private parts?
:>)
As someone already mentioned, it's needed if you're going to override the << or >> operators for iostream and need access to things that should stay private. There are other cases where you might have tightly coupled classes that need access to details that you don't want to make generally public. In that case you're using it to maintain the abstraction in the general case, but poking a tiny hole (documented in the classes declaration) for practical reasons.
Admin
ummm, protected is kind of fundamental, without it the only way to expose behaviour or *structure intended soley for a derrived class would require you to make those members public, or friend which would violate encapsulation.
*In our coding standards we are not even allowed to expose strucure to derrived classes, we have to create protected operators.
Admin
I agree, though in general, I would be beaten with a big stick for ever exposing internal strucutre as friend or protected, on the other hand protected operators / methods / accessors are fine. Personally, I allways try and restric the scope of every member of ever class as much as possible, and keep the public interface to a component as simple and litter free as possible.
Admin
Totally agree! It was the stupid company that is the WTF. They obviously have no idea how to conduct a technical interview.
Technical interview? Spell Java? You're hired!!
Admin
It's not conceit if you can back up your swagger, and having people demand you by name just feels soo nice.
/not an old fart turned hot shit developer
//give it time
Admin
According to this article, slightly-above average people are best in judging their skills correctly, while excellent people are just as bad in judging their skills correctly as relatively bad people.
As a final result, we observe that mediocrity is the best precondition to assess one's skill correctly.
Now really, this article is totally overrated. (Nearly) all people consider themself in the 55%-75% range, nearly independend of their acual level. It's just that bad people's actual score is further away from that range than good peoples. Slightly-above-average people hit the mark, but IMO just by pure luck.
Admin
but how could he pass the tech interview if he doesn't know what abstract was? I'm thinking the tech interview consisted of "Point out which 3 of these devices is a computer" and "Of all the devices here, which would be best used as a pointing device"...
Admin
[image]
Old Guy is just subtly flipping you all off for making fun of him. >:-( Bastards.
Admin
Well, sometimes the "tech interview" is rather smalltalk about projects, how well they worked and what we learned from them, which technology was used etc.; since we are all reasonable and responsible adults, we trust that someone who says he knows Java that this is true, don't we?
Admin
Admin
Paula will teach you good! Brillant!
Admin
Not all that surprising. In the minds of those who are more concerned with covering their own backsides/feathering their own nests, firing a guy you just hired is admitting that hiring him in the first place was a mistake. Winners don't make mistakes, therefore you're no longer a winner - say goodbye to that nice annual bonus or stock options.
Much safer for the individual manager to have him destroy the organisation from within and try to contain/mitigate the non-performer whilst encouraging him to leave or move departments.
Admin
This attitude is all-to prevalent. Which is odd when you consider that most of the "greats" in history had some pretty spectacular failures. And, of course, the type of manager that thinks that winners don't make mistakes (or at least acts that way) is the first to spout off that historys greats had numerous failures.
There I go again, invoking that "logic" word...
Admin
You forgot:
#define class struct
That covers all of them :-)
Admin
Love that paper. Awesome read.
Also worth noting (I've posted this before) - some people just don't have what it takes to be a programmer.
<font color="#0000ff" face="Arial" size="2">http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf
It used to be that CS courses were designed to weed these people out before the end of first year (if not first semester). However failure rates topping 50% don't look good to the beancounters above, and people quitting CS degrees 'costs' money, so over time CS courses have been progressively dumbed down to the point where people can enter the final year of a 3 year CS degree course and not actually KNOW how to program. (They'll be awesome at bluff and cut-and-paste though, with group assignments taking them that final step into 'pass' territory).
If you're unlucky you'll work with one of these people. If you're REALLY unlucky you'll work for one.
</font>
Admin
. <- Here's the point of the article, and here's you -> .
Actually you saw the point of the article and stepped right over it (at least one of the points). Let me quote you for you:
There you have it. Duds are worse at estimating their own performance. Which, if I'm not mistaken, is one of the points and conclusions of the article.
And while it also appears that those of above-average skill tend to under-estimate their own skill (but by nowhere near as much as the below-average over-estimate theirs), one could argue that this is because the more you know, the more you realise that you actually don't know everything. So it's reasonable (IMO) to suppose that the above-average are considering their skills to be average amongst their peers, and are unable to grasp just how incompetent some people can be (this site is a testament to that).
Admin
except a try/catch block is for catching runtime exceptions ... they don't fix the red squiggly
Admin
I actually used these once, along with:
<font face="Courier New" size="2">#define class struct</font>
Admin
Admin
Huh? How's this a WTF? That's valid VB. Besides you don't know what he tried before this... he could have used a variable in place of the 1, and changed it for testing later. VB will cast the 1 to a string so it's not invalid code...
Admin
<font color="#000000"><font face="Times New Roman">I can't imagine how you could waste 3+ weeks months of salary on this kind of person with so many early warnings.
I had a moment of "Where is the WTF?" with the code, because in my language it would be perfectly valid to define the methods within a try/except block right inside the class block!
</font></font>
Admin
Admin
Yep I have one of those bits of paper to, and have used very little of the actual knowlage I gained about a specific programme since being in the real world. However our tutors stressed time and again that they were not teaching us about a specific language / programme / whatever they were teaching us the fundimentals of how to go out and learn a programme / language / ect. This knowlage has been invaluable, once you know the basics, most computing can be worked out.
hmmmm then again maybe I'm wrong: Captcha: error
Admin
Damn straight. How did he pass the tech interviews?
We keep them simple: in depth discussions of linked lists, hashtables, or whatever. It's a rare candidate that can nail these topics... the poseurs wash out by the second question, the good guys start sweating at around the fifth or so. The guys we want to hire start saying "that's really interesting" at around question seven.
Admin
I concur - you and I would get along just fine.
However, I think part of the WTF is the hiring process (so called "tech interviews"). I've been pushing of late to get real programming questions into interviews. In fact, do this first to save wasted time on inadequate candidates. Why is that such an uncommon thing to do?
Admin
This reminds me of an experience I had at university. My partner in a project reformatted all my code, removing almost all white space making it very hard to read.
<o:p> </o:p>Her reasoning was “Programs with less lines of code are better / faster”!!!
<o:p> </o:p>Now this was not some introductory class, but an advance subject on compilers. The project was in fact building a compiler, so you can imagine the ‘fun’ I had…..
<o:p> </o:p>The moral of this story is alcohol and physical appearance should not be involved in the process of choosing a partner (for programming projects that is; for other partners these factor are much more relevant).
<o:p> </o:p>Swiss
Admin
Hey guys be positive atleast he didn't wrap the abstract class in a try catch block
Admin
When you write code with a pair of channel lock pliers, then maybe the picture is of a "puzzled-looking grey-haired programmer". There is nothing about that picture that says programmer to me, no obvious evidence of carpal tunnel, no propeller beanie, no obvious cheeto dust, nothing.
Admin
I can think of two common situations that lead to this.
1) These people are just bad/lazy programmers. A 50 year old that fuddles around java and pines for COBOL probably took forever to learn COBOL and was probably never particularly good at it. If they were 25 now, they'd still be nearly as useless at Java.
2) Second is the curse of the rut, usually exacerbated by Family (TM). Most places aren't very interested in paying employess to tinker with and learn new languages, or even new paradigms. It's easy to get into a position where you are too busy to pick up a new language on the clock. If you decide to find a better job, all the sudden you find out your language is no longer the flavour of the week, and you find yourself being asked to check syntax or discuss the OO quirks of some new language. No worries, learning this kind of stuff is what the time between 5pm and 2am is for right? Enter Family, dun dun dun! Now 5pm to 2am is about spending time with your kids, and paying enough attention to your spouse to keep that ship running smoothly. Your ability to take risks, or pay cuts takes a giant nosedive and you start growing ulcers until before long your 45-60 and pining java to a bunch of kids that program Quantum++ in 14 parallel dimensions until 4:00 AM every night.
Admin
<FONT face=Tahoma>My IDE is the noble NOTEPAD.EXE...
See, no syntax errors! Wait, F5 doesn't seem to work... hmmm...
</FONT>
Admin
That's why I used to say I am an EXPERT <FONT color=#d3d3d3>in the basics</FONT><FONT color=#000000>...
</FONT>
Admin
It works as coded. Certainly no wtf there.
Admin
That's what Photoshop is for. Horses for courses.
Admin
He should have just set up a pre-build action to wrap the call to the compiler in a try-catch block.
Admin
Boobist.
Admin
That's why you should never have kids before you become a manager. After that, you can afford to become incompetent. The people under you will probably even expect it.
Admin
There is enough COBOL out there still that will need worked on or updated, or even better, ported (platforms, at least, that is to say, instead of a big old mainframe, to some flavor of desktop COBOL). I suspect that at some point, knowing COBOL will net you a job, once all the old-timey programmers are gone.
Of course, the best idea is learning how to learn. Not to brag, but I have an undying passion for learning, and programming languages generally tend to grok well. I understood Lisp when it was shown to me, but it was harder because of the terrible syntax everyone tries to use when they write/teach it (and the whole functional paradigm was actually something of a system shock to someone from a strong procedural/OO background).
Admin
I would venture a guess and say that you could say that about a lot of other fields, as well. Or about colleges in general. There is no money in flunking people out of your school. As always, the bottom line is king.
Admin
Rodyland saw the data in the paper, and came up with a different explanation than the authors. The author put forth a metacognitive deficit as an explanation, and Rodyland put forth a simpler explanation - that people naturally tend to evaulate themselves in the 55-75th percentile of something. Rodyland's explanation also explains the under-perception of experts, where the author has to rely on a second effect for that trend.
All the paper has proven is range of perceived ability is much narrower than the range of actual ability, generally in the range of 55-75th percentile and the two are generally correlated. The paper doesn't prove a causal link to metacognitive deficit.
Depending on the raw results, the decision to graph percentiles may cause the graphs to be misleading in the extent of over-estimation by the lower percentiles. If you ask people 1000 easy math problems the middle 80% may all fall within 98-99% correct. So someone that got 980 right is in the 10% percentile - too incompetent to realize how bad they are at math. While someone that got 10 more correct, is in the 80% percentile and a genius unaware of their own maginfigance.
Another interesting aspect of the article was that in several studies (Study 2 for example) that people did well estimating their raw ability (i.e. how many questions they got right). What they couldn't determine was how well everyone else did. I don't see how this supports the author's stance -they knew their own competence, they just didn't know everyone elses.
Admin
As Satchel Paige once said, "It ain't braggin', if you kin do it."
Admin
thats some hardcore screening... The last 2 jobs i've applied for basically sat down, had an interview with the manager, they liked what they saw then called me that afternoon to let me know I had the job. The interviews went for an hour or so, and they did involve tech questions and stuff... but nothing that intense!!
Admin
Admin
Admin
Simply not true. At least in my experience (I have two kids, 4 and 7 years old). I always find the time to learn something if I want to. Whether or not someone is willing to take a risk is more a matter of personality. People who are unwilling to take a risk probably do not have kids anyway.
Admin
I'm happy that you agree with me, but you have mixed up the names. Rodyland defended the article and criticised by posting.
Admin
Actually, having kids just requires the applicants to pass a usually quite short practical exam.
Admin
I envy your lack of hunger for knowledge. I couldn't learn everything I want to even with a bottomless trust fund and no personal relationships. Right now, I spend less time with hobbies than I plan on spending with my children, so spending less time developing professionally/academicly is unavoidable.
Part of being a good parent is providing for the well being and future of your children. As someone without children, I could take the risk of giving my two weeks notice, knowing I'd have a few months to find a new job before I felt a crunch. The likelihood of running out of money before I find a job is low, and the consequences are mainly financial. If you add a child to the equation, the risk skyrockets. The chances of a child needing health care while I'm without insurance are much higher, also the consequences of losing my house etc, are much worse when I have a child's welfare to worry about.
Admin
HA! That made me laugh :) Thanks