システムエンジニア、プログラマーを目指している方であれば、プログラムを学習する際に「どのプログラミング言語から始めれば良いか?」など、インターネット等で検索されていると思います。
Python (パイソン)、Ruby (ルビー)、Java (ジャヴァ) などいろいろな種類がありますので、どれを選べばよいか迷ってしまうのではないでしょうか。
プログラミング言語の選択に迷ったときのおすすめとして Excel を紹介します。
Excel と聞くとプログラミング言語ではないと思うかもしれませんが、ちゃんとした理由もありますので興味があればご覧ください。
ここでは、プログラミング言語を独学で勉強する際に挫折しやすい点と回避方法を、少し違った視点から紹介します。
個人的な主観が入っていますので、プログラミングを勉強するひとつの方法として参考にしてください。
もし会社で決められた教育プログラム等があれば、プログラミング言語も決まっていて講師もいると思いますので、いろいろ講師に聞いて進めた方が早い場合もあります。
挫折しやすい点
プログラミング環境が作成できない
どのプログラミング言語を選択しても比較的起きる問題ですが、プログラミングを独学で勉強する際に挫折する点として多いのは「プログラミング環境が作成できない」ことだと思います。
「プログラミング用のサイトに移動してインストーラーをダウンロードして、インストールしたらパソコン上で動かせるように環境設定して・・・」、そうこうしているうちに半日から 1日経過してしまったなどということは良く聞く話です。
しかも、順調に設定が進めば良いですが、インストールするアプリケーションのバージョン違いで予想外の設定が必要だったり、そもそも出てくるメッセージや画面が違っていたり・・・。
さらに出てくる文章が英語だったり・・・。
プログラミングを勉強する前に環境作成で挫折・・・、なんてこともあったりします。
何を作って良いかわからない
がんばってプログラミング環境が作成できたとして、次に「何を作るか?」という問題が発生します。
学習用に 1冊本を買ったとしても、書いてある内容は「Hello world!」を表示する方法だったり、今一つピンと来ない内容だったりします。
結局、少し処理が書けるようになってもあまり達成感を得られなかったということは多いです。
「Hello world!」自体はプログラミングの歴史上、とても重要な意味を持っているようなので、興味があれば調べてみてください。
データベースがない
データベースとは、簡単に表現すると「情報を集めて管理する機能」です。
例えば、 家計簿でいえば、「年月日」、「用途」、「金額」などを日々登録して、あとで集計や分析に使いたいところですが、情報を集めて管理する機能がないと実現は難しくなります。
このデータベース、ほとんどのシステム開発で使用されており、システムエンジニア、プログラマーの必須知識だったりします。
先ほどの「何を作って良いかわからない」にもつながるのですが、データベースがないとできることがさらに限られてしまいます。
一部のプログラミング言語はデータベースの機能を兼ね備えていたり、外部のデータベースに簡単に接続できるようになっていたりもしますが、外部にデータベースを作成する必要があったり、いろいろ設定が必要だったりします。
プログラミングが嫌い
そうこうしているうちに、「プログラミングって難しくてよくわからないし、何していいかわからない」とか、「プログラミングってつまらない」とか、あげく「システムエンジニア、プログラマーに向いてないかも」と思ってしまいます。
初めのうちに「プログラミングって楽しいかも!」、「プログラミングでいろいろ作れそう!」という経験をしておけば、多少の挫折は許容できるようになるので、少しずつ成功体験を増やしてプログラミングの良さを知ってください。
回避方法
Excel を活用する
ひとつ目の難問、「プログラミング用の環境を作成する」ですが、Excel を活用することでほとんどの方は解決するのではないでしょうか。
Excel はパソコンを買ったときに付いている (OEM、バンドルと言いますが) ことが多く、インストールなどの環境設定が不要です。
「でも Excel で出来ることは限られているのでは?」と思われるかもしれません。
しかし Excel はプログラミング学習の第一歩として十分な機能がありますので、その内容を紹介します。
RPA (Robotic Process Automation : 業務自動化) に Excel マクロを組み込んでいるプロジェクトもあったり、Office 製品の自動化ツールとして使用されることもあり、プログラミング学習だけではなくシステム開発にも十分に役立ちます。
Excel 数式 (関数)
Excel の数式 (関数も含みます) はプログラミングではないのですが、簡単な分岐処理や、計算式を実装できます。
また、複数の数式を組み合わせることや、条件と一致する情報を集計したり、抽出したりもできます。
プログラミングで簡単な計算をさせるのであれば、数式で計算させたものもプログラミングと呼べます。(ちょっと飛躍しすぎですが・・・)
別の記事で少し触れましたが、システムエンジニア、プログラマーは Excel を使用することが多く、数式を知っているとプログラミング以外でもかなり役立ちます。
まずは数日で良いので、数式で処理を作ることに慣れましょう。
※ 「数式なんて余裕!」という方は飛ばしてください。
Excel VBA
Excel にはマクロと呼ばれる「操作を記録し、同じ操作を実行できる機能」があります。
この Excel マクロですが、操作の記録を VBA (Visual Basic for Applications) というプログラミング言語で保存しています。
しかも、マクロで記録したものを編集したり、マクロをいちから作成したり、画面を作成して呼び出すこともできます。
VB (Visual Basic) というプログラミング言語を聞いたことがある方もいると思いますが、VBA は VB とほぼ同じことができます。
2000年代前半は VB で作成されたシステムも多く、パソコン 1台で動かす小規模なシステムから、全国展開するような大規模システムまで幅広く使用されていました。
今は VB から離れてしまったので、どの程度使われているかわかりませんが・・・。
Excel でできる規模は大きくありませんが、独学で簡単に勉強するのには良いと思います。
ちなみに、同じマイクロソフト製品 (Office) に Access (アクセス) というデータベースソフトウェアがありますが、Access 上で動かす Access VBA もあります。Excel VBA と内容はほぼ同じ。
Excel マクロや Excel VBA に興味をもった方は下の記事もご覧ください。
作るものをイメージしやすくする
二つ目の問題、「何を作って良いかわからない」ですが、Excel を使用すると作るもののイメージが付けやすいです。
Excel はそもそも表計算ソフトなので、家計簿やカレンダー、アルバイトのシフト表や勤務表など、作るもののイメージがつけやすく作った後も意外と使えるものになったりします。
家計簿の自動計算部分や、カレンダーの休日設定、勤務表の入力フォームなど、VBA で作成すると面白いと思います。
少し勉強すれば、ボタンひとつでグラフまで作成することもできます。
※ 数式やセル入力だけでも作成できますが、プログラミングの勉強として作成してみましょう。
データベースとして活用する
あまり複雑なものを作ることはできませんが、データ構造を作成してデータベースとして使用することもできます。
データ構造は、例えば 家計簿だと、「年月日」、「用途」、「金額」などの項目で、日々の買い物のひとつひとつを情報 (レコードといいます) として蓄積することができます。
その日々のデータを検索したり集計したりすることが、データベースを知る第一歩になります。
なかには本格的な Excel データベースを構築する人もいますが、初めのうちはなんとなく構造がわかれば良いと思います。
プログラミングが好きになる?
比較的難易度の低いことから成功体験を積み重ねていくと、プログラミングの楽しさやできることがわかり、次第にどうすれば解決できるか想像することができるようになります。
プログラミングを勉強していくとどこかで必ず悩むところが出てくると思いますが、そんな時は初心に戻って、できた時の喜びを思い出してください。
まとめ
プログラミング学習挫折の回避方法として Excel を紹介しました。
Excel の数式やマクロを覚えてプログラミング学習の第一歩としてください。
最後は少し感覚的なものになってしまいましたが、実際にシステムエンジニア、プログラマーでプログラミングが嫌いな人は多いです。
せっかく数ある職種の中からシステムエンジニア、プログラマーを選んでいただいたのであれば、楽しく仕事をしていただきたいです。
Excel をある程度操れるようになったら、次のプログラミング言語に進んでください。Excel で覚えた知識が必ず役に立ちます。
楽しく仕事ができると、新しい発想が生まれて自分の能力も上がっていきます。
仕事も勉強も楽しく進めましょう!