【50代中高年・シニアのためのプログラミング】ど〜しても独学でプログラミングに挑戦したい人のための学習ガイド :挫折ポイント解説付 | 「中高年のためのプログラミング教室」TECH GARDEN SCHOOL

logo

【50代中高年・シニアのためのプログラミング】ど〜しても独学でプログラミングに挑戦したい人のための学習ガイド :挫折ポイント解説付

皆さん、テックガーデンスクールの高橋です。中高年・シニアの方々からよく受ける質問に、「プログラミングを勉強するのに独学はやめたほうがいいですか?」というのがあります。

結論からいうと、私は独学はオススメしません。 しかし今回はあえて、「もし私が独学するとしたらどのような方法を取るだろうか?」という視点でその勉強方法とよくある挫折ポイントをご紹介したいと思います。

 

1. プログラミングの前に 〜 ITリテラシーをまず身につけよう!

 

プログラミングやウェブサイトについて学び始める前に、中高年初心者の皆さんに最低限身につけていただきたいことがあります。

それは、PCやインターネットの基本的な使い方と構造の理解です。特に最近は全てを「スマホ」で済ませてしまう方が多く、若い世代だけでなく中高年の世代でもPCに慣れていない方が非常に多く見受けられます。プログラミングやウェブサイトは、それらITリテラシーの上に成り立っている仕組みです。

誰でも身につけられる簡単なものですので、是非身につけておきましょう。 この知識やスキルが後々、プログラミングを勉強する際の土台となります。PCやインターネットの使い方ができていないと、本来プログラミングとは関係のないトラブルやエラーが頻繁に発生して、なかなか本来のプログラミングの勉强が進まない、ということは非常によく起こります。

 

1)   PCでインターネットを使ってみる

普段スマホで済ませてしまっているメールや検索、Amazonでの買い物などをたまには自宅でPCを開いて行なってみましょう。細かい設定や登録作業、メールを書く作業など、画面の広いPCだからこそ効率よくできることに気がつくでしょう。

● まずは自宅でPCを開く
自宅でPCを開く習慣のある人は驚くほど少なくなってきています。まずはPCに電源をつないで立ち上げ、インターネットにつなぐ習慣をまずは身につけていきましょう。

● メール
メールもPCから見てみると、色々な便利な機能があるのに気が付きます。重要なメールと不必要なメールを仕分けする機能があったり、よく使う文章を署名として保管できたりします。またPCは画面が広いので、返信が必要なメールを見落としにくいのも利点です。

● ネット検索
ネット検索でもPCの画面の広さが威力を発揮します。自分の欲しい情報を効率良く見つけられる確率が高くなります。また、記録したいサイトをブックマークして整理する作業もPCなら落ち着いて行うことができます。

 

2)   PCでファイルを保存・整理する

スマホが苦手な作業として、ワードやエクセルなどで作業をおこなうことと、そのファイルを整理して保存すること、があげられます。またネットからダウンロードした画像やアプリを後からでも見れるように整理しておくことも苦手です。この作業はプログラミングの勉強の際に、頻繁に行ないます。例えば、以下のような作業です。 この作業をイメージできますか?

● ファイルの新規作成と保存
エディターソフトをPC上で探す、見つける  (これができない人が非常に多いです!)

エディターソフトを立ち上げる

新しいファイルを開く

新しいファイルに入力(コーディング)する

保存したい場所を指定する

ファイルに名前をつけて保存する

● 既存のファイルの編集と上書き保存
エディターソフトをPC上で探す、見つける

エディターソフトを立ち上げる

「ファイルを開く」から既存のファイルを探す (必要なファイルを探せない人も非常に多いです!)

既存のファイルを開く

既存のファイルに入力(コーディング)して編集する

ファイルを保存する(上書き保存)

どうですか?   イメージできましたでしょうか。   イメージできなかった人は、ワードなどを使って上記作業をイメージしてみて下さいね。

是非これらの作業をPCでおこなえるようになっていただき、場面に応じてスマホとPCを上手に使い分けられるようになってください。

 

2.  プログラミングの勉強方法   〜  さあ、どうする?

 

ではこれから実際に 「どのようにプログラミングを学んでいけば良いのか」 について、中高年の方々にプログラミングをお教えしてきた経験を踏まえて述べさせていただきますね。

 

1)   プログラミング・ITの全体像をつかむための書籍を一冊読んで見る。

やる気満々のあなた! いきなり本屋でプログラミングの入門書を張り切って買いたくなるところですが、その気持ちをまずはグッとこらえてください。 プログラミング言語や文法、サンプルコードなどが載っている書籍を書いたくなる気持ちはわかりますし、実際私も最初は5−6冊の書籍を購入したものの、1ページも開かずじまい、という経験があります(笑)。 最初は何を選んで良いかわからないので、良さそうな謳い文句の本を闇雲に手にとってしまうのですが、その後どうやって勉強を進めていけば良いのかわからないので、「積読」になってしまうんですよね。

そういった書籍に手を出す前に、

「プログラミング言語の入っていない、プログラミング・ITの全体像を解説した書籍」

を購入されることをお勧めいたします。

というのも、プログラミング言語の書籍を買って読み始めたとしても、社会経験豊富な中高年の方々は、「それが何になるのか」「社会でどのような使われ方をするのか」「自分にとってどんな意味があるのか」などが気になって仕方がなくなってしまいます。 その疑問と不安が挫折への第一歩なのです!   他にも雑念は色々湧いてきます。

「プログラミングとウェブサイトの違いがわからない」

「人工知能とかフィンテックとか気になる」

