プログラミングコードは、他の人とのコミュニケーション手段だ 。
プログラマはコミュニケーションが苦手?
あなたはもしかしたら、プログラミングは好きだけれど、他の人とのコミュニケーションや、日本語を書くことは苦手なエンジニアだったりしないだろうか。
プログラミングの名言
「コードというものは、たまたまインタプリタが実行できるだけ」
「本質的には他の人に対するメッセージであり、コミュニケーション手段だ」
というような意味の言葉を、どこかの本で読んだ記憶がある。
出展は忘れてしまった。
ユーリカ!
僕はこの言葉がすごく腑に落ちた。
たとえば、コードを書く時の作法として「コードは他の人が読みやすいように書きなさい」と言われる。
実行できるプログラムがまずあって、それが読みやすければ、ちょっとプラスだというような。
だけど逆だ。
プログラミングというのは、そもそも人へのコミュニケーションがメインであり、インタプリタが実行できることの方が、オプショナルなのだ。
ひとりでコードを書くときはどうなのかって?
君はコードを読まずにコードを書くなんていうことが出来るのだろうか。目隠し将棋ができるタイプだろうか。
自分でコードを書いて、それを一切読まないなんていうことがあるんだろうか。マジシャンか。
ここでいう他の人というのは、コードを書いている真っ最中の自分や、コードを書いてから1ヶ月経った時の、未来の自分も含まれる。
プログラミングと日本語を書くことの共通点
僕は日頃、プログラミングとは全く関係なく、ブログを書くのが好きだ。
Qiitaに記事を書くのも好きだ。
- プログラミングをすること
- ブログに記事を書くこと
- GithubのDescriptionを分かりやすく書くこと
- Pivotal Tracker に要件定義をまとめること
これは全て、根本の部分で共通していると感じる。
どれも全て、他の人や、自分自身とコミュニケーションするための手段だからだ。自己表現の手段だからだ。
だからプログラミングが出来るということは、非プログラミング言語(たとえば日本語)で自己表現ができるということでもあると思う。
逆に、非プログラミング言語をうまく扱えないのであれば、プログラミング言語を扱うことも、うまくいかなかったり、独りよがりなものになりがちなんじゃないだろうか。
(インタプリタぐらいであれば騙せるかもしれないけれど、複雑なアプリケーションは作れないかもしれない)
言いたいこと
- プログラミング言語を使うことと、日本語などの非プログラミング言語を使うことは、本質的には同じことだ。ただ表現の種類が違うだけだ。
- この共通点を感じ取ることさえできれば、プログラミングも、非プログラミングも、どちらも好きになれだろうし、上手になれたりするかもしれない。
- プログラミングすることは国語的文章を書くことだし、国語的文章を書くことはプログラミングすることだ。人と話すこともプログラミングだし、プログラミングは人や自分との対話だ。そこに大きな違いはない。
案
- コードリーディングをする時「これは、Aさんから俺へのメッセージだ」というような目線で見てみよう。コードに性格は現れる。
- コードベースについて、他の人と対話してみよう。コードが「人の考え」から生まれたものだと実感できるかもしれない。
- Qiitaに記事を書いてみよう。分かりやすい記事を書くのには、根本的な表現力が試される。
- 日本語でブログを書いたり、日記をつけたりしてみよう。システムエンジニアの仕事や、チーム論などについて書いてみても面白いかもしれない。やりたくなければ、もちろん、やらなくても良いけれど。
Wi-fi環境の良いスターバックスで、抹茶のティーラテを飲みながら
MacBookのキーボードを叩いたりして、恍惚の瞬間を感じられるかどうか、試してみよう。
脳が手指という外部デバイスを通して、コードやテキストをアウトプットしていく。
それを目が、ゲームと同じぐらい細かなフレームレートで、次々と脳にフィードバックしていき、複雑な反射が起こる、その連続した、偉大な瞬間。
それが分かれば、自分や人とコミュニケートしている時間の全てが、美しいと感じられるかもしれない。
物事の観察力を磨く方法
どうすれば、異なる物事同士の、本質が似通っていることに、気づきやすくなるだろう。
物事に対する根本的な観察力を高めるためには、瞑想、マインドフルネスのトレーニングがおすすめだ。
(練習をせずにゲームがうまくなるスポーツ選手がいるだろうか?)
瞑想するエンジニア ( by 稲浦悠馬 Yuma Inaura ) —GoogleやFacebookもやっている「マインドフルネス」のススメ— - Qiita
(まあきっと、君はやらないだろうけれど)
(もし興味があれば、ほんの、1秒だけ自分の呼吸を感じ取ってみよう)
あわせて読みたい?
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2018-10-26
Discussion