Assume you are a computer programmer working in a real-world job. Which is most important?
A) Being able to write clear code that others can understand and work with.
B) Being good at interface design, so that the user can use the application easily.
C) Having read and understood most or all of Knuth's Art Of Computer Programming.
A) Being able to write clear code that others can understand and work with.
B) Being good at interface design, so that the user can use the application easily.
C) Having read and understood most or all of Knuth's Art Of Computer Programming.
no subject
Date: 2011-10-11 02:35 pm (UTC)no subject
Date: 2011-10-11 02:44 pm (UTC)no subject
Date: 2011-10-11 03:02 pm (UTC)B is what interface designers are for, and you rarely have one person who's exceptional at both.
no subject
Date: 2011-10-11 03:13 pm (UTC)no subject
Date: 2011-10-11 03:53 pm (UTC)I'd say (B) was most important, except that I rarely design code that _has_ a user interface, in the sense that you probably mean. If I said (B), I'd more often be talking about well-designed, extensible protocols that embedded devices use to talk to other devices, or APIs that are used by others (often third-party developers) to access the capabilities of my product. If those would be covered in your definition of (B), then (B) is most important in my real-world job, IMO.
no subject
Date: 2011-10-11 04:04 pm (UTC)But if you can't write clear code, then you're a walking maintainability issue.
So I vote for (A). But they're all pretty damned important.
no subject
Date: 2011-10-11 04:33 pm (UTC)no subject
Date: 2011-10-11 05:20 pm (UTC)Not Knuth specifically, but it's certainly an excellent repository of data structures and algorithms. You may learn what you need to know elsewhere, but there is a lot of value in those books.
I wouldn't say that I would expect a good programmer to have read or understood all or most of it, but I do think that you should have the capability of doing so -- if I tell you that I've implemented an AVL tree, you could do a lot worse than to look it up in Knuth if you don't know what an AVL tree is...
Knuth is a big toolbox, and if you have those tools at your disposal you are likely to be more effective.
no subject
Date: 2011-10-12 01:50 pm (UTC)Not that I'll be looking at it soon; I'm currently dealing with a processor that is incapable of looping...
no subject
Date: 2011-10-11 05:59 pm (UTC)Unless, per
no subject
Date: 2011-10-11 07:23 pm (UTC)For instance, I'm a sysadmin, and the code I write will never be seen by "end users", but will be worked with by other sysadmins. For me, A is most important.
If I was writing user facing code, I'd care more that it was easy and intuitive for the end users.
no subject
Date: 2011-10-11 08:07 pm (UTC)My job is not exactly a "computer programming" job though. For me, code is merely a tool used to do research, not something anyone else will ever use.
Having said that, I do place a high premium on documentation, because it helps when looking back on what I did a year ago. My code generally is about 40-50% comments.
no subject
Date: 2011-10-12 02:34 pm (UTC)Everywhere I have worked as a developer someone else designed the interface and the product was better for it.
Programmers are notoriously bad at UI.
Speaking as a guy who stopped coding about 15 years ago
Date: 2011-10-12 05:11 pm (UTC)Finally I agree strongly with