- 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
Actually, a major part of my job is to give tech interviews to prospective candidates. I have about 20 questions that tell me everything I need to know about your skills with respect to Sql, Java, and Unix. No degree or certificate is more important than being able to answer those questions appropriately.
Admin
he might have read Chaitin's Work on randomness in maths....
Admin
That would suggest a negative correlation, not a zero correlation.
Admin
Would you care to share these?
Admin
And would someone please tell me how I use quote correctly, as the forum software apparently breaks easy?
Admin
Do you have a degree?
Sincerely,
Richard Nixon
Admin
Actually I've had bad experiances from both sides.
The non-CS guy response was hashtables are dumb arrays are always better
CS guy - global variables are great, I'm a CS major so whatever I say is gospel (arrays are always better).
Admin
There may be all sorts of good reasons why this isn't a WTF, but the sentence "truth is how you define it." raises this from "beginner being careful" to a true WTF. Maybe not the worst ever, but that definately says the author of this thing has some very odd ideas about boolean logic.
Admin
I knew that was a stupid way to code at age 12. There's no excuse for this kind of lame programming.
Sure it's not the worst WTF in history (probably not even the worst we'll see this week) but the rationalization shows deep, deep flaws and gaps in the programmer's understanding of how stuff works. This person should be downsized immediately.
Admin
And there is my point. Experience trumps all, and until they've actually had some experience you have no idea whether you have a "good grad" or a dud.
There are several problems with CS majors as programmers. First, at some schools people can play the system and skate by without being really challenged. The hard sciences and many engineering disciplines have a whole host of higher math courses that wash out the "unworthy "very quickly. But more important, CS curricula are usually not designed to produce good programmers. They're designed to produce people that know lots of theory, but little practical. In other words, CS professors teach students to be CS professors.
The good grads are generally those that have supplemented their academic work with practical experience through co-op, summer employment, or even work for Gnu or Apache.
Admin
I knew someone that refused to listen to his senior devs. His reason was that they were not his seniors. Even though they had many years experience and had worked for the company for several years, he made it known that he felt he should be their supervisor because he had a CS degree and 1 year or so experience, and they only had experience. In his mind, experience meant nothing if it wasn't backed by a degree. Needless to say, he didn't last very long.
Admin
Guess.
Admin
The guy doesnt want to rely on logical operators because someone may oveload them in the future. Operator overloading is one of the CS experts must-know.
And ... "The real WTF is PHP", someone? Please.
Admin
Absolutely not. If I did, someone would study answers for just those questions and beat me on an interview. Then I'd have to fire them 3 months later.
Admin
What leads you to believe a CS graduate has had any real programming experience - or better yet that someone well-versed in MATLAB/Maple/whatever should be excluded from possibly being a better programmer out of the box because they aren't CS? I've met a lot of math & science types who never had any schooling in programming, who develop far better code "out of the box" than some pretty typical CS grads.
In my experience, CS allows you to talk the talk, but the proof is in the pudding so to speak. I have the degree because I know it would be suicide not to in 10 years. I do not, however, think that the degree automatically qualifies me, or anyone else for a development position simply by virtue of holding it. I don't think one can make such a blanket statement with a clear conscience.
Admin
Considering, too, that the truck drivers probably average 10-15 years of CS experience ...
Admin
If the CS grad has nothing to show for his/her time in school, and is unable to show me that the ability is clearly there, then the EE hands down.
Admin
May I recommend reading as your next course? If you hadn't quoted me, I wouldn't think that you even read what I wrote.
Admin
Only if they know who you are. Anyone that studies all the lists of interview questions they see on the Internet is going to have to spend all their time doing that, and that isn't likely to make them a good interviewee.
Admin
I disagree. Not about the beginner part, but about the thinking through the logic.
From this piece of code, I think I can reconstruct the design doc almost to the letter. Because this code looks as if the coder didn't read the full doc, think through the logic, then code - no, he read one line at a time, translated that to code, then went on to the next.
I don't think the WTF is about this programmer and his code. I think the WTF is about two other thing. First, the incredibly cocky reply by the programmer when someone commented on his code (as already pointed out by others). And second, and I don't think anybody else brought that up yet - the WTF is that there is apparently some college somewhere that allows students to leave their premises with a shiny certificate in their hands without ever writing one single line of programming code.
Oh, they were bad. They were very bad.
But not THIS bad... [;)]
Best, Hugo
Admin
I'm not going to bother trying to quote, it'll die.
Instead of giving the specific questions, I was hoping you would share them somewhat generally. Is your SQL question "Given X,Y in Table A and Y in Table B, Select all X in Table A where Y exists in Table B?" Is your C question "Write strcpy"?
Admin
Actually, that's not a wtf either. Considering that programming is more art that science, programmers are more artist than anything else. Beginning programmers are overly proud of their work, not having had their rough edges worn off yet. It does not surprise me in the slightest that ego got involved and stupid things were said.
Again, I think we can ALL see our past here, anyone who claims otherwise is either lying or in denial. Yes, we would all like to think we were programming gods from day one, and that we all listened to our elders, but the reality is something else. Unfortunately, that god complex is what predicates the mouth in foot syndrome. The good programmers, embaressed by their own stupidity and verbal stupidity may not be willing to own up to their mistakes WILL go and look things up later. The bad programmers just go on refusing to learn hex...
Admin
Where to start?
I don't know where you went to school, but there was a 50% failure rate in each of the first two CS classes where I went. Just to clarify, that meant only 1 out of every 4 people made it through the first year. Not to mention that you had to take real calculus (read engineering calculus) and an additional 15 hours of upper division math to get the degree. We also had 6 hours of formal logic and a 3 hour class on finite automata.
As far as "skating by" or "theory verusus practice," those arguments are applicable to any degree, not just to CS so I don't see how it's relevant to the CS vs non-CS all else being equal argument.
I would guess that you don't have a CS degree or you went to a school with a really bad CS program.
Admin
Apparently, you forget the EGO young programmers tend to have when they first start using their skills. Foot in mouth is a VERY common problem, and hardly a wtf. This is nothing like claiming that he didn't need to learn hex because it was useless, no it looks like a weak attempt to be witty.
As for not this bad, well, I'm betting yer in denial <grin> I remember some of MY early projects... Elegance is a tool for the wise. Some times, if you just barely grasp the follow, it is best to code as he did, and then learn to compress it. Heck, there are times that I STILL break some of my logic like this (into blocks), simply because it can more clearly communicate the process (and it really is not THAT much more inefficent unless you are in a 3 deep loop) of a complicated bit of logic (ok, this logic was easy for most of us, but hey, I've been programming for 22 years now, I KNOW for a fact that concepts I take for granted now would have baffled me as a beginner, and I also know that the same holds true for everyone.
Making fun of the beginners for being beginners with weak witty replies isn't really good form no matter how you look at it. Now the guy who didn't want hex explained to him because he could not be bothered to learn useless things, now there was real wtf material.
Admin
Nope. I dig a little deeper than that. I have about 4 or 5 questions in each category. Here are examples.
For SQL...
You have a query that seems to be running slower than you expect. How do you evaluate it?
For Java...
Describe the use of the wait and notify methods, as well as the synchronized keyword.
For Unix/Linux...
What is the traditional way that Unix passwords were validated? What is the the flaw in that system and what typical method is used to fux this flaw?
For JDBC...
What is the difference between a PreparedStatement and a CallableStatement?
I've used this test fir about 20 interviews now and I've only ever had one candidate who aced my test.
Admin
No... What he's saying is that a group of 50 year old truck drivers with CS degrees is just as likely to program effectively as a group of 50 year old truck drivers without CS degrees. He never mentioned whether there was a correlation between truck drivers and programming, nor between age and programming.
Admin
thats great. so your 20 questions are the only ones in the universe of coding that meet your criteria? come on! you know you can come up with better questions and new angles. languages and platforms evolve, so while your questions may address fundamental aspects, dont think for a second that you couldnt come up with 20 or 200 more...
what about the relevant issues you face in coding everyday? something relevant to the actual work can show a level of knowledge as well as potentially give you the chance for new insight to a problem you're facing.
Admin
My 20 questions tell me very much about the technical skills of a candidate with respect tp the jobs I am hiring for. That 20 would be very different for other job descriptions. I'm not interviewing for those jobs.
Admin
I quoted the wrong message, but thanks for being an asshole about it. Where would the world be without pricks pointing out everyone else's deficencies? It definately adds to the topic of the conversation.
Admin
For .NET two good ones are (in order of difficulty):
What is a delegate? *you would be surprised how many people don't understand "callback"
Can you explain the difference between using an "event" and maintaining/calling your own list of subscribed delegates. *if you're interested in making someone very junior cry
Admin
Where I graduated about 1.5 years ago, CS was in the college of engineering.. meaning if you were a CS grad, you were technically an engineer (whereas at some schools CS is in Math, Business, or Science degree programs). We had to take most of the same courses our first two years as people in degrees ending in the word "Engineering": Calc 1, 2, and 3, Linear Algebra, and Engineering Stastics, Physics 1 and 2, and Chem 1. We did get out of Differential Equations, which I've heard was a bitch.
That being said, there were a lot of people in group projects my last two years that should never have made it through all those classes the first two years. I'm convinced that it's possible to "skate by" in just about any degree... I mean, how else could George W. Bush have completed an Ivy League degree?
Admin
Welcome to The Daily WTF. It looks like you'll fit in fine here....
Admin
Some languages short-circuit (hooray sane languages) boolean operators and some don't (damned VB).
Admin
"a" clock cycle? This is PHP... interpreted.., so probably a few hundred clock cycles ;)
Admin
It was already mentioned by Anonymoose.
But this is PHP so it isn't true, because
if (undefined_variable)
will always evaluate false (printing notification about undefined variable if they are allowed)
Admin
Valid point, if this were C, where
<FONT face="Courier New">(ticketAmount < 1000 && availableCredit >= ticketAmount) || hasOverride</FONT>
might be true, but not TRUTH.
<FONT face="Courier New">#define TRUTH 42</FONT>
--Rank
Admin
More often, PHP has a habit of seeming to do what you mean but in reality doing something very different but superficially similar, often at 1/10 the speed, such that it breaks down constantly and since the owner doesn't have a damned clue how the language works it just gets worse and worse.
RevMike, did you forget statistics? ;) No correlation does mean any given group of valley girls has the same coding skills as any given group of CS grads, the way you phrased it.
I think what you were driving at is that there's no correlation of programming skill between computer enthusiasts with CS degrees and those without. Which actually does make a lot of sense.
Admin
It's quite possible that the variable $canProcess was initialized prior to the code snippet presented.
Admin
Being new is still no excuse for this mangling of Boolean logic -- I'm new, and I know better than this.
Even if he skated through uni, I would hope that he still learned the basics of Booleans, or would at least listen to a senior dev. Even factoring in ego ... I was pretty confident in my programming skills after just the intro C++ year -- then I got a job. I learned more in my first two months at work than in the first year in school. And keep in mind this is a school where the first intro class has 100+ people and the last has around 25. Acing the school programming assignments -- individual, not group -- does not mean you are FULLY prepared for an actual job. I would hope anyone who can get as CS degree would realize this around day one or so of work.
Then again, I could just have more faith in the people in the field than than there is compentant people. My delusions of always working with good developers have yet to be crushed.
Admin
Looking at my very old code, the oldest I can find, it's full of extremely short variable names - mostly one or two letters; it contains hardly any comments, but lots of hardcoded magic values, and it's all stuffed into one big source file. But that has been written just for fun, and it does contain AND and OR. Someone who fails to know and/or (no pun intended) understand boolean operators should not work as a programmer.
Admin
You scare me. In which language is OR evaluated before AND?
Admin
lol...
define('true', 0);
define('false', rand(0,50));
Admin
Not quite correct, but in general the idea of Unix program return codes.
Admin
On some other website... [:)]
Admin
WELL YOU SHOULD KNOW HOW TO SPELL "DEFINITELY" AND "DEFICIENCIES" MMMKAY??
</badjoke>
Admin
No, I didn't make any statement about a correlation between valley girlness and programming skill. If that is a negative correlation then CS degree holders would be more likely to have good programming skills.
You second statement is accurate, however. If I were to nail it down more precisely....
A CS degree holder is no more likely to skillfully perform a senior programming job than any other person working in programming. An engineer, a music major, a mathmatician, an economist, someone that holds a vocational certificate, or someone completely without formal schooling in CS are just as likely to advance to senior positions.
Admin
SQL, look at the explain plan and find out which parts are slow.If it were Oracle and I didn't have explain plan, I'd find a tool that did the equivalent. Joins and where clauses are usual suspects which can also be found by commenting out various parts.
Java: synchronize defines an object which can be locked/shared between threads. wait and notify are used within a synchronized block to communicate with other threads sharing the same object. Going into more detail could take hours or days - the other questions sound like one sentance answers.
Unix/Linux: Hash, vulnerable to dictionary attack, salted-hash
JDBC: CallableStatement extends PreparedStatement. Callable supports output parameters.
Admin
Sounds like she was.
Admin
How many EE grads actually end up doing EE? Not many.
How many music majors end up doing music? Not many.
How many math majors end up doing pure math? Not many.
How many CS majors are there? Not many.
How many CS jobs are there? Lots. While you're observation may be correct, I do not think it supports the assertion that CS majors are no better at doing CS jobs than non-CS majors.
Admin
Have to agree... Also had various forms of math (calculus, linear algebra etc.) and (in my case) physics. As for the computer science... well there was several rather difficult modules, one of which was compiler construction, where you wrote your own compiler. You didn't pass the course if your compiler didn't work, and they were very careful to avoid plagiarism... Another notable module was the concurrent programming module, which likewise had a heavy emphasis on demonstrable working projects... And of course there was predicate logic (relevant to the current discussion methinks...)