みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
さて、ノンプログラマーのプログラミング学習…どの言語を学ぶべきなのでしょうか?
「プログラム言語 おすすめ」などで検索すると、プログラム言語の紹介記事がたくさん出てきますよね。そして、なかなか悩みますよね。
その助けとなればいいなと、コミュニティ「ノンプログラマーのためのスキルアップ研究会」セミナーVol.3「『VBA vs GAS vs Python』どの言語を、どう学ぶべき?!」というセミナーを行いました。
プログラミングを学ぶには200~300時間かかりますが、プログラム言語について知るには90分程度で十分なのです。
私がこれまで携わってきた、VBA・GAS・Pythonの3つの言語について、歴史、特徴、動作環境、人気、求人、文法、言語仕様など、それはもうさまざまな切り口で比較してみましたので、一部レポートをしていきます。
※この記事はコミュニティ「ノンプログラマーのためのスキルアップ研究会」セミナーVol.3「『VBA vs GAS vs Python』どの言語を、どう学ぶべき?!」の内容の一部を加筆修正して記事にしたものです。セミナーからの抜粋動画もありますので、合わせてご参考くださいね。当日の様子は以下のツイートまとめもご覧くださいませ。
「何ができるか?」はライブラリを見ればわかる
まず、プログラミング言語について知るためには、「ライブラリ」を見るのがおすすめです。
ライブラリは、そのプログラム言語で「できること」を機能別や役割別にパッケージしたものです。
GASではライブラリではなく「サービス」と言ったり、Pythonでは「モジュール」とも言ったりします。
Excel VBAで利用できるライブラリ
例えば、Excel VBAでは以下5つのライブラリについて、デフォルトでチェックが入っている、つまり使用可能になっていて、それを使ってプログラムを書いています。
- Visual Basic For Applications:VBA関数など
- Microsoft Office 16.0 Object Library:Office
- OLE Automation:OLE
- Microsoft Excel 16.0 Object Library:Excel
- Microsoft Forms 2.0 Object Library:フォーム
VBEの「ツール」メニューの「参照設定」で、ライブラリの確認や追加ができますよね。
それで、他のライブラリにチェックを入れると、その機能も追加で利用することができるようになります。
Word文書を操作することができる「Microsoft Word 16.0 Object Library」など、他のOfficeアプリケーションを操作するライブラリや、FileSystemObjectやDictionaryを使用することができる「Microsoft Scripting Runtime」といった便利な機能を提供するライブラリなど、とてもたくさんのライブラリが用意されています。
したがって、一回ライブラリをザーッと眺めていただくと、VBAのできることが見えてくるということになります。
Google Apps Scriptができること
同様にGoogle Apps Script(GAS)ができることは、Google Apps Scriptの公式ドキュメントで「サービス」という形で確認することができます。
遷移した先の左側に「Services」ごとに紹介されていますが、以下表にまとめているように、たくさんのサービスが提供されています。
Services | サービス数 | 説明 |
---|---|---|
G Suite Services | 12 | G Suiteアプリケーションを中心に操作できるサービス群 |
Script Services | 15 | GAS全体で横断的に使える便利なサービス群 |
Advanced Google Services | 19 | サービスごとに有効化することで利用できる拡張サービス群 |
それはもうたくさんのGoogleアプリケーションの操作を行うことができます。
Pythonができること
Pythonはここまで登場した二つの言語とは少し違いまして、オープンソースで作られている言語です。
標準で搭載されているライブラリとしては、以下の公式ドキュメント(日本語に翻訳されています)で確認することができ、非常にたくさんのライブラリが提供されています。
さらに、 オープンソースということで世界中の凄腕の開発者たちが自由に外部ライブラリを作成することができます。
以下の「PyPI」というサイトでそのライブラリー郡を確認することができますが、なんと13万近くのライブラリが提供されています。
逆に、Pythonができることの全てを確認するのは至難の技ですが、とにかくいろいろなことができることはわかります。
3つの言語のできることまとめ
ざっと見てきましたが、3つの言語ともライブラリ(またはサービス)の拡張まで含めると、かなり色々なことができます。
その中でも、特徴をまとめると以下のようになりますね。
- VBA:Officeを中心としたMicrosoft社製品とWindowsの操作(Macは少し苦手)
- Google:Google社製品
- Python:とにかく色々できる
もちろん、これ以外にも動作環境やキャリアへの影響など、知っておくべき視点は他にもあります。
では、どの言語を学ぶべきか
仕事で使える言語を選ぶべき
何をしたいかでおのずと選ぶ言語が決まってくるように思いますが、ノンプログラマー向けと考えると、実はもう一点考えてほしいポイントがあります。
それは、「仕事で使えるか」という点です。
人気の Web サービスをするためのプログラミング言語を学んでも良いのですが、一般的にノンプログラマーは、平日昼間はフルタイムで仕事があります。
従って、学ぶ時間の確保は基本的に週末となります。
しかし、ある程度プログラミングを習得して、なんらかのサービスを作るぐらいのスキルを身につけるためには、数百時間という規模の学習時間が必要になります。
週1,2のペースで学習をすると、ものにするために1年~2年といった期間が必要になってきてしまい、モチベーションの維持ができなくなる可能性が高いのです。
仕事に役立つ言語であれば、仕事中にプログラミングに触れる機会を作れることを期待できるわけです。
なので、「仕事に使える」言語を優先的に選んでみてください。
まずはひとつの言語をマスターしよう
もう一つ重要な考え方として、まずはひとつの言語をマスターすることが大事です。
というのも、一つの言語を学んだとすると、二つ目、三つ目の言語の学習コストはぐっと下がるという点があります。
データ型、変数、分岐、反復、関数、オブジェクト… この構成と学習の流れはだいたいどの言語でも一緒なのです。
もちろん、細かい部分での記述方法やルールは異なります。
ですが、だいたいの構成と流れが一緒なので、二つ目、三つ目の言語はその差分を学習して行けば良いということになるわけです。
そういう点でも、 仕事に使える言語を選択して一気に学ぶというのは、その後の展開を考えた上でも効率が良いのです。
コミュニティではノンプログラマーの学びを支援しています
以上、VBA・GAS・Pythonでどんなことができるのか、また学ぶ言語を選ぶポイントとして「仕事に使える」言語を選ぶべきということについてお伝えしました。
さて、そうして選んだプログラム言語ですが、ノンプログラマーの学びの道は、環境・周囲の協力体制・時間など様々な面で、課題が多いものです。
その学びを支援するためにコミュニティ「ノンプログラマーのスキルアップ研究会」を運営しています。
セミナーやオンラインでの情報提供やコミュニケーション、定期的な勉強会の開催といった機会を提供させていただいています。
以下ページにて、詳細の確認およびお申し込みが可能ですので、同じような仲間が集まる学び機会が欲しい!という方はご参加いただければうれしいです。
「ノンプログラマーのためのスキルアップ研究会」について
コミュニティ「ノンプログラマーのためのスキルアップ研究会」では、毎月の定例会や勉強会、Slackでのやり取りを通して、皆さんのプログラミング学習の質やモチベーションを高めるための活動をしています。 過去の活動については、以下のページをご覧ください。- コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2017-2018)
- コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2019)
- コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2020)
- コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2021)
- コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動レポートまとめ(2022)