「ブログを書くと、お金を稼げるの?」

 

挫折ポイント1: 勉強を始めたものの、様々な流行のキーワードや仕組み (Python, ブロックチェーンなど)が気になって、自分のやっていることに疑問と不安を感じてしまう。

 

私の運営する「中高年のためのプログラミング教室」を訪れる中高年の方々は、まず、こんなことを恐る恐る質問します。 毎日のように、テレビでは人工知能の番組をやり、新聞や雑誌は自動運転やブロックチェーンの話題を報じています。また、小中学校でプログラミングが必修になると聞けば、これらのことが気になって気が散ってしまうのも無理はありませんよね。

まずはこのあたりのモヤモヤを払拭し、自分が勉強しているプログラミングは全体の中のどの部分で、自分にとってどのような意義があるのか、について腹落ちしてからでないと、本来のプログラミングの勉強に集中できないと思います。

 

挫折ポイント2: モヤモヤしたままで何から始めればよいかわからないまま時間だけが過ぎていくパターン。 でもすごくプログラミングが気になっている!

 

では、どんな書籍が1冊目としてお勧めなのか?

プログラミングをITの全体像や現代のITビジネスの観点からざっくりと説明してくれる書籍は、ありそうでなかなかありません。 まして、中高年の方々やそのセカンドキャリアを意識した本にいたっては皆無と言って良いでしょう。 そのような状況ですので、大変恐縮ではありますが、拙書を2冊ご紹介させていただきます。

「図解 50代からのプログラミング」 高橋 与志著   リックテレコム

この書籍は、以下のような中高年の方々に向けて書かれた本です。 図解と独立した見開きページで構成された「どこからでも読める」大変読みやすい本です。

◆ ウェブサイトとプログラミングの違いがわからない方

◆ そもそもパソコンの使い方に自信がない方

◆ 人工知能やブロックチェーンといった最新の用語が気になる方

◆ 自分のセカンドキャリアにとって、プログラミングにどんなメリットがあるか知りたい方

一言でいうと「PCやインターネットの使い方に自信がないけれど、プログラミングは気になる中高年」でしょうか。「ご自身とITとの位置関係が見えず、モヤモヤしている方々」でもあります。  このような何も知らない中高年の方でも、ITとプログラミングの全体像をサッと見渡せるように書かれています。

図解 50代からのプログラミング –未開の能力を発掘♪

「教えて♪  プログラミング 〜 まずはなんとなくわかることが大切よ!」 高橋 与志著   リックテレコム

前述の「図解 50代からのプログラミング」 がIT全般やITビジネスの全体像をカバーしているのに対して、この本はプログラミングの全体像をカバーしており、前著よりも狭い範囲が対象になっています。 したがって、「図解 50代からのプログラミング」の次の本として読むのが理想的と言えるでしょう。 この本は、コード(プログラミング言語)を使わずに料理のたとえ話でプログラミングを解説しているので、分岐や繰り返しなどのプログラミングの原理原則を無理なく理解することができます。

教えて♪ プログラミング まずはなんとなく分かることが大切よ!

この2冊はプログラミングやITについての「自分なりのイメージを持つ」、その入り口になると思います。

★   ここから先は考え方が分かれます。 どう分かれるかというと、

「まずは素人にはハードルの高い環境設定(*)のいらないオンライン教材を使う」

「オンライン教材での勉強を飛ばして、環境設定を自分のPCで行ってから書籍や動画を使って勉強する」

後述しますがオンライン教材を使って勉強をしても、最終的には環境設定を自分のPCでおこなって勉強しないと自分のアプリを制作することは難しいので、環境設定は避けることができません。

とりあえずとっつきやすいオンライン教材でプログラミング言語を体験・学習してみる、というプロセスをとるかどうかは個人の好みによると思いますが、ITリテラシーに自信がない方はオンライン教材から始めるのが良いかもしれません。

*環境設定とは 「ローカルPCでプログラミング開発が出来るように、ローカルPC上に仮想サーバを設置する作業」のことで、初心者が自分で行なうにはハードルが高いと言われています。 私の経験上、独学しようとしている人は最初のこのステップで挫折しやすいと思います。

 

2)   オンラインの教材をいじってみる

オンライン教材の良いところは、前述した「環境設定が不要」であることに加えて、他にも以下のような長所があります。

ー 説明が小さな単位になっており、質問形式で学習の流れがスムースであること。

ー 画面の動きなども、確認しやすいので操作で戸惑うところがない。

ー 解答をコピペすれば必ず動く。

ー  ストーリー仕立てであったり、ユーザーインターフェイスも易しく楽しいものが多いので、楽しみながら勉強できる。

では、いくつかよく知られたオンライン教材をご紹介しましょう!

 

Progate

非常によく知られていて評価も高いサービスです。 当スクールの中高年の生徒様や慶大生スタッフの中にも、このサービスの使用経験のある人がいます。 このサービスの立ち上げメンバーの東大生たち(当時)とは知り合いだったこともあり、とても嬉しく思っています。 かなりの部分が無料で勉強できるのも嬉しいですね!

最初にとっつきやすい HTML/CSSのコースを勉強してから、 RubyあるいはPHPのコースに進むのが良いでしょう。 中級以降で必須の言語となるJavaScriptのコースもやっておきたいところです。 文法の勉強が中心ですが、入力(データ)→出力(画面の動き)  を繰り返し体験できるので楽しいと思います。

特に Ruby on rails のコースは非常に充実していて本格的な内容になっています。 また、Command  line やGitのコースまであるのにはこだわりを感じます。 「プロ(Pro)の登龍門(Gate)」として、「創れる人」を作ることへの熱意を感じますよね。

