Rob Pike: The Best Programming Advice I Ever Got.
21–30 of 142 posts
Re: Rob Pike: The Best Programming Advice I Ever Got.
#22A professor of mine who worked at Bell Labs once made the same point. "In the old days we had to think a lot about how our punch card program worked because we'd only find out if it worked the next day. Nowadays you guys just throw crap at the wall and see what sticks. Find the middle ground."
Re: Rob Pike: The Best Programming Advice I Ever Got.
#23Same thing with interruption, it takes a while to rebuild the mental model after being interrupted.
Re: Rob Pike: The Best Programming Advice I Ever Got.
#24Also, I'm curious about something. Those of you who are good at building mentals models: are you also visual thinkers?
Re: Rob Pike: The Best Programming Advice I Ever Got.
#25You are only so smart. Once the complexity of the programming model reaches a certain point a debugger is necessary to validate and discover the true nature of a system. Often that point is quite low.
I've found that liberal logging and careful error management has almost replaced the debugger entirely. In the last three months, I've only fired up the debugger twice, and that was when I was working with untyped memory and peeking at memory through the debugger was the most efficient way to get things done.
Re: Rob Pike: The Best Programming Advice I Ever Got.
#26Re: Rob Pike: The Best Programming Advice I Ever Got.
#27A professor of mine who worked at Bell Labs once made the same point. "In the old days we had to think a lot about how our punch card program worked because we'd only find out if it worked the next day. Nowadays you guys just throw crap at the wall and see what sticks. Find the middle ground."
Re: Rob Pike: The Best Programming Advice I Ever Got.
#28Re: Rob Pike: The Best Programming Advice I Ever Got.
#29Earlier quoted context omitted.
Actually, I think it's a bit more subtle than that. By using stack traces and debuggers etc, I can come up with a working and correct solution. But, by thinking through the problem at a deeper level I can come up with an improved design which may simplify future programming and avoid similar bugs.
But one must also be careful not to fall into the trap of premature optimizations and building unnecessary complexity.