in reply to Discipline

My discipline comes in the form of reading, and then rereading the material (assuming that you're gaining your knowledge from books, of course :) until I'm quite sure that I understand well what I've just covered.

This worked well for me as a chessplayer (formerly a top-ranked junior) and seems to now as a programmer (I graduated college with a 4.45 GPA :). In chess, I would often work much harder than those around me. I usually didn't go out much the week before a tournament (or two weeks sometimes), spent about 2 hours a day studying and playing games. I once spent 6 months reading a single chess book ("How to Reassess Your Chess", by Silman), but it was an excellent learning experience. I ended up quitting playing competitively though when I realized that the committment it would take to get where I wanted far exceeded my desire to get there, kinda like rchiav says.

I do the same for programming, but tend not to read books twice through as often anymore. I did spend about 1.5 months on reading Learning Perl though, carefully going through almost all the exercises, and here again, patience and desire paid off: I picked up a lot from it.

Now, in my day job, which pays me to write Powerbuilder (eeeek), I still keep the same work ethic/discipline. My supervisor and I are pretty much the only programmers in the place that actually *gasp* read programming books outside of work. Scary to think that some of the programmers (okay, one I think) I work with don't even KNOW what FTP stands for, and think that XML is a file transfer protocol.

Perhaps they should be disciplined. =]

(If any of my coworkers happen to read this, I'm kidding :)