これら全てのコースを受け放題で月額 ¥980  は本当に安くて良心的だと思います。  最初のパートのみ無料で受講できますが、有料会員になることを強くお勧めいたします。 私も入りたくなってきました!

 

Swift Playgrounds

Apple社がiOS用に開発した言語Swiftを使って、ゲーム形式で楽しみながら学べるオンライン教材です。 これが無料というのもスゴイですよね! この教材用の日本語の書籍もいくつか出ていますので、参考にしてみてください。 ただし、SWIFTという言語は基本的にはiPhoneアプリ開発用の言語なので、この言語から学習をスタートする人は正直少数派です。 アリはアリなんですが、書籍やネット上の情報もウェブサイト・ウェブアプリ開発で多用されるPHPなどに比べるとどうしても少なくなってしまいます。  でも、Swift PlaygroundsはiPadでも気軽に学習できるので、楽しそうなんですよね〜  一度遊んでみたくなる魅力があります!    これで無料とは、余裕ですね〜

Swift Playgrounds上でプログラミングしたコードでドローンやロボットを自在に動かすこともできます。

「Playground」は「遊び場」のことですが、文字通りリアルなおもちゃを使ってプログラミングを学ぶことができるので、大人だけでなく子どもたちにも人気

引用: ferret  初心者でもできる「Swift Playgrounds」の概要と使い方を丁寧に解説   

 

画面上で学ぶだけでなく、ドローンやロボットやおもちゃなどをつなげて遊べるなんてアップルらしいですよね。 そう言えば、去年表参道のアップルストアに行ったときに、待ち時間にボールのおもちゃを見ていたら、店員さんにその場で iPad を使ってそのボールを動かすデモをされて、結局そのおもちゃも買ってしまった!という経験を思い出しました。。。

アップルストアでは定期的に、おもちゃを動かすレッスン・セミナーも無料で開催されていますので、一度遊びにいかれてはいかがでしょうか。  あーこれ勉強してみたい!

参考: 「おやこでレッスン!」 プログラミングトイ Sphero SPRK+をAppleストアで体験してきた!     

 

テクノロジア 魔法学校

小中学生のプログラミング教育のパイオニアであるLife is Tech! がディスニーとコラボして、作ったオンライン教材です。 ハリー・ポッターを思わせる魔法学校の世界観で、「プログラミングは魔法である!」ことを楽しく学びながら進めていきます。 こちらは大人でも十分に学習できる本格的な内容になっています。  オンラインでライセンスを購入(はじまり篇 ¥ 49,800)してウェブブラウザからプレーするタイプです。

やや高価ですが、楽しく勉強できますし、お子様やご家族とも一緒に楽しめることを思えば、投資の価値は十分ありそうです!

学べる言語は HTML/CSS(ウェブデザイン)、 JavaScript(ウェブデザイン/ゲーム)、Processing(ゲーム/メディアアート)・Shader(グラフィック処理)となっており、ゲームやグラフィック処理も学べるのが特長です。 また非常に面白いのは、宝の地図的なリアルの教材アイテムが同梱されていたり、メイン課題をクリアするごとにキレイなディズニーのポストカードが郵送されてくる仕掛けです。

はじまり篇の後にある追加教材を全て購入すると ¥141,600  となり、はじまり篇と全て合わせると  合計 ¥ 191,400 (税別)*ですが、最後まで取り組めば 「テック企業のインターン、プロの卵にはなれる!」とのことですので、かなりの実力がつくのではないでしょうか。 また最後には外部の環境設定を行って、このオンライン教材の外の世界でも「自走」できる人になるように導く設計になっています。 家でこのレベルまで楽しく勉強できて、かつ自分の将来にも役立つのであれば決して高くはないと思いますよ!(私も正直買いそう! 笑)

*2020年1月21日現在

 

挫折ポイント3: 折角の便利なオンライン教材ですが、最初は面白く勉強したけれど、だんだんとPCを開いて勉強する頻度が落ちていく人も。  スマホ中心の生活で、PCを開く習慣が少ないことも原因の一つでしょう。 最初の文法部分だけで飽きてしまい、その先の美味しいコンテンツまでたどり着けない、という残念な結果もあり得ます。

 

3)  これらオンライン教材の位置づけ

今、小学生たちがプログラミングを学ぶ際に非常によく使われている「Scratch」というツールがあります。ビジュアルプログラミングと言って、いわゆるプログラミング言語を使わずに、ブロックのようなものを組み合わせながらプログラミングの言語を学んでいく仕組みです。   この「Scratch」でプログラミングの考え方に慣れた後どうするのか?  が今の課題だとライフイズテックCTO  橋本氏が述べていらっしゃいます。

しかし現時点では「Scratchの次」に課題が残されています。
「Scratchでプログラミングに慣れた後にどのような教材でプログラミングを学び続ければ良いのか?」
「中高生や大人にとってちょうど良い、ゼロからしっかりとプログラミングを学べる本格的な学習環境は無いのか?」
というご質問やご相談も多く耳にします。

その課題への最善の答えの1つが「ディズニー・テクノロジア魔法学校」になると私たちは考えています。

引用:  テクノロジア 魔法学校   開発者からのメッセージ   橋本善久氏(ライフイズテック株式会社取締役CTO)

 

テクノロジア魔法学校以外のオンライン教材も、おそらく「Scratch」の次に最初にプログラミング言語にふれる場として位置づけられています。そして、更にその次の段階である「環境設定を行って、データベースも設置した上でアプリ開発を行なう」 レベルにつなげる考えだと思います。

 

