He doesn't mention emacs-starter-kit, so as a community service, I'm pointing it out. I had used Emacs for a long time, and switching to this made my life much easier. And my customizations still worked fine (although I was able to remove many of them)
I would label it as "essentially correct". The odds are very slim that you will
a) Find gold in California
b) Become a rock star
c) Win a lottery
d) Strike it rich and famous as an 'entrepreneur'
e) Achieve above average, long-term gains by trading tulips
Yet, the selection bias that promotes these dreams doesn't deter anyone who is going to go that route.
I am the guy who is quoted in her blog post, and I don't really recognize myself in what she writes.
I want to be my own boss, do interesting/meaningful work, and at least have a shot at recognition and wealth. To me, starting my own company is the surest way there. Staying in TPS-land is a sure way to never get there.
'The Little Schemer' is not intended to be a tutorial on Scheme. To quote the preface, "The goal of this book is to teach the reader to think recursively". Similarly, the other books in the series have well-defined goals.
When I first read the comments here, I imagined Gabriel knocking his head on the wall, Charlie Brown-style. But the more I think about it, the more I think he might appreciate the layers of absurdity.
"Then I added a little padding time because everything always takes longer than expected."
If you are implementing something which is almost exactly like something you personally have implemented before, then your estimate will be almost exact because you should have tracked how much time you spent on the original ... and assuming that too was a re-implementation of something you'd already done the R&D on. IOW, this is at least your third time.
If you are implementing something for which you have references that are very close to what you are building (but you didn't build it) and you already understand them, then you can make a reasonable estimate of the time to implement. In this case the OP's advice works .... add some padding. The more granular your breakdown of the problem, the better you estimate will be.
But when there is R&D on the problem, you are not talking about 'padding', but 'factors'. If you are doing something that is new to you, but you think you have (or can find) decent references, then you can estimate based on how you hope it will go (based on your breakdown of the problem), and multiply by 2.
If you can't find references, then factors of 3 or 4 beyond your ideal development scenario will be more realistic.
It's worth noting that if you are in the last scenario, then you probably weren't a good choice for the project. Also, 'agile' pricing would be better, but either fixed pricing or giving clients some idea of what to budget is more typical.
I was making a joke using communist terminology. To be more direct, I don't think Steve is casting a dark cloud over the community, in fact the opposite metaphor is better: he's bringing some important issues to light.
I use a slide rule regularly. It is neither quick nor accurate, but it is useful in the same way that making approximate calculations in your head is useful. That is to say, added precision doesn't help you understand the relationships in a problem and speed can obscure some of what's interesting. However, this kind of thing is only entertaining and instructive for curious people.
"most children classified as 'dullards' by the education system just don't understand how to cope with the traditional model of teaching"
Can't say I was ever classified as a 'dullard' but my grade school scores indicated that I was. Even when I went to college, after a stellar start, my performance deteriorated. After considerable time, I was able to go back to attend a world-class university and excelled, largely because I had learned what the goal actually was. When I was young, I mistook the 'traditional model of teaching' for learning, which was something I was quite good at. The goal of being the recipient of 'teaching' (ie, a student) is to achieve higher scores than everyone else. In fact, learning is potentially an impediment because it requires critical thinking, and you won't get far as a student with that. Some students understand the real goal and do quite well. And some may even learn at the same time. Many others are simply frustrated or turn off completely, as I did.
Not at all. I agree with Spolsky about needing two monitors for GUI work, but otherwise more screen real estate pretty much equates with shifting your focus between contexts, which in my experience is what kills productivity. Knowing what you are doing is the biggest boost to productivity.
https://github.com/technomancy/emacs-starter-kit
WARNING!!! The version in git is for Emacs 24. You will need to actually download the earlier version to use with Emacs 23.