【現役プログラマーが教える!】プログラマーの仕事内容とは?

プログラマー プログラミング

はい、どうもこんにちは、ANOくんです。

「プログラマーって最近流行ってるみたいだけど、どんな仕事なんだろう、」
「フリーランスになると高給が取れるって言われているけど本当なんだろうか、、」
「文系だし、一度もやったことないけれども、自分にもできる仕事なのだろうか、、、」

今日はこんな疑問にお答えして行こうと思っています。

僕自身、今年の4月よりFラン文系大学卒、未経験の状態からITプログラマーになりました。
最初はわからないことだらけで苦労ももちろんありましたが
年収がけっこう伸びたり、思っていたよりプログラミングが難しくなく
どんどんとスキルアップして行くことができたりと
非常に納得度の高い1年間を送ることができました。

そこで今回は「プログラマーになってみようかな」と思われている方
未経験からプログラマーになった経験を元に
より初心者に近い目線でプログラマーの仕事内容や
おもしろさをお伝えしていけたらと思っております。

プログラマーとは

プログラマーとは

まずそもそもプログラマーとはどんな職業なのかをご説明して行こうと思います。

世間一般的なイメージだと

「1日中、パソコンに向かい合ってカタカタやってる仕事」
「いわゆるオタク気質な人がつくような職業」

というイメージがあると思います。

概ねそのイメージも間違ってはいないのですが
プログラマーとはざっくりというと

プログラム言語を用いて、顧客の要望を満たすサービスやシステムを開発する仕事

であると言えます。

これだけだと少し抽象的でわかりづらいと思いますので具体例を出すと
例えば銀行で口座開設をする際にこれまでだと店頭に出向いて
書類を書いたりハンコを押したりしなければ開設ができなかったものを
Web上で申し込みができるようなサービスを作り顧客の申し込みのハードルを下げたり
その顧客の申し込み情報を銀行さん側の社員さんが
簡単に確認できるような管理画面を作成したりといったものが挙げられます。
つまりはプログラマーって
「ITの力を使って顧客の利益創出や効率化に貢献する仕事」であります。

プログラマーの仕事内容

プログラマーの仕事内容

次にプログラマーの仕事内容を見ていきましょう。
結論からになりますがプログラマーの仕事内容って語弊を恐れずに言えば
「仕様書に沿ってシステムをとにかく開発しまくる」というものです。

実際に僕自身の出社してからのよくあるタイムスケジュールをご紹介しましょう。

9:00-12:00 出社・開発
12:00-13:00 お昼休憩
13:00-13:30 打ち合わせ
13:30-18:00 開発・退社

といった感じで、仕事の時間の9割以上を開発が占めています。

大体のプログラマーがそうなのですが、一日の大半はとにかくパソコンに向かい合って
コードを打ちまくって、設計書通りにバグなく動くシステムをとにかく開発していく
というのがプログラマーの日常です。

文系職の代表とも言える接客や営業などと比べると
極端に人とコミュニケーションを取る回数は減り
パソコンとコミュニケーションを取り続けるのが当たり前となっていきます。

僕も実際にプログラマーになってみてびっくりしたのですが
入社前のプログラマーのイメージって
「超絶頭のいい人が専門技能を持って
パソコンをものすごいスピードでカタカタ打ち続けてる」とか
「革命的なサービスを作るために意識の高い人ばかりが揃って仕事をしている」
って思っていましたが
実際には、「大学を出ている人が大半だけど、聞いたことないような大学ばかりだし、専門卒も結構な割合でいる」だったり
「そんなに意識の高い人はおらず、どちらかと言えば少しコミュ障な方が多く、リラックスして仕事ができる環境」だったりと
そこまで初心者に厳しい環境ではないということがわかったりしました。

プログラマーのおもしろさ

プログラマーの面白いところ

それではプログラマーのおもしろい部分についてお伝えしていきます。

日々の成長が実感できる

まずはじめにここですね。日々、自分が成長していることを強く感じられます。
これは仕事の特性にも寄る部分なのかもしれませんが
プログラマーって基本的には1人で黙々と仕事を行います。
なのでどのプログラマーもそうなのですが、基本的にはどっぷり自分の世界に潜り込んで
毎日仕事をしているケースが大半です。

だからこそなのですが、1人で1つのことに高い集中力を持って取り組めるので
日々、何かしらができるようになります。

例えば「昨日まではできなかったバグを、今日は解決することができた」とか
「いつもは1時間かかっていたものが30分で開発できるようになった」などと
自分のスキルが毎日少しずつ上がっていくことを実感しやすいです。

例えば文系職種の場合、どうしても「相手ありき」での成果が問われることが多いです。
営業なら相手がハンコを押してくれないと成約にはなりませんし
接客の場合も相手が商品を買ってくれないと成果にはなりません。

そしてそういった職種の場合、成長というものが「営業成果や売上」によって
決定づけられることが多く、自分の努力だけではどうにもならない部分が多いため
あまり頻繁には自分の成長を感じられなかったり、「自分ってこのままでいいんだろうか」と
悩んでしまうことが多いかと思います。(僕自身、営業職の時はそうでした(笑))

ですがプログラマーって基本的に「自分1人で工夫すればどうにかなる領域」が多く存在します。
バグの解決スピードが遅いのならば、早くするための解決策を実行すれば上達は容易にできますし
パソコン相手に仕事をしているので、ある程度答えは決まっており
いかにその決まった問題を早く正確に解決するか、といった部分に
焦点が当てられるケースが多いので
自分の努力が結果として反映されやすく、自己肯定感を保ちやすいといった点が考えられます。

これは人間の性格や好みにも寄るものなのですが
「人間相手」か「パソコン相手」かで
自分の成長の実感しやすさは大きく変わってくることは事実としてありますし
まずこの点がプログラマの面白さのうちの1つに上げられると思います。

完成した時の達成感がすごい

次にこの点が考えられます。1つの成果物ができた時の達成感がすごいです。
プログラマーって専門職なので、他の職種以上に最初はできないことが大半です。
僕も初めての開発を始めてソースコードを見たときに
何がどうなっているのかがさっぱりわかりませんでしたし
書いても書いてもバグばかりが発生して
なかなか思うようにいかない時期もありました。

ですが、仕事ってどれでもそうだと思いますが、やり続ければだんだんコツがつかめてきます。
「ああ、このコードはこういう動きをしているんだな」とか
「この処理はあの部分を参照しているんだな」とかと
だんだんとソースコードに書いてある意味が掴めるようになってきます。

ある意味、自転車に乗れるようになるのと感覚は似ています。
最初は「こんな乗り物どうやって乗るねん、こけるばっかりして痛いし、きついわー」と思っていても
気づいたら乗れるようになり、気づいたらメインの移動手段になっていた、という経験を小学生のときにされた方って多いと思うんですが、
プログラミング学習もこれと全く同じことが言えます。

そしてプログラミング学習は自転車に乗ることよりもよっぽど達成感があります。
最初は意味がわからず、半泣きになりながら開発を進めていっていた案件が
ようやく1ヶ月かけて完成したとき
「あー最初はこんなバグに3時間もかけて苦戦していたんだなあ」とか
「この辺りからだんだんコツを掴んで開発がスムーズに進むようになったんだなあ」とかと
コードを振り返りで見ている時にふつふつと感動が湧き上がってきます。

そして1ヶ月前の自分と今の自分を比べたときに歴然の差が見え
自分が成長している実感を持てることはもちろんのこと
「1つの案件をわからないながらも最後までやり抜いたぞ」
という達成感も味わうことができます。

僕自身、この楽しさがあるからこそ嫌にならずに
1年弱ほどたった今でものびのびと仕事をすることができています。
成長を実感しやすいということに加えて、達成感も味わえる機会が多く存在することも
プログラマーの仕事の醍醐味と考えられます。

