ITエンジニアのキャリアパス【プログラマー】
こんにちは、もりぞうです。
ここでは未経験でIT企業にプログラマーとして採用されたけれどやっていけるか不安・・・そんな方々の不安を本記事で少しでも払拭してあげられればと思っています。それから、この記事を書いているのは2019年11月ですが、2020年から必修化される小学校でのプログラミングの必修化。この時勢に備えて、小学生を子に持つ親御さん達に対してもプログラミング・プログラマーとはなんぞやということを少しでもご理解いただければと思っていますのでゆっくり見ていってくださいね。
プログラミング・プログラマーについて
まず始めにプログラミング・プログラマーについてです。「プログラム」というと身近なものだと運動会や合唱コンクールといった学校行事で手にすることがあったと思いますが、IT業界における「プログラム」も同じです。
運動会や合唱コンクールのプログラムには競技の順番やお昼ご飯のタイミング、終了時刻といった、その行事における参加者の皆さんの取り組みのや振る舞い順序が規定されていたはずです。IT業界におけるプログラムでは、その取り組みの実行主体がコンピュータに置き換わるというだけの話なのです。
プログラム・プログラミングとは
運動会や合唱コンクールのプログラムのように人に指示を行う場合、日本人に対してなら日本語で書けばOKですが、コンピュータには日本語はおろか英語もフランス語もスワヒリ語も人間の使う言語は何一つ通じません。ということからコンピュータに指示を出すためには「機械語」を使う必要があるのです。そして、この機械語をもう少し人間でも理解しやすいようにと工夫されて作られたものを「プログラミング言語」と呼んでいるという訳です。
プログラマーの役割
続いてプログラマーの役割についてですが、、お察しの通りプログラマーとは「プログラムを書く人」ということになります。そんなことわかってるという声も聞こえそうですが、よく考えていただきたいのは指示を下す先が人ではなくコンピュータであるということです。コンピュータは自ら考えることができないので、ある手続き一つとっても ”1から10まで全ての手順をを命令として書いてあげる必要がある” のです。より分かりやすくカレーライスを作ることを例に挙げるとこんな感じになります。
人に対する指示の場合
もりぞう:今晩はカレーにして
もりこ:わかた! はい!!
人に対してならこれで済みますよね。楽ちんです。
でもコンピュータに対してだと、、
コンピュータに対する指示の場合
もりぞう:スーパーで次のものを買ってきて「人参1本、じゃがいも2個、玉ねぎ3個、牛肉100g、カレーのルー一箱、お米1kg」
もりぞう:人参皮むいて
もりぞう:人参一口大に切って
もりぞう:じゃがいも皮むいて
もりぞう:じゃがいも一口大に切って
もりぞう:玉ねぎも皮むいて
もりぞう:玉ねぎも一口大に切って
もりぞう:牛肉も一口大に切って
もりぞう:コンロに火をつけて
もりぞう:コンロの火中火にして
もりぞう:鍋を火でにかけて
もりぞう:鍋に油引いて
もりぞう:鍋で牛肉炒めて
もりぞう:鍋で玉ネギ入れて
もりぞう:鍋に水400CC入れて
もりぞう:鍋にじゃがいも入れて
もりぞう:鍋にカレーのルー入れて
もりぞう:コンロの火を弱火にして
もりぞう:鍋を15分煮詰めて
:
:
という感じです。相手がコンピュータとなると一つずつ指示してあげなきゃいけません。
あと、実は上の手順だと鍋に人参を入れ忘れているので、食べる時に「あっ」という感じでプログラムの誤り(バグと言います)に気づくことになるのです。
上の例ではカレーを作るプログラムの誤りなので問題ありませんが、企業の基幹システムに組み込まれたプログラムやWEBサイトの決済システムのプログラムにこういった誤りがあると大変ですよね。
このように世の中の様々なコンピュータに組み込まれたプログラムを新たに作ったり機能を追加したりお守りをしてあげたりするのがプログラマーの役割となります。イメージ付いてきましたでしょうか?
プログラマー的思考・能力
そして、これからIT業界でプログラマーとして働く皆さんは以下のような思考・能力が必要となります。
①一連の物事の手続きを漏れなく理解・計画し
②プログラムコードに落とし込む
③気力と体力
お客さんの要望を叶えるにはどういう手順が最適なのか、この機能はどのようにプログラムするのが美しく保守し易いのか、お客さんがプログラムに望む真の要望とはなんなのかといったことに考えを巡らせる日々が日常となります。また面倒なことにお客さんの要望というのは日々変化するものでもありそれに合わせて1週間かけて書いたプログラムを書き直しするなんていうこともよくあるため、精神的タフさも要求されます。
一方、小学生へのプログラミング教育の場合は「①一連の物事の手続きを漏れなく理解・計画し」に重点が置かれるのではと思います(学習指導領に詳細が規定されていないようなので実際はどうは分かりませんが・・・)。
理由はシステムを構築できるまでの「②プログラムコードに落とし込む」のスキルを身につけるのってそれなりに時間が必要なためです。恥ずかしい話、僕がプログラマーとして働きだしてから実務に耐え得る、まともなプログラムを書けるまでに半年程かかりましたので (>_<;)
プログラマーのキャリアパス
続いてプログラマーのキャリアパスについてです。一言で言うと一定のスキル・経験を積んだプログラマーのキャリアパスの広がりは無限です。
なぜなら、プログラマーが身につけられる主たるスキルは、プログラミングスキルではなく”問題解決能力” だからです。プログラムを完成させるために如何なる苦難も乗り越え納期までに納品するというこのスキルは、どの業界・職種でも転用可能だからです。間違いありません。
IT業界でのキャリアパス
とは言え僕自身が業種を跨いだキャリアチェンジした経験がないので多くを語れませんので、ここでは最後に僕の経験から想像し得るIT業界におけるプログラマーのキャリアパスの例をいくつか挙げてみたいと思います。
- プログラミングを極める
- 上流工程を目指す(設計者、プロジェクトマネージャ)
- 他領域に移行する(ネットワーク、データベース、セキュリティ、データセンタ、サービスマネージャ)
- 管理職コースを目指す
プログラミング言語は数多くあり、目的や用途に応じて得意な分野がそれぞれ異なります。これらをどんな案件が来ようとも捌けるようマスターするプログラミング道をひた走るというキャリアパスです。プログラミングが好きで仕方ないという方はこのキャリアパス一択でしょう。ハイスキルであることが示せれば単価もグッとあがりますし、英語ができればシリコンバレーで一千万超稼げます。
フリーランスエンジニアのための、案件紹介サイト「ギークスジョブ」
iStudyACADEMYのディープラーニング講座申し込みはこちら
アジアでユーザー数100万人超え!AIを活用したTOEIC学習アプリ【SANTA TOEIC】
より上流の工程を目指すキャリアパスです。プログラマーよりも高い対人スキルを要することになるので、コンピュータではなく人と仕事をしたいと考える人は上流を目指しましょう。並のプログラマーとの比較であれば上流を担う方が単価はあがります。
プログラマーが安心してプログラミングできるのはこういった基盤領域を担ってくれる人たちのお陰です。感謝の念と共に、これらの実務を担う人々に憧れを抱くようであれば、基盤系のスペシャリストを目指すのもアリだと思います。本当にスペシャリストであるということを示せれば高単価も狙いやすいです。(ちなみに僕はこのキャリアパスを選択しました)
ネットビジョンアカデミー(NVA)はインフラエンジニアの教育に全力投球
所属する会社組織で上を目指すキャリアパスです。ITは金儲けのツールに過ぎないという賢い判断のできる方はこれ一択ですね。プログラミングなんてさっと切り上げ、お客さんと飲みにいきジャンジャンバリバリ商談を獲得してきましょう。あっというまに管理職ですよ。
如何でしたでしょうか。プログラマー・プログラミングについて少しでもご理解が深まって頂けていれば幸いです。
もりぞう