プログラマーがきつい理由9つと、向いている人・向いてない人の特徴

プログラマーの仕事がきつい特徴6つと、向いている人/向いていない人の特徴 エンジニアの紹介
プログラマーの仕事がきつい特徴6つと、向いている人/向いていない人の特徴

こんにちは。

この記事を読んでいるあなたは、

・プログラマーをめざしてるけど、自分がプログラマーとしてやっていけるかが不安
・プログラマーになった後、どのくらきついのか?を知りたい。
・プログラマーのいい面/悪い面含めて実態を知りたい。

というような悩みやモヤモヤを持っているのではないでしょうか?

確かに、プログラマーは一般的にブラックな働き方をしているという噂もあるため、そのように不安になっても仕方ないことかもしれません。

  1. この記事を読んで分かること
  2. 結論
  3. この記事の信頼性
  4. プログラマーとは?どんな種類なの?仕事内容は?
  5. プログラマーがきついと言われる理由9つ
    1. 特に納期直前などで、長時間労働が多い
    2. プログラミング以外のやることが多い
    3. 常に最新の技術が出てきてキャッチアップが大変
    4. 常に人手不足であり、プログラマー一人あたりの負荷が高い
    5. 仕様変更やビジネス的な判断のしわ寄せが、最後は全てプログラマーのところに来る
    6. 全く違う考え方や立場の人とのコミュニケーションが発生することがある
    7. 客先に常駐したときに、環境面の制約があったり気を遣う必要がある
    8. 不具合を出したときに大勢のメンバーに迷惑をかけることがある
    9. 休みの日であっても、仕事のことが頭から離れなくなる
  6. 未経験からプログラマーになるのはつらい?
  7. 文系でプログラマーになるとつらい?
  8. 思ったより大変でないポイント
    1. 一日中パソコンとにらめっこをしていて、きつそう
    2. 調べ物をしたときに英語を読むのが大変そう
    3. 複雑なコマンドの操作が難しそう
  9. プログラマーの楽しいポイント
    1. 自分の作ったプロダクトに愛着を持てること
    2. 出来るようになっていく / 自分の知識が深くなっていく感覚
    3. ハマれる(気になって土日もプログラムの書き方を考えるようになる)
  10. プログラマーに向いている人
    1. 日々のプログラミングの作業を通じて自分の成長感を感じたい人
    2. 人と関わるのが好きな人
  11. こういう人はプログラマーにならない方がいいよ!という人
    1. 納期前でも残業を一切やりたくない人
    2. 勉強が苦手な人、やる気のない人
    3. 雑な人 / ロジカルな考えをしたくない人
  12. プログラマーの仕事を事前に体験するには?
  13. まとめ
    1. Related Posts:

この記事を読んで分かること

この記事を読むことで、

プログラマーがきついと言われる理由

を知ることができます。

さらにそれに加えて、

プログラマーをする上で何とかなる(思ったより大変じゃないポイント)
プログラマーの楽しいポイント
プログラマーに向いている/向いていない人

といったものも説明します。

この記事を読むことで、プログラマーに関していろいろな角度から理解してもらうことができるかと思います。
これからプログラマーになりたいと思う人は、是非読んでください。

結論

では、早速ですが結論です。

プログラマーがきついと言われる理由は以下の6つです。

 プログラマーがきついと言われる理由
1: 長時間労働が多い
2: プログラミング以外のやることが多い  
3: 常に最新の技術が出てきてキャッチアップが大変
4: 常に人手不足であり、プログラマー一人あたりの負荷が高い
5: 仕様変更やビジネス的な判断のしわ寄せが、最後は全てプログラマーのところに来る
6: 全く違う考え方や立場の人とのコミュニケーションが発生することがある

一方で、プログラマーになった後、以下の項目は何とかなります。

・一日中パソコンとにらめっこをしていて、きつそう
・調べ物をしたときに英語を読むのが大変そう
・複雑なコマンドの操作

そして、プログラマーになって楽しいポイントは以下の通りです。

 プログラマーになって楽しいポイント
・自分の作ったプロダクトに愛着を持てること
・出来るようになっていく / 自分の知識が深くなっていく感覚
・ハマれる(気になって土日もプログラムの書き方を考えるようになる)