つまり、

1. ビジュアルプログラミング :  Scratch

2. オンライン教材 : Progate/Swift Playgrounds/テクノロジア 魔法学校 など

3.  環境設定+アプリ開発

と今のプログラミング教育界は、学習ステージを認識しているようです。

 

4)   環境設定不要の書籍を使って勉強する方法

中高年の方々の中には、「オンライン教材はちょっと。。。自分はやっぱり本で勉強したいなあ」という方も多いはず。 そういう方のために、環境設定がいらない書籍をいくつかご紹介しましょう。

最初は環境設定のいらないJavaScriptを使って動かしながら学ぶのが超初心者の人にとっては無難かも知れません。JavaScriptは必須の言語ですし、PHPと文法もしているので学んで損になることはまずありません。以下の書籍はサンプルコードや解説も充実しているので、挫折することはまずないでしょう。

 

1.「非エンジニアのためのプログラミング講座」吉岡直人 (著), 村田雅行 (著), 伏田雅輝 (著)リックテレコム

2.「Monacaで学ぶはじめてのプログラミング~モバイルアプリ入門編」 著者:アシアル株式会社、生形可奈子、岡本雄樹 出版社:アシアル株式会社

 

上記の2冊は、JavaScriptを使ってプログラミングの文法の解説に多くの紙面を割いていますが、サンプルコードやサンプルアプリも一部掲載されており、最初の入門書としてはとっつきやすいと思います。また、2冊目の書籍で使用するMonacaというシステムは気軽にスマホアプリを開発・公開するためのプラットフォームとして有名なので、スマホアプリに興味のある人にとってもお勧めです。

次に、拙書のご紹介で大変恐縮ですがPHPの基礎がページをめくりながら勉強できる「めくって♪  プログラミング」高橋与志(著)リックテレコム を御紹介します。 一問一答のドリル形式で、エンジニアが実際におこなっている、完成形からイメージする思考の流れを体験できるのがユニークなところです。 また、巻末にAWS Clooud9によるコードを使った勉強もできますので、是非挑戦してみてください!

めくって♪ プログラミング – ドリル形式でグングンわかる

 

挫折ポイント4:  自宅でPCと本を両方開いて勉強する環境と習慣を作るのは、大変だと思います。  お仕事を持っていらっしゃる人はなおさらです。

 

5)   禁断の!環境設定をおこなう   (PHP用)

いよいよ禁断の環境設定をおこなう勉強に突入しましょう!  プログラミングを始めようとして、プログラミングそのものを勉強する以前にここで挫折した人も少なくないのではないでしょうか。  それほど「環境設定」は素人にとってハードルの高い作業なのです。  ここでは、PHPを例に解説していきます。

「環境設定とは、ローカルPCでプログラミング開発が出来るように、ローカルPC上に仮想サーバを設置する作業」 って、これだと何がなんだかわからないですよねえ。 詳しい話は別の機会に回すとして、簡単に言うと「あなたのPC上でプログラミングをおこなって、画面の動きやデータベースを使った動作を確認できる環境を構築すること」もっと言うと、「ネット上のサーバーを使わずに、あなたのPCでプログラミングができるようにすること」と言えるでしょうか。

擁するに、これをしないと 「勉強できない!」ということなんです。

しかし、これがあまりにも素人に難しいため、プログラミングを教える側はいつも頭を悩ませています。  前述したビジュアルプログラミングやオンライン教材登場の背景には「環境設定なしで教えたい」という気持ちがかなりあったと推察します。現に、オンラインで教えるプログラミングスクールでは、環境設定のいらない仕組みを採用しているところも多いようです。

確実に素人に対して環境設定をおこなうには、マンツーマンの個別指導しかありません。 テックガーデンスクールではその方法をとっていますが、それでも100%確実ではなく、4-5回に1回程度はトラブルに見舞われます。ひと手間くらいかければ大抵は解決しますが、そのひと手間にいくつかパターンがあるのが困りものです。 うちのスクールの歴史は環境設定との戦いであった、と言っても過言ではありません。

そんな世界ですから、書籍や教材(つまり対面指導ではない状況)でその方法を100%正確に伝えるのは困難を極めます。というのも、仮想サーバのバージョンやPCのOSのバージョンによって、うまくいったりいかなかったりしますし、しょっちゅうバージョンが変わるので、書籍などのスクリーンショット(画面の画像)やインターフェイス(操作するためのボタンなど)は、現実から遅れてしまうことが良くあるのです。

そんな中、最新の情報をなるべくわかりやすく伝えようと努力されているサイトを PHP用の環境設定を例にいくつか御紹介します。

<Mac>
Reasonable Code 【Mac】MAMPでPHPの環境構築を行う
BeCrazy   PHPの環境構築 (初心者・MacOS向け)
MAMPのインストール(macOS用)
ショートプログラム MacのパソコンにMAMPをインストールした (動画あり)

<Windows>
Qiita WindowsにPHPの環境を作る(XAMPPのインストール)
attracter【WindowsにPHP動作環境を作る】XAMPPの導入方法
 プログラミング講座PHP編第0回~PHPってなに?XAMPPインストール (動画)
【実践編】開発環境XAMPPのインストールと使い方! Chapter2 #5  (動画)

 

挫折ポイント5: 上記の解説と全く同じ画面であっても上手くいかないケースさえ現実にはありえます。 また、超初心者の皆さんが操作するには、やや難しいユーザーインターフェイスですし、英語も多く出てきますのでそのあたりのハードルもあります。 順調にインストール作業が終わったとしても、PCの状態などによっては、うまく動かないことも起こり得ます。 このように、専門家(エンジニア)の助けが必要な状況に陥ることも珍しくありません。

 

