銀河鉄道

プログラミングのストレスを軽減する3つの価値観【Imprementation Patterns】

サムネイル
コミュニケーションシンプル柔軟
Values
価値観が
成果を生む

While programming it’s tempting to think only of the computer. 
However, good things happen when I think of others while I program. 
プログラミングをしていると、コンピューターのことだけを考えたくなる。
しかし、プログラミングをしながら他の人のことを考えると、良いことが起こる

imprementation Patterns

パソコンとの対話が楽しいんだけど

実は、他者との対話を楽しむほうがいい

Communication – think of others –

他の人のことを考えると起こる、良いこと

  1. It is easier to read
    • 読みやすくなる
  2. It is more cost-effective
    • 費用対効果が良くなる
  3. My thinking is clearer
    • 思考が明確になる
  4. My stress level drops
    • ストレスが少なくなる
  5. I give myself a fresh perspective
    • 新鮮な視点が自分の中に生まれる
  6. I meet some of my social needs
    • 社会的ニーズを満たせる

なぜ、そうなるの

話すことで気づけることがあるから

自分の頭の中にあるものは、いつだって複雑すぎる

Every time a bit of logic was a little hard to explain,
it was easier to rewrite the code than explain why the code was hard to understand. 
ちょっとしたロジックを説明できないとき、
頑張ってコードを説明するよりも、コードを書き直してしまうほうが簡単だった。

imprementation Patterns

複雑さを思い知ったときに、シンプルさを目指すようになる

一人で仕事してる場合は、考えるだけでもいい

「他の人がこれを見たらどう思うだろう?」

When I think, “How would someone else see this?” 
different neurons are firing than when I’m just focused on myself and my computer. 
「他の人がこれを見たらどう思うだろう?」と考えるとき、
自分とコンピューターだけに集中しているときとは違うニューロンが発火する。

imprementation Patterns

実際の会話があるかどうかではなく、考えるかどうか

考えてみるだけで、ストレスは劇的に変わる

コミュニケーションには realistic(現実感)がある

Focusing on communication improves thinking by being more realistic. 
コミュニケーションにフォーカスすると、
(うちに閉じこもった妄想に比べて)現実感が生まれるため、考え方が改善する

imprementation Patterns
Realistic(リアリスティック)
  • 現実的な、現実に近い、現実に即している
  • ものや状況が生き生きとして、生活感や実在感が感じられる
  • 生きている実感がある

自分だけになると、妄想や架空の世界に入りがち

realisticは脳を活発化させる

  1. 脳の活発化
    • Engaging more of my brain. 
  2. ストレス緩和
    • The reduced stress of knowing that I am taking care of business, doing the right thing. 
      ビジネスに責任をもっている感覚、正しい行動をしている感覚が、ストレスを軽減する
  3. 生きる実感
    • As a socially oriented species, explicitly accounting for social issues is more realistic than working at pretending they don’t exist.
      社会的な動物の一員として、社会問題にきちんと向き合うほうが、それを無視して働くよりも、生きている感覚がもてる
a socially oriented species
  • 社会的な性質を持つ生物種
  • 群れを形成し、相互に協力して生活する生物種

つまり、集団への貢献が人間の本能

だから、コミュニケーションが価値観の第一項目

プログラミングにおける3つの価値観 – values –

These values —communication, simplicity, and flexibility
color every decision I make while programming.
3つの価値観(コミュニケーションシンプルさ柔軟さ)が、
プログラミングにおける全ての決定を色付ける

imprementation Patterns

“values” とは、人が大切にする道徳的な原則

  1. Communication
    • コミュニケーション
      • communicating with other people
      • 他者との会話
  2. Simplicity
    • シンプルさ
      • removing excess complexity from my code
      • コードから過剰な複雑さをなくす
  3. Flexibility
    • 柔軟さ
      • keeping my options open
      • (将来起こりうる)選択肢を開いておく

プログラミングのベースは、実は道徳だった

人がいるから、Values(道徳)が必要になる

Simplicity

  • The less excess complexity, the easier a system is to understand. 
    • 複雑さが少ないほど、システムは理解しやすくなる
  • The more you focus on communication, the easier it is to see what complexity can be discarded. 
    • コミュニケーションに集中するほど、捨てるべき複雑さがわかる

コミュニケーションによって、シンプルさが生まれる

人がいるから、複雑さが気になってくる

ときにはシンプルさを放棄することもある

Sometimes, however, I find a simplification that would make a program harder to understand. 
I choose communication over simplicity in these cases.
ときには、シンプルさによってプログラムが理解しづらくなることもある。
このような場合、私はシンプルさよりもコミュニケーションを選びます。

imprementation Patterns

人が理解できることが第一優先

やっぱり、コミュニケーション

Flexibility

柔軟さとは、選択肢が多いこと

The best programs offer many options for future extension
ベストなプログラムは、将来起こりうる変更に選択肢をもたせる

imprementation Patterns

「将来、変更する人がいる」という他者視点

けっきょく、コミュニケーション

I didn’t want to deal with sticky, inexplicable, annoying human beings. 
Programming as if people didn’t really exist paled after only a couple of decades.
Building ever-more-elaborate sugar castles in my mind became colorless and stale.
私は、面倒で厄介な人間関係を避けたかった。しかし、まるで人間が存在しないかのようなプログラミングは、数十年後には退屈になった。人間を無視した知的な追求は、無味乾燥なものとなった。

imprementation Patterns

自分とパソコンだけの仕事をしていると空虚になる

数十年の結論となると、感慨深い

価値観 – values – とは
think of others
while you program
他者を考えたプログラム

著者

author
月うさぎ

編集後記:
この記事の内容がベストではないかもしれません。

記事一覧