プログラマーになって楽しめる人 / プログラマーにならない方がいい人は以下の通りです。

 プログラマーになっても楽しめる人
・自分の成長感を感じたい人
・人と関わるのが好きな人

そして、プログラマーにならない人がいい人は以下の通りです。

 プログラマーにならない方がいい人
・残業を一切やりたくない人
・勉強が苦手な人、やる気のない人
・雑な人 / ロジカルな考えをしたくない人

この記事の信頼性

僕は過去、エンジニアとして働いていました。

僕もエンジニアになる前は、この記事を読んでいるみなさんと同じように、

本当にエンジニアとしてやっていけるんだろうか・・・

という不安を持っていました。

そして実際にエンジニアとして働いてみた結果、

・つらかったポイント
・何とかなるポイント 

などを知ることができました。

ので、この記事ではそこで知ったいろいろな情報を、あなたにお伝えしたいと考えています。

プログラマーとは?どんな種類なの?仕事内容は?

まずはこの記事の前提として、「プログラマーって何?」を説明しましょう。

プログラマーとは、ソフトウェア開発の現場で、指示(仕様、と呼ばれます)に従ったプログラムを書くのが主な仕事になります。

ここ最近はIT人材の不足により、以前よりも重宝されてくるようになっています。

以下の記事に、プログラマーの仕事内容 (ここではエンジニアの仕事として紹介しています)をまとめているので、「プログラマーって何だろう?」と気になる場合はこの記事を読んでみてください。

プログラマーがきついと言われる理由9つ

それでは、ここからは具体的にプログラマーがきついと言われる理由を1つずつ説明したいきたいと思います。

特に納期直前などで、長時間労働が多い

少し前に比べると大分マシになったと思いますが、それでもプログラマーの労働時間が非常に長いことはあります。

これはプロジェクトにも依存しますが、一般的には、

先に製品やサービスのリリース日が決まった後に、その中でどのくらい開発期間をとるか?

という話になることが多いためです。

なので、必要な機能を実装するのに十分な日数を確保してスケジュールがひかれることなど、滅多にありません。

この機能をXX日後までに実装してね

という言われ方になります。

そうでない場合は、プログラマーが頑張って必要と言われた機能を実装する必要があります。

この状況を回避できることはあるのか?
もちろん、優秀なプロジェクトマネージャーがいれば、必要ではない機能を実装しないように調整したりしてくれることもありますが、そういうプロジェクトマネージャーと巡り合うことができるかは完全に運です。

プログラミング以外のやることが多い

プログラマーになる人は一般的にプログラミングが好きな人が多いのではないかと思います。

プログラマーというくらいだから、仕事内容はほぼプログラミングだろう

と思ってプログラマーになったら、現実とのギャップに驚くかもしれません。

プログラマーの仕事のうち、プログラミングをしている時間は一般的には一日の半分以下です。

その他の時間は以下のような仕事をすることになります。

・ミーティングをして、他の人との認識合わせをしたり、その準備をしたり
・メールやSlackのコミュニケーションツールでいろいろなやりとりをしたり

特にプログラミングがはかどっているときの割り込みは思考の妨げになったり、集中力が途切れる原因になったりします。

常に最新の技術が出てきてキャッチアップが大変

ここ近年の技術は進化のスピードがかなり早いので、常に勉強やアップデートを続ける必要があります。

例えばReactなどのフレームワークは、数ヶ月に1回はバージョンアップをしています。
ですので、その度に何が変更になったのか?を確認、必要に応じて改修をする必要があります。

また、Androidエンジニアであっても、Android OSが年に2回アップグレードされるのが通例です。
Androidは、アップグレードの中身が発表されたタイミングで、その内容を確認、必要に応じた改修を行っています。

 その対応はどのくらい大変なのか?
場合によっては、自分の作っているアプリやサービスが使っている重要な機能が使えなくなったりします。
ですので、対応はかなり大変なケースもあります。

Web系やスマホアプリの両方において、プログラマーになれば終わりということはありません。
継続したアップデートと勉強が必要になります。

常に人手不足であり、プログラマー一人あたりの負荷が高い

ソフトウェアの開発では、どのプロジェクトも人が足りない状態です。

それは、

ITやモノづくりの業界において、常に他社に先行して優位性のあるプロダクトを出していく必要があるためです。