6)   エディターについて

自分のPCでプログラミング言語を使ってプログラミング(コーディング)を行なうには、言語を入力するための専用のソフト(エディターと呼びます)を使いましょう。

ここでは代表的なエディターであるSublime textのインストールと使い方が解説されているサイトをいくつか御紹介します。

 

Programing beginner by koala:Sublime text3のダウンロード~日本語化まで【画像+動画の過保護説明】
Programing beginnerby koala:sublime text3のダウンロード&インストールから日本語化までの説明 (動画)
山田の自由研究:Sublime Textーインストール方法と日本語化【初心者にも分かりやすく】

 

挫折ポイント6:エディターをインストールして開くところまではできたけど、どう使っていいかわからない。 ファイルを作ったり保存する方法が、「直感的に」わからない人は超初心者の人には非常に多いです。

 

7)   写経して成功体験を積め!  (PHP用)

 

① 環境設定後の動作確認
無事、PHPの環境設定が終わった(と思った)方は、 サンプルコードの動作確認(画面表示)を確認しましょう(その確認の意味するところもわからないかもしれませんが。。。)。それもよくわからない、という方は以下の書籍の最初のほうにあるコードを動かして、画面表示してみましょう。

ちなみに、最初に表示させる文としてよく出てくるのが  “ Hello World ! ” というのがお馴染みです。 皆さんも是非成功させて、プログラミングの世界に “Hello World ! ” デビューしてくださいね。

 

挫折ポイント7:どうやって動作確認すればよいか、さっぱりわからない。  そもそも動作確認って何?  というのがほとんどの中高年の超初心者の状態です。 MAMP(あるいはXAMPP)を立ち上げ、ブラウザを開き、URLを入れてアクセスする。この手順は、超初心者には十分難しい操作なのです。

 

② 写経をやってみよう!
まずできることとして、何か1冊の書籍を購入し、その内容を自分のPC上に書き写して動かすこと(写経)をお勧めします。超初心者の方には文法が易しく、初心者向けの情報も多いPHPがおすすめです。 そのなかでもわかりやすい以下の2冊をご紹介いたします。

 

3. 「いきなりはじめるPHP~ワクワク・ドキドキの入門教室」
谷藤賢一  リックテレコム

4. 「イラストでよくわかるPHP はじめてのWebプログラミング入門」
岡本 雄樹 (著), アシアル株式会社 (著), めじろまち (著)  インプレス

 

3. の本は谷藤先生の「教えたい!」熱意が行間から伝わってくる名著&ベストセラーですし、4.の本は前述したMonacaシステムを開発運営しているアシアル{株)のエンジニアの方がわかりやすく書いています。 このレベルの書籍の内容を写経して、

ー ファイルを作る
ー コーディングする
ー ファイルを保存する
ー ブラウザで画面を表示する

この流れをまずは自分のものにしてください。2−3回写経していくうちに、おのずと文法や本の解説の意味することろが実感としてわかってくると思います。

このレベルの書籍を使いこなせるようになったら、実際のアプリ開発に近いレベルのものに挑戦してみましょう。 書籍3. の続編と言える谷藤先生の以下の本 5. がお勧めです!  かなり歯ごたえがありますので、3回は写経してみてください。 また、2017年に改訂されている点も魅力です。レビューでも非常に評判が良いです。

5.  「気づけばプロ並みPHP 改訂版–ゼロから作れる人になる! 」
谷藤賢一  リックテレコム  (2017/2/18)

ここまできたら、もう初心者は卒業ですね!   更に中級者を目指すには、アプリ開発・サービス開発に必須の道具である「フレームワーク」の勉強もしておきましょう。

 

挫折ポイント8: 本と同じように写経したのに動かない!    コーディングする際に、超初心者は半角・直接入力でタイプすることが難しく、全角のスペースや ダブルクオテーション「“」 を使ってしまいます。    文末のセミコロン「;」 も忘れがちですし、 if文などで使う{  } のペアの片方を知らないうちに削除してしまっている、というケースも非常に多いです。 これらの記述ミスがまた超初心者には気がつきにくいものばかりなのです。

 

③ フレームワークとは?
「フレームワーク」とはPHP以外の言語でもほとんどと言っていいくらい用意されている仕組みです。

最低限プログラミング言語があればアプリケーション開発が始められますが、実際にはプログラミング言語をそのまま素で使用することはまずありません。 効率的な開発には開発フレームワーク(アプリケーションフレームワーク、ソフトウェアフレームワークとも言います)の活用が必須であり、IT企業やプロの現場でも普通に使われています。

開発フレームワークとは、アプリケーション開発を行う上での「枠組み」(=Framework)のことです。 先人たちの経験によって積み重ねられた実際の開発に必要な様々なノウハウが凝縮されており、以下のような利点があります。

 

  • コードを機能別のファイルとして分けることで役割が明確になり、見通しが良くなる格納するフォルダやファイル名の付け方もルール化されている
  • 複数人で開発する際も皆同じ作り方になり、分散・並行開発がしやすく品質が安定する
  • やりたいビジネスやサービスの開発に集中できるよく使われる機能は標準で搭載されており、簡単に利用できる
  • 必要のないコードは極力省略できる(自動で判断してやってくれる)

 

各プログラミング言語にはそれぞれ有名な開発フレームワークが存在します。

