Ask HN: How has your profession affected your non-professional thinking?
Developing a habit of thinking like this is crucial for being a good programmer. However, this manner of imagining failure situations is generally bad in the real world. I notice myself doing it from time to time (more often I've been working a lot). Today I caught myself in an empanada shop wondering where I was going to go to get change for my 100 peso note if the empanada man didn't happen to have change (Argentina has a significant change shortage). I was worrying about this before it was even time to pay. It ended up being no problem at all. Had it been a "problem," I could have easily just found a solution after the fact and not wasted time being concerned beforehand. It wouldn't have crashed any servers, exposed private user information, or gotten anybody fired.
So, that example happened to be a negative one (although it's not so bad to train myself against). I can name plenty of positive effects too, but I'm more curious what other people have to say.
16 comments
[ 3.4 ms ] story [ 90.6 ms ] threadI've read about and experienced (as an investor) so many instances of other people lying/cheating/stealing in order to make extra money - it's amazing what CEOs get away with in public companies. And it's very sad to me that trustworthy/ethical CEOs are in the minority.
So now I tend to automatically think in terms of incentives and what the other side of a large money transaction will do, whether it involves buying/selling a house, inheritance issues, fund raising for a private school, etc. Sometimes, this thinking is not warranted - but it's automatic now.
The end result is quite mixed. On the one hand, it's a wonderful kind of optimism to look around and see opportunity everywhere, instead of something to gripe about. I used to wonder how people could really get excited about crazy futurists like Aubrey de Grey, but I now have that same optimism about humanity (if not, for this case, in my lifetime).
On the downside, I have a lot more trouble getting along with friends who have 'jobs', finding myself unable to be quiet when they do casual griping during a football game, and suggesting that they just go fix it. This is difficult, since it turns out that complaining is a pretty core part of how people casually relate to each other.
I like this question. Good stuff.
I take it you're single, eh? You just wait. It gets worse. :)
As a computer programmer, and particularly a hacker, I can't help but try and optimize everything. Every inefficiency or middleman causes an internal ticking, something that must be addressed before it causes further annoyance and costs people more money and time.
Regarding inefficiencies; most people tend to not notice them. Non-programmers look a a system and see something that either works or doesn't. As a programmer I see a system of variables that need to be tuned, or a process with discrete stages and actors, specific inputs and outputs.
Another pet peeve which is more specific to me and my experience designing user interfaces and user interactions is the assumptions that people make, often knowingly, before they even start a project. When building a UI for a touchscreen application, programmers and designers that have come from a more traditional software background will automatically map check-boxes to boolean inputs, and radio buttons to pick-one inputs, all while making the assumption there isn't a better way of getting input from the user. They won't consider sliding buttons (like those used on iphone and android phones) as a better alternative to a checkbox, or a selection list in place of a set of radio buttons. It is just as important to identify the reason for your assumptions as it is to identify the assumptions themselves. Often I find situations where assumptions are rendered invalid because people try and use them outside of the specific context in which they are created.
Never be afraid to question the status quo, especially when the only reason it remains so is because no one questions it.
For example, I talked to my girlfriend who convinced herself for some reason that she needs to lose weight. She mentioned a number of things she could do towards that goal. She wanted to start working out, or start counting calories, stop eating deserts, etc. My first instinct was that the first and most important thing you should do if you want to lose weight is: Buy a scale and weigh yourself every day. All the other things I viewed as secondary.
"Rig to flip, dress to swim."
The idea is that you assume you will flip in the first big drop and your boat will be upside down. So, you lash everything down sufficiently (use secure best practices), wear a flip-line to use to right the boat (have a disaster recovery path), and carry an extra oar (make backups).
As I learn to write web apps I find the required mentalities quite similar. However, I've noticed this mentality does not lend itself well to maintaining good relationships with less serious people. It's certainly a problem I'm currently struggling with (pretty much the classic "buzz killington").
EDIT: Spelled out analogies.
How do you deal with these people, over the longer term? To extend your analogy, do you (we, to generalize) let them drown?
I've "been nice" and "rescued" such people, only to have them bite me in the ass further down the road.
It seems to be fundamentally contrary to my nature and instinctive reactions, but when I reflect upon these circumstances from a distance, the rational choice seems to be to let them die off (metaphorically speaking, in the work/business environment) -- the sooner, the better.
Only, they are the better schmoozers. And in many environments I've been in, the schmoozing seems to win over competence. (There's always someone available to fix their mistakes.)
For myself, I think -- for reasons I won't delve into here -- I've failed to pro-actively leave such environments.
Back to your analogy: Perhaps I need to be on the class 4 and class 5 rapids, in part because the morons generally don't venture there. More challenge, yet -- perhaps counter-intuitively -- for this reason, less aggravation.
This has changed how I talk to people. I am an analytical person but consider it of utmost importance that my advice is given as diplomatically as possible. This means paying careful attention to the face, body language, and tone of voice of the main participants in a conversation. Any perceived discomfort signifies that a message should be recontextualised or communicated better retroactively.
"I bet they'd sell 30 more of their overpriced special meal every day if they had the chalkboard in view of the tables instead of right next to the door!"