
Rules of a Zen programmer - karterk
http://www.grobmeier.de/the-10-rules-of-a-zen-programmer-03022012.html
======
unoti
Related to this is the no-complaining bracelet challenge, which I think has
been mentioned here before. I've been doing this challenge, and finding it
life-changing. The idea is to wear a bracelet, and never complain. If you
complain, you must change the bracelet to the other arm. The goal is to go for
30 days straight without complaining. It’s surprisingly hard to do. At first I
thought it was stupid, because it’s what going on inside your brain that
counts, and not giving it voice surely wouldn’t make any difference. But I
found that it makes a huge difference. The act of not complaining, never
complaining, retrains your brain to think about what you truly are in control
of, and what you are not in control of. It helps translate hardship into
either actively making the situation better, or not thinking about it. That’s
really all anyone can ever do, but having the option to complain makes that a
lot cloudier. Going the full 30 days without complaining, I’ve learned, cannot
be done without totally retraining the mind to see life differently. I
heartily recommend it to anyone.

Keeping a journal about when I complain taught me someone very important about
myself that has also helped me cope and not get overwhelmed. The times that I
complained, I discovered, tended to be when I hadn’t had enough sleep or food.
I’ve structured my life around making sure that I get plenty of sleep, and
that I eat regularly.

Training myself not to complain has really helped me not get overwhelmed and
reduced my stress quite a bit.

~~~
eliam
I never heard of this. It sounds like a really cool experiment. I might have
to try this out with my watch. I don't wear bracelets and I don't plan on
starting.

~~~
unoti
I don't wear bracelets either. I don't wear a watch. I'm a minimalist, and
find such accessories very annoying. So wearing the bracelet became my very
first constant reminder of something not to complain about.

As consolation to myself, I use a paracord bracelet that could be disassembled
into survival equipment of a thousand uses if needed.

------
Daishiman
Upvoted for actually citing and expressing some knowledge about Zen
philosophy, unlike many of the mentions used everywhere that attempt to
cheapen it.

~~~
mmatants
Indeed. Contrast that with the "cleverness above all else" geek ego push,
commonly found on discussion sites such as this.

Abandoning appreciation for "programming skill" has helped me be much happier
and more efficient in just getting things done.

------
mtrimpe
P.S. I once bought zengram.com and zengramming.com with this exact topic in
mind.

If you want to start a blog/website about this topic, let me know and I'll
hand them over for the greater good.

------
losvedir
I actually rather liked this. It did seem more authentically zen (not that I
can say for sure) than a lot of the "zen" stuff out there.

That said, the phrase "as good as you can" occurred five times and was quite
distracting. It should be "as well as you can" to be "grammatically" correct.
(I'm generally a 'descriptivist' rather than a 'prescriptivist', meaning if a
native English speaker says it, then it's okay, but it looks like this author
is not one, so I figured I should point it out.)

~~~
grobmeier
Thank you, I have updated my post with your corrections. And you are right, I
am not a native speaker.

~~~
seiwyn
It is better now, but amusingly - "The other guy is not as well as you, but
better with bowling.", in this case it should be "The other guy is not as good
as you".

Great article, though.

~~~
grobmeier
Ups - thanks, fixed that too. I was definitely not focused enough. The whole
feedback on this post is just overwhelming.

~~~
bobz
Cheers for taking the time to respond to feedback and learn.

Also, props on how strong and well written the English is in general!

And, most importantly, loved the article. :)

(I thought this whole thread was a good example of how to actually do good
feedback. )

~~~
grobmeier
Thank you for the kind words. It is actually very difficult to estimate if the
article is well written or not if you are not using you mother tongue (at
least this is how I feel about it). So I consider your comment very
motivating!

------
rytis
_to work for nuclear power companies – it is against my ethics_

I just wonder why?

~~~
rnernento
Yeah, I could understand a company that makes nuclear warheads but I don't see
the connection between nuclear power and tanks. I think the author either
isn't informed about the possible positive aspects of nuclear power or meant
to say something else.

~~~
aaronblohowiak
REasonable people can object to nuclear power because 1) no matter how good
the safety systems are, no safety engineer will claim a 100% safe system;
there is always a balance of probabilities and 2) nuclear waste isn't fun. I'm
not suggesting that these drawbacks outweigh the positive, just that I could
see how an informed person would say that the risk of nuclear catastrophe
(however minute) is not worth the benefits (however great.)

~~~
dedward
we cant even convince otherwise informed, intelligent people to keep adequate
backups, by-and-large. the list goes on forever. gun control laws? abortion?
in-vitro fertilization? Women with equal voting rights?

