今回は、自分のこれまでの経験を振り返ってプログラミングを学んでいてこれが面白かった・良かったと思えることについて、解説できればと思います。
プログラマー需要が高まっているなかで、ITエンジニアを10年以上続けてきた経験から魅力について持論を紹介していきます。
これからプログラミングを学ぼうと思っている方、今プログラミングを学んでいる方の今後のキャリアプランの参考になれば幸いです。
目次
プログラミングは楽しい
いきなりですが、プログラミングはめちゃくちゃ楽しいです。
プログラミングが楽しく感じる理由としては、以下ですね。
- プラモデルを組み立てる感覚に近い
- 細かく達成感を得られる
- パズルやゲームの感覚とも近い
順番に解説します。
プラモデルを組み立てる感覚に近い
プログラミングはモノづくりなので、プラモデルを組み立てたり、手芸や工作に近い感覚だと思います。
例えば、プラモデルだと組み上げるまで以下のような作業の流れになると思います。
- 完成イメージの説明書をざっと読む
- パーツを切って用意する
- 色を塗ったりシールを貼ったりする
- 部品を組み上げる
- 組み上がった部品をさらに組み上げる
- 完成
手芸や工作もざっくりとした流れは同じですね。
プログラミングだと、
- 要件定義や設計書で出来上がりのイメージを作る
- プログラミングに必要な環境やフレームワークを準備する
- 案件用に大枠をカスタマイズする
- 機能を作っていく
- 機能同士を一緒に動かせるようにする
- 完成
と作業の流れが似ています。
特に4、5で作ったものが動いているのを確認できるタイミングで「ちゃんと思った通りに動いてるなー」と実感が得られます。
何かしら作ったり、モノを組み上げていくのが好きな方はプログラミングを楽しく感じるかもしれません。
細かく達成感を得られる
プログラミングはだいたい思った通りに動かないところからスタートします。(プログラムは思った通りではなく書いた通りに動くので、思い違いが多いです。。。)
必要な機能をプログラミングするために、
- 調べる
- 試してみる
- 動かない!
- エラーメッセージを解読して直す
- 動いた!
という手順になることが多いのですが、動くようになると「なるほど!」「あー動いてよかったー!」というような小さな成功体験を繰り返し積むことができます。
プログラミングに慣れてくると始めたての頃は「世の中のサービスなどがどうやって動いているかわからない状態」だったものが、あのサービスは「こういう機能があってたぶんこういう風に作っているだろうな」などの予想ができるようになってきて、次システム作るときに参考にしようと考えることもできるようになってきます。
お客さまに提案するときも「他社はこういう形で実現しています」という説明がしやすく、実際にプログラミングしていなくても似たような機能を作ったことがあればおおよそどれくらいの時間で実現できるかもわかるようになります。
自分の成長を感じられる細かな成功体験を積めるのもプログラミングの良さだと思います。
パズルやゲームの感覚とも近い
複雑な要因でエラーが起きたりしても「もしかしてあの時のこのエラーが原因になっているかも?」という推測ができたりして、その予想が当たっているとパズルのピースがハマるような感覚になります。
何かしら障害が発生したときも以前似たような経験があれば「あーハイハイこのパターンね」という感じでサクッと対応できたりして、過去の自分の経験が活きることが本当に多いです。
過去に2時間かけても原因がわからなかったエラーも、いろいろな経験をすることでレベルアップしていくと、あっという間に倒せるようになったりします。
自分の経験から新しくプログラミングを始めた人にもアドバイスできるので、後進を育てていくという経験も味わうことができるようになるため、まさにゲーム感覚でできる仕事ですね。
プログラミングの良いところ
次にプログラミングを学んでいて良かったところを解説していきます。
作業を効率化できるようになる
例えば、月次の集計作業や毎週の数値報告などを
- あるところから手動でデータをコピー
- Excelに貼り付け
- 計算式を入れて数値を出す
- 報告書のフォーマットにする
のような形で作業をしているとしたら、プログラミングの知識を使って自動化することができるかもしれません。
プログラミングとは「仕組みを作ること」でもあるので、めんどくさい手作業や繰り返し発生する作業を自動処理することができるようになります。
ほとんどの場合一度作ってしまえば繰り返し使えるので、浮いた時間でもっと別のことができるようになるため、いろいろな作業を効率化していくことができます。
勉強をするためのコストが安い
プログラミングをするために必要な環境は、
- そこそこの性能のPC
- インターネット環境
で最低限は十分です。
最近では10万円もかけずにプログラミングができる性能を持ったPCは手に入ってしまいますし、最近ではAWSのCloud9というサービスを使うことで、その気になればiPadとインターネットがあればプログラミングができちゃいます。(iPadだけでCloud9開発環境を構築してみた話(外部リンク))
PCとインターネット環境があれば、独学でプログラミングを学べてしまうのが製造業界や土木業界などエンジニアと呼ばれる方々とのコストの差かなと考えます。
最近ではプログラミング初心者向けの解説が載っているサイトは本当に増えましたので、まずはインターネットで調べてやってみてそれでもわからない場合は入門書やプログラミングスクールに通うのが良いかと思います。
ちなみに自分は情報系の大学出身ですが、社会人1年目に感じた所感としては(自分行った大学のレベルが低かっただけかもしれませんが)「大学のときのプログラミング経験は実務ではほとんど役に立たないな」です。
大学時代は「プログラミングでこういうものを作るんだ!」という明確な目標がなかったため、単位を取るためのプログラミングとなっていましたが、社会人になるとお客さんのビジネスを成功させるためのプログラミングに変わり、取り組む姿勢が全く違うため吸収力が全然違いますね。
何事も取り組む姿勢で身につきやすさは変わってくるなというのを実感しました。
仕事でプログラミングを実践していると「いろんなことができて面白いなー」と感じていたので、家に帰ってからも「自分で知らないライブラリを使ってみよう」「仮想環境を作ってインフラの勉強をしてみよう」と趣味で勉強を続けていたので、職場で得た知識と家で勉強する知識で相乗効果が得られて「PCさえあればできるのは良いなー」と改めて思った記憶があります。
意外と業界が広い
プログラミングは身近なところでいうと、AndroidやiPhoneのアプリやインターネット検索のGoogleなどがありますが、コンビニの自動ドアや駅の自動改札、車の電子制御にも使われていて利用される業界・分野はかなり幅が広いです。
プログラミングというとIT業界というイメージが強いですが、今は製造業や小売業でもITを使って製造管理をしたりモノを売ったりしている時代ですので、プログラミングを学ぶことでITへの理解が深まり管理の効率化やECサイトを活用して販売業績を上げるなどいろいろなことができるようになります。
ITに全然関係のない業種でお仕事をしていても、プログラミングの勉強をすることでブログが始められるようになったり、思いついたアイデアからWebサービスを作ったり自分ならではの経験を活かしてサービスを作ることもできます。
トップアスリートや経営者もビジネスに活かすためにプログラミングを学ぶ時代ですし、義務教育でもプログラミング教育が始まってますので「わからない」では済まされない時代が来るかもしれません。
リモートワークがしやすい
PCとインターネット環境があればプログラミングはできるので、プログラミングも業界によっては家で作業できるものが多くリモートワークへの切り替えがしやすいです。
中には特定の場所からしかアクセスが許されていないシステムの開発に携わっているとどうしても出勤の必要が出てきてしまいますが、それもプログラミングは家でして大事なデータを触る環境についてはオフィスで作業するなどの工夫で毎日出勤しなければいけない状況を改善することはできると思います。
リモートワークに切り替えることで「通勤時間がなくなる」、「家族と過ごす時間が増える」というメリットがあります。
通勤時間に勉強したり、オフィスに行ってMTGすることで得られる臨場感やその場の雑談などができなくなるのでもちろんデメリットはありますが。。。
そのため完全にリモートは良し悪しがありますので「週1回はオフィスに出勤する」など柔軟な対応をしてもらえたり、出勤形態を選べる会社だとより良さそうですね。
プログラミングだけを学ぶデメリット
自身の経験から他の業界も経験しておいた方が良かったなと思います。
理由としては、自分でビジネスを始めようと思ったときに
- IT業界漬けのため他の業界がわかりづらい
- ビジネスは掛け算で生まれるが掛けるものがITしかない
- プログラミングが不要になったときに生きるすべがない
といった不便やリスクが伴います。
なので、他の業界も経験していてプログラミングができる状態が良いかと思います。
自分ならではのアイデアが思いつきやすいですしね。
以上、自分のこれまでの経験を振り返ってプログラミングを学んでいてこれが面白かった・良かったと思えることについての解説でした。
以前の職場の同僚は未経験で採用してもらってから仕事と独学で学び、1年半経つ頃にはAWSを使ってWebサービスを作ってみようと取り組めるくらいスキルアップしていて、本当にすごいなと思いました。
楽しい!やってみたい!という気持ちがあれば、未経験でも全然活躍できる分野だと思います。
友人の経営者からも「自分がプログラミングできないとどうしても外注を使わないといけない。プログラミングができると自分の力だけで完結できるから強い。」と言ってもらえているので、プログラミングを学ぶことはビジネスにも強くなります。
これからプログラミングを学ぼうと思っている方、今プログラミングを学んでいる方の今後のキャリアプランの参考になれば幸いです。