他社に先行して優位性のあるプロダクトを出そうとすると、どうしても開発者(プログラマー)の人手が必要になります。

一方で、他社も同じように努力をしているため、やりたいことに対して、現状の人の数(リソース)で出来ることが限られることになります。

イメージ的には、やりたいことを10とすると、実際に今のリソースでできるのは1、多くても2くらい、という状態のチームやプロジェクトがほとんどです。

このように、プログラマーの人手は常に不足しています。

結果的に、プログラマー1人ひとりが頑張る必要が出てきて、結果的に負荷が高くなっている、という状態になります。

僕の過去の経験では?
僕も過去15年くらいいろいろなソフトウェアプロジェクトを見てきたが、人が足りているプロジェクトやチームは一度もありませんでした。

仕様変更やビジネス的な判断のしわ寄せが、最後は全てプログラマーのところに来る

ソフトウェアを作るときは、基本的な構造として、いろいろなしわ寄せは一番最後の工程であるプログラマーのところに来ます。

言い換えると、ビジネス的な要件や仕様を決めたりして、プログラミングができる状態になる頃には、すでに時間がなくなることが多いのが現状です。

プログラマーはそのような限られた時間の中でアウトプットを出す必要が出てくるため、結果的に負荷が高くなる傾向にあります。

全く違う考え方や立場の人とのコミュニケーションが発生することがある

プロジェクト内には、プログラマーとは違う立場や考え方の人がいます。
例えば商品企画の担当や、ビジネスの担当が該当します。

そういった人は、プログラマーとは全く違うところを見て仕事をしています
もちろん彼らも

いいプロダクトを作ってビジネスを伸ばしたい

と考えているのですが、そのアプローチや土台となる部分が全く違うため、度々プログラマーとの間で軋轢が生まれます。

この違う立場の人とのコミュニケーションがプログラマーにとっての負担になることもあります。

こういった人たちは、自分たちの発言がプログラマーなどエンジニアにとってどのくらい大変か?は理解せずに(理解できずに)言っていることが多いです。

なので、プログラマーとしては、以下のような作業をして、そういった関係者とのギャップを埋める必要があります。

・言っていることをそのまま実現しようとするとどのくらい大変かを伝える
・彼らが言っていることの真意を理解しつつ、プログラミングがより簡単な方法を提案する

客先に常駐したときに、環境面の制約があったり気を遣う必要がある

SIをやっていたり、派遣のエンジニアをやっていると、客先に常駐することがあります。

「客先の常駐」をすると、お客様のオフィスや事務所に行き、そこでエンジニアとしての活動をすることになります。

もちろん、普段慣れている環境ではにため、

・慣れない環境でのプログラミングなどの作業
・お客様からの「ちゃんと進んでいるんだろうか?」という目線を感じる
・客先で情報漏えいなどのミスを犯すと、普段以上に致命的になる

などのストレスを感じることになります。
会社によっては、自分の好きなブラウザやテキストエディタをインストールしてもいいか?が違ったりするため、場合によっては効率が一気に落ちてしまうこともあります。

不具合を出したときに大勢のメンバーに迷惑をかけることがある

プログラミングに不具合はつきものです。
どんな人であっても100%間違えることなくプログラミングをすることはできません。

ただ、それであっても自分の書いたプログラムで不具合を起こすと、プログラマーは

やってしまった・・・

と思います。

特に、何十人、何百人という大勢の人が関わっているプロジェクトで、自分が起こしてしまった不具合によりリリースのスケジュールが遅延したりすると、悲惨です。

早く修正しないと!という焦りと、やってしまった、というガッカリ感の両方に襲われることになります。

休みの日であっても、仕事のことが頭から離れなくなる

プログラマーは、ほぼ1日、プログラミングをしています。

ですので、仕事をしていないタイミングでも、

あ、xxxの部分はこうやって実装するといいかも!

などと考え始めるようになります。

良く言うと、仕事に没頭している証拠ではあるのですが、悪く言うとオンとオフの切り替えがなくなってしまっている状態です。

特に仕事とプライベートを切り分けたい人がこの状態になると、仕事ばかりしている気がしてつらくなってしまうかもしれません。

未経験からプログラマーになるのはつらい?

続いて、プログラマーを志望する人によくある質問のうちの1つ、

未経験からプログラマーになるとつらい?

