プログラマーになったばかりの人にとって、今後のキャリアアップをどうしていくべきかを考えるのはとても重要です。
そこでこの記事では、プログラマーの人がキャリアアップをするためのステップをわかりやすくご紹介します。
- プログラマーより先のキャリアアップアップの流れ
- プログラマーとしてキャリアアップしていく方法
- キャリアアップするために必要なスキル
自分がこの先成長していくためにも、プログラマーのキャリアアップを考える機会を作った方が良いですし、それは早ければ早いほど良いはずです。なので、ぜひこの記事を最後まで読んでみてください。
出典:https://unsplash.com/photos/FBNxmwEVpAc
プログラマーがキャリアアップする流れ
まず、プログラマーがキャリアアップしていく流れについて見ていきましょう。基本的には以下の通りとなっています。
- プログラマー
- SE(システムエンジニア)
- PL(プロジェクトリーダー)
- PM(プロジェクトマネージャー)
1.~4.の順にキャリアアップすると思っていただいて問題ありません。厳密に言えばそれぞれの中でも細かな区分けが存在しますが、今回取り上げるのはこの区分けです。
そのため、大まかな流れを踏まえておけば大丈夫です。それではプログラマーから一つずつ順番に見ていき、どんな作業をしていけばキャリアアップ出来るのか見てみましょう。
プログラマーから考えるキャリアアップ①プログラマー
IT業界に入り、まず最初になるのが「プログラマー」です。今読んでいる方も、最初はプログラマーになったはずです。プログラマーはエンジニアの基礎を任されることが多いですよね。
基礎だから、あまり考えなくて良いかもしれない!
確かにそう思うこともあるかもしれませんが、当然ながら専門的な内容が多く、未経験の方には難しく感じる内容が多いです。
また、この先キャリアアップするために重要な業務内容やスキルばかりで、どれもきちんと身に着ける必要があります。
そのため、プログラマーとしてきちんと実務経験を積み、キャリアアップを目指すのが良いでしょう。身に付けた方が良いスキルとしては以下の通りです。
- 与えられた作業を最後までやり切れる
- 分からないことを「分からない」とはっきり言える
- 問題を先送りにせず、相談できる
どの仕事にも言える内容ではありますが、「与えられた作業を最後までやり切れる」能力はとても大事です。
ひたむきに頑張ることができ、求められた内容をコツコツとこなせるプログラマーは、必ずと言って良いほどシステムエンジニアへとキャリアアップ出来ることでしょう。
システムエンジニアになるためにはどうすべきか?を考えながらも、目の前の作業を正確に続けていくことがキャリアアップの道と言っても良いです。
プログラマーから考えるキャリアアップ②SE
プログラマーがキャリアアップした結果、システムエンジニア(SE)となります。システムエンジニアはプログラマーより上流に当たる作業を行います。
システムエンジニアがどんな業務内容なのかを、まずは見ていきましょう。
システムエンジニアの業務内容
- システム要件定義書の作成
- プログラム設計書の作成
- プログラムのテストケースの作成
- プログラムやテストケースのレビュー
システムエンジニアの作業が終わらないとプログラマーに作業を割り振れなかったり、全体の工程で遅れが生じてしまったりするので、非常に重要なポジションです。
他にも、システムエンジニアは設計に携わるだけではなく、時にはチームのマネジメントを行ったり、常に周りに配慮しながら進めていく場合もあるのです。
ユーティリティープレイヤーとして、コミュニケーションを密接に取り、橋渡しもしながら自身の作業も進めていくスキルが求められます。
では、システムエンジニアにはどのようなスキルが求められるのでしょうか。
システムエンジニアに求められるスキル
- 丁寧な設計書づくりが出来る
- お客様の要望からシステムに落とし込むことが出来る
- 周りの様子を見て、作業を調整することが出来る
自分のことだけではなく、プログラマーの作業を配慮する必要があるのもシステムエンジニアの特徴と言えるでしょう。
一人ではなく、プログラマーと一緒に作業を行うようになります。そのプログラマーの進捗管理もシステムエンジニアに求められるスキルの一つなのです。
システムエンジニアになると、プログラムの作成や修正する機会が減ってきますが、その分ドキュメント(設計書やテストケース)を作成することが増えたり、人と人とをつなぐ作業が増えてきます。
プログラマーから考えるキャリアアップ③PL
プロジェクトリーダー(PL)は、プログラマーやシステムエンジニアで経験を積んだ人が、そのキャリアを認められて指名される場合が多いです。
その名の通り、プロジェクトのリーダーを任されるために、内部のコミュニケーションを主体とした作業が多いですね。
プロジェクトリーダーの業務内容
- チーム毎のスケジュールの作成、
- 納品物や設計書のレビュー、承認
- プロジェクトの進捗管理
プロジェクトリーダーのポイントは、チーム内部の管理を行うのが主体であるということです。
プロジェクトリーダーは、プロジェクトの成功のために、常に円滑に進められるように配慮、工夫、改善を行っていく必要があります。
では、プロジェクトリーダーとして求められるスキルはどのようなものでしょうか。
プロジェクトリーダーに求められるスキル
- 成功するための全体観を持つことが出来る
- 工程毎のスケジュールに対し、アラートを設定し、ケア出来る
- 人の話を聴いて、改善案を出し、より良い方向に導ける
プログラマーやシステムエンジニアの時に培った開発やシステムのスキルを基に、更に一歩進んで、内部のチームを管理するのが役割です。
そのためにはチーム内部の人を観察し、どのような作業が向いているか、どんなチームに配置したら才能を伸ばすことが出来るかを考える必要があります。
チームのためを考えて、全体観を持ち、成功までの道のりを提示出来るスキルが必須なんですね。
プログラマーから考えるキャリアアップ④PM
プログラマーがキャリアアップし、最終的なゴールの一つの形として、「プロジェクトマネージャー」という立場があります。
プロジェクトを成功に導くという役割は、プロジェクトリーダーと同じなのですが、業務範囲が異なり、プロジェクトリーダーの上に立つのがポイントです。
実務の総括はプロジェクトリーダーが行いますが、プロジェクトマネージャーは、マネジメントがメインであり、管理する対象が増えることが多いです。
プロジェクトマネージャーの業務内容
- プロジェクトの企画・立案・提案
- プロジェクトの予算管理
- お客様との交渉、折衝
- チーム全体のマネジメント
- お客様へ定期的な進捗報告
異なる点として、プロジェクトリーダーは内部のチーム管理を行っていましたが、プロジェクトマネージャーはプロジェクト全体の管理に加え、お客様に適宜進捗状況を報告する必要があります。
プロジェクトの骨格作りを担い、円滑にプロジェクトが進むための予算組みから、チーム作りのための人材配置まで、「プロジェクトを進めるための作業」という肝心な作業が多いですね。
続いて、プロジェクトマネージャーに求められるスキルを見ていきましょう。
プロジェクトマネージャーに求められるスキル
- ゴールまでの道のりを描き、具体的な案を出せる
- 工程ごとに必要な予算を算出し、管理出来る
- どんな場合でも、前向きにプロジェクトを推進させられる
上記のようなスキルがあれば、プロジェクトマネージャーとして成果を出すことが出来るでしょう。
プロジェクトマネージャーにとって何より大事なのが、ゴールまでの道のりを描き、実現するための具体的な案を出すスキルです。自身の描いた図を信じ、先の未来を切り開いてく力が重要なのです。
プロジェクトマネージャーは骨格を作り、プロジェクトリーダーはその骨格に沿って肉付けしていく作業と考えると分かりやすいです。それゆえに作業の中心はプロジェクトリーダーであることが多いです。
プログラマーのままキャリアアップを考える
さて、ここまではプログラマーからキャリアアップしていく流れを見ていきましたが、キャリアアップを考える中でこのような考え方もあるのではないでしょうか。
ずっとプログラマーを続けて、プログラミングをしていきたい!
プログラミングを行うと、自分が組んだコードが思った通り動作することに感動します。そして、自分の成果が人の支えになっている実感を味わうことが出来ます。
そこで、プログラマーのままでいたいという方のために、メリットとデメリットについて考えてみましょう。
プログラマーでいるメリット
- 専門性が高い作業をこなすことで、信頼度が上がる
- 自身のプログラミングスキル向上になる
- どんな現場にいってもプログラマーとして活躍が出来る
上記のようなメリットが考えられるでしょう。プログラマーとして第一線で常に活躍できれば周りから重宝されますし、プログラマーとして自身の価値を高めていくことになります。
「自分はずっとプログラマーとして生きていくんだ!」という方にとっては、大きな魅力でしょう。では、デメリットはどのようなものがあるのでしょうか。
プログラマーでいるデメリット
- 難しいプログラムばかり担当すると、属人化してしまい他の人が修正できない
- プログラマーだからと下に見られてしまい、システムエンジニアに意見が通りづらい
- 平均年収が控えめ
上記のようなデメリットが考えられます。その中で最大の問題と言えるのは3番でしょう。
プログラマーという立場は、先述したように「システムエンジニアから作業を割り振られる」ことが多いです。そのため、基本的にはシステムエンジニアよりもプログラマーの平均年収は下なのです。
上記のメリット・デメリットからよく検討し、自身が本当にプログラマーのままでいたいかを考えるのが大切です。
フリーランスを選択する
今まではプログラマーのキャリアアップについて見てきましたが、キャリアアップとは別にフリーランスという選択肢があります。
フリーランスの場合、自分で案件を獲得する必要があり、自分の責任で作業を行います。フリーランスにはどのようなメリットとデメリットがあるか見てみましょう。まずはメリットからです。
フリーランスのメリット
- 作業管理を任されるので、ある程度時間の融通がきく
- 作業場所を選べるので、邪魔されずに作業が出来る
- 自分のスキルアップに繋がる仕事を受けることが出来る
上記は大きなメリットですね。キャリアアップの流れにとらわれずに、自分で時間の調整を行い、作業場所を確保出来れば、作業効率を大きく伸ばすことが出来ます。
そして、作業内容を選べるからこそ、自分の得意な分野をより伸ばせますし、その得意分野を基に単価交渉が行えます。
自身で作業管理が出来、計画をきちんと立てて作業が出来る方にはオススメの選択と言えます。続いてデメリットを見ていきましょう。
フリーランスのデメリット
- 失敗した時のリカバリーを一人で行わなければいけない
- 案件を自分で取ってくる必要があり、不安定である
- モチベーション維持が難しい
フリーランスでミスが起きたとしても、誰かにフォローしてもらうことが出来ません。そして、営業活動が苦手だとしても、クライアントに提案しなければ案件を獲得することが出来ません。
勿論、案件を獲得したからと言ってその案件を受注し続けることはクライアント次第です。そのため、不安定にはなりますが、デメリットさえも楽しんでメリットに変えられるならあなたはフリーランスに向いています。
プログラマーがキャリアアップするためにあると良い資格は?
プログラマーがキャリアアップするのにほぼ必須と言える資格があります。
それは、「基本情報技術者試験」という資格です。一般的に昇給の条件に含まれており、ITエンジニアの登竜門と言われている国家資格なのです。
それでは、基本情報技術者試験が求めている「技術水準」を見てみましょう。
1 情報技術を活用した戦略立案に関し、担当業務に応じて次の知識・技能が要求される。
① 対象とする業種・業務に関する基本的な事項を理解し、担当業務に活用できる。
② 上位者の指導の下に、情報戦略に関する予測・分析・評価ができる。
③ 上位者の指導の下に、提案活動に参加できる。2 システムの設計・開発・運用に関し、担当業務に応じて次の知識・技能が要求される。
① 情報技術全般に関する基本的な事項を理解し、担当業務に活用できる。
② 上位者の指導の下に、システムの設計・開発・運用ができる。
③ 上位者の指導の下に、ソフトウェアを設計できる。
上記を見て分かるように、「基本」という名前が付いていますが、求めている技術水準は高いのです。
そのため、基本情報技術者試験を取得しておけば、一人前のエンジニアとして認められますが、持っていない場合は半人前のエンジニアとして扱われることもあります。
現在基本情報技術者試験の資格を持っていない場合は、是非とも取得を目指してみましょう。
必ずキャリアアップしなければいけないのか
これまでキャリアアップの流れと、立場によってどのようなスキルが必要かを見てきましたが、「必ずキャリアアップしないといけないのだろうか」とプレッシャーを感じてしまった人もいるかもしれません。
しかし、必ずしもキャリアアップしなければいけないという訳ではありません。先述した通り、プログラマーのままキャリアアップを考えることも出来ますし、自分に合った選択肢を見つければ良いのです。
今、あなたがエンジニアとして重要視している要素はどういったものでしょうか?参考として幾つか見てみましょう。
- 平均より高い給与をもらえる
- 安定的で、同じような作業が行える
- 残業があまり無い
- 上下の関係性が無く、相談しやすい
この中で当てはまるものがあるならば、それを軸として自分がこの先どうしていきたいかを考えるのが良いですよ。
平均より高い給与が欲しいのであれば、それこそキャリアアップしていくのが近道ですし、安定的な作業をしたいならプログラマーでコツコツとスキルアップしていくのが良いでしょう。
まずは、自分が何を求めているのか、良く考えてみるのがポイントです。きっと進むべき道が開いていくはずです。
プログラマーから考えるキャリアアップまとめ
プログラマーからプロジェクトマネージャーになるまでの流れや、必要なスキルを見てきました。
この先、自分がなりたい立場をイメージすることは出来たでしょうか?そして、今何をすべきかを考えることは出来たでしょうか?
もし上記を今すぐ出来なかったとしても大丈夫です。プログラマーという職業に誇りを持ち、きちんと作業が出来れば、徐々に自分の目指すべき方向性が見つかることでしょう。
この記事があなたのこれからのエンジニア人生において、少しでも未来を考えるきっかけになれば幸いです。