ここでは、これからプログラミングを学びたい方に向けた情報をまとめています。最近はコードを書かないものもありますが、コードを書くものを紹介します。
プログラミングを学ぶにあたって、第一の関門は環境構築だと思います。環境構築が簡単で、試しやすいものを紹介します。言語は何でもいいので、まずはとにかくプログラミングに触れてもらいたいです。
書籍も紹介していますが、技術書は高額なものが多いです。町の図書館、大学の図書館で借りられる場合もあるので、ぜひ探してみてください。他にも面白そうな本が見つかると思います。本の名前に「やさしい」とか、「簡単」とかが入っていたら、だいたい分かりやすいです。環境構築さえ乗り越えればですが...
なお、先にGoogleのアカウントを作成しておくことをお勧めします。アカウント作成に使うことができたり、Googleドライブにアプリを追加できたりします。チームで開発するときにも便利です。
IDEについて
IDE(Integrated Development Environment)とは、プログラミングの統合開発環境のことです。
プログラムを実行するには、様々なソフトウェアが必要になります。それを初心者の方が自分で調べて、1つずつダウンロードしていくのは大変です。また、それぞれのソフトウェアにアップデートがあったりするので、ダウンロード後も大変です。ソフトウェアのアップデートの影響で、書籍の内容と異なるということもよくあります。
そこで、IDEを使うことをお勧めします。簡単に言うと、必要なソフトウェアが全部入っているのがIDEです。
特にブラウザ上で起動できるIDEは、ダウンロードしなくても実行できて、非常に便利です。
C/C++
このサイトではArduino系のマイコンを使って、電子工作と組み合わせることが多いです。そのプログラムにはC/C++を使っています。Arduino IDEを使うなら、ぜひ使えるようになってもらいたい言語です。
Replitという、ブラウザで利用できるIDEがあります。書籍のコードを書いてみて、実行してみると雰囲気を掴めると思います。
▼久しぶりに起動したら、他のプログラミング言語もサポートされていました。
Replit: the collaborative browser based IDE - Replit
▼実行画面はこんな感じ。左にコードを書いて、右に実行結果が出力されます。
▼大学一回生のときに授業で使っていた書籍がこちら。初心者向けです。
▼Arduino系のプログラムだと、こちらの書籍がお勧めです。
▼本格的にデスクトップアプリなどを作るなら、Visual Studioでしょうか。私自身がVisual Studioから始めて、よく分からなくて挫折したことがあります。まずは簡単な環境で試してみることをお勧めします。
https://visualstudio.microsoft.com/ja/
Python
Pythonは、最近ではAIや機械学習などで耳にすることが多いと思います。実際、深層強化学習やチャットボット、データ解析などの書籍で、Pythonが使われているのをよく見ます。
MicroPythonというマイコン向けのPythonもあって、電子工作とも組み合わせることができます。
IDEはGoogleが提供してくれているGoogle Colaboratoryというものがあります。Jupyter Notebookという開発環境に似ています。
Colaborarotyの準備について
▼Googleドライブで右クリックすると、「アプリを追加」という選択肢があります。
▼Colaboratoryをインストールします。
▼アプリが追加されました。
▼Colaboratoryを起動して、プログラムを実行するとこんな感じ。
Kaggleという、データ解析に関するサイトがあります。こちらも、実行環境がJupyter Notebookと同じ感じです。データサイエンティストを目指している方にお勧めです。懸賞金付きのコンペティションもあります。
▼Kaggleのサイトはこちら。ちなみに、GoogleがKaggleを買収したという経緯があります。
▼ブラウザではなくインストールして使いたいのであれば、Anacondaがお勧めです。Pythonだけインストールするよりも使いやすい環境が整っています。
▼Pythonの文法について書かれた本で、図書館でよく見るのはこちらでしょうか。機械学習やデータ解析などに踏み込んだ書籍を読んでみると面白いです。
Ruby
Rubyは日本人が作ったプログラミング言語です。文法的にはPythonに似ています。
Ruby on Railsというフレームワークを使って、Webアプリの開発もできたりします。
▼こちらの書籍が非常にお勧めです。私がプログラミングについて最初に学んだのはRubyでした。
▼ちなみにRubyを使った、ものすごくマニアックで面白い本もあります。全然実用的ではありませんが、ご興味があればぜひ。読みにくさを競うコンテストとかもあります。
Java
JavaにはEclipseというIDEがありますが、プログラミング初心者が使うのは難しいかと思います。
ここで紹介したいのは、Javaの書籍です。オブジェクト指向について非常に分かりやすい書籍があります。オブジェクト指向はプログラミングの考え方で、他の言語にも通用します。同時期に扱っていたC#の書籍よりも分かりやすかったです。
▼こちらの書籍です。考え方の説明が分かりやすかったです。
HTML/CSS
Webサイトを記述する言語として、HTMLとCSSを聞いたことがあるかもしれません。厳密にはプログラミング言語ではないのですが、実行しやすいのでご紹介。
▼Raspberry Piのチュートリアルを見ているときに発見しました。他の言語のチュートリアルもあります。なお、全部英語です。
https://projects.raspberrypi.org/
▼trinket.ioというものです。Replitに似て、左で書いたコードが、右で実行されます。
▼画面はこんな感じ。Pythonも実行できるみたいですね。