に対して回答します。
特に未経験からプログラマーを目指す人にとって、一番気になる点ですよね。

結論としては、

特にプログラマーになった直後はつらいこともある。
ただし、プログラミングや必要なIT系の知識、そして プログラマーとしての経験が備わってくれば、少しずつ慣れてくるから心配しすぎる必要はない

です。

最初はもちろんやったことのない職種なので、苦労することもあるかと思います。
ただ、半年〜1年くらい経てば、

・プログラマーとして何をすべきか?
・プログラマーの仕事の流れ
・関わっているプロジェクトの全体像

こういったものが見えてくるので、格段に楽になります。

ですので、あまりプログラマーになる前から「未経験からプログラマーになるのがつらいか?」は気にしすぎる必要はないと考えています。

とはいえ、基本的なプログラミングスキルがないと全く使い物になりませんので、プログラマーを目指す過程で、しっかりと勉強しておくようにしましょう。
もしプログラミングの勉強法が分からない場合は、以下の記事を読んでみてください。
プログラミングの概要から勉強方法までまとめています。

文系でプログラマーになるとつらい?

続いてよくありそうな

文系からプログラマーになるとつらい?

という質問にも回答します。

結論としては、

つらいこともある。
ただし、そのつらさは「文系だから」というよりは、「プログラミング未経験だから」という理由の方が強い。

言い換えると、「文系だから、何か特別つらい」ということは、ほぼない。
実際に文系でプログラマーになっている人が大勢いるということからも、証明されている。

ただし、3Dゲームの開発やAI開発になると数学の知識が必要になるため、文系だと、さらにつらい可能性がある。

となります。

Webサービスのプログラミングくらいであれば、特に文系だから不利になる、というポイントもありません。
ですので、文系からプログラマーになっても、十分やっていくことができます。

思ったより大変でないポイント

続いて、僕がプログラマーになったときに

意外と大変じゃないな

と思ったポイントを解説します。

もしあなたがこの部分で「プログラマーになるの、不安だな」と思っているのであれは、そこは安心してもらって大丈夫です。

一日中パソコンとにらめっこをしていて、きつそう

意外と何とかなります。

もちろん疲れないわけではないですが、一日のうち、プログラミングを集中している時間はその半分以下くらいなので、割と何とかなります。

調べ物をしたときに英語を読むのが大変そう

プログラマーになると、英語で書かれたドキュメントも読まないといけないことがある、というのは事実です。

特にAPI仕様書などは英語で書かれているケースも多いです。
ですが、何とかなります。

僕は新卒で入社したとき、TOEICは480点くらいでしたが、その英語力でも大丈夫です。

特に最近はGoogle翻訳の性能がかなり上がっているので、どうしても英語が読めない・・・というときは、そのページごとGoogle翻訳にかければ特に問題なく読めるかと思います。

複雑なコマンドの操作が難しそう

環境構築をしたりプログラミングした内容を操作するために、コマンドを入力することがあります。

これも何とかなります。

もちろんこのコマンドをとっても非常に奥が深いのですが、日常的に使うコマンドは数が限られているため、ある程度いつも使うコマンドを覚えさえすれば、何とかなります。

その他のものは、やりながら調べていく、というスタンスで大丈夫です。

プログラマーの楽しいポイント

一方で、プログラマーはきついことばかりではありません。
「プログラマーならでは」の楽しいポイントもあります。

そこで、ここからは「プログラマーをやっていて楽しい」と思える点を紹介していきます。

自分の作ったプロダクトに愛着を持てること

プログラマーは、他の誰よりも、そのプロダクトに関して深く考えている人です。

もちろんその製品の企画担当者もその製品のことを考えていますが、その深さのレベルは、プログラマーの方が深いです。

企画担当者は、

何かの処理でエラーが起きたときに、エンドユーザから見て違和感のないエラーの表示方法

なんて考えません。

ですので、プログラマーはそのプロダクトに関して、世界の誰よりも深く考えていることになります。

こうやってプロダクトを作っていくと、プログラマーとしてもその製品に愛着がわきます。
この「自分の子供のような感覚」は、モノづくりで実際に手を動かすときの醍醐味です。

出来るようになっていく / 自分の知識が深くなっていく感覚

プログラミングをしていく中で、あなたはいろいろなことを調べることにあります。

