私はプログラマー歴5年程度だが、そんな私が感じるプログラマーについて、簡単にお伝えしたいと思う。
プログラマーとは???
プログラマーとは、C言語やJava、PHP、Python等のプログラミング言語を使用してプログラム(機械に対しての命令)を組みシステムやソフトウェアをつくる仕事のことを示す。
今見ているこのページやスマホのアプリ、ゲーム機や家電製品等様々なものの中でプログラマーがつくったプログラムが動いている。
そのため、目には見えずわかりづらいが多くの人の役に立つものをつくることができるという点で非常にやりがいのある仕事だと私は感じている。
例えば、Webページを作成して公開すれば全世界の人に影響を与えるものを発信できるし、家電製品等に組み込まれているプログラムをつくるにしても、メーカーによっては全世界で販売しているため、ここでも全世界で役に立つものをつくることができる。
逆に言えば、何かをやらかしてしまうと大問題となる可能性を秘めており、大きなことをしようとすればするほどリスクが大きくなるが、これはプログラマーに限った話ではないためそれほど大きなデメリットではないと考えている。
SEとの違いは???
SEとの違いは、SEはシステムやソフトウェアの構成がどのようなものなのかというのを人に対して提示する仕事のことを示す。
プログラマーはSEが示した構成(設計書)を機械が理解して動作できるようにプログラミング言語で動作を説明する。
ざっくりとだが、SEは人に対して、プログラマーは機械に対してという点が違う。
経験が長くなるとプログラマーやSEの境界が曖昧になり、SEなのにプログラミングしたり、プログラマーなのに設計をしたりとなるが、一般的には上記のような分け方になる。
プログラマーに向いている人はどんな人???
私が思うプログラマーに向いている人についてお伝えしたいと思う。
根気がある人
まず、最初は根気がある人である。
なぜなら、プログラマーはものすごく気の遠くなるようなことの繰り返しだからだ。
つくるシステムによって異なるが、何万、何十万、何百万行という膨大なプログラムを間違えなく、つくり続けていく必要がある。
どんなに小さなミスであったとしても、機械は人間と違って察してはくれないので、プログラムの通りに動作してしまう。
例えば、スーパーのレジで使用される予定のプログラムを書いていて、消費税が8%から10%に変更されたため、その対応をするとする。
その時に消費税計算に関するプログラムが3箇所あり、1箇所変更し忘れたとする。
するとどうなるだろうか?
100円の品物を買い、Aさんは110円、Bさんは108円。
同じ品物を買ったのに支払い金額が異なるということになり、利用者や購入金額が多くなるにつれて大混乱を引き起こしてしまう。
このような事態を起こしてしまわないように膨大なプログラムを間違えなく、つくり続ける必要がある。
プログラミングが好きな人
次にプログラミングが好きな人だ。
プログラマーは現在人手が足りておらず、入口が広く多くの人が入りやすい状況であるため、私の周りにもプログラミングは好きではないけど生活のためにとか言って仕方なくしているという人がチラホラいる。
人間は誰でもそうだと思うが、嫌なことを嫌々やっている時は必ずその気持ちが表に表れる。
プログラマーであれば、成果物のシステムやプログラムを見ればすぐにわかる。
そういう人がつくるものは、「使いづらい」、「意味不明」、「バグが多い」と悪いことずくめであるため、はっきり言ってこの仕事に就いて欲しくはない。
ユーザーにとって好ましいものではないし、私たちプログラマーが保守をする際にも非常に厄介な問題を多数抱えているものが多いためだ。
何より嫌々して無駄な時間を過ごすよりも、もっと好きなことのために時間を使う方がどう考えてもいいと思う。
逆にプログラミングが好きな人は、ユーザーにとって使いやすく当初の予定のはるか斜め上をいくような素晴らしいものをつくろうとするため、一緒に仕事をすると非常にワクワクする。
さらにバグが少なくプログラムも目に優しい。
こういう人が増えるとプログラマーという立場が上がるのかなーと個人的には思っている。
(現状は仕方なくやってる人が多いため、粗悪品が非常に多い。)
学び続けることが好きな人
これもマストだと思う。
プログラマーは流行りが変わりやすいので、次はどの言語がいいとかこのような設計手法がいいとかっていうのがコロコロと変わる。
その度にインプットが必要なので、ここを苦痛だと感じる人は難しいかもしれない。
過ごしやすい社会を実現したい人」
最後は過ごしやすい社会を実現したい人。
冒頭でもお伝えした通り、プログラマーというのは大きな影響力を与える可能性を秘めている大変やりがいのある仕事。
そのため、過ごしやすい社会を効率良く実現するためには、プログラマーという手段を使うのもありなのかなと思っている。
少し話は逸れるが、私は仕事というのは自分たちの生活を豊かにするためのものだと思っている。
そのため、会社のために人生かけて働きますっていうタイプの人の気持ちは理解しがたい。
自分たちの生活を豊かにするための手段を提供してくれている会社に対して、感謝の気持ちはあるが、前述の通り仕事の本質は「自分たちの生活を豊かにすること」であり、会社の役員の生活を豊かにすることではないため、自分自身を捨ててまで会社に媚を売ろうとは思っていない。
プログラマーになるためには???
プログラマーになるためには、プログラミングを教えてくれる学校に行くや独学で学ぶなりしてまずは、プログラミングについて基礎的なことを学ぶ必要がある。
私個人としてのオススメはプログラミングを独学で学ぶ方法である。
プログラマーに向いている人でお伝えした通り、プログラマーは学び続けることが好きな人が向いていると思っている。
例え学校に行ったとしても、仕事をする際には必ずどこかで独学で学ぶ必要があるため、まずは独学で学んでみてプログラマーになったらこんな感じなのかというのを実感した上で難しいと感じたら別の道を歩んだ方が幸せになれると思われる。
逆に楽しかった場合は、是非プログラマーになってもらいたい。