Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think fundamentals are extremely important, but there is a confusion what is fundamental and what is not.

I have interviewed thousands of candidates and hired and worked with dozens of them.

In my experience, the most important, most fundamental abilities for a programmer are:

- analytical approach,

- ability to predict what the code is going to do.

I don't care if the candidate knows how to implement A* on a whiteboard. Frankly, I think this is stupid if he/she will never see a problem like that and if it happens, the solution is just a google search away.

Don't get me wrong, knowing algorithms is very useful. But it is not critical to writing working code.

What I do care about is that you can reason about the code you are given, that you can construct/modify the code methodically. That you can predict what the changes you are going to make will do to the program. That you can have workable mental model of the program that.

The worst type of developer I have seen have memorized all algorithms, data structures, language details that were in the book. Yet they can't modify the program and tell what will happen without actually running the code.

When you observe them writing code it seems they are modifying it at random until it happens to work. Then they are happy they have "solved" the problem after two dozen or more iterations.

When it fails they are not at all interested in understanding how it failed, only where it failed -- to have a starting point to keep changing they code until it runs.

For this reason -- to filter out those candidates -- I will never pass a person without seeing them writing code.

I have observed over the years HN community being somewhat negative to programming on interviews. Ask yourself, would you hire somebody to build your house based on only how they market-speak how fanstastically they can build fantastic houses?



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: