
プログラミング学習は、如何にシンプルに目的を決めて、それを実現する手段を学ぶかということに尽きると思っています。
この記事の目次
お腹が空いたらどうしますか?
例えば、お腹が空いたら、お腹を満たすという目的が出来る、お腹を満たすという目的を実現し得る手段は以下です。
- 自分で料理をする
- 誰かに料理を作ってもらう(家族の誰かに頼るイメージ)
- 外食する(お店で食べるイメージ)
- お弁当を買う(コンビニなどで済ませるイメージ)
- お水をたらふく飲む(お金がないイメージ)
お腹が空いた際の手段の話ですが、大体は上記の5つの手段のどれかを選択するのではないでしょうか。プログラミングも同じです。
目的と手段、そして、その階層(構造)を正しく理解した上で、妥当な手段を選択して、その手段を利用できるように努力する必要があるということです。
挫折しないためにもプログラミングを学ぶ目的を明確にしておきましょう。そして、その目的を実現するための手段として、学ぶ必要があるプログラミング言語を明確にして勉強しましょう。
作りたいものがない、やりたいことなんかない、という方は下記の記事にあるウォンテッドリー株式会社代表取締役CEO 仲 暁子さんの動画を見て欲しいです。私はとても好きなプレゼンです。
なんでもいいんです。少しでもやってみたいと思えること、少しでも興味があることを始めてみましょう。
あとは手段を学ぶだけです。
私の場合は、WEBサービス(具体的には割愛します)を作れるようになりたいという考えのもと、必要だと思われるプログラミング言語と便利だと思えるなツールを選択しました。
また、それ以外は一切やらないことも決めました。参考になれば幸いです。
個人的に、今からプログラミングを始めるのであれば、Progate、ドットインストール、Paizaの有料会員になることから始めると良いと思います。
私が考えるWEBサービスを作るために必要なプログラミング言語
HTML

WEBページの中身をつくる言語です。Progate、ドットインストール、Paizaのどれでも学べます。
CSS

WEBページの見た目をつくる言語です。Progate、ドットインストール、Paizaで学べます。
JavaScript

WEBページに動きをつけてくれる言語です。ただ、それ以外にも多様なことが可能です。Progate、ドットインストール、Paizaで学べます。
jQuery

WEBページに動きをつけてくれる言語です。JavaScriptのコードを簡略、省略して書くことが可能です。jQueryだけ勉強せず、JavaScriptも勉強した方が良いと思います。何事も源流が分からないと理解が遅くなると思います。Progate、ドットインストールで学べます。
SQL

データベース管理システム(私の場合はMySQLを想定) において、データの定義、操作、分析を行うための言語です。AIというのはデータ分析のことと言っても大差ないので、学んで損は無いと思います。ウェブカツ、Progate、Paizaで学べます。
MySQL

世界でもっとも普及しているオープンソースのRDBMS(Relational DataBase Management System:リレーショナルデータベース管理システムの略)で、データベースの構築、利用、運用に必要になる利用環境(SQL言語)の提供やアクセス制御、データ保護、障害復旧など、統合的な環境を提供するシステムのことです。ドットインストール、Paizaで学べます。
PHP

Web 開発に適しており、HTML に埋め込むことができるサーバー側の言語です。動的なWEBページを作成するためには、サーバー側での処理が必要になることが多いので、PHPは不可欠だと思います。FacebookやMixiなどのWEBサービスもPHPで概ね制作されています。ネット上にあるほぼ全てのWEBサービスはPHPを使っていると考えて頂いても概ね問題ありません。Progate、ドットインストール、Paizaで学べます。
Laravel

Webアプリケーション開発用のPHPで書かれたフレームワークです。フレームワークとは、簡略的にことを済ませるための枠組みとご理解ください。この場合は、PHPを容易に書くための”フレームワーク”という理解です。ドットインストール、Paizaで学べます。
WordPress

ブログやサイト(ホームページ)を作成できるソフトです。PHPで開発されており、データベース管理システムとしてMySQLを利用しています。今や、世界中のサイトの約3分の1はWordPressで作られていると言われています。ホームページビルダーの現代版とご理解頂ければと思います。
python

機械学習にも用いられるサーバー側の言語とされています。その可能性は将来有望と言われています。上辺だけでも学んでおこうかと思っています。「youtube」や「evernote」もpythonで作れているようで、この言語はなんでも出来ると言われています。ただ、まだ勉強していない私としてはなんとも言えません。ドットインストール、Paizaで学べます。
Git

プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムです。ドットインストール、Paizaで学べます。
GitHub

Gitを使用したソフトウェア開発のプラットフォームです。かなり有用なソースコード管理プラットフォームのようです。今後、活用したいと思っています。GitHubは、ググれば使用方法がたくさん出てきます。
Visual Studio Code(VS code)

プログラミングを書く際のソースコードエディターの1つです。マイクロソフトによって開発され、Windows、Linux、macOS上で動作します。拡張機能が充実していること、使いやすさを考慮して、VS codeにしました。Atom等も使ってみての結論です。ググると導入方法等も出てきますので割愛します。スマホやPCに最初から入っているメモ帳でもコードは書けるんですけどね。ショートコードと言って簡単にコードを書けたりするので、それなりにちゃんとしたエディターでプログラミングを行うことを推奨します。
AWS(アマゾン ウェブ サービス)

信頼性と拡張性に優れたクラウドコンピューティングサービスで、190か国の100万以上、日本国内では10万以上が使用しているようです。レンタルでサーバーを借りずとも、クラウド上に展開すれば、という考えは理解出来ますし、レンタルサーバーよりもクラウドの方が安くなる理屈も理解できる(要は規模の経済です)ので、先々を見据えれば、クラウドサービスで良いと思います。ただ、2023年くらいまでは、レンタルサーバーの方が性能は良いと思われます。
皆さんもプログラミングを学ぶにあたっては、シンプルな目的を設定して、それを実現するための手段を選択して、愚直に取り組まれては如何でしょうか?効率よく学ぶことが出来ると思います。英語を勉強しようと思った方も、英語を勉強する目的は、英語を使ってコミュニケーションをしたいからですよね?
何事もシンプルに考えた方が良いと思います。
時間を有効に使わないと、いつになっても目的は達成出来ません。人を羨むだけです。
今回はここまで。
ご拝読ありがとうございました。
ではまた。