PHP: CakePHP、Symfony、Laravel等
Ruby: Ruby on Rails, Sinatra等
Python: Django、Flask等

 

欠点をあえて挙げると、標準化や自動化のためにどうしても余分なコードを読むことで、スピードが本当にほんの少し遅くなることぐらいです。 しかしながら普通のサービスだったら全然気にならないレベルなのでご安心を。 それよりも得られる利点のほうが圧倒的に大きいため、開発フレームワークを活用するのが当たり前となっています。

 

④ PHPフレームワーク
ビジネスレベルのアプリケーション開発には「フレームワーク」の使用はもはや常識です。TechGardenSchoolでも有名なPHPフレームワークであるCakePHPを採用しています。今までフレームワークを扱った超初心者向けの本は殆ど無かったのですが、以下の2冊はその先鞭をつけたものといえるでしょう。

5.  「~短期集中講座~ 土日でわかる PHPプログラミング教室 環境づくりからWebアプリが動くまでの2日間コース」
吉谷 愛 (著)  SBクリエイティブ

6. 「即戦力になるための PHPシステム開発の教科書」
マッキーソフト株式会社 (著), 鶴田 展之 (監修)  技術評論社

書籍5. ではFuelPHPというフレームワーク,  書籍6. ではCakePHPというフレームワークを使っていますが、仕組みとして大きな違いはありませんので、気にせず挑戦してみてください。

 

挫折ポイント9: 誰でも大きく間違えないようにレールが敷かれているのがフレームワークの特長なのですが、その反面、MVCモデルの使い方には多少の慣れが必要になります。 合理的で、短いコードで動くようにできているので、超初心者にとって最初はとっつきにくく、コードを眺めているだけでは理解しにくいように感じるかもしれません。

 

⑤ 動画サービス :ドットインストール
独学を志す人に対してどうしても紹介したいサービスが,  プログラミング学習動画サービス「ドットインストール」です。  結構エンジニアを目指す人を意識して作られているような雰囲気なので、前述までのオンライン学習や写経をある程度やってから挑戦されるのが良いかもしれません。  初級〜中級者向けと思います。

しかしなんと言っても、豊富な動画数、カバーされている言語や内容の広さと深さには圧倒されます。これでプレミアム会員  月額  ¥1,080 は「タダ」みたいなものです!  是非スキマ時間に眺めたり、週末に写経に挑戦したりしてみてくださいね。  環境設定やエディターの使い方、最初のレッスンなどかなりの部分が無料会員でも視聴可能なのも非常に良心的です。

テックガーデンスクールの慶大生スタッフをやっていた人で、独学で大手IT企業にエンジニア就職した人がいたのですが、彼が「ドットインストールのプレミアム会員になって、倍速再生機能などでざーっと勉強したっす!」と言っていたのを思い出します。

そうそう、プレミアム会員になると、

ー ソース閲覧できる
ー 再生速度を倍速にできる
ー エンジニアに月5回まで質問できる(βサービス: 2020/1/26現在)

などの機能がついてきます。 写経するなら、プレミアム会員になるのは必須でしょうね。 また、エンジニアへの質問サービスを実験的に開始しているのは要注目です!

また、ドットインストールのお勧めの学習の順番が書いてある「プログラミング学習ガイド」の内容が非常に良いので是非参考になさってください。 最初は環境設定のいらないHTML/CSS/JavaScriptから始める、という考えに私も同感です。

 

⑥ データベースの作り方
環境設定と並んで、初心者の人にとってハードルの高いのが、「phpMyAdminを使ったデータベースの作り方」です。   この部分にページ数を多く割いている書籍は少ないので、いくつかのサイトをご参考までに紹介しておきますね。

AdminWeb  phpMyAdminを使ったサンプルデータベースの作成
DBOnline       phpMyAdminの使い方
DBOnline      テーブルの作成   

 

挫折ポイント10: 最初にデータベースを作って、SQL文を使って実際にデータを保存したり取得したりできるようになるのは、ちょっと苦労するかもしれません。 超初心者でも最初にスッと動くように指導している書籍や動画を探してみて下さい!

 

3.   作りたいものを作りながら学べ!〜TechGardenSchool誕生秘話〜

 

次の段階は、「あなたが作りたいもの」を「作りながら学ぶ」ことです。これが一番楽しいし、高いモチベーションを継続して学んでいくために最も理にかなった方法と言えるでしょう。 どのエンジニアの先生に聞いても、プログラミングを学ぶのに最も適した方法はこれだとおっしゃいます。

そう言えば、2010年のことですが、私が何もITやプログラミングの知識もなく、「外注」でウェブサイト、ウェブアプリ、iPhoneアプリの制作を依頼した際に、200-300万円の費用を使ったものの結局全て無駄に終わってしまったことがありました。 その際、あるエンジニアの方に相談したところ、こんな会話になりました。

エンジニア:「高橋さん、起業する人もプログラミングができたほうがいいんですよ」

私 : 「確かに。。。でもどうやって習得するのが1番いいんですか?」

エンジニア:「そうですね〜   やっぱ自分が ”作りたいものを作りながら学ぶ”  のが1番でしょう」

私 : 「それをするのにはどれくらいの期間かかるんですか?」

エンジニア:「そうですね〜  3ヶ月。」

私 : 「!!    えっ。    たった3ヶ月?」

エンジニア : 「はい」

私 :「作りたいものが作れて、しかもプログラミングが習得できると。 やります!」

