キャリアアップや副業に「プログラミングがいいぞ!」という風潮ができて久しいですが、ご覧の皆様はプログラミングを始められましたでしょうか?
おそらく95%くらいの方は「No」と答えるんじゃないかと思います。
僕も初めてプログラムに触れた時は半強制的でしたし、そういったきっかけが無い方だとなかなか着手できないっていうのが正直なところだと思います。
そんな方々に向けて、「これならできるかも!」というプログラミング言語を3つ、非エンジニアとして27歳まで生きてきたKurupekuがご紹介します。
プログラミングが着手しづらい最大の理由
そもそもプログラミングが始めづらくなってしまっている問題として、大きく3つに分けられます。
プログラミング言語多すぎ
プログラミング言語は有名所を挙げるだけでも
- JavaScript
- Java
- Swift
- PHP
- Ruby
- Python
- C / C++
- C#
- Kotlin
- Go
- R
- Visual Basic
- .Net Framework
など、ごく一部にすぎませんが既にわけわかんないですね。
僕も実はもっと若い頃に「プログラミングをやってみたい」となったことはありました。その時に思いっきりこの問題に直面して、たまたま選んだのがiOSアプリを作れるSwiftでした。
そして訳わからなくなって挫折しました。
言語にはそれぞれ「用途ごとの向き不向き」や「習得難易度」に大きな差があります。
言語のチョイスをミスってしまうと、僕のように苦手意識というお土産つきで出戻りするハメになります。
そういった意味でも正しい言語選択が必要になってきます。
特に作りたいものなんてないんですが…
これもあるあるですね。プログラミングはあくまで手段であり目的になり得るものではありません。
ですが「プログラミングがいいよ!」と聞くと「プログラミングをすること」自体が目的になりがちです。そしていざ始めようとなった時「…で、なにすんだっけ?」となるわけです。そして始めたばかりだと何が作れるのかも判然とせず、挫折していくという流れになります。
つまりプログラミング言語を選ぶ際、「目標も同時に明確にする」ということが重要になってきます。
そしてできることならその目標自体が身近で、すぐにリターンを享受できると、さらなるやる気に繋がります。
やりたいことはあるけど、どうやればプログラムで実現できるのかわからない
これは前述とは反対で、目標はしっかりあるけどそこまでの手段がわからないパターンです。こっちの場合は比較的モチベーションを保つことはできるかもしれませんが、手段を間違うととんでもない上級者コースの道のりを歩んでしまうという問題があります。
いきなり上級者コースで躓きまくるくらいなら、遠回りしてでも初心者コースから回ったほうが最終的に早いというものです。
なにかやりたいことがある場合でも、手に馴染みやすい入り口から入ったほうが身につく速度が段違いになります。
特にプログラミングの場合、異なる言語でも基本は似てるということが往々にしてあるので、無理に難しいところから入るメリットはありません。
気軽にかつ長続きするプログラミング言語選びのポイントは?
結論から言いますと
- 環境構築が容易
- 言語自体の難易度が低い
- 今の仕事ですぐに活かせる
この3点を兼ね備えていることです。
環境構築が容易
環境構築(つまりプログラムが動くようにPCをセットアップすること)は意外と難しく、PCリテラシーが高い方でも最初は非常に躓くポイントです。たまたま上手くいってもPCが変わった時にまた環境構築し直したりしないといけないので、ここの障壁は低いにこしたことはありません。
コンパイルする系(プログラムを動かす前に一度変換を挟むタイプ)の言語はターミナル、いわゆる黒い画面を触るか専用のIDEと呼ばれる仰々しいエディタを入れる必要がありますので避けたほうが無難です。
逆に言えば、特定のアプリケーションをインストールするだけでよかったり、ブラウザでアクセスするだけの言語もありますので、そういった言語を選ぶと自分で書いたコード以外が障害になりにくいというメリットがあります。
言語自体の難易度が低い
プログラミング言語は大きく分けて「静的型付け言語」と「動的型付け言語」があります。プログラムには型という概念があり、それを書き手(あなた)がソースコード内に明記するタイプの言語が静的型付け言語、明記せずにプログラム側でよしなに処理してくれるのが動的型付け言語です。
この2つで言えば動的型付け言語のほうが低難易度の傾向にあります。型という概念は結構難しく、クラスもしくはそれに相当する概念も把握できていないと一定以上のプログラムが組めなくなってきます。
静的型付け言語自体は保守しやすいコードが自然とかけて、慣れると動的型付け言語より扱いやすいと感じてくる有用な仕様なのですが、一番初めに手を付けるべきかと言われると私はオススメしません。
また同じ動的型付け言語の中でも難易度にばらつきがあります。そのあたりまで考慮して言語を選ぶとより躓きにくくなります。
今の仕事ですぐに活かせる
個人的には一番重要だと思っているのがこの点です。
まずは自分の書いたプログラムで自分が恩恵を受けることを目標にプログラムを書きましょう。例えば毎週発生するエクセルの手入力とか、対して中身の変わらない日報メールなどのルーチンワークをプログラムにやらせてみればいいんです。
私自身も最初は日常業務の自動化から入り、プログラムを書く度に業務が短く楽チンになっていきました。そういった実感を伴うプログラムを書いているとシンプルに楽しいですし、そして空き時間も増えていきます。そしてその空き時間をさらなる自動化プログラムを書く時間に充てればいいんです。
プログラマー的な仕事になりたいと思っていなくとも、早く正確に仕事を終えられることは嬉しいはずです。(ちなみに私の場合、その日の業務が午前11時の段階で終わっていたみたいな日もありました)
この点をプログラミング言語選定に取り入れるならば「普段行っている業務を書きやすいプログラミング言語を選ぶ」が正解です。
各言語は工夫次第で色々なことができますが、やはり向き不向きがあります。なのであなたの業務に向いている言語を選び、極力低難易度でやりたいことを実現できるようにしてあげましょう。
オススメのプログラミング言語3選
ではここまでの話を踏まえたうえでオススメのプログラミング言語を3つご紹介します。
どれが一番とかではなくあなたの環境次第で最適が変わりますので、どれが一番自分に向いているかを考えながら読んでみてください。
Google Apps Script
まず最初のオススメはGoogle Apps Scriptです。
Google Apps ScriptはGoogleが提供している
- ドキュメント
- スプレッドシート
- スライド
- Google Drive
- Gmail
- YouTube
などを簡単に自動化できるプログラミング言語となっています。
ブラウザさえインストールしていれば無料で開発可能
Google Apps Scriptはブラウザ上でコードの編集から実行まで完結するので、Webブラウザさえインストールされていれば開発できるのが魅力です。一定の制限があるものの、よほどヘビーに書かない限りは無料で使い倒せます。
使用率の王様「JavaScript」ベースの言語
言語自体の特徴としてはJavaScriptにGoogleお手製のパーツを組み込んだような仕様で、大部分の仕様がJavaScriptと共通になります。
JavaScriptといえば、「ブラウザで使用できるプログラミング言語」として知られており、Webありきの現代においては長年使用率1位を維持し続けている人気の言語です。言語仕様も使用率が物語るように易しく、日本語情報も非常に多いため習得しやすいこともメリットです。
Google製ツールが自由自在
Googleのツール郡はGoogleアカウントさえあれば無料で使用でき、業務用サービスである「Google Workspace」もコストパフォーマンスに優れたサービスのため導入されている企業も非常に多いです。
その場合、書類仕事もドキュメントやスプレッドシートを活用しているはずなので、ガッツリ日常業務の自動化を図ることができるプログラミング言語だと言えます。
ローカルファイルが触れない
これはデメリットになりますが、良くも悪くもブラウザ上で完結しているため、ローカルファイルを操作したりできません。たとえば「PC内の特定のフォルダのファイル名をすべて書き換える」みたいな作業が多いと不向きな言語になります。
とはいえ、Google Driveにアップロードしてもいいのであれば同様の作業は可能なので、工夫次第で回避可能とも言えます。
これらの理由から抑えるべきポイントをすべて抑えたオススメの言語です。
Python
最近は話題になることも多いPythonも初めて学ぶには非常に良い言語です。他の言語に比べて出来ることの幅が段違いに多く、日常業務からWebアプリケーション、果てには人工知能まで開発できてしまう守備範囲が非常に魅力です。
ライブラリを駆使すればMS Officeなども自動化可能
Pythonの守備範囲の広さは「ライブラリの豊富さ」が実現しています。
ライブラリとはざっくり言うと、特定の用途に便利なプログラムをパッケージングして公開しているプログラム集です。オープンソース(無償で自由に利用可能)として公開されているライブラリから目的に合致するプログラムを見つけ、それを活用することでかなりの用途で駆使することができるのが特徴です。
事務の現場で最も幅を効かせているであろうMS Office用のライブラリも存在するので、Officeソフトがメインの方はこちらをチョイスするのがいいでしょう。
誰が書いても自然と綺麗にかける開発者フレンドリーな言語仕様
Pythonは言語仕様自体も比較的簡単でとっつきやすいのも魅力ですが、「インデント(行頭下げ)を正しく行わないとプログラムが動かない」という言語仕様になっており、誰が書いてもちゃんと整理されたコードに仕上がるという特徴があります。
これは一見面倒くさそうに聞こえるかも知れませんが、一度作ったプログラムを後日手直ししようとした際にパッと取りかかれたりするので、むしろプログラムを読み慣れていない時ほどありがたい仕様だったりします。
Jupyter Labアプリをインストールすればすぐに書き出せる
本来Pythonはそれなりに環境構築が難しく、pipだのanacondaだのと初心者にとってはとっつきにくい部分もありました。
しかしJupyterLabというオープンソースのツールがデスクトップアプリケーション化し、インストール形式で導入できるようになったことでその壁は一気に低くなりました。
元々のJupyterLab自体も業務ツールとして使用しやすい良いツールだった上、実行環境も一発でインストールできてしまうので鬼に金棒状態です。
ライブラリを探して活用するのが少し難しい
なんでもできるPythonですが、それ故に目的にあったライブラリを選定したり、そのライブラリの使い方を習得するのが少し難しいというデメリットもあります。
基本的にライブラリ提供元は英語で説明されている場合が大半で、ニッチな用途だと日本語の記事自体がないというケースもあり得ます。
英語が読める方なら苦ではないかと思いますが、僕を含めた英語ニガテ民はブラウザの翻訳機能などを駆使して格闘するハメになるケースも想定しておく必要があります。
このようにPythonは幅広さとそれが故の難しい一面を併せ持った、プログラミング言語らしい言語といえるかもしれません。ただ、Pythonを身につけるとWeb系や人工知能開発、データサイエンティストなどの道も拓けるため、発展性のある言語とも言えます。
VBA
VBA(正式名称:Visual Basic for Application)はMicroSoft Office製品に組み込まれたプログラミング言語です。
しばしばVBA=マクロみたいな認識の方もいますが、Office製品のマクロは、自分の操作を裏側でVBAのコードとして書き直して保存しているだけであり、VBA自体を操ればマクロでは実現できないような幅広い作業をプログラム化できます。
MS Officeさえ入っていれば付随して使用可能
業務で使用するPCならば入っていないPCを探すほうが難しいといっても過言ではないくらいに普及しているMS Office製品に付属するため、会社のPCに限れば大体の方が環境構築済みというのがなにより嬉しいところです。
ただ、有名なため「VBAを勝手に書かない」みたいな規則のある会社も一定数あるようですし、自宅で勉強したい場合は個人でも買い切りorサブスクリプションで購入する必要があるので、人によっては唯一無料で使用できない可能性があります。
ほかと違い引き算で選べる人が限られるという点はデメリットになりうるかもしれません。
MS Officeが自由自在でローカルファイルなども触れる万能言語
Office製品に最適化されているため、その扱いやすさは郡を抜いています。
その上、ローカルファイルなども簡単に触れますし、プログラムからWebへのアクセスなんかもできてしまうため、Pythonほどではないですがかなりの汎用性を持つのが非常に良い点です。
業務効率化ツールとして有名で、ネット上に情報が多い
VBAは今回紹介する中でも古くから親しまれているプログラミング言語です。そのため日本語情報も多く、英語が読めずとも情報収集に困ることは少ないです。
あまりに古い情報だと最新版と同じ動作を期待できないなどはありますが、大体の場合はやりたいことと似たような記事が見つかるため、多少わからずともコピペしてきて動かしながら学ぶという荒業も可能です。
独特の言語仕様で、発展性が低い
VBAは古くからある反面、最近のプログラミング言語と少し離れた言語仕様をしていたりするので、他の言語を学びたいとなった際には少しギャップを感じるケースもあります。
またOffice製品に最適化されている裏返しとして、Webや人工知能開発など他の用途では使用できません。
Google Apps ScriptならWebのフロントエンド系、PythonならWebのバックエンドや人工知能開発、データサイエンティストなどプログラムを主軸にした仕事へのキャリアパスがそのまま繋がる言語に比べると発展性は低くなってしまうため、もう一つ言語を開拓しないとそういった職種への転職などには使えません。
活かしやすいプログラム言語から始めよう
何かを始めるのは非常に気力と労力が必要です。特にプログラミングは専門用語が多く、物体として触れる物でもないので始めにくいのは否めません。
だからこそ手を付けやすく、成果をすぐに実感できる形で受け取れる言語を選ぶことが何より重要です。
実際に私が本格的にプログラムに手を付けざるを得なくなった際の言語はGoogle Apps Scriptでしたが、日常業務のプログラム化を通じてプログラミングの楽しさを十二分に教えてくれました。そしてそのうちRubyなども興味を持ち始め、気がつけば上場企業でGoという言語を使って仕事をしています。
まずは今回挙げた3つのうちのどれかからプログラミングを始めて、自分の仕事を楽に早く終わらせる。そして空いた時間で更にプログラムを書くという好循環に入って行きましょう!