IT業界の歩き方

転職・エンジニア育成・面接官の経験からITエンジニアのキャリアについて紹介していきます

移転しました。

現役が教える!プログラマー仕事内容と適正、就職するため方法の全て

f:id:hiroti3:20170702004723p:plain

近年ではスマートフォンの発達により、プログラマーの活躍する分野もパソコンのアプリケーションだけではなくなってきました。

政府も将来の技術者不足を懸念しており、2020年からプログラミング学習を小学校で導入することを決定するなど、プログラミングは非常に重要な技術として注目が集まってきています。

なによりも「手に職」をつけられるという点で、プログラマーは現代のニーズによく合っている職業だと思います。

ここでは、プログラマーの仕事内容やその魅力、プログラマーに必要な素養などに触れながら、どのようにしてプログラマーになっていけば良いのかを簡潔に分かりやすい紹介していきます。

プログラマーの仕事内容と魅力、SEとの違いとは?

「プログラマー」は「プログラムを書く人」という意味ですが、実際はどのようなことをするのか、どのようなときにやりがいを感じるのかを1つずつご紹介します。

また、SE(システムエンジニア)とプログラマーはどのように違うのかも見ていきましょう。

プログラマーの仕事内容と魅力

プログラマーの仕事内容は作成された設計書通りにプログラムを書いていくことです。
そして自分の書いたプログラムが思った通りに動いたときがプログラマーの一番の喜びであり、やりがいを感じるときでもあります。

また、自分の作ったシステムが世に出て、多くの人に使ってもらえるというのもプログラマーのやりがいの1つです。

もちろん、プログラム以外にも業務はありますが、やはりプログラミングこそがプログラマーが一番力を発揮するところであり、また、一番楽しいところでもあります。

「プログラマー」と「SE」との違いは担当工程の違い

 

「プログラマー」と「SE(システムエンジニア)」の違いはシステム開発で担当する工程が異なる点です。

システム開発は次の表に記載したように「要件定義」「設計」「開発」「テスト(試験、検証)」「導入」という5つの工程を順に進めて構築していきます。

システム構築の工程 SEの担当工程 プログラマーの担当工程
要件定義 -
設計
プログラミング
テスト(検証/試験)
導入 -

△:一部担当

上の表のとおり、プログラマーが担当するのは「開発」と「テスト」です。
「要件定義」「設計」「導入」などの残りの工程はSEの担当ということになります。

ただし、実態として分業化がはっきりしている大企業を除いてプログラマーとSEの分担がはっきりと分かれていないこともあります。
なぜなら、プログラムが書けないと設計書も書けないことが多いためです。

そのため若いうちはプログラマーとして活躍し、経験を重ねてSEを担当するキャリアが一般的です。

プログラマーの給与と待遇は?

プログラマーやSEと聞くと「IT企業は儲けている」といったイメージを持たれることもありますが、実際はどのくらいのお給料なのでしょうか。

厚生労働省の平成28年賃金構造基本統計調査によるとプログラマーの年収は414万円となっています。

  • 年収:414万円
  • 年齢:31.6歳
  • 勤続年数:5.8年
  • 残業時間:16時間

特色としては非常に若い人が多い職種と言えることは間違いありません。
実際に全職種の中でもトップレベルに若く、保育士や幼稚園の先生よりも若い職種となっています。

そのため勤続年数が他業種と比較しても少ない傾向です。

これらはプログラマーからSEへキャリアアップしていることも要因としてかんがえられます。

残業は16時間と1日1時間程度という結果が出ていますが実際の現場と照らし合わせると少なめに感じます。
私の感覚では1日1時間〜2時間、つまり20時間〜40時間くらいの残業が前職、現職、まわりのプログラマーの働き方です。

プログラマーの開発の流れ

プログラマーは開発にどのように関わっていくのでしょうか。

プログラマーは主に

  • 設計
  • プログラミング
  • テスト

という3つの工程に関わります。
1つずつ見ていきましょう。

設計(外部設計/内部設計)

設計段階からプログラマーが関わることもあります。

要件定義で確定した機能をどのように実装(プログラミング)していくのかをシステム面から考慮し設計していきます。

設計の出来がシステムの出来を左右すると言っても過言ではなく、開発の生産性や保守・メンテナンス性、拡張性を考慮して設計をしていきます。
そのため、設計工程はプログラミングが得意な人に適正があります。

設計の工程は「外部設計」と「内部設計」と分けることがあります。
このような違いは各会社やプロジェクトごとであり、の規模やプロジェクトごとおこります。

「デスマーチ」などと呼ばれるプロジェクトは、この設計フェーズの品質が低いための次の工程に影響し、できあがるシステムの品質の悪さにつながってきます。

低品質なシステムは不具合の多発により手戻りが発生し、スケジュールの遅延にもつながります。

 

プログラミング(開発/実装)

設計工程で設計書ができあがったら、いよいよプログラミングです。

