プログラマーってどんな仕事?

最近よく、プログラマーは稼げるとか、フリーランスのプログラマーになろうとか、そういう文言が目に飛び込んできます。そもそもプログラマーってどういう仕事なんでしょうか。

スポンサーリンク

プログラムを書くお仕事

プログラマーはプログラムを書くお仕事です。プログラムってのはこういうやつですね。

public quaternion rotation2Quaternion(double[] axis, double angle)
{
    quaternion result = new quaternion();
    double half_angle = angle / 2;
    result.m_w = Math.Cos(half_angle);
    result.m_x = Math.Sin(half_angle) * axis[0];
    result.m_y = Math.Sin(half_angle) * axis[1];
    result.m_z = Math.Sin(half_angle) * axis[2];
    return result;
}

こういう謎の呪文を書いて、コンピューターを意のままに操るお仕事です。

コンピューターはわがままです。そして基本的にアホです。さっきの謎の呪文が1文字でも間違っていたら動いてくれません。画面が真っ白になっちゃいます。

その点、日本語というのは少しくらいおかしくても大体読めます。人間というのは高度な知能を持った生き物なので、ちょとっくらいことがばおかくしてもよぬますよね。

何が言いたいかというと、こういう謎の呪文が大好きで、1文字も間違わずに正確にプログラムを書く泥作業が苦でなく、それによってピコーン!とコンピューターが反応することに快感を覚える変な人が、プログラマーに向いているというわけです。

プログラミング言語と日本語を相互に翻訳する仕事

実は、これがプログラマーにとって最も重要なことです。

さっきのような謎の呪文を書いたとき、社内の上司や取引先のお客様にその内容を説明しないといけなくなる場合があります。それを

これはquaternion型の変数resultをnewしたあと、result.m_xにhalf_angleのcosを代入してます

なんて言ったら「???」ってなってシバかれます。いや、シバかれはしないけど、何言ってるのこの人? って思われるだけです。仕事というのは人と人とのコミュニケーションが大切。コミュニケーションが取れないと仕事が上手くいかず、せっかくプログラミングは完璧なのに「全然できない人」と評価されてしまうこともあります。

プログラムを書いてるときは、頭の中はコンピューターと対話する臨戦態勢モードになっているんですが、人と会話するときはそれを日本語に翻訳しないといけません。

これは3次元の回転を表わすquatenionとか四元数と呼ばれる特殊な複素数を生成しています。回転といえば回転行列で表わすっていうのを線型代数で習ったりしますが、計算するときは回転行列を使うよりquatenionを使ったほうがラクなんすよ

おお~、そ、そうなのか~。それだと処理速度も速くなりそうだね。チミを部下に持ってよかったよ、次からもよろしくね。

っとなるわけですワ。技術系上司じゃなくて、もっと普通のお客様に対してなら、

計算がラクで速くなるようにしてます

だけでも十分かと。とにかく、相手に合わせて適切な日本語に翻訳していくことが大事だと思います。コンピューターとはコンピューター語で会話し、人とは日本語で会話する。それがプログラマーという仕事の本質だと僕は思います。

プログラマーって儲かるの?

知りません。

プログラマーって儲かるの?

ごめんごめん。でも、儲かるかどうかで仕事を決めるのは、なんかちょっと違うかなーと思うわけなんですよ。

儲かるかどうかで仕事を決めるなら、それこそマグロ漁船に乗ればいいし、謎の爆弾を処理すればいいし、政治家にでもなればいい。法律を度外視すれば、白いお粉を売る人になってもいい。いや、それはあかんやつや。うどん粉ならいいよ。

体力的な適性や知力的な適性、どれくらい過酷かなどを考慮した上で、収入と相談して仕事を決めるわけだよね。そこで一番大事になってくるのは、その仕事か好きかどうかだと思うわけですよ。

「好きこそものの上手なれ」っつってな、その仕事が好きだと長続きするし、その仕事の枠内でより大きく稼ぐにはどのようにしたらいいかと考えることが苦にならない。むしろ楽しい。だから結果として、儲かるというわけですね。

最近のお誘い文句

プログラマーは稼げるとか、フリーランスのプログラマーになろうとか、そういう最近よく目にするお誘い文句の横に、必ずセットで書いてある言葉があるでしょう?

自由な時間を使ってカフェで優雅にプログラミング
ウェブ時代にこそプログラミングスキルは求められている

まぁどっちも間違いでは無いんですが、会社での激務に疲れたサラリーマンをくすぶるキーワード「自由な時間」「ウェブ」ががっつり散りばめられてるんですよね。そしてそのキーワードに素でマッチするのが、プログラマーというわけなんですよ。

ちゃんとプログラマーとしての適性があれば、然り、その通りなんですが、論理的な思考が苦手だったり丁寧な泥作業が苦痛だったりすると稼げません。そりゃぁ当たり前の話です。例えば僕は運動能力が壊滅的にアレなので、サッカー選手になろうとしたってなれません。チームくらいには入れてもらえるかもしれませんが、8軍ぐらいで一生ベンチの給料ゼロとなるのがオチでしょう。

まぁでも、やってみたら意外と自分の性に合ってたってこともあります。チャレンジすることはとても良いこと。自分の適性なんてのは、自分自身でも意外と全然わからないもんですよ。

ただし。フリーランスの場合だと、仕事を契約した後で「できません」なんてことは許されません。会社員としてプログラマーを始めた場合でも「できません」って言ったらクビです。会社員の場合ならそれは採用した会社側の責任なので自分はクビになるだけで済みますが、それでも会社に迷惑をかけたという事実は残ります。

いずれにしても、チャレンジにはそれなりの社会的に責任が伴うということです。そこのところを忘れて、覚悟も何も無い「チャレンジ」ばかりを口にしてると、信用が失墜しますぞ。

結局どんな仕事も同じ

世の中には「稼げる仕事なら何でも耐えれる」という人も確かに居ます。でも、多くの人はやっぱり、苦痛を伴う仕事はしたくないものです。僕だってそうです。

好きこそものの上手なれ。

どんな仕事が儲かるか考える前に、どんな仕事が好きなのかを考えてみるといいんじゃないでしょうか。

スポンサーリンク