3 ms·
I am 60 and still cannot believe that people will actually pay you to play with computers and robots all day long! The robots I play with know how to breathe a
by gregfjohnson 12y ago
I am 60 and still cannot believe that people will actually pay you to play with computers and robots all day long! The robots I play with know how to breathe air, which involves a lot of interesting fluid dynamics in addition to all of the other interesting things that go into building and playing with robots. (The technical term for these robots is "intensive care unit ventilator".) I love and am probably addicted to programming. RE debugging: while the rush of relief and victory is satisfying when a problem is found and fixed, I find these days that it is more fun to do technical things differently. Consider a Venn diagram with two overlapping circles to describe a given technical problem. Circle A is "have something working happily, but may be overly simplistic." Circle B is "covers the real problem domain adequately, but may be buggy." The intersection is where you want to be. The question is, from which direction do you approach the intersection? I used to start from Circle B and debug to the intersection. Now, I start from Circle A and stay happy/working, expanding that state until it gets to the intersection. Especially in pair programming I find this to be the best way to go. If two pairing partners are "lost in the woods" trying to debug a problem, they can start stepping on each others' toes and get really unhappy. On the other hand, if they are collaboratively growing an ever-expanding "working/happy" program, things usually go an awful lot better. Related topic: I've come to realize that I am good at "really easy" mathematics, and bad at "really hard" mathematics. So, in struggling with a math problem or new area, my instinct is to massage and massage until the problem magically transforms from "really hard" to "really easy". Just last week I had that huge sweet "AHA" rush. In lambda calculus, there is a cute trick called Church numerals that allows you to encode the non-negative integers as functions. The functions to add, multiply, exponentiate, etc. are all easy, but the function to take the predecessor of a Church numeral is really tricky. I knew the predecessor formula and could mechanically apply it, but did not have any clear insight at all as to how or why it worked. Finally, KAPOW! Came up with a beautifully straightforward, satisfying, and intuitive way to derive the predecessor function of Church numerals.