あーでもない、こーでもないと試行錯誤する楽しさがある

これはだんだんと上達してきたら面白く感じてくることなんですが
あーでもない、こーでもないと試行錯誤できることそのものに面白さがあります。

最初はとにかく完成させることで精一杯となるのが初心者エンジニアの常かと思いますが
だんだんと開発に慣れてくると、
「ここの処理はどういう条件分岐にしよう、処理速度はどう変わるだろうか」とか
「セキュリティ対策としてどの暗号化方式を今回は採用しようか」
「セッション時間をどのくらいの時間として設定するのが妥当か」などと
設計の仕事も任されるようになり始めます。

すると1つ1つの意思決定で
実際に作るプログラムが後々に大きく変容することが理解でき始めるため
あーだこーだと考えながら、より品質の高く美しいサービスを作ろうとし始め
試行錯誤そのものが楽しくなってきたりします。

ここは初学者のうちはなかなか理解しづらい部分であるので
この辺りで書き止めにしようと思いますが、プログラマーになれば必ず通る道だということは
頭の片隅に置いておいていただけますと幸いです。

プログラマーのきついところ

プログラマーのきついところ

では次にプログラマーのきついところをご紹介して行こうと思います。

納期前が結構忙しくてタイヘン

まず初めに納期前の忙しさがきつい部分の1つとして考えられます。
どの仕事もそうだと思いますが、プログラマーも時期によって忙しさが変動する仕事です。

特に年末や年度末に忙しさは加速しやすく
タスク量が増えたり、残業時間が増えたりといったことがあります。
実際に僕自身普段は月残業時間が10時間前後なのですが、
この12月は45時間ほど残業し
初めてプログラマーとしての納期前の忙しさを体感することができました。

納期前で何が一番大変かというと「集中力を保ち続けること」だと思います。
プログラマーって1人でひたすらにパソコンに向かって問題解決を図る仕事なので
結構、頭を使います。

実際に多くのプログラマーがコーヒーを大量に摂取しますし、甘いものを間食にする人も多く
脳みそがある程度スムーズに動く状態を維持しておくことは
プログラマーとして結構大事なことだったりします。

一方で、人間の集中力って限りがあるもので
朝から深夜までぶっ通しで集中しておくことってほぼ不可能なことなので
残業時間が増えてくると疲れが増したり、集中力が切れかけたりと
精神的にしんどい状況の中で仕事をやりきっていく必要が出てきます。

もちろんそのしんどい状況を乗り越えた上での成長や達成感はあるのですが
実際に毎日数時間残業しながら頭を使い続けて仕事に取り組むのは結構大変です。
どの仕事にもあるものですが、プログラマーとしての大変な部分にはまずこの点が挙げられるかと思います。

1人で行う仕事が多いから、ある程度の地頭が必要

次に大変なのがこの点ですね。
ある程度「1人でなんとかできる力」を備えていく必要があります。
前述しましたがプログラマーって基本的には
割り振られた仕事を1人で進めていくことが大半です。

なので1人で問題を解決したり、確認すべき点はきっちり上長に確認したりといった
基本的な個人としての仕事力が必要とされます。

なのでもし今の仕事で、全て上司から言われないと何もできないような状況であったり
自分で試行錯誤しながら問題を解いていくことができない人は
なかなかプログラマーとしてまともに仕事をしていくことが難しいかなと考えられます。(というか、そういう人はどの仕事もロクにできない)

とはいえ「東大にいくような頭脳が必要」とか
「スーパー営業マンのようなコミュ力が必要」とかといった
ものすごく高いレベルが要求されるのではなく
「中学高校で偏差値が50」より上にあり
「そこまで大きな欠陥なく、人とコミュニケーションを取れる」ような人であれば
余裕でプログラマーの仕事は務まると思います。

以上がプログラマーが仕事をしていく上で大変な部分であると考えられます。

プログラマーに向いている人の特徴

プログラマーに向いている人

だんだんと終盤戦にさしかかってきましたが
ここではプログラマーに向いている人の特徴を3つご紹介して行こうと思います。