日々調べる内容の例
・非同期処理のやり方
・より効率の良いメモリの使い方 などなど・・・

プログラミングをしていると、毎日目の前に行きた題材が降ってくることになります。

そういう課題に毎日全力で取り組むことで、少しずつ、自分の中に

実践で使えるスキルや知識

が身についていくことになります。

こういうスキルや知識は、オンラインの教材やプログラミングスクールでは絶対に学べないほど高い価値を持ったものです。

このような知識を習得することを「楽しい」と思えるのであればプログラミングはあなたにとっての天職ということができます。

ハマれる(気になって土日もプログラムの書き方を考えるようになる)

僕は、プログラミングは

他の仕事よりも圧倒的に、仕事と趣味の境界線が曖昧なもの 

だと思っています。

というのも、僕を含め、プログラマーは平日の仕事中にプログラミングをした内容は常に頭の中にあります。

なので、例えば家に返ってからや土日ゆっくりしているときに

こうすればうまく実装できるんじゃないか!?

とひらめくこともあります。

そしてそれを慌ててメモ帳に記載して、月曜日の朝から実際にプログラムとして書いてみる、なんてことも起きます。

こうなると、いい意味で仕事と趣味の境界線がなくなっている状態です。

この曖昧な境界線を楽しめる、あるいは少なくとも問題だと感じないのは、プログラマーとしてやっていく上で必要な素質だと考えています。

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

続いて、プログラマーに向いている人、向いていない人の特徴を解説したいと思います。

日々のプログラミングの作業を通じて自分の成長感を感じたい人

僕はこれが一番大きい気がします。
プログラミングの作業中は、常に分からないこととの戦いです。

なので、常にGoogleなどで知らないことを調べ続けることになるのですが、その作業を通して、自分の知識やスキルが上がっていきます。

1つのプロジェクトが終わる頃には、そのプロジェクトが始まる前の自分と比べ、かなりの成長を感じることができると思います。

この「成長感」はプログラマーをやる上での最大のメリットだと思います。

人と関わるのが好きな人

これは一般にプログラマーに思われているような、「一人でカタカタ仕事をする」というイメージとは違うかもしれません。

ただ、プログラミングの作業をする上でも、人ととのコミュニケーションは大事です。

そのコミュニケーションを十分に行うことなくプログラムを書いても、それはクライアントやチームメンバーが求める方向性でない可能性があります。

なので、「今やっているプロジェクトの関係者とコミュニケーションをすること」に楽しみを感じられる人は、関係者が本当に考えていることを引き出すことができるため、プログラミングの方向性を間違うことも減ります。

プログラマー以外の人とうまくコミュニケーションをとれる人は、クライアントや他のチームメンバーからも重宝されるため、さらにそのプログラマーの市場価値を上げることにつながります。

もし、

「絶対に人とコミュニケーションをとる仕事をやりたくない」

と考えているのであれば、プログラマーはあまり良い選択肢ではないかもしれません。

プログラマーではない、自分1人で黙々と作業ができるような仕事をオススメします。

こういう人はプログラマーにならない方がいいよ!という人

結論からいうと、

特にないかも?

と思います。
基本的に、どんな人でもプログラマーになることはできます。

ただ、強いていうなら、以下2つに当てはまるのであればプログラマーとしてはあまり向いてないかもしれません。

納期前でも残業を一切やりたくない人

どのくらい残業が発生するかは基本的に会社や関わるプロジェクト次第です。
なので、どのくらいの残業が発生するかはプログラマーになるときの面接で確認するのがよいと思います。

 残業時間の減らし方
プログラマーは割と実力主義的な働き方が出来るので、早く自分の担当部分を終えることができれば、残業の時間を減らすことができます。

基本的に残業は一切できません / やりません、という人はきついかもしれません。

基本的に残業がない会社もあるものの、プロジェクトの状況によっては残業が発生する場合があるためです。

勉強が苦手な人、やる気のない人

プログラマーになったら、勉強をするのが当たり前になります。
なので、ある程度は土日の時間を使って技術の習得をする必要が出てくることもあります。

この勉強を

絶対にやりたくない

という人は、プログラマーに向いていないかもしれません。

プログラマーで勉強をしないというのは自分の武器に磨きをかけずに戦場で戦うようなものなので、もし勉強をしたくないのでれば、プログラマーはオススメしません。

