25 March 2014

Why can’t Johnny reverse a linked list?

Colleges: You are graduating computer science/software engineering students who don’t understand pointers, floating-point, or what a closure is. (And I don’t mean that they don’t understand the terms; they don’t understand the concepts.)

It is so frustrating when I don’t get to talk to an interview candidate about higher level concerns because they don’t know the fundamentals. (It is even more frustrating when I do get a chance to talk about higher level concepts only to find they don’t have a grasp of those either.)

Even if you don’t believe that pointers and floating-point are as fundamental to the working software engineer as reading is to a secondary school student, at least tell them not to put C on their resume if they don’t understand these concepts. And tell them not to list Javascript if they don’t understand floating-point or closures.

I’m not so idealistic to think that a degree can ever be a guarantee of anything, but the current situation is that the degrees you are handing out are worthless.

Students: I don’t think the moral of the story is to not go to college. I may not have graduated, but college did expose me to things I might not have been exposed to otherwise. Understand that college will not prepare you for your career. College is an opportunity for you to prepare yourself for your career. You will get out of it what you put in.


Peter Fröhlich said...

That quote at the end was too good not to steal. Hope you don't mind! Also I am sorry that we're not doing a better job. We do try! Well, most of us anyway... http://nilisnotnull.blogspot.com/p/favorite-quotes.html

Robert Fisher said...

I am honored to be quoteworthy!

I’m certain most are earnestly trying. Perhaps there is a lack of a reliable feedback loop to measure the results. (And I do realize that there is more to college than vocational school, but if a computer scientist can’t analyze the time & space complexity of an algorithm, they aren’t really a computer scientist, are they?)

Sometimes I think the biggest mistakes colleges make are group projects. On the one hand, learning to work in a team is indeed a very important thing to teach. But it seems only one person on the team needs to do the work to earn everyone the grade. Candidates will list very interesting projects on their resumé, but when questioned, it quickly becomes clear they didn’t actually do any of the work.

Although—ironically—learning and coping with the fact that your teammates may not pull their own weight is an important part of working on a team.