4 ms·
Yeah, but it's also really bad for sleeping patterns. Countless times I've started to address a bug in the evening only to find it spirals down into some obscur
by cup-of-tea 9y ago
Yeah, but it's also really bad for sleeping patterns. Countless times I've started to address a bug in the evening only to find it spirals down into some obscure feature I didn't even know existed. After hours of thinking and learning more about the language/tools/computer than you thought there was you feel great, but it's 3am.
In my experience there are only two ways to really learn about programming: teaching and debugging.
- tonyarkles 9y agoAnnnnnd... that's how I ended up solving a really stupid bug last night at 2am. I'll add curiosity to stubbornness too. I very much have to understand how a system is actually working before I'm willing to call it quits and call something successfully debugged. I've definitely worked with folks in the past who don't have that drive; they're more concerned about making it work than understanding why it does/doesn't work. My revelation last night was "deep in this (internal) library, a URL is being manipulated using a badly conceived regex, and that's why this URL is getting mangled". The curiosity to understand it on a deep level pretty much defined my academic career too. I'd already been programming (in some capacity) for about a decade by time I turned 18 and finished high school. Computer Science was a pretty obvious career path. But I ended up doing an EE/CS dual major, entirely because I wanted to understand the pieces below software as well. A few years after undergrad, I realized that a lot of people struggled to debug complex "cloud" systems, and went back to do an M.Sc. to study the problem more carefully. (And, per cup-of-tea's comment, I spent a fair bit of time during my M.Sc. teaching as well, including taking on a Spring & Summer session 200-level CS course as a sessional lecturer)
- jacquesm 9y ago> but it's 3am. Where do I sign? When I get really stuck on a bug it's sometimes taken weeks to solve in a never ending game of software dominoes. In very rare cases it ended up being a bug that you could only solve with a soldering iron and some creative rewiring of interrupts. Bugs can be crazily obscured. To the point where you wish you hadn't started but the sunk cost of time invested is such that there is no way back either. This is one of the reasons I was so happy to switch to Unix (and later Linux), the fact that in most cases the program crashes with a core file and access to post mortem debugging (and in many cases a nice stacktrace of how you got there) made short work of most of the bugs. Of course that means you now only have the hardest categories to deal with.
- checkdigit15 9y ago> To the point where you wish you hadn't started but the sunk cost of time invested is such that there is no way back either. "All causes shall give way. I am in code Stepped in so far that, should I wade no more, Returning were as tedious as go o'er."
- jacquesm 9y agoAnecdote: fix the root cause of some really hard to get to bug only to realize you forgot what the highest level problem was.
- tonyarkles 9y agoAre you me? :D
- qznc 9y agoI don't do that anymore. As a father of small kids this is simply not an option. My substitute is to externalize my brain: Write things down. Journaling. Blogging.