それよりは、もう少し技術の進化が遅かったり、流れの遅い職業を選ぶことをオススメします。

 流れの遅い職業について
これからの時代、そういう流れの遅い職業はAIなどに淘汰されていくいくことになると思うので、流れが遅い職業であったとしても勉強は必須だと思いますが・・・。

雑な人 / ロジカルな考えをしたくない人

プログラミングは、全てロジックの組み合わせです。

「何となく」でうまく動くことはないですし、「何となく」で動いたとしても、その後のメンテナンスが不可なので、絶対に「何となく」なプログラムは書くべきではありません。

ですので、ロジカルな考え方は必須スキルとなります。
このロジカルな考え方をしたくない人は、プログラマーに向いていないです。

雑な人がプログラマーになると、とんでもない箇所を修正することがあり、不具合を埋め込んでしまうリスクがあります。
なので、「ロジカルに考える気持ちがある」のはプログラマーになるための必須要件です。

もしロジカルな考え方が絶対に嫌!という人は、ロジカルな考え方が必要のない職業(ロジカルな考え方が不要な職業があるとも思えませんが)を目指すことをオススメします。

もしあなたが、

自分はロジカルな考え方は苦手なんだよなぁ・・・

と思っていたとしても、それは大丈夫です。

ロジカルな考え方は身につくものなので、少しずつ、訓練していけばよいです。

特にプログラマーはロジックが全てなので、ロジカルな考え方を身につけるにはもってこいの題材となります。

プログラマーの仕事を事前に体験するには?

ここまで読んでいるあなたは、おそらく

「プログラマーのきついところは分かった。それを事前に体験してみたい」

このように思っているのではないでしょうか?

プログラマーとして働く前にその仕事内容を体験できていれば、「プログラマーになっても大丈夫かな?」という不安を解消できますよね。

そんなあなたには、実践的なカリキュラムを提供しているプログラミングスクールに通ってみることをオススメします。

プログラミングスクールによってはエンジニア転職に向けたカリキュラムを提供しているところがあるため、プログラミングを勉強しつつ、プログラマーの仕事内容を体験してみるのがよいでしょう。

具体的には、

・チーム開発を体験できる
・要件定義など、ソフトウェア開発の上流工程を体験できる
・セキュリティなど、プログラミング以外の業務を知れる

など、プログラマーになってからも確実に役に立つ経験をすることができます。
これらを経験できているだけでも、プログラマーになってからの大変さやストレスを大きく軽減することができるでしょう。

オススメのプログラミングスクールは以下のページにまとめてありますので、こちらから見てみてくださいね。

まとめ

それではこの記事のまとめです。

プログラマーがきついと言われる理由は以下の6つです。

プログラマーがきついと言われる理由6つ
1: 長時間労働が多い
2: プログラミング以外のやることが多い  
3: 常に最新の技術が出てきてキャッチアップが大変
4: 常に人手不足であり、プログラマー一人あたりの負荷が高い
5: 仕様変更やビジネス的な判断のしわ寄せが、最後は全てプログラマーのところに来る
6: 全く違う考え方や立場の人とのコミュニケーションが発生することがある

また、プログラマーになった後、以下の項目は何とかなります。

・一日中パソコンとにらめっこをしていて、きつそう
・調べ物をしたときに英語を読むのが大変そう
・複雑なコマンドの操作

そして、プログラマーになって楽しいポイントは以下の通りです。

・自分の作ったプロダクトに愛着を持てること
・出来るようになっていく / 自分の知識が深くなっていく感覚
・ハマれる(気になって土日もプログラムの書き方を考えるようになる)

プログラマーになって楽しめる人 / プログラマーにならない方がいい人は以下の通りです。

プログラマーになっても楽しめる人
・自分の成長感を感じたい人
・人と関わるのが好きな人

プログラマーにならない方がいい人
・残業を一切やりたくない人
・勉強が苦手な人、やる気のない人
・雑な人 / ロジカルな考えをしたくない人

今回の記事は以上です。

この記事を読んでくださったあなたが、プログラマーになるための不安や懸念を払拭して勉強できたり、その後プログラマーになって活躍されることを心より祈っています。

ここまで読んでくださり、ありがとうございました!

コメント

タイトルとURLをコピーしました