When people ask me how do you make it in show business or whatever, what I always tell them — And nobody ever takes note of it ‘cuz it’s not the answer they wanted to hear. What they want to hear is here’s how you get an agent, here’s how you write a script, here’s how you do this — But I always say, “Be so good they can’t ignore you.” If somebody’s thinking, “How can I be really good?”, people are going to come to you. It’s much easier doing it that way than going to cocktail parties.
-- Steve Martin on Charlie Rose
So you can write Java code that's object-oriented but C-like using arrays, vectors, linked lists, hashtables, and a minimal sprinkling of classes. Or you can spend years creating mountains of class hierarchies and volumes of UML in a heroic effort to tell people stories about all the great code you're going to write someday.
Perl, Python and Ruby fail to attract many Java and C++ programmers because, well, they force you to get stuff done. It's not very easy to drag your heels and dicker with class modeling in dynamic languages, although I suppose some people still manage. By and large these languages force you to face the computation head-on.
-- Steve Yegge
It's obviously important to do some amount of data modeling. What's not so obvious is when to stop. It's like commenting your code: newer programmers just don't know when to quit. When you're a little insecure, adding comments and metadata are a great security-blanket that make you feel busy when you've in fact stopped making forward progress and are just reiterating (or perhaps teaching yourself) what's already been accomplished.
"The way you get programmer productivity is not by increasing the lines of code per programmer per day. That doesn’t work. The way you get programmer productivity is by eliminating lines of code you have to write.
The line of code that’s the fastest to write, that never breaks, that doesn’t need maintenance, is the line you never had to write."
-- Steve Jobs