すべての企業はテック企業となるという予測も現実味を帯びてきました。あらゆる業務にITが関係するようになると、本職のエンジニアでなくても、エクセルを扱うようにプログラミングできたらいいなという願望を持つ方も多いと思います。
しかし、いざプログラミングを学ぼうとしても、どの言語で始めたらいいのか分からない。知り合いのエンジニアに聞いても、意見がバラバラでさらに悩んでしまった。そんな声は後を絶ちません。
プログラミングの習得までにはいくつもの壁がありますが、最初の壁がこの「言語選択」です。
本当のところは、どの言語でも構いません。プログラミング言語の基本設計はあまり大差ないので、1つ覚えれば、2つめはかなり時間を短縮して習得できるからです。問題は1つめを如何に挫折しないで習得するかです。
そのために大事なのは、プログラミングで何をしたいかを明確にすることです。そして、プログラミング言語は、自分がしたいことによく利用されている言語を選択します。
ここで、「よく利用されている」とは、スタンダードな言語ということです。スタンダードな言語ほど、その分野の情報量が圧倒的に多いので、完全に有利です。例えば、人工知能(AI)のスタンダード言語はPythonです。C#やJavaScriptでもプログラミングできますが、AIが第一目標であればPythonを選ぶべきです。
以下では、プログラミングを本職としない社会人・ビジネスパーソンが、どのようなプログラミング言語を選んだら良いかまとめてみました。是非学び始める際の参考にしてください。
Python
弊社では、プログラミングを本職としないビジネスパーソンには、まずPython
をおすすめしています。その理由は、1)覚えやすい、2)広範な用途に対応できる、3)これから必要になるデータ分析・AIのスタンダード言語である、ことです。
「万人のためのプログラミング」を目指して誕生した言語なので、やはり覚えやすいです。さらに、インデントを活用したソースコードは、ドキュメントのようで読みやすいのも特徴です。
デスクワークの処理、Webアプリケーション、画像動画処理、科学技術計算、地理情報処理、ゲーム開発、データ処理・分析、AIなど、様々な用途に対応できます。それを可能にしているのが、豊富なライブラリです。Python
に同梱されている以外にも、18万近い(2019.5時点)ライブラリをPython財団が運営するPyPI (ライブラリの倉庫のような場所)からダウンロードできます。
自分のビジネスに取り入れたいが、何から始めればよいか分からない方には、まずPython
で自分の仕事を自動化してみることをおすすめします。身近で具体的な題材ほど、プログラミングの学習にはもってこいです。
データ分析ツールとしてのPython
データ分析では、R
とPython
が双璧をなしています。R
は統計解析やデータ分析に特化した言語であり、データサイエンスの専門家に好まれています。一方、Python
は汎用的な言語ですが、ライブラリを活用することでR
に引けを取らないデータ分析ツールとして利用できます。
Pythonを用いたデータ分析では、Jupyter Notebook というWebアプリケーションがよく利用されます。Webブラウザ上で対話的にコードを実行できるので、試行錯誤しやすく重宝されています。現在ではR
にも対応していますが、Python
で利用されることが多いです。
Python
を用いたデータ分析は、経験豊かなビジネスパーソンにこそ身に付けてもらいたいスキルです。教科書的な分析テクニックは本でも学習できますが、結果を出す分析には経験に基づくビジネス感覚が必要です。だから、両方を兼ね備えた人材は非常に稀有な存在になります。
C#
マイクロソフトが自社の.NET Frameworkによるプログラム開発をサポートするために作成した言語です。当然ですがWindowsと最も相性が良い言語です。最近では、.NET Coreの登場によりMacとLinuxでもC#
で書いたプログラムを実行できるようになりました。
Windows上では、Python
よりも対応できる用途は広く、うまく処理できるものも多いです。特に、エクセルなどのオフィス関連のプログラミングが目的ならば、C#
が有利です。オフィスに関しては、Python
よりもライブラリは高機能であり、エクセルのアドインなどの開発も可能です。
また、マイクロソフトのクラウドコンピューティングAzure を利用する場合もC#
がおすすめです。C#
はマイクロソフトの第一言語なので、C#
であればほとんどのサービスを利用できます。
開発には通常はVisual Studio という本格的な開発環境を使用します。一般的なインストールでも20〜50GBのディスク容量が必要であり、パフォーマンス面ではSSDが望まれます。Python
のように同梱されている環境(IDLE)で手軽にプログラミングを始めるのとはイメージが異なります。
多方面で用いられるC#
ポケモンGOの開発にも用いられたUnity というゲーム開発環境があります。Unityでは、キャラクターを動かしたり、相互作用をプログラミングする言語の1つとしてC#
を採用しています。また、RPAのメジャーな製品の一つであるUiPathでは、独自のライブラリをC#
で作成できます。
C#
はモバイルアプリ開発にも利用できます。通常はAndroidはJava
やKotlin
、iPhoneはObjective-C
やSwift
と言語を使い分ける必要がありますが、Xamarin というクロスプラットフォームに対応した開発環境を用いると、どちらもC#
で開発可能になります。
PHP + HTML + CSS
インターネット上のすべてのウェブサイトの1/3が、WordPress というコンテンツ管理システム(CMS)を利用しています。規模の大小にかかわらずウェブサイトを立ち上げる場合は、WordPressがまず候補に挙がります。
WordPressはオープンソースであり、誰でもどのような目的でも無料で利用できます。WordPressを利用すれば、短期間で本格的なウェブサイトを構築できます。基本的な作業は、WordPressのファイル一式をWebサーバに配置し、MySQL
というデータベースと接続するだけです。
自由にカスタマイズ可能なのも大きな特徴です。プログラミング言語はPHP
で開発されていますので、PHP
を習得すれば柔軟にカスタマイズできます。ウェブサイトのコンテンツはHTML
、デザインはCSS
で記述しますので、PHP+HTML+CSSを合わせて習得する必要があります。
自社(自分)専用のメディアを立ち上げて、情報発信することが目標であれば、WordPressの利用を前提としたPHP+HTML+CSSの習得をおすすめします。
WordPressのカスタマイズを通して学ぶ
個々に学習してからではなく、いきなりWordPressでサイトを立ち上げてしまうことをおすすめします。すると色々と自分でカスタマイズしたくなりますので、その都度PHP+HTML+CSSを覚えて行きます。別々に学習するのはかなり時間がかかります。以下のような書籍を参考に先にサイトを公開してしまいます。
JavaScript
元々は、Webブラウザ上で動作し、Webページに動きを与えたりするための言語でしたが、現在では非常に多岐にわたり利用されています。例えば、プログラム開発に用いられるAtom やVisual Studio Code のようなデスクトップのエディタは、Electron というツールを用いてJavaScript
で作成されています。
このようにJavaScript
の用途を広げてくれたのが、Node.js というサーバーでJavaScript
を動かす技術です。先ほどのElectronは、Node.jsをデスクトップ上で動作させることで、JavaScript
によるデスクトップアプリケーションの作成を実現しています。
Node.jsはWindowsとMacどちらにも簡単にインストールできます。インストールすれば、コマンドプロンプト等でPython
の対話モード(インタラクティブシェル)と同じようにコードを実行できます(node
と入力すると起動します)。また、これもPython
のPyPIのように、npm と呼ばれるツールがあるので、ライブラリ(パッケージと呼ばれます)を簡単にインストールできます。
ビュー(HTML)+コード(JavaScript)はアプリ共通の基本パターン
JavaScript
の利点は、何と言ってもHTML
とCSS
を活用してグラフィカルなインターフェース(GUI)付きのアプリケーションを簡単に作れることです。つまり、HTML
が見た目(ビュー)、JavaScript
が動きや操作(コード)を分担します。このパターンは、スマホアプリ開発と同様です(例えば、AndroidではXML
+Java
)。
実行もWebブラウザですぐできるし配布も簡単です。Electronを利用してデスクトップアプリケーションにすることもできます。GUI付きの誰でも使い易いアプリケーションを作りたい場合におすすめなのが、実はJavaScript
です。