1人で黙々と作業をするのが好きな人

まず初めにこの部分ですね。1人で作業するのが苦にならず
好んで行える人はかなりプログラマーに向いていると考えられます。

何度もお伝えしている通り、プログラマーの仕事って基本的に1人で行われます。
「朝はDB登録部分のコードを改修して、昼以降は削除処理部分の挙動確認を行って、、、」
みたいな感じで1人でタスクを処理していくのが日常となります。

そのため、元々から1人で作業をすることが苦にならない人は
とてもプログラマーに向いていると思います。

実際僕自身、プライベートの時間は友人とアウトドアに出かけたり
飲みに出て騒いだりといった遊び方よりは
1人で部屋にこもって小説を読んだり、物思いに耽ったり
温泉で長風呂をしながらのどかに過ごしたりといった
わりかしのんびりとした1人で過ごす時間が好きだったりします。
自分の世界にのめりこめて、1つのことに長い時間集中を発揮できる人にはプログラマーは向いていると思います。

考え事をするのが好きなこと

次にこの点ですね。思考をすることそのものが好きな人プログラマーに向いています。

こちらも前述していますが、プログラマーの仕事って毎日が問題解決の連続です。
やれバグが山のように発生したり、やれ顧客が要望を変えてきて仕様が変更になったり
やれ新規での案件が始まり掛け持ちでいくつもの開発をする必要があったり、と
自分1人で基本的に仕事は進めつつ、様々な問題を解決していく必要があります。

そのため基本的には自走しながら問題解決をしていく必要のある仕事なので
考えることが好きか、そこまで苦ではない人でないと
なかなか仕事として取り組んでいくのが難しいと思います。

「全部わかるまで先輩から教えてもらいたい」とか
「手取り足取り教えてもらえないならやりたくない」といった受け身な人は
なかなかプログラマーといった仕事には適性がありませんので
コンビニのバイトや工場でのライン作業など
思考停止した状態で手だけを動かせるような仕事をする方が良いでしょう。

あまりプライドが高くない人

最後にこの点は非常に大事になります。これは実際に僕がプログラマーになってから
「プライドが高い人の成長はビビるほど遅い」といった事例を見て痛感した部分です。

僕自身4月ごろに転職し、今の会社に勤め始めましたが
同時期に僕と同じく未経験から入社してきた人がいました。

その人は非常にプライドが高く、自分のミスを認めようとせず
わからなくても確認も質問もしないような人でした。

そして1年弱ほどたった今、僕は開発にかなり慣れ始め
設計も少しずつ任せてもらえるようになった一方で
そのプライドの高い方はインフラ周りの整備といった(プログラマをしたことがある人ならわかると思うのですが)体のいい雑用仕事しか任されなくなっていました。

シンプルに原因として「素直にできないことを認めて貪欲に取り組もうとする姿勢がない」ことが考えられ、
その姿勢だからこそ、だんだんと仕事を干されるし、仕事を干されるからこそスキルも伸びず
社内での立ち位置も悪くなっていくといった
悪循環の典型みたいな事例を身近で経験することができました。

どの仕事においてもそうなのですが
ことプログラマーにおいては最初って本当に何もできません。
何がわからないのかすらわからない、みたいな状況からみんなスタートしますし
その状況を乗り越えるために一番大事なことって
プライドを捨ててなんとか仕事ができるようになる、という根性論の部分だと
僕は強く思っています。

プログラマーを未経験から始めるのであれば
この部分が間違いなく一番重要になると1年を通して思いました。

プログラマーの年収

プログラマーの年収

さてお次は気になるプログラマーの年収ですね。
こちらマイナビ社が発表しているものだと

プログラマーの年収統計

というふうに公表されています。

この表を見て
「あれ、意外と少ないんだな、、、」と思われた方が多いのではないでしょうか。
そう、現代ってプログラマーがあれほど不足していると嘆かれている時代にもかかわらず
現在”正社員として”働いているプログラマーってあまり高給を取ることができていないんです。

