この方法は、現在の主流の勉強方法です。
書店に行って目的の書籍を買い、それを
読みながら勉強を進めます。
基礎知識のある人や明確な目的がある人に
とっては最も手軽で便利な学習方法の1つと
いえます。
また、最近はネット上にも優れた情報源が
たくさんあります。それらを参照することで、
プログラミングスキルをどんどん高めていく
ことが可能です。
この方法は、現在の主流の勉強方法です。
書店に行って目的の書籍を買い、それを
読みながら勉強を進めます。
基礎知識のある人や明確な目的がある人に
とっては最も手軽で便利な学習方法の1つと
いえます。
また、最近はネット上にも優れた情報源が
たくさんあります。それらを参照することで、
プログラミングスキルをどんどん高めていく
ことが可能です。
プログラミングを教えるスクールの中には、
マンツーマンのレッスンに対応している
ところもあります。
疑問点や質問したいことがあるのに周りの
人の目が気になって声をあげられない人は、
マンツーマンのスクールも検討して
みてください。
通常のスクールより割高ですが、理解も
進みやすく、充実感は高いと思います。
ネットの学習サービスや教材アプリで
ある程度プログラミングの基本や素養を
習得できたら、次のステップとして、
一定回数は、ワークショップやキャンプ
(集中的にプログラミング学習を行う
イベント)、またはスクールに通うことを
お勧めします。
ワークショップやキャンプ、スクールでは、
限られた一定時間内で成果物(アプリや
プログラムなど)を作成するため、
初心者にとっては、とても良い経験に
なると思います。
また、習熟度が同程度の人と交流することも、
勉強のモチベーションを維持するうえでは
効果的です。
ワークショップは全国で頻繁に行われています。
ここまでの段階で、プログラミング的な思考や
考え方と、基本的な開発技法を習得することが
できれば、あとは書籍やネットなどのを
用いて学習するだけでも、どんどん知識を
増やしていくことができます。
その速度は基礎を身につけていない人と
比較して、圧倒的に速いと思います。
どのような科目にもいえることですが、
大切なのは何といっても「基礎」です。
オンラインの学習サービスとワークショップや
キャンプ、スクーリングなどでしっかりとした
基礎を身につけてください。
プログラミング経験がまったくない人に、
最初に取り組んでほしいのは、ネット上で
無料で利用できるプログラミング学習
サービス、またはiPadやパソコンで
利用できる教材アプリです。
これは、大人も子供も同じです。
世界中に、さまざまな学習サイトがあり、
学習障壁の低い「ビジュアル・プログラミング
言語」を採用しているサービスも多いので、
ぜひそのうちのいずれかを試して見てください。
この段階の学習方法をしっかりと説明する
のが、目的もであり、論理的な思考力や
問題解決力の向上に最も影響する段階でも
あります。
具体的なサービスや学習の進め方は
後程解説します。
ネット上の学習サイトや教材アプリを
利用することのメリットは次のとおりです。
・自宅にいながら、24時間、いつでも学習を
開始できる。
・多くのサービスを無料で利用できる(有料も
あります)
・プログラミングの「設計」(論理的思考法や
問題解決力)を学べる。
・最新のプログラミング教育の研究結果が
反映されている。
上記のように学習サービスや教材アプリの
利用は初心者にとって最適です。始めるための
障壁も低く、リスクもありません。
ゲーム感覚ではじめられるものも多く、
「気づいたらプログラミング的思考法が
身についていた」と感じる人がいるほどです。
そのため、小・中学校の授業で採用されている
カリキュラムの多くはオンラインの学習サイトや
教材アプリを利用したものが中心となっています。
「プログラミング」という言葉に多少なりとも
「難しそう」という思いがある人は
このステップから学習を進めることで、
その印象を払拭できると思います。
学習サービスや教材アプリの利用は、
最もお勧めする学習方法の1つですが、
いくつかのデメリットもあります。
1つめは、一人でサービスを利用する場合、
疑問が湧いた際の解決に時間がかかるという
点です。
経験者と一緒に操作したり、複数名で
集まって学習している場合には疑問点の解決も
容易ですが、一人ではじめる場合には
デメリットの1つとなると思います。
2つ目は、いくつかのサービスは英語でしか
提供されていない、という点です。日本語に
対応しているサービスも多いので、英語に
まったく自身のない人は日本語に対応している
サービスから選ぶことが必要です。
ただし、多くのサービスは子供も対象に
含めているため、記載されている英文は非常に
やさしいです。
高度な英語力はまったく必要ありません。
ですので、英語が苦手な人もぜひ一度は
チャレンジしてみてください。
プログラミングの全体的な意味は読んで
字のごとく「プログラムを作ること」です。
もう少し細分化すると大きく、
「アイデア発案・設計」と「開発」の
2つの作業工程に分類できます。
(1)アイデア発案・設計
・実現したいアイデアを練る
・どのようなプロダクトやサービスを
作るのか考える
・そのアイデアをどのようにして
実現するのかを考える
・実現するための構成や構造などを
考える
・実際に作るための設計図・設計書を
書き起こす
(2)開発
・設計図や設計書を見ながら、
プログラミング言語の文法にしたがって
プログラム(コード)を書く
・書いたプログラムがきちんと意図通りに
動くかテストする。
上記の関係は、建築士と工務店の関係に
似ているかもしれません。
プログラミング・スキルの最大の価値は、
アイデアを形にできることです。
言い換えるなら、プログラミングは
あくまでもアイデアを形にするための
ツールでしかありません。
ですから、どのような理由でプログラミングを
学ぶにせよ、できれば「何らかのアイデアを
形にすること」をゴールに設定して学習する
ことをお勧めします。
アイデアはどのようなものでも構いません。
好きなゲームでも、Webサービスでも、
iPhoneアプリでも、なんでも良いのです。
みなさん自身の「実現してみたいこと」が
アイデアの種になると思います。色々と
考えてみてください。
「アイデア発案・設計」と「開発」の2つの
作業工程は当然、車の両輪のように、両方とも
とても大切です。
そのため、個人でプログラミング学習を
進めていく場合は、アイデアを考え、必要な
機能を整理し、それをコードに変換していく
一連の流れを経験することが必要となります。
旧来のプログラミング教育の最大の難点は、
アイデアを考えたり、それを実現するための
仕組み検討することよりも先に、開発時に
必要な「特定のプログラミング言語の文法」を
学習させることにありました。
つまり、「先に理論・文法を学び、後で実践を
行う学習方法」です。これがあまり良く
ありませんでした。
一方、現在のプログラミング教育では、実際に
何かを作る過程を経験しながら(もしくは経験
した後で)、プログラミング言語の文法を
学んでいくという流れが主流となっています。
こうすることで、学習者はより具体的に
「今、学んでいることを習得することによって
何が実現できるようになるのか」を
イメージできるようになります。
このため、以前よりも圧倒的に挫折する人が
減り、また効率的に学習を進められるように
なっています。
一口に「プログラミングを学ぶ」といった場合、
その内容は、多彩です。国や地域はもとより、
学習者の年齢や嗜好、目的などによって、
色々な学習法があります。
そのような、無数の学習法が用意されている
という状況は「あらゆるニーズに応えることが
できる」という意味で素晴らしいのです。
しかし、一方でこれから学習をはじめようと
する人にとっては、「何から手をつけたら
いいのかわからない状態」でもあります。
そこで、いったん原点に立ち返って、
「そもそもプログラミングとは何なのか」、
そして「世の中にはどのような学習方法が
あるのか」を見ていくところ始めましょう。
プログラミングと聞くと、パソコンのモニターを
のぞき込み、暗号のような文字と数字を
羅列して、コンピュータ制御しているシーンを
想像する人も多いと思います。
そして、「難しそう」「大変そう」
「勉強は苦手」といったマイナスの感情を
持つ人も少なくないと思います。
しかしそれは、旧来の学習方法の印象が
強いからだと思います。
近年注目されているプログラミングの
学習環境は、こういったイメージとは
まったく異なります。
多くの小・中学校で行われている初期の学習では、
文字や数字の羅列でコンピュータ制御をするのでは
なく、ブロックを組み立てるようにして
プログラムする「ビジュアル・プログラミング」が
採用されています。
実際、最先端の学習方法を取り入れている
プログラミングの授業の風景を見ると、
老若男女問わず、ほぼ全世代の大きの人が、
実に楽しそうにプログラミングを学んでいます。
そのような光景を見ると、プログラミングは
すでに「一部のマニアックなコンピュータ
好きがやること」ではなくなっていることを
痛感します。
ぜひとも、旧来の学習方法ではなく、
最先端の効果的な学習方法で学習を
進めてください。
きっと楽しみながらプログラミングの
スキルを身につけられると思います。