プログラマーにとってはここが一番楽しい工程です。
設計書に記述されているとおりにプログラミングしていきます。

開発途中で問題があれば周囲と連携を取りながら調整していくので、ある程度のコミュニケーション能力や協調性なども必要となります。

テスト(試験/検証/デバッグ)

開発が一通り完了したら、次はテストフェーズに入ります。

テストは単体テストと結合テストに分かれ、最初にシステム内の細かい機能ごとのテスト(単体テスト)を行い、続いて細かい機能をすべて繋げて動かすテスト(結合テスト)が行われます。

テストを行い、バグが発生すれば担当プログラマーが修正します。
これを繰り返すことでシステムの品質を上げるのが目的です。

最終的にシステムが完成したら「導入フェーズ」へと移っていきます。

プログラマーに合う人の特徴と合わない人の特徴

プログラマーと聞くとバリバリの理系の職業のように思う人も多いですが、実は全体の4割ほどは文系出身者のプログラマーもいます。
そのため、あまり理系文系ということを気にしなくても大丈夫です。

プログラマーに合う人の特徴

以下にあげるプログラマーに合う人の特徴は必ずしもすべてに当てはまる必要はありません。

どれか1つでも当てはまる項目があって、プログラムに興味があれば良いと思います。 ・ものづくりが好きである

何かを作り上げたときの達成感を感じることが好きな人や、「こういうものが作りたい!」という欲求はとても大切です。

分からないことを自分で調べる力がある

技術的に困難なことにぶつかったときに、自分で調べて答えにたどり着く力がある人は開発能力が高い傾向があります。

理想主義よりも現実主義である

システム開発というのは理想どおりには進まないことのほうがほとんどです。その中で何をするのが最善なのかを判断しながら開発していくのは思っているよりも難しいことです。

つねに新しい技術に興味がある

新しいもの、便利なものが好きなのはとても重要です。あたらしい技術を試して、次の仕事に活かせるようにいつも自発的に勉強できるというのは大きな資質といえるでしょう。

チームプレーが好き

プログラマーは個人プレーでは成立しません。とくにプロジェクトが大きくなればなるほど、チーム内、チーム外での連携能力は必要になります。そういった時にコミュニケーション能力に優れている人は活躍します。

慎重にものごとを進められる

間違っているにもかかわらず、思い込みによって突き進んだ結果、大変なミスを犯してしまう可能性もあります。気になることはすぐに確認を取りながら進めていくことは大切なことです。

プログラマーに合わない人の特徴

悲観しないで欲しいのですが、以下の特徴に合致したからと言って必ずしもプログラマーに合わないというわけではありません。
そういう部分を自覚し、改善することで優秀なプログラマーになる可能性は十分あります。

分からないこと分からないと言えない

難しい説明を受けたときに分からない箇所があった場合、そこで「ここが分かりません」と言えないのはとても危険です。性格的なものもあるかもしれませんが、ここで「分からない」と言えないことの方が後々に重大なミスにつながることもあります。

なにかを始めるのにアレコレ考えてしまう

なにか技術的に新しいことに挑戦するときに「とりあえずやってみよう」という風にすぐに動けない人がいます。言い訳や失敗したときのことばかり考えていても話は一向に進んでいきません。

想像力&発想力が乏しい

一度壁にぶつかったときに、「じゃあこの方法ならどうか?」「アレがダメならこれはどうか?」というように発想が湧かないと、同じところをいつまでもグルグル回ることになってしまいます。

ストレスを発散するのが下手

趣味があまりない、友人が少ない、プライベートでの楽しみがない人は仕事でのストレスをどんどん溜めていってしまう傾向が強く、とても危険です。

これらのように、プログラマーとしての資質は多岐に渡りますが、すべてを兼ね揃えているプログラマーは極少数でしょう。1つずつ自分の素養を高めていく気持ちがあれば、立派なプログラマーになれる可能性は十分にあります。

プログラマーの働き方の種類とおすすめ

一匹狼のようなイメージもあるプログラマーですが、実際に世の中のプログラマーはどのような形態で働いているのでしょうか。

大きく分けると

  • SIerへの就職
  • 派遣会社への就職
  • フリーランス(個人事業主)として働く

の3つに分類することができます。

自分の求めるキャリアや生活スタイルに合わせて選択することができるのもプログラマーの魅力と言えるでしょう。

SIerへの就職

SIerというのは「システムインテグレーター」と呼ばれる業種です。
SEと何が違うのかと言われるとはっきりとした線引きができないので難しいのですが、より巨大なシステムや大きな案件を請け負う会社が多いです。

そして、その巨大なシステムを機能ごとに小分けにして、システム開発会社などの下請けに投げることもあれば、自社で開発することもあります。

特徴としては、上流から案件に関わっていくことが多いため、公共事業や銀行システムの統合など、非常に大きな案件に関われるチャンスがあります。また、プログラマーからSIerへのステップアップも見込めます。

