エンジニアの病気、うつ病にかかってる。

プログラマとエンジニア、並べて使われることが多いけれども、違いがよくワカラなかった。

アイデンティティ・クライシスを乗り切るために、ググってみた。

技能者としてのプログラマ

wikipedia

まずはじめは、wikipedia。客観的な説明がわかりやすい。

プログラマは、ことばのまんま。

コンピューターのプログラムを作成する人

日本ではプログラマーというが、海外ではプログラムコードライター(Program code writer)、略してコーダー(coder)といい

エンジニアは、言い換えると技術者。対して、プログラマは技能者と語られる。

技術者(ぎじゅつしゃ、英語: engineer、エンジニア)とは、主に工学(エンジニアリング)分野の専門的な技術を持った実践者のこと

技術者に類似した概念に技能者がある。技能者とは、機械の組み立てや精密加工などの、ものづくりの実作業を担当する者を指す

情報技術の分野では、プログラマー(狭義ではコーダー)は技能者とされ、分析・設計を担当するシステムエンジニア、プロダクトマネージャーなどの職種が技術者であるとされる

Yahoo 知恵袋

つづいて、知恵袋。これはわかりやすい。

簡単に建築に例えて言えば

大工:プログラマー

設計士:システムエンジニア

プログラマーは、SE(監督)の指示(仕様書)に従って

コーデイングします。コーデイングとは、日本語をコンピューター語に置き換える通訳のような仕事だと思ってください。

アンサイクロペディア

一見ふざけているようで、真実を語っているアンサイクロペディアによると・・・

プログラマー(英:programmer)とは、コンピュータをバグらせる犯罪者。主に高級言語という名のスパゲッティを作るための奴隷。

電磁波を全身に浴びつづけ、仕事中にインターネットを巡回するのが日課になったりと、年々体と精神が崩壊していく。鬱病の発生率は100%である

どれだけ独創的で便利なソフトウェアを制作したとしても、顧客に気に入れられなければ無価値であり、また「仕様変更」「仕様差し戻し」という名の人災(陰謀)によって、一夜にしてそれまでの仕事が無駄になる危険をはらんでいる。

と、ここまで調べて、どうも自分が思っているプログラマという言葉とは異なっているように思えてきた。ハッカーという言葉が、自分の思うプログラマという言葉にあっている。というわけで、ハッカーについて調べる。

ハッカーとしてのプログラマ

wikipedia

やはり、こっちだ。

ハッカー (hacker) とは主にコンピュータや電気回路一般について常人より深い技術的知識を持ち、その知識を利用して技術的な課題をクリア(なかったことに)する人々のこと

こうかくと、芸術家っぽい。

この言葉は、大規模な開発プロジェクトを何年にも亘って指揮してきた優秀なソフトウェア技術者に対して使用されるものではない。ハッカーとは極めて個人的な属性に基づいた呼称であり、その人物の間に合わせのアイデアや閃きを重視した言葉である。

How to become a hacker

有名な、サイト How to become a hackerから引用。

ハッカーは問題を解決し、物事を築きます。そして自由と自発的な助け合いを信条としています。ハッカーとして受け入れられるには、こういう姿勢態度を持つようなふるまいが必要です。そしてこの姿勢を持つかのようにふるまうには、本当にその心構えを信じるしかありません。

ハッカーと画家

ハッカーと画家という本を読んだ時の読書メモから引用する。

https://amzn.to/3CJ5g1w

ハッカーとは、優れたプログラマのこと。プログラマは職人。絵画を描くのとソースコードを書くのは同じこと。

すべてがコンピュータにどんどん置き換わっていく。21世紀のアーティストはプログラマなのだ。

ハッカーの目指すものは、すなわち美しいソフトウェアをデザインすること。全体像から次第に細部を描いていく。全体は細部からなり、細部は全体を形作る。

情熱プログラマ

つづいて、情熱プログラマからの読書メモ

ここでは、開発者という言葉が使われる。職業は人生を輝かせるための一つの手段。

誰もが光る部分をうちに秘めているが、それを発揮するにはやりがいのあることを見つけないといけないと思う。自分の環境や、自分の道具や、自分の専門分野を好きにならなければ、輝かしいことはできない。

ソフトウェア開発は、やりがいがあって、しかも報れる仕事だ。芸術活動のようにクリエイティブでありながら、具体的に数値化できる価値を生み出せる。

まとめ

ある言葉の意味を追求し始めるとそれは答えのないものなだから、自分で納得して自分で定義しなければいけない。定義することはすなわち、思考停止である。よし、ここらで定義して、考えるのをやめよう。

プログラマとは、

コーディングを通じて、新しいコトを創造する芸術家

エンジニアとは、

技術を通じて、顧客の夢を叶えるビジネスマン

プログラマは自分のためにプログラミングをして、エンジニアは顧客のためにプログラミングをする。プログラマは、エンジニアの仕様を満たす低級な存在ではなくて、自分のアイデアをコードで表現する存在。

自分は、エンジニアである。そして、プログラマになりたいと思う。そして、それは仕事を通じては実現できそうにない。せめて、昼間はエンジニアという社畜として働いても、プライベートではプログラマとしてありたい。

追記:2016/12/07 もっといい言葉が見つかった。私はソフトウェア開発者だ