Live data from Hacker News

Why can't programmers design software?

qnoid.com

1–10 of 25 posts

Re: Why can't programmers design software?

#2
Very simple:

Because in the precious few hours they have to devote to "pure learning", when between jobs -- they're only motivated to hunker down and bone up the only thing that really matters: the latest tips 'n' tricks for passing all those fun programming quizzes (and the occasional "culture fit" question or two) that are the mainstay of the modern interview process.

Designing real, usable, maintainable ... software? That's much more difficult to "test" for.

Re: Why can't programmers design software?

#8
post #2

Very simple: Because in the precious few hours they have to devote to "pure learning", when between jobs -- they're only motivated to hunker down and bone up the only thing that really matters: the latest tips 'n' tricks for passing all those fun programming quizzes (and the occasional "culture fit" question or two) that are the mainstay of the modern interview process. Designing real, usable, maintainable ... softwa…

Is it though? I give an interview question where I present a spec to be implemented. There's no algorithmic trick, but you do have to know to watch out for common problems (end of array conditions, etc). Sadly though we hired someone against my vociferous objection that failed my question in the worst way - he ditched the spec, attempted a complicated solution, and proudly asserted that "it works" at the end of the interview, because it passed the four test cases that I wrote as examples. I couldn't identify the bug by eye and in fact had to write a property testing framework to identify the bug. On the plus side, I now have a property testing framework for my interview question.

Re: Why can't programmers design software?

#10
I guess it's because I haven't worked on a really massive project with lots of other people, but I've never really needed to "design" software. Sure, sometimes I'll stop for a minute to think about the next thing I'm going to write and how it slots into the existing parts, but for the most part my programs grow organically. They start from a small kernel, parts of them grow and are branched off (B-tree style) into new files and subdirectories, and soon enough the whole thing is complete, or at least as complete as I need it to be for the moment.

The best experiences I've had programming are with languages and tooling that make this organic growth and splitting process as painless as possible (Rust in particular is really strong in this aspect). Doing such a thing from the top down (as with Java, where you have to be very thorough with your design patterns and UML diagrams and whatnot) seems unnecessarily difficult and restrictive.

Post reply on HN