- 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
Agreed
Admin
For good reason. Especially for entry level candidates, as thats generally the only experience they could have had. But the relevance of the degree fades over time, and a candidate with "15 years of experience" is almost certainly not going to be hired because of their degree.
And there is how people like the candidate in the story got their jobs. Its assumed that just because they were able to hold a job of one form or another for 15 years (and most likely 99% percent of the time they were doing something other than coding if they don't even know the basic syntax of the language) they can do whatever you give them. But there is the problem. Holding a job is not the same as being successful (as this site constantly demonstrates, with this story being a classic example). It is perfectly possible to hold a job and still be horrible at it. Especially when you consider the range of job responsibilities (everything from software testing to editing xml documents to tech support) that people tend to classify as "software engineering", you have no idea what type of experience they have.
See a degree in computer science does not usually teach students much of the vocational skills the syntax of various languages (and if this guy got his degree 15 years ago, there is no way he studied Java at all back then), but it does teach them the theoretical underpinnings of CS. They may not be ready to write up a complete multi-tiered business application right after school (which isn't surprising; how many professions expect newly graduated students to be able to perform as well as experienced professionals?), but they are typically able to adapt and learn new technologies without simply copying code out of their "Programming Language X for Dummies" book.
The guy in this story clearly couldn't do that. Thus I'm guessing he has little if any formal education, and instead just used his "experience" in some technical but non-programming job or while working for a closely related family member as his crutch to get him his job. He was able to BS his way through a few interviews by embellishing his past work experience got him a job he was in no way qualified for.
Admin
The real WTF is giving credit to these certification tests. Or believing Microsoft is the best reference ever, especially for Java.
Code geniuses don't need a college degree or a lousy certification.
Admin
Either way, you're doomed
Admin
I think we agree on all but one point, and we might even agree there. I believe that, after 5-10 years (there is no magic number) you have the theory regardless of a degree. It does depend on who you worked under, the type of work you performed, etc. I do not believe that a degree is the only way to learn this.
Admin
I think this particular story (along with many of the other stories that make it on this site) refutes that. Obviously experience can get you that theory, if it is the right experience and you make the effort (after all, that is how the theory was developed in the first place). But a lot of people pass off jobs that have nothing to do with programming as experience, and even those that do perform programming jobs often seem to be more concerned about getting the job done with as little effort as possible (meaning they are just copying from somewhere else half the time) than developing and understanding of what they are doing.
So if you are basing your hiring decision solely on experience, how do you determine which candidates do have that understanding of CS fundamentals and theory and who just copied and pasted crap every chance they had? Asking the previous manager won't help as half the time the previous manager was ignorant of whether or not they were doing a good job (and they are not always available). The best way I see is to figure out what formal education the candidate has. I certainly wouldn't rule out hiring someone without that formal education, but I would certainly be much more careful.
Admin
Experience is the only factor you can use, along side that, test their skills on an actual problem during the interview. Let their experience talk about the things they have worked on, then let them demonstrate their practical application of that knowledge. Just because they have a degree from 10 years ago does not mean they retained any of that information. Many of these WTF's very well could have been created by people with a degree. We do not have the information on how many had one and how many did not. So no, this site does not attest to the fact that without a degree you do not have the fundamental theory. It only states that many in this field, while seemingly intelligent, make some of the stupidest mistakes.
If you aren't as careful with someone because they have a degree, you are making a bad assumption. I say ignore the degree, give them a practical test and see how they stand up today.
Admin
Admin
One more statement about this specifically. This idea is what started this whole conversation. Why is it that people like the ones in the article get jobs? My answer, because they have a degree. If you are not as careful with these people you will get idiots like the ones in the story.
Do not let someones piece of paper make you think you don't have to do your job. There is no telling if they are the ones that actually did the work. Yeah they could have crammed for that exam and passed and promptly forgot the material. This is why I say ignore the degree, test every candidate fully and pick the one that shows the best qualifications in a practical setting. If that one has a degree or not, who cares.
For the hiring manager the degree only does one thing, plausible deniability when the candidate shows they lack the necessary skills. Hey, he had a degree he should have known this stuff! No, you should have tested his application of that knowledge.
Admin
I'm on my second programming job and still have not had to write a line of code in an interview. Which is kinda crazy.
I'm not sure why the companies don't have you write at least something. Even in pseudo code to show you at least grasp the concepts. Perhaps just having this guy write a for loop would have shown that he had no practical use.
I'm not sure how answering:
What is ajax? What is the advantage of using sprocs?
shows your level of programming competency.
Also, having a college degree doesn't mean you can't apply your knowledge to "the real world." The degree helps you start out, but that's why after a few years experience you don't highlight your degree anymore, you highlight the experience.
then again, people who go on to receive Ph.D's in computer science, would probably have a hard time writing real world production apps because they don't teach you about source control, builds, etc... in college.
Admin
Aside from the obvious hole in that looking just at experience cannot get you a newly graduated candidate (every good engineer has to come from somewhere)... As stated before, there is no way to gauge experience. You can ask him to describe his old projects, but that tells you nothing about how well he did while working for them. You might be able to ask the previous manager, but its hard to know if you are getting an informed and/or honest evaluation from them. And while having them demonstrate skills in the interview can be helpful, you are usually limited in how much you can test them on.
I never said only base your decision on whether or not they have a degree. But a degree does tell you that at some point in this guy's life he (or she) took the time to learn those fundamentals that are necessary to doing a satisfactory job (as opposed to someone who graduated with a degree in French literature and then read a Learn Java in 24 hours book in order to get a job). You certainly still have to determine whether or not they still possess those skills, along with any other skills needed in this particular job. But if they never got that degree in the first place, you have to establish whether or not they ever got those skills in the first place. Agreed. So why do you continue to insist that this guy must have been hired because of his degree, especially when the only information we are given highlights his great experience (which, in the eyes of most hiring managers, would mean they wouldn't care about his degree)? Again, I am not arguing you should base your hiring decision just on whether or not he has a degree, or on any single factor. Ironically, that is what you are arguing ("Experience is the only factor you can use").Admin
I don't insist. This just proves that text is a very challenging forum. My insistence is that many times the hiring company simply sees degree and makes an assumption. Without a degree they either don't want to talk to a candidate or test them more completely. This is a failure on their part. Test all candidates equally, degree or not. Far to many times I have seen people hired then fail and people claim "but he had a degree". So what, could he apply his knowledge? If he can, what does it matter if he has a degree. You can assume that someone with a degree will have more knowledge if you want, but I will ask you to prove it. After so many years in this field I think the separation between those with a degree and those without become non-existent.
But experience is the only real thing you can use. Then test that experience with a practical exam. The degree does not come into play here. If you are looking for a junior, see if they have what it takes to fulfill that role. I will agree, in the case of a junior, those with degrees will most likely score higher on the practical test. Note I won't hire because they have a degree, I hire because they have shown what they know for their level of experience. If someone without a degree scores higher on a practical exam, they get the job.
Admin
I think I still missed my point.
I was answering this as a general answer to a general question. How do guys like this get jobs? The usual answer is because they have a degree. Hiring entities see that and think, oh he must know it because he has a degree. This is a common fallacy, The guy could be book smart. He could know all the terms, but have no idea how to apply any of the theory. This takes experience.
So this was a general answer to a general question, not a specific answer to this specific case.
Admin
Second, your examples don't prove a thing because unlike the other guy, I was not making a universal proposition. I never said that all applicants with degrees are qualified, and I never claimed it should be the only thing you look at.
Note that this whole logical reasoning thing is one of those skills that is difficult to learn quickly, so its one of those things that you should test for.
Admin
Of course you are not going to be as ready for real world projects right out of college as you would if you had a few years of experience under your belt. What kind of retard would think otherwise? It really is ridiculous that people in this industry seem to think that college should prepare you for the real world. In virtually every other field recent graduates are almost always considered to be at a much lower level than their more senior counterparts. Look at in medicine, they spend twice the time in school as we typically do, and yet after graduating they still have to complete a residency before they can be even considered full out doctors.
I don't know what university you went to, but most PhD programs do require candidates to write large scale projects, usually involving teams of developers. So they generally would be experienced in things like source control or builds.Admin
You know here may be one of our solutions. Set up apprenticeships or something like that. Software engineering is a trade, and most other trades use an apprentice program to get people in. People can enter this program with or without prior training (read degree) but those without will probably spend more time at this level.
After that, certify them, once certified, they are all on the same level playing field.
Addendum (2007-12-28 13:25): Actually if we do that, we become far to expensive and are more likely to be outsourced. This would be a no win situation. Remember companies are always looking for the bottom line and getting something 100% right for 150% of cost isn't worth it when you can get 80% right for 100% of the cost.
Admin
Now as to what role education plays, no I would not rule out a candidate simply because they never got that degree, nor would I give the job to someone just because they had a degree. But I would spend more time verifying that the candidate without the degree picked up that information at some point, to make sure they did not simply skim through a "Teach Yourself..." book and think that taught them everything they need to know. Sure, you would want to test the candidate with the degree on that stuff as well, but you would want to be extra careful with the candidate without the degree to rule out that all too common scenario. We unfortunately work in a field in which it is too easy to pass of a superficial skill set as the real thing, as this site constantly shows.
Yes, that is one particular mistake that is often made, but it really has nothing to do with this case. Again, it is for once made pretty clear that this isn't a case of someone being hired despite not having any experience just because of their education. We know here that he was considered an experienced candidate. So someone hired because of their education wouldn't be anything like this guy.Admin
Admin
Admin
Admin
I can think of only one place: On your WinXP station, open a cmd prompt, and type: if /?
Note how string comparisons are written. :)
Admin
Admin
Admin
Could someone please pass the popcorn?
Admin
And I believe KattMan and I have more or less come to common ground, so you seem to be the odd man out at the moment.
BTW, nice comic, it does seem to capture your debating method very well.
Admin
It's okay; you're among friends here. Go ahead and rant. It's okay. Rage against the dying of the light (or in your case, the absence of light).
Admin
On the other hand, do you trust a grade given by the sort of feeb who spends his life monitoring student sample applications in Java/C#/VB.Net/C++/drone drone drone ...?
Nah. Let 'em get a degree. The rest is just wallpaper.
(And in all honesty, an SAT is pretty much just up-market wallpaper to prove that you don't have to flip the burgers -- you're best qualified to count 'em in and count 'em out.)
Admin
I strongly disagree. Even 100 years of CRUD or GUI development won't give you the theoretical background needed to move on to more interesting fields, like computer vision or algorithmic data mining. This is especially true since these fields rely on techniques traditionally not strictly associated with computer science or software development, such as lattice theory and statistics in the case of algorithmic data mining.
(Did you know? Your database engine computes the Dedekind-MacNeille completion of the lattice of sets defined implicitly by your tables on the fly?)
You will, however, have hopefully collected thorough knowledge of best practices in your specialty. If you're satisfied with your specialty, that is obviously good enough, and if that's what you meant, I agree.
On the other hand, I have a relatively short attention span. And I like hard problems.
Admin
<Adopts Lady Bracknell voice>Impossible?</Relinquishes Lady Bracknell voice>
Look, (Katt)Man, I love you and all, but this is a bit of a stretch. Apart from anything else, I've got one, and believe me, it is not easy to pass an interview. Although that may have something to do with bodily odour. (I'm very attractive to civets.)
Look, (Saw)Man, I hear where you're coming from. But wait a minute!Visual Source Safe? Team Foundation Server?
Yer prayin' ter the Wrong Gods, mate. Let us know when you've discovered a proper source control system that actually works.
On the whole, I'm with NWBrown here. Not that this will do him any favours at all.
On the other hand, the lens/genitalia thing explains a lot to me. This is obviously why gorgeous women can see me coming...
Admin
I've worked with people like this. They are really good at memorizing stuff.
This is why you should always have programmers write a little program for you to demonstrate their skills.
Knowing the names of all of the design patterns doesn't mean that you know how to apply them.
Admin
I've interviewed my share of applicant's who wouldn't know how to sort an array of integers. Only recently I've had a guy who wrote it down in pseudocode-basic in something like 45 seconds. Everyone else before him was struggling to some extent, and some people would use various excuses. Heck, supposedly "accomplished" posters on this very forum would argue with me that asking to show the skills you're expected to use in an interview setting is too much to ask.
I agree: sorry for you, moron, but if you can't sort a fixed-size array of integers, in the language/platform of your choosing, being free to ask any question (short of doing the job for you), there's no room for you in a programmer position, clear and simple.
Duh, as they say. That some people would argue otherwise is beyond comprehension.
And they pretty damn well should. I would have buried myself multiple times over if I hadn't had all of my homework-related code under source control. When you try to finish something due at 8AM and it's 4AM and things go downhill, it's reassuring that your editor's Undo buffer isn't the only thing shielding you from a disaster.
In my case it was a mix of Maxima, Octave, Lisp and C++ code, with some gnuplot sprinkled in - everything would run from a makefile and generate typeset-ready LaTeX tables or EPS plots (or graphs, as in graph theory) that were included in the LyX document. I type my homework, which has also saved untold hours, especially if you realize that the last page or two you wrote is complete BS and you have to redo the problem. Usually there are salvageable pieces, and I'm not that much into paper copy-n'-pasting at 4AM :)
Not to mention that the profs usually appreciate something that can be graded without having to second-guess the text.
It's unfortunate that "generic" curriculum, at least in the grad school, doesn't include mandatory training in at least the basic open-source toolset (say Ocaml and C++, Maxima, Octave, LyX, make, svn). This stuff is useful in almost every science out there, and comes all ready to use on any decent Linux distro.
Cheers!
Admin
So what are you using?
Admin
The person who got the other Mac Java job in 1996 did so because of all the people interviewing him, all but one of them were long-time Sun programmers whose idea of a GUI was "thing that lets you have multiple terminals open" - and the remaining person's Mac experience consisted of being my office mate for 4 years. While that wasn't enough for him to tell an average Mac programmer from an expert, that was definitely enough for him to spot a fake. Unfortunately for me (the real Mac programmer, hired a week after this idiot), nobody listened to him.
Six months later, when he finally left, nobody could find any code he'd written.
Admin
PhD Cambridge, and never used source control (I have since then).
I would go so far as to say generally no source control or large teams are involved.
However that is a UK perspective where PhD's are soley research. The point being a PhD furthers scientific theory and not worry about engineering/implentation.
Which is, I think, different to the US of A.