プログラマって割に合う職業なの? ~ちょっとハードな長旅を終えて~
プログラム自学案内の 42 回目、最終回です。これまで案内した内容を振り返ったうえで、IT エンジニアという職業ははたして目指すべき職業なのかどうか、考えてみます。これまでの記事はこちらからどうぞ。
これまで来た道を振り返る
このコラムで、これまでどんなことを取り上げたか、各記事のキーワードとともに振り返ってみましょう。
心構え・開発環境準備
この 2 回では、心構えとしてプログラミングというのが「自分がバカに思える状態」になる営みだということを紹介したうえで、プログラミングに必要な道具、パソコンと VSCode を紹介しました。
Web フロントエンド その1 静的コンテンツ
この 7 回では、HTML と CSS を中心とした、Web の見栄えをつくる技術 を紹介しました。これらは動きがないので 静的コンテンツ と呼ばれます。動きが無いにもかかわらず、思い通りのモノをつくるためにはそれなりの工夫が必要です。そこで、それを助けるためのツールやサイトを合わせて紹介しています。
Web フロントエンド その2 スクリプト
この 8 回では、Javascript を用いたプログラミング入門を行いました。伝統的な内容になるので、キーワードは固い言葉(漢字)が並んでしまっていますが、ここがプログラミングの面白さの核となる部分でもあります。
HTML、CSS、Javascript は、まとめて フロントエンド技術 と呼ばれます。Web アプリの前面に立つからですね。
Web バックエンド その1 Node.js、HTTP 初歩
この 8 回では、インターネットの雲の上にある、Web サーバのプログラミングをするために、基本的な用語と仕組み、公開する方法を紹介しました。
関係データベース
この 5 回では、インターネットができる前から使われつづけている情報の蓄積形態、関係データベースについて紹介しました。
Web バックエンド その2 DB を用いた Web アプリ
この 7 回で、Web サーバで 関係データベース を用いる際に必要な考慮点を紹介しました。ただし、その考慮点のほとんどは、Webサーバ以外の場所でも考えなければいけない、一般的で基礎的な内容でもあります。
Web バックエンド その3 認証認可
この 4 回で、Web サービスを構築するうえでは避けては通れない、認証認可のしくみについて、なぜ避けて通れないかの理由の説明とあわせて紹介しました。
41回ですが、超特急でした
以上、ITエンジニアを名乗るひとが大体わかっていることをひととおり、ゼロからまるっと案内しました。
入門書なら一冊ぶんくらいある分野を、1回か2回分くらいの記事で素通りするくらいの超特急のペースでした。「80日間世界一周」という映画がありますが、あれは相当な大急ぎで世界一周をしています。このシリーズも記事だけをみれば、それくらい大急ぎのペースだったと思います。
超特急で身につける必要はありません
とはいえ急ぐ必要はありません。私も仕事とプライベートの合間を縫って、この41回の記事を書いたので、じつはここまで書くのに3年かかっています。
読者の皆さんも、仕事や学業、プライベートを抱えていると思います。その合間をぬってプログラミングを学ぶのであれば、たとえば中学1年ではじめて、中学3年で最後の回までたどり着くくらいでも全然かまわないと思います。慌てるから挫折するのです。
サンプルコード
さいごに記事で紹介したサンプルコードを紹介します。「Web バックエンド」で用いているものについては、こちらに置いておきました。
再考:IT エンジニアという職業
ところで、このシリーズの第1回の記事は、「いま IT エンジニアでない人が、IT エンジニアになるにはどうすればいいのでしょうか」という書き出しで記事をはじめました。この点、あらためて考え直してみましょう。
あなたは、IT エンジニアになれるか
たとえばこんな問いがあったとしますね。
「42回のプログラム自学案内の連載を全部読んだうえ、ためしに私も Web アプリを自作して、Render.com に公開してみました。業務未経験ですが、こんな私は IT エンジニアになると、いくら稼げますか?」
これは、答えるのが難しい質問です。
そもそも、IT エンジニアのスキルや適性を定量的に測る方法は、残念ながらありません。言い方を変えると、IT エンジニアとしてのスキルや適性を定量的にアピールする方法もまた、残念ながら無いのです(その試みがあることは承知しています。AtCoder や Findy、情報処理技術者試験など。しかし残念ながら、試みの域を出ていないと私は思います)。
ですが、本節冒頭の質問にもどると、もし、この超特急の連載を糸口にプログラミングを学習し、Render.com に自作の Web アプリを公開できた方なら、かなりの資質の持ち主だと私は太鼓判を押したいところです。私の肌感覚では、どんな会社でも良いので一度 IT の業界にモグリこんでしまえば、この資質の持ち主であれば、スタートは年収が低くても、3 年も経てば年収 500 万~ 600 万くらいは稼いでいることかと思います。
IT エンジニアという職は割に合うか
『この資質の持ち主であれば、スタートは年収が低くても、3 年も経てば年収 500 万~ 600 万』 と上に書きましたが、これについてはおそらく、2通りの感想がでてくると思います。
「え、たかがこのくらい できるだけで、そんなに稼げるのか? ちょろすぎる、ITってすげーカネになるんだな!!」
「え、これだけ難しい ことができても たったそれだけしか稼げないのか? マジ日本のIT業界終わってる!!」
どちらの感想も正しい感想だと思います。
ただ、前者の感想を持った方にはITエンジニアとしての適性がありそうです。ITは割に合う職業だと思いますので、ぜひこの世界に入ることをご検討ください。
ITの世界では、適性のある人も適性のない人も、ともにプロとして働いています。そして、優れた適性の持ち主にのみ、スキルアップを促す仕事がどんどん集まり、加速度的に評価が高まってゆく という面白みがあります。適性さえあれば、経験年数の長い経験者をあっというまに追い抜いてしまうのがこの世界で、私はそれこそが、このITの世界の美点だと思っています(他業種の仕事や世界を知りませんが)。
IT エンジニアという職種の未来
ところでですが。
近い将来、AI が IT人材の供給過剰を起こしたり、プログラマという職業を滅ぼす、なんていうことを予測する人がいます。私は、たしかに一理ある、と思っていまして。私も、私の今やっているような仕事が、最終的にはすべて機械にとってかわられてしまうことを、楽観的に希望しています。
しかし、そのことは、いまIT技術職に就くことを躊躇する理由にはならない、とも私は思うのです。むしろ、人類がAIに仕事を奪われた後の未来を、どのように生き残るか、そのヒントを考え、学ぶのにうってつけなのがこの仕事だと思っています。
将来のいつか、今はまだ存在しない新しい業種や職種に、就けるような心構えができていること。それこそが、大儲けにつながるとは思いませんか。なぜって、いまヤタラと金回りの良い、IT エンジニアという職種こそ明らかに、「かつて存在していなかった職種」のいい例なのですから。
最後に
じつは私は、Javascript の経験は、ほとんどありません
最後に打ち明けますが、私はこれまでのキャリアの多くの期間を、Java のシステム開発に費やしてきました。
これまでの記事で紹介したライブラリの多くは、私がほとんど触ったことのない言語やライブラリばかりでした。仕事でも趣味でもです。フロントエンド技術も、Node.js も、私は未だにほとんど素人みたいなものだと思っています。
なぜそんな技術の記事を書いたか。それは、私も知らない技術のほうが、私も初心者の気持ちに寄り添って、どのように学ぶべきかを説明しやすかろうし、自分も勉強になって一石二鳥になろうと思ったからなのでした。
一方、この記事を書いている期間中、仕事では業務の都合上やむを得ずという感じで、それまで触ったことのない Python を学んだりもしています(こんど Python の記事を書こうと思っています)。プログラミング言語やライブラリの習得なんて、本職のプログラマにとっては、しょせんその程度のものなのです。
一通りの理屈の理解が大切
プログラマって勉強ばかりで、大変だなあという感じを抱かれるかもしれませんが、コツさえつかんでしまえば、意外とそうでもないもんです。
とっかかりとなる言語やライブラリは何であっても、いちど一通りの理屈を理解してしまえば、あとはどうにでもなってしまう感じがしています。
そして、これまでの 42 回の記事で、おおよそ、8割がた、その「一通りの理屈」はお伝えできたのではないかと思っています。といったわけで、この自学案内のシリーズは、ひとまず終わります。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?