派遣会社への就職

人材派遣会社に登録して、そこから各システム開発案件に出向して働くという方法もあります。
正社員としてでは無いかわりに、自分の生活スタイルに合った形で働くことが可能です。

自分の希望にあった職場を派遣会社が見つけてきて紹介してくれるので、自分で職場を見つけてアポを取る、ということをしなくても良いというメリットもあります。

雇用形態は3か月単位、派遣先に気に入られれば半年単位などで契約していきます。

派遣先がとんでもないところで、自分に合わない場合でもまた次の契約で終わりにして別の派遣先に行けるという柔軟性も魅力でしょう。

フリーランス(個人事業主)として働く

自分で仕事を受注して、経理などのお金の管理もしながら働くフリーランスという選択肢もあります。

実力さえあれば正社員よりも稼げる一方で、自己管理や金銭の管理も必要になるとてもシビアな世界ですが、自分の好きな仕事だけを続けていられるのでやりがいもある働き方と言えます。

プログラマーなるための方法

プログラマーになるためには、事前に知識をつけるために

  • プログラミングスクールで学ぶ
  • 就職に有利になるような資格を取る
  • プログラミング未経験可の求人に応募する

などの方法が考えられます。

プログラミングスクールで学ぶ

いわゆる専門学校などにかよってプログラミングの基礎知識を一通り勉強します。
学校によっては就職まで面倒を見てくれるところや、資格試験の取得をバックアップしてくれるところもあります。

持っていると就活で有利になる資格を取る

専門資格を持っていると就職活動で有利になります。
面接でいくら仕事ができるとアピールしたところで企業としては判断する術がありません。

そういうときに資格があると、「一定基準はクリアしている人材」として見てくれるようになります。

ITパスポート(難易度:★☆☆☆☆、合格率:48.3%)

IT業界に限らず、ITを活用する一般社会人として必要最低限の知識を身につけることを目標に作られた国家試験です。

内容としてはそこまで専門的なものではなく、幅広い情報技術の基礎知識を問われます。
難易度はIT関連資格としては一番優しい部類に入ります。

独学でも十分に合格できるレベルの難しさではありますが、合格率は50%を切ります。過去問などを解きながらしっかりと準備をしておくべきでしょう。

基本情報処理技術者(難易度:★★☆☆☆、合格率:26.6%)

実践的なシステム開発能力や高度なITエンジニアを目指す人が取得する国家資格です。ITエンジニアの最初の登竜門とも言われており、多くのエンジニアを目指す学生、現役エンジニアが受験します。

難易度としてはITパスポートと比べると格段に難しくなっています。
現役のITエンジニアでさえ、社内で取得している人は2割、多くて4割といったところでしょう。

それだけに就活時点で基本情報を持っていることのメリットは非常に大きく、多くの企業が一目置いてくれるようになるでしょう。
取得しておいて損はない資格です。

プログラミング未経験可の求人に応募する

企業によっては育成に力を入れている会社もあります。
未経験でも社内研修でしっかりとプログラマーを養成して、そこから現場に配属させてくれるので、安心して働くことができる環境といえるでしょう。

同じようなレベルの同期・同僚と切磋琢磨して学べるので、モチベーションの維持にも役立ちます。配属後はOJTとして先輩がしっかり面倒を見てくれる会社も多いです。

事前の見学で先輩社員からお話を聞いて研修体制がどのようになっているのか、自分に合っているのかを確認しておくことが大切でしょう。

どのような会社に入るべき?

自分がどのような分野のプログラマーになりたいのか、そこを明確にすることでおのずと就職したい会社は絞られてきます。

大規模システムを構築したい、最終的にはSEにキャリアアップしたい、ということでしたら、大手のSIerが良いでしょう。

最終的には独立してフリーランス、もしくは会社を興したいと考えているのであれば、最初からバリバリ自分の技術を磨けるような職場を探すのも1つの手です。

大手は担当が細分化されており、最初から大きな機能を任せてもらえないこともあります。

その点、中小規模の会社であれば、任せてもらえる役割がたくさんある可能性があり、バリバリ自分の能力を磨いていくことができるでしょう。

今流行のスマホゲームの会社など多くありますので、そちらの分野で活躍したいということであれば、スマホアプリ開発で専門的に腕を磨ける会社を選択するのがおすすめです。

まとめ

プログラマーというと、ひたすらパソコンの前で難しそうな画面を見ながらカタカタとキーボードを打っているというイメージを持っている人もいるかと思いますが、実際はそうでもありません。

意外に感じるかもしれませんが、技術力も大事なのですが、同じくらい大切なのは多くの人と一緒に仕事をしていくコミュニケーション能力であったりします。

技術力がないプログラマーは話になりませんが、技術力だけしかないプログラマーはどこかで伸び悩んでしまうものです。

そういう意味では、自分の傾向をしっかり把握することが、トータルバランスの良いプログラマーとして活躍できる近道であると言えるでしょう。