so you hit nail on the head.... and when it comes to nuclear facilities, no
small amount of amrchair stats are enough to make truly informed risk/reward
calculation, and given the risk part generally includes components involving
death and destruction on a fairly large scale, shot and long term, and given
we all put our own values on human life and all that, for some no amount of
losses are acceptable. Im not agreeing or disagreeing either - thenerd side of
me feels then same way - "smart people should be able to se this is our best
option" - the zen side of me says there is ia much bigger picture at stake,
one i am not currently involved in , and its also not a decision i am
personally faced with right now, so im sort of wasting my time even writing
this post, right?

Zen version: is any discussion here going to have an impact on large scale
nuclear policy at this point in time, one way or the other? If not, it is a
pontless avenue of discussion, we can all go focus on something more important
to us individually, whatever that is. right?

------
ScottBurson
Posting belatedly, but I _really_ disagree with the "no career goal" item.

Doing a good job on today's tasks is very important, that's true. You don't
want to live in the future and neglect the present.

But unlike chopping wood and carrying water, in this industry the work is
always changing. If you don't maintain a healthy sense of progress toward a
future, you're likely to miss opportunities for jobs that would be lots of fun
and teach you a lot. In the worst case, your skills will go stale and you'll
get sidelined.

Also, I think having clear career goals makes it easier, not harder, to leave
a situation that is not appropriate for you. If it's not serving your goals,
find something that will.

------
reuser
I like the part about ego because too much of the programming (sorry,
"engineering," no wait I mean "architecting") world is focused on a kind of
dick-size comparison which is somewhat poisonous and skews things toward self-
promotion and away from doing useful things and enjoying yourself.

Programming is a joy when I can just let the task take care of itself as I
watch. I can do this in amateur or "hacker" settings but I see less and less
of those these days.

It makes me unhappy when programming is a prop or setting for selfish and
self-conscious and mean social behavior, as it seem to be more among people
who take it as a profession more than a passion.

------
AznHisoka
This was very refreshing to read. I agree a lot with the sentiments, and some
of it can help with entrepreneurs, like not grasping for any future goal, and
enjoying the process instead.

------
russianbandit
Great article! Reminds me of "Zen mind, Beginners mind" book.

~~~
grobmeier
Actually this book has influenced the "beginners mind" item.

------
j45
I like. Creating for the sake of creation is what allows innovation.

------
eliam
Great read! I was starting to lose faith in all these "zen" life tips. This
was a good one.

------
littlemerman
Made my day a little better. Thanks.

------
michaelochurch
Something I've noticed in software is that 95% of the anger and strife comes
from the (largely male) impulse to react to unskilled creativity (or the
_perception_ thereof, because the most dogmatic technology wars come down to
superficial perceptions-- e.g. tabs vs. spaces) with extreme negativity.

That impulse is even in our language. We say someone "jacked off in" or "took
a dump in" the code base when he did something "clever" but unskillful and
damaging. It's an epithet of self-indulgence and even sabotage when a more
appropriate reaction is, "I wish he hadn't done that, so let's sit down and
teach him better practices".

It served us well when we had to stop people from poking sleeping mammoths and
smilodons with sticks, but it's outdated now (for the most part). Code
indentation is not an existential issue for most software companies.

Don't get me wrong: I dislike spaghetti legacy code as much as anyone else. I
mean, it's truly horrible to look at. And one only need review my history to
see what I think of the Java and C++ languages. I just think reacting
_emotionally_ is a bit unskillful. (I can't use a stronger word than
"unskillful" because I do it myself.) I think we'd be a lot more productive
(and this is largely a self-criticism) if we could take stock of our mental
processes and turn "code rage" off.

Relatedly, I think we'd be better off as an industry if there were more women
in it, but that's another discussion entirely.

~~~
angrycoder
At my last job, everyone was always bitching about the young developers. After
months and months of hearing this, I started pulling the new guys aside for an
hour a week to do mentoring sessions. We'd sit down and do some coding on a
simple topic (how to sort a datagrid, how to hook into the event that fires
when a row is created, how to standardize your data validation and error
messages). The big take away for them was they got see the process, how a more
experienced developer works. Stuff like did you know that shift-control-b
builds your solution... you should be pressing that every 5 minutes. Or coding
up a quick and dirty solution and using simple refactorings to turn it into
something more real (mostly extract method and rename).

I'm not going to sit here and say that there is no such thing as a bad
developer that is beyond help. I do think in some cases though it is a matter
of people not doing their due diligence in helping people out. I can't help
but think that part of it is that we developers spend a lot of time on the
internet where the base mentality is that everyone is either a n00b or a pro.
Either I agree with what you said or you are clearly a moron. It is important
to not let that kind of stuff trickle into our 'real' lives.

~~~
msutherl
This is really important – I think every organization should do this. At my
last job I learned so much from watching more experience people code and
asking them questions. Now I volunteer my knowledge to others whenever I can
because I know how much it helps.