なぜか。

それは

急激な需給のギャップに会社側の体制変更が間に合っていないから

この点が大きな原因です。

実際僕のようなまだ経験が1年弱しかないようなプログラマーにも
月の単価が55万円ほど支払われており、
経験が4年5年となってくると、人月単価(1ヶ月の単価のこと)が
7-80万をいくエンジニアがザラです。

ですが正社員として雇用している以上、どれだけ単価が高く取れていたとしても
会社側が長期雇用のリスクも取っているためあまりに高い給与は払うことができなかったり
今のエンジニアバブルに合わせて給与の体制変更を
スムーズに行えている会社が少なかったりするため、
正社員のエンジニアってなかなか高い給与を得ることが難しかったりするわけです。

ですが1つだけエンジニアとして誰でも高給取りになれる選択肢があります。
賢明な皆さんならもうだいたいお分かりでしょうが、
フリーランスのエンジニアになることです。

レバテック、フリーランスエンジニアの平均単価

こちらレバテック社が発表しているフリーランスエンジニアの平均単価ですが
862万円とかなりの高給であることがわかります。
しかもこの年収を稼いでいるのが40代や50代の社会人歴何十年もあるような人ではなく
経験が数年でフリーランスになった20代30代の人が多いということも特筆すべきポイントかと思います。

20代で800万円中盤の給与って、東大・京大・早稲田・慶応といった
超有名大学を卒業した後、外資系コンサルやメガバングといった超大手のエリート企業に入社し
激務に耐え抜きながらようやく20代後半でもらえるようになるような額だと思います。
そこに行けるのってほんの一握りの人間だけだと思いますし
なかなか再現性高く、そのキャリアを実現するのって難しいことだと思います。

ですが一方でフリーランスのエンジニアってそこまでの難しさはないと思います。
実際に僕自身今、フリーランスのエンジニア専門の会社さんと3ヶ月に1度くらいのペースで面談を行っており、来年12月ごろを目処にフリーランスになろうと思っているのですが
現状の成長ペースで行けば「経験は2年弱だけど月単価60万くらいの仕事なら十分紹介できる」と嬉しいことに言われております。

正社員としてプログラマーが高給を得ていくことは
超有名IT企業に入社できるレベルの能力が必要とされますが
フリーランスとして高給を得るのは、そこまで難しいことではなかったりします。
これからプログラマを目指す方は、
最終的にはフリーランスになって高給を取れるところを目指すというのが
キャリアとしての合理性が最も高いと僕は考えています。

プログラマーは、今もっとも”自由”を手に入れやすい職業である

プログラマーは自由だ

ここまでプログラマの仕事内容や、面白いところ・きついところ、そして
プログラマの待遇や夢のある部分などをお伝えしてきました。

最後になりますが、プログラマー職って今の会社でくすぶっている人や
なかなか思いようにキャリアを形成できていない人にとっての
「蜘蛛の糸」のような存在だと思っています。

世の中で圧倒的に需要と供給の差が生まれ
2020年からは義務教育化されるようなプログラミングって
ゴールドラッシュに近いような現象が起こっており
一度ここで成功体験を積み、資金を蓄えた上で
次のキャリアを考えていくベストな職業だと僕は感じています。

これだけのお膳立てが整った中でも
「いやそうはいっても専門職だし僕には、、」
「これまで営業しかしたことないし、できないんじゃないかな、、」
と二の足を踏んで、行動しない人が世の中の9割以上です。

勇気を持って一歩踏み出したことで僕はこの1年でキャリアがガラッと変わりました
皆さんにも同じことが言えると思います。

令和時代は、本当に個の時代が到来すると思います。
個人でスキルを身につけ、資産を形成し、人生の自由度を上げていきながら
自分のやりたいこと・好きなことに全力投球できる人が増えることを祈りながら
この記事を終わりにしようと思います。

最後までお読み頂き、ありがとうございました!
それではまた。