プログラマーとは何か

プログラマー
プログラマー

プログラマーとは

プログラマーとはプログラミング(=プログラムを書くこと)を生業とする仕事のことです。なんと厚生労働省ホームページにも定義が載っています。
https://shigoto.mhlw.go.jp/User/Occupation/Detail/313
>> システム開発において、システムエンジニア(SE)が作成した詳細設計に基づきプログラムを作成する。 <<
間違っているわけではありませんが、私見ではもう少し幅が広いように思います。大きな企業などで分業がしっかりとされている場合には、たしかにシステムエンジニア(SE)が設計を担当し、それをそのままプログラムに書き起こすのが仕事というところもあるでしょう。しかし小さな企業やチームではそれらを同じ人が行うことも少なくないはずです。

プログラムを作成する、という作業を実行する人を広義に「プログラマー」と呼んで良いと思います。

具体的には?

実際のプログラムの例を見てみましょう。

function template_preprocess_questionnaire_data_confirm(&$variables){
	global $facility_map;
	$variables['v']['fid'] = $facility_map[$variables['v']['fid']];
	$qs = new questionnaire();

	$variables['qs'] = questionnaire::$_q;
}

これはPHPと言うプログラミング言語の一つで書かれたプログラムの一部です。フォームに入力された情報をメモリのような領域に保存してから次のページを表示する準備をしています。

さて、そのような処理の書き方はこれだけが正解ではありません。無限にバリエーションが存在します。その「やりたいこと」をコンピューターがわかる形に書き換えて伝えるための方法を考えること、そしてそれを実際の文章?、プログラムのコードに書き起こすこと、それがプログラマーの仕事であり醍醐味と言えます。

方法を考えるということ

無限にバリエーションがある、とはどういうことでしょうか。例えば、1000円札一枚を持っている状態で、500mlで150円のコーラを1本買うと、お釣りがいくらになるかを知りたいとします。このような単純なことであれば正解は1つと言えるでしょう。必要な処理は

1000 - 150

となるでしょう。

ではもう少し複雑にしましょう。1000円札一枚を持っている状態で、500mlのコーラを1本、近隣の最も安い店で買ったときのお釣りを知りたい場合にはどうでしょうか?

1000 - x

ととりあえず1000から何かを引いた数を求めたいことはわかります。仮にxを入れてみます。でもそのxをどのように導き出すのでしょうか?検索をするのでしょうか、実際に近所の店舗に出向いて金額を調べてデータベース化しておいてその金額をxとして使うのでしょうか。

別の例を考えましょう。ショッピングの注文フォームに入力する電話番号に出来るだけ誤りがないようにしたい、という問題があるとします。どう解決するでしょうか?

全角の数字(0の代わりに0、7の代わりに7のような)を入力させないようにフォームの文字入力フィールドに半角しか受け付けないという制限を課すこともできます(ブラウザによっては動きませんが)。

電話番号として有効な10桁か11桁以外の数字はエラーにする、ということも出来ます。

最初の数字が0であることを確認することも出来ます。

もっと厳密にしようと思えば、電話番号が入力された後に実際にプログラムから電話を掛けてつながるか確認することさえ出来ます。

確認方法を考えたり、それを実際にプログラムのコードに起こしたりすることがプログラマーの仕事です。複雑になればなるほど工数、つまりプログラマーの作業時間が増えます。それが増えると費用(プログラマーの人件費)が増えたり、スケジュールを圧迫して他の作業の時間が取られます。ですから何でも全部乗せで行うわけには行きません。

前述のシステムエンジニア(SE)が機能していれば、そのへんの判断や仕様作成(どのレベルまで電話番号の入力が正しいかのチェックをするのかなど)をしてくれます。そうでない場合は自分で判断することになります。

プログラムのコードに書き起こすということ

方法が決まったら、プログラマーはそれを書き起こすことが必要です。英語でメールを送りたいという場合でも、内容は決まっていても英語話者に理解できる英単語や最低限の文法が合っていないと伝わらないのと同じです。

コンピューターに対しては、それをプログラミング言語を使って伝えます。また文法は完璧に合っていないと使えません。

それで文法チェッカーのようなものを使って書くことが一般的です。それらをIDE(Integrated Development Environment、統合開発環境)と呼びます。

f:id:kyart:20210713111112p:plain
IDEの例

コロンが文末に抜けている、クォーテーションマークが閉じていない、などの文法の誤りをその場で指摘してくれます。ただしチェックしてもらうためのプログラムは自分で書けないと使えません。

プログラマーとは、最低1つはプログラミング言語を知り、それでやりたいことを表現する方法を知る人なのです。