この会話がきっかけとなり、2011年「起業家のためのプログラミング教室」としてClub86 Startup School(TechGardenSchoolの前身)を立ち上げることとなったのです。 しかし、私の作りたいものは3ヶ月ではできなかったし、プログラミングも3ヶ月では習得できませんでした。 やりたいことに導かれてプログラミングを勉強するのは理想ではあるけれど、 やはり基礎的な勉強は土台としてある程度は必要であろう、という結論に達しました。 それがないと、ググってもその内容についていけないし、今の自分に必要な書籍や情報を取捨選択することができないからです。

ですから、テックガーデンスクールのスクールレベルのゴールの1つは「自分に必要な書籍や情報を選択することができるようになる」であり、また「今の自分のスキルで挑戦できるレベルを把握できるようになる」ことです。

話が脇にそれましたが、 今まで述べてきた勉強は、あくまでも「 作りたいものを作りながら学ぶ」ための準備であって、全てはこのためにある、ということを肝に命じて欲しいと思います。  プログラミングの醍醐味である「自分の思うように動かす楽しさ、快感」を味わってこの世界にハマれるかどうかは、この段階にかかっているといっても過言ではないでしょう。
くれぐれも、「勉強のための勉強」 で終わらないようにしたいものです。

当スクールの中田先生による「開発の進め方」のブログを参考までに御紹介いたします。 プロも開発でおこなっている基本的な手順ですので、皆さんも小さなアプリを作る際の設計の参考にしてみてくださいね。 「手を動かす前の設計が勝負!」ということを御理解いただければ幸いです。

折角ここまでのレベルに来た人に挫折してほしくないので、2点ほどアドバイスをさせてください。

● 大作に挑戦しない

仕方のないことですが、皆さんはプロの作ったアプリしか見たことがありません。そのため、ついプロと同じようなものを作ろうとしがちです。まずは身の丈にあった小さなものを一つ作って成功体験と経験を積まれることをお勧めします。 ごく小さなものを2〜3個作ってそれを公開し、知り合いに使ってもらいましょう! まずは「公開する」、というハードルを超えることが鍵です。 人は「公開」を意識したとたんに、恥ずかしくないちゃんとしたもの(デザインも含めて)を作ろうと頑張るからです。

80代プログラマーとして有名になった若宮正子氏*の「hinadan(ひな壇)」アプリも、デザインや音の組み合わせでかっこいいアプリになっていますが、機能(アルゴリズム)としてはそれほおど複雑なものではありません。 特にアマチュアの我々は、複雑で難しいものに挑戦する必要はないと思います。 そういう意味で、「hinadan」はアマチュアにとっての良いお手本でしょう。

 

挫折ポイント11: 大作アプリ(いわゆる世に出ていて皆が知っているようなサービス)を意識するあまり、あれもこれもと機能を追加しようとして未完成の時間が長くなり、モチベーションが続かなくなる。 そうこうしているうちに、「なんかデザインもかっこ悪いし、とても公開なんかできない」というネガティブなスパイラルに。

 

● 信頼できるエンジニアのアドバイスがもらえる環境でおこなうこと

いくら自分の「作りたいもの」でも中高年の初心者がいきなり独力で挑戦するのには無理があります。若宮さんも、東北文化学園大学の非常勤講師を務める小泉勝志郎さんにスカイプで指導を受けながら作成を進めていたようです*。 本稿の独学の手法からは少し外れてしまうかもしれませんが、 そろそろアマチュアの独学での伸びしろにも限界が出てくる頃ですので、信頼できる専門家を探しましょう。

* 五反田計画:  82歳のiPhoneアプリ開発者! 若宮正子さんに聞く、プログラミング学習とアプリ開発のコツ

 

挫折ポイント12:  エンジニアや他人に相談すれば、15分で気がつくようなちょっとしたエラー・不具合に1ヶ月以上悩んでしまう (自分の目ではミスに気が付きにくいものなんです!)。 サーバーの環境設定や、Git管理用のツールの使いかたに慣れておらず、実際にコーディングする前に疲れてしまう。  身の丈を超えた複雑なデータを扱っていることに気が付かず、データベースの設計自体でどうして良いかわからなくなってしまう。

 

4.   最後に 〜  「作りたいものが見つからない」症候群 を退治せよ!

 

将来どんなにプログラミング教育が発展しても、今後、小中学生から中高年・シニアに至るまで共通の落とし穴になる、と確信している大問題があります。 それは、プログラミング・ITスキルを身につけたものの、

「自分が作りたいもの、やりたいことがわからない!」

という  ”作りたいこと・やりたいことがわからない” 症候群です。  プログラミングはあくまで道具であって、どんな料理を作るのかを決めるのは「あなた」です。 それが決まらないと、家に招いたお客さんにずーっと料理が出せずに待ちぼうけを食らわせることになってしまいますよね(笑)。

若宮さんは、

何を作るかを考えるときは、「どこにニーズがあるのか」を見つける力が必要です。そのためには、リアルな生活を充実させて、いわゆる“リア充”にならなければなりません。

小学校でプログラミング学習が必修化しますが、子どもは本来「作りたい本能」を持っているはず。そこは先生の教育のやり方にかかっていますが、担任の先生が教える仕組みだと難しいでしょうね。

* 五反田計画:  82歳のiPhoneアプリ開発者! 若宮正子さんに聞く、プログラミング学習とアプリ開発のコツ

とおっしゃっており、同じ問題意識をお持ちです。

プログラミング教育に携わっているどの人やスクールも、上から言われたものだけを作る、いわゆる「サラリーマン根性のプログラマー」の育成をゴールやビジョンにはしていないと思います。 皆、「自ら考え、社会課題の解決に貢献するリーダーシップをITを通じて育成し、自立志向の人間を増やす」ことを目的にしているはずです。  文部省の小中の新教育指導要綱でも以下のように述べられています。

小学校段階におけるプログラミング教育のねらい

①プログラミング的思考を育むこと

②プログラムの働きやよさ、情報社会がコンピュータ等の情報技術によって支えられていることなどに気付くことができるようにするとともに、コンピュータ等を上手に活用して身近な問題を解決したり、よりよい社会を築いたりしようとする態度を育むこと

③各教科等での学びをより確実なものとすること

引用: 小学校プログラミング教育について   文部科学省生涯学習政策局情報教育課

そもそも、「自分は何が好きで、どんなことをやっていきたいのか」これは子供から大学生、社会人にいたるまで、すべての日本人が抱えている根源的な課題のような気がします。

テックガーデンスクールは、道具としてのプログラミング教育にとどまらず、「作りたいもの」「やりたいこと」を自ら見つけていく手法の開発にも挑戦していくつもりです。

皆さんに、お会いして色々なお話をお伺いできればと思っております。

 

5.   まとめ

 

現在の日本は、無料・有料を含めて超初心者向けのコンテンツが豊富に用意されており、「世界で最も独学に適した恵まれた環境」であると言えます。 また、現在のインターネットによる情報公開・共有が進んだ社会では、「独学できない学問はない」と言っても過言ではありません。 物理学、経済学、医学などありとあらゆる情報に万人がアクセス可能なのですから。 また、落語のような「口伝」による継承が行なわれている分野やバイオリニストのような芸術分野でさえ、独学ではプロになれない、ということを完全に否定するのは難しいかもしれません。

ですから、プログラミングの独学は可能であると言えるし、実際に独学で身につけた方も多くいらっしゃると思います。現に今の40代以上のプログラマーの方々は、ほとんどが独学、と言っても良いでしょう (子供のころから好きで夢中でゲーム開発をやっていた、というパターンが多いです)。

一方で、現代の多くの超初心者の方が独学に挫折する原因はもっと身近な点にあります。 それは、私も含めて「大多数の人間は弱い」悪く言うと「怠ける理由を探す動物である」ということです。

 

その視点から最大の挫折ポイントは以下であると結論付けたいと思います。

 

最大の挫折ポイント :「PCと教材を開いて学習する環境と習慣を自分では構築・維持できない」 こと。

 

私もオフィスでは人目を意識してシャキッとしていますが、家ではとても仕事なんかできません。 TVを見たり、お菓子を食べたり、YouTubeを見たりしてしまうのです。

更に、

絶え間なく超初心者に襲ってくる、「小さな困難やトラブル」に立ち向かい続けるエネルギーの維持は難しいです。 それを解決できなければ、簡単に挑戦を諦めてしまいがちです。

 

先日、スポーツジムで私がついているストレッチのコーチとダイエットの話をした時のことです。 私が

「過去15kgのダイエットに自力で成功したのだけれども、リバウンドしてしまい、今もう1回同じことを自力でやる自信がないんですよね〜」

とお話したところ、コーチの返答がすごかった!

 

「うん、 自分が食べたりあきらめても、誰にも気づかれませんからね。」

 

これだ!と思いましたね〜   とっても情けない話ですが、私のような凡人は 誰かに見られたり、レッスンを休んだり諦めたら恥ずかしい、と思うような「人目を意識する環境」がないと、「習慣」を作って継続することは難しいのが「人間の現実」なんだと悟らされました。  自分でも理屈上はできるけど、

「お金を払ったからもったいない」

「他の生徒さんに負けないように」

「女性のコーチに良く見られたい」

などの、本来の目的とは 「かけ離れた動機で動く」カワイイ動物なんですよね。 「女にモテたくて、ギターを始めた」とかそういうやつです。

野菜中心で糖質控えめのタンパク質多めの食事を取り、筋トレを組合せることを継続すれば「誰でも痩せられる」ことは皆知っていますので、本来ライザップに行く必要はないんです。  それを1人でできる人は非常に少なく、「まず普通の人にはできない」と言っても良いくらいなわけなんですね。 結局、ライザップに大金を払うのは「人目を意識する環境」と「習慣」を買う、ということなんだと思います。

 

独学が困難な理由 :  1人では「技術的、精神的に自分を支える仕組み」を構築できないから。

 

とも言えるのではないでしょうか。 これを1人でやった成功体験がある、自信がある、という方は独学に向いてらっしゃると思います。

 

結論 まとめ :独学が難しい原因は、コンテンツ(教材)にあるのではなく、「環境と習慣」の構築と「精神的、技術的に支える仕組み」の構築が1人では難しいからだと言える。

 

逆に言うと、スクールなどの教育機関の存在価値は、コンテンツ(教材)の提供ではなく、「環境と習慣」の提供にあると思います。 教室に行くから勉強するし、宿題があるから考えるし、テストを受けないと卒業できないから頑張るのです。 もしスクールを選ばれる際は、「環境と習慣」を提供しているかどうかも検討されてみることをお勧めいたします。

 

TechGardenSchoolの運営する「中高年のためのプログラミング教室」は、 パソコンの使い方から学べて、お月謝制で習い事感覚でプログラミングを始められます。  ご興味のお有りの方は、  一度、 こちらから無料入学相談・カウンセリングへのご参加をご検討されてはいかがでしょうか?

中高年専用に開発されたメソッドを無料体験!
あなたに合ったコースをご案内します。

無料体験クラスお申し込み

無料メール講座50歳からプログラミングで
ビジネスを始める7つのステップ