Live data from Hacker News

Ask HN: Shouldn't a recent CS grad know how to throw an exception?

news.ycombinator.com

11–20 of 41 posts

Re: Ask HN: Shouldn't a recent CS grad know how to throw an exception?

#13
A related question has been bugging me recently: why is there such a mismatch between the expectations of employers and the skills of CS graduates? There turns out to be a lot of research from the ACM SIGCSE (Computer Science Education) community. The McCracken Group paper "A multi-national, multi-institutional study of assessment of programming skills of first-year CS students" and several follow-on studies suggest that getting students to learn programming is truly difficult, a universal observation not just limited to the US. Student performance are often bimodal in intro classes. Also, our conventional assessment tools do not measure programming skill very well. I haven't encountered any data on this, but anecdotally, it seems the expectation gap is considerably different from say the expectation-skill gap in electrical and mechanical engineers. If anyone has any perspective on this, I am really interested in hearing about it.

Aside: At least in some (advanced?) compiler courses, we do teach students how to implement exception handling semantics in a compiler. This is of course very different from learning how to use exception handling facilities in a given language.

Re: Ask HN: Shouldn't a recent CS grad know how to throw an exception?

#14

Your expectations are really that unreasonable... if you're hiring CS grads without work experience. CS degree programs are not Java developer training, and it's unlikely any kind of classwork would require throwing an exception in any language; catching one maybe. For my own anecdoctal CS program experience, I wrote more functional code than OO, and was never required to use Java in any course. You're expecting spec…

Thanks for your input, Dan. Based on your college experience, it sounds like you would not have been applying for a Java developer position right out of school, correct? But these candidates are. The position they are applying for is officially titled "Jr Java Developer".

Re: Ask HN: Shouldn't a recent CS grad know how to throw an exception?

#15
post #14

Your expectations are really that unreasonable... if you're hiring CS grads without work experience. CS degree programs are not Java developer training, and it's unlikely any kind of classwork would require throwing an exception in any language; catching one maybe. For my own anecdoctal CS program experience, I wrote more functional code than OO, and was never required to use Java in any course. You're expecting spec…

Thanks for your input, Dan. Based on your college experience, it sounds like you would not have been applying for a Java developer position right out of school, correct? But these candidates are. The position they are applying for is officially titled "Jr Java Developer".

What else do you expect a new graduate to apply for but a junior developer position? If you want to hire recent graduates, at the lower salary that comes with versus hiring someone with experience, you're going to have to let them do some on-the-job learning. Test their ability to problem solve and communicate in the interview. Ask for code samples and solve some algorithmic problems together. Do a "fizzbuzz" test by e-mail if you're getting applicants that have never written code at all -- but filtering for a CS degree probably already handles that.

I did a few internships in college. I interviewed with Microsoft. They looked at my resume, code samples I gave them (in C++, Python and PHP), and ran through a phone interview where I solved some problems over the phone in pseudocode. They hired me into a product team as a C#.NET software developer with no experience in C#, .NET or Windows programming. I learned the syntax and libraries on the job and was solving bugs on the second day.

I'm pretty bad at analogies, but this is the best I've got: You want to hire a mechanic. You're a Ford dealer. You're refusing to hire young, trained and certified mechanics because they can't tell you about a specific quirk of the 2009 Ford Escape brake assembly. They weren't trained with Ford-specific knowledge, and they'd figure out the brake thing within 20 minutes of seeing it, but you're balking that these mechanics applied to a Ford dealer without that Ford knowledge.

Re: Ask HN: Shouldn't a recent CS grad know how to throw an exception?

#17
post #10

Granted, I know how to throw an exception, but the large majority of my undergrad career was about solving problems that were evaluated on 'well-formed' data. It was rare for the code to need to be able to handle exceptions. Perhaps this is the culprit.

Agree, sad reality of most CS courses taught at school, the hw problems do not resemble real world professional problems.

Eh... It would be equally sad if students spent the bulk of their time learning the ins and outs of one or two languages. Languages are tools, easy to learn. Concepts span multiple languages. Exception handling is specific to a given language.

Re: Ask HN: Shouldn't a recent CS grad know how to throw an exception?

#18
post #3

My CS program focused strongly on OO and our core language was Java. Exceptions were a regular subject and part of assignments. It seems insane that someone could have a CS degree and not know something so simple and fundamental.

Sadly, you seem to have spent a lot of time and money on subjects you could have taught yourself in a few weeks of light reading.

Java is not computer science. Exception handling is not computer science. "Something so simple and fundamental" yes, but again, completely unrelated to computer science.

Anyone with half a brain can learn a new language via self study. I would be royally pissed if that's what I was taught in college. I'd go back and ask for a refund.

Re: Ask HN: Shouldn't a recent CS grad know how to throw an exception?

#20
post #10

Granted, I know how to throw an exception, but the large majority of my undergrad career was about solving problems that were evaluated on 'well-formed' data. It was rare for the code to need to be able to handle exceptions. Perhaps this is the culprit.

Agree, sad reality of most CS courses taught at school, the hw problems do not resemble real world professional problems.

In a good CS program, you learn how a CPU is built up from transistors to logic gates to ALUs and other components. You learn how machine code is executed on that CPU. You learn how higher level languages are compiled to those simpler instructions the CPU can understand. You learn how to write compilers and interpreters, then develop your own programming language that's compiled or interpreted by your own program, and implement a real algorithm in your language. At this point, a homework problem of "handle this exception when the file is not found in Java" is about as enlightening as teaching a master mechanic "handle being handed the wrong size wrench while attaching this part".

Learning the specifics of a programming language some employer uses on the job is about as hard as a salesman picking up a new industry's jargon. It takes a few days, but it's nothing any capable graduate can't handle at that point. There's nothing sad about this reality.

Post reply on HN