輝々凛々

ガンバるってことは、素晴らしい事だ。

プログラマの真実

プログラマじゃないひとにとって、プログラマという職業は謎だろう。そこで、私(社会人9ヶ月)がざっくり説明してみます。間違いがあるかもしれないのは、ご愛嬌。

職業プログラマ

では早速、私の感じるプログラマがやっている仕事の内容をざっくりリストアップします。

  1. 会議する/相談する
  2. サポートする
  3. 名前を決める
  4. 仕様を決める
  5. アルゴリズムを考える
  6. ネットする
  7. プログラムする

まぁ、こんな感じです。あ、このリストの上にあるものほど裂いている時間が多いと感じるものです。

1番多い業務は、明らかに会議や相談をしている時間が多いのです。会議の内容とかは、主に仕様の検討であったり、今後の開発方針であったりしますが、とにかく会議が多いと思います。

次にサポート。顧客からの機能拡張や、電話対応、Q&A的な対応も多いです。たいていはプログラムを変更せずに対応できるため、実質的にはメールを書いている時間と等価です。

さて次が「名前を決める」です。これはプログラム中の話なんですが、プログラム中で出てくる変数名や関数名、クラス名やマクロ名などを考える時間です。この「名前をつける」だけの時間が多いことは、プログラマじゃない人にとっては不思議に思えるかもしれないです。しかし、膨大なプログラムソースの中で名前が重ならないようにとか考えないとダメだったり、後でも見直しても思い出せるような名前をつけるようにしなきゃいけなかったりと、結構大変なのです。ま、私が遅いだけかもしれませんが。

次に、プログラムの本質的な部分で「アルゴリズムを考える」です。ようは、パターン化です。たとえば10枚のカードから2枚抜くと何枚かって問題なら8枚でしょう。これと同じ考え方で解ける問題もありますよね。つまり「12枚のカードから3枚のカードを抜くと残りは?」だって同じ方法で解けますよね。この解放のパターン化がアルゴリズムです。パターン化できれば、同じ種類の問題であればどんな数字がきても問題を解くことができるのです。で、これが結構楽しくて、難しくて、苦しい時間だったりします。解けると、やっぱうれしいです。

お次が「ネットする」です、はい、ごめんなさい。

最後にようやくプログラマの本分と思われている「プログラムする」です。ま、つまりはキーボードを打ってる時間をさしています。さっきの「アルゴリズムを考える」時間でプログラムというのはほとんど終わっているのですが、実際問題、成果物を出さなきゃならないので、ここでプログラムする作業が入ります。もちろん、タイプミスなんかもありますし、コンパイル作業なんかも入ります。

まとめ

どうでしょう、職業プログラマの仕事内容がわかっていただけたでしょうか? 逆に職業プログラマの方にはうなずいていただけたでしょうか? 「こんなもんじゃない!」とか「チガウチガウ」とかご意見がありましたら、どうぞお気軽に「ツッコミ」を。

関連記事

ツッコミの投稿


(ツッコミ非公開の場合はチェック)