【#16 間違いだらけのプログラミングスクール選び】
こんにちは。
Step App Schoolの小林です。
今回は、昨今乱立しているプログラミングスクールの選び方について説明します。
0)「うのみにしない」
私がいるStep App Schoolは、iPhoneアプリに特化したプログラミングスクールです。なぜか、他のプログラミングスクールで挫折してしまった方が、受講生としてたくさんいます。その受講生さんからグチとして聞いていることも多分に含むので、決してこの情報だけをうのみにしないでください。この記事で一番言いたいことは「1つのの情報だけではなく、多面的に考えること」です。
1)プログラミングスクールの8割は挫折
プログラミングスクールに通っている人はちらほらいますが、そこからエンジニアになったり、フリーランスとして活躍している人をどの程度知っていますか? 私は、プログラミングスクールからエンジニアになった人をほとんど知りません。たまたまそうなのかもしれませんが、ほとんどの人が挫折してる気がします。
かくいう私も数年前、都内にある某プログラミングスクールに通いました。まだこういう形態が珍しいころで、10月1日にスタートした時点で同期(というのかどうか分かりませんが)が約50名ほどいました。10名ずつ5つくらいのグループに分かれて毎週ミーティングするのですが、2週間後のグループミーティングに参加した人は4名、最後のミーティングの参加者は2名だけでした。単純計算すると8割はドロップしたことになります。他のグループの人に聞いたところ、状況としてほとんど変わりません。もちろん、ミーティングに参加していないだけで続けている人もいるにはいるでしょうが、Webテキストの進度(テキストの理解度を%で表示していた)を見る限り、ほとんどの人たちが途中で挫折していたようでした。
2)スクールに通ってもプログラミング理解度はゼロ
では、挫折せずに通った私の理解度はというと、多く見積もって8%ほど、実感としては限りなく0%でした。プログラミングのことはまったく分かりません。
決して怠けていたわけではないです。1か月仕事を休み、1日少なくとも8時間ほどは打ち込んだので、スクール生としては頑張った部類に入ると思います。元々の頭のデキが悪いせいが99%ですが、私と同じ感想を持つ人は少なくないと思います。
3)プログラミング学習の「あるある」
自分自身の経験から、プログラミング学習で陥りやすいことを挙げます。
あるある1)メンターの言葉が理解できない
プログラミングスクールに行くと、「メンター」と呼ばれる人たちがいます。だいたいは、プログラミングスクールを卒業した大学生です。この人たちが、受講生の疑問に答えてくれます。私が通った時もたくさんメンターさんがいて、みなさん親切でした。ただ、言ってることがまったくわかりません。
コードを書いていて「ここがわかんないんですよね」と質問したところ、返ってきた言葉が「メンバ変数」でした。
「メンバー編集?」と聞くと「メンバ変数」と答えます。いやいや、どんな字を書くの?という感じでした。
あるある2)質問したら疑問点がさらに増える
当然、もう一度質問します。「メンバ変数って何ですか?」と。するとメンターさんからは「クラスのプロパティ」と。何だか全然わからないので「プロパティって何ですかね?」と尋ねたところ、「コバヤシさん、メソッドのことわかってます?」と逆に質問されました。そこまで来ると、出てくる言葉は1つです。「あ、いや、もういいです。。。」
あるある3)わからないので教科書ばかり買ってしまう
メンターさんの言葉がわからなさすぎると、大抵の人は市販の教科書に逃げます。私の場合はRuby on Railsの教科書を買って勉強しようとしました。あらかじめメンターさんにおすすめの入門書を紹介してもらっていたので、さっそくAmazonで注文しました。結局、1カ月の間に3冊ほど買いました。
あるある4)その教科書が読めない・わからない
でも、この教科書がわからないんです。読めないんですね。何が書いてあるのか理解できない。わからない言葉をググっているうちに、さらにわからない言葉が出てくるという悪循環です。メンターさんに質問した時と同じです。
あるある5)そもそもスタートラインに立てない
それでもひとまずやってみようと思いますよね?例えばiPhoneアプリの開発で言えば、Xcodeという開発アプリをAppStore からダウンロードしてプログラムを書いていきます。ここで「なぜかXcodeがインストールできない」「Xcodeをインストールしたけど立ち上がらない」ということが、かなりの高確率で起こります。プログラミング初心者は、そもそもスタートラインに立てません。
あるある6)エラーが解消できない
運良く(?)プログラムが書けたとしても、実行しようとするとエラーが出ます。これは100%です。ところが、教科書にはエラーの解消方法が書いてあることはまれです。なので、すごく調子が良くここまできても、なぜプログラムが動かないのか理解できないままになります。
あるある7)モチベーションが保てない
メンターさんに聞いても言葉がわからない、教科書買っても読めない、エラーも解消できないとなると、よほどのメンタルでない限りモチベーションを保てません。大体はここで挫折します。
あるある8)どの言語を選べばいいか悩む
「プログラミングの勉強を始めるぞ!」と意気込んでみたものの、最初に学ぶ言語に悩んでいるうちに1年経ったとかいう人もたくさんいます。「機械学習と統計が強いPythonでしょ?」「プログラミングスクールで教えてる言語No.1はRubyだよ?」「ゲーム作るんだったらUnityとC#勉強しないと!」「アプリだったらSwiftかな?でもAndroidはどうしよう?」「iPhoneとAndroidのアプリが同時に作れるReact Nativeはどうなの?」と、考えれば考えるほど悩みます。
あるある9)投資額が多すぎて続かない
一般的なプログラミングスクールは、1カ月で20万円弱かかります。3カ月で25万円ほどというのが一般的です。その間、仕事が忙しくて通えなくても、1カ月入院しても補填がない場合がほとんどです。オンラインスクールでも似たようなものです。半年で70万円ほどの投資になります。
プログラミングスクールより専門学校の方が投資額は大きいです。1年間で130〜200万円くらいです。いずれにしてもお金がかかるので続かないというケースもほとんどです。
あるある10)プログラミングに向いてないと思う
メンターさんや教科書の言葉がわからず、エラーも直らず、お金も続かず、モチベーションもダダ下がりとなると「あーあ、プログラミング向いていないかも」って思います。私もそうでした。そう愚痴ると、家族や友人も「辞めちゃえば?別にプログラミングできなくても生活できるから」となります。
こうして、プログラミングに挫折した人ばかりが増えていきます。
3)プログラミングは誰でもできる
私も一度、プログラミングに挫折しましたのでわかりますが、プログラミングを正しく学習していけば、必ず理解できるようになります。堀江貴文さんが「プログラミングなんて超絶簡単だよ」とよく言います。誰でも勉強していれば、必ず「あ、こういうことか」と理解できるようになるのは、間違いないです。
ただし「正しい学習の進め方」をしないと、続けるのは難しいと思います。その辺りは、過去のnote記事に書きました。
4)学習の進め方その1「言語選び」
プログラミングの経験がまったくないのであれば、Swift(iPhoneアプリを作るための言語)かKotlin(Androidアプリを作るための言語)のいずれかをお勧めします。理由は「モチベーションを維持しやすいから」です。
たとえば人気のPythonで、for文の使い方を学ぶ際には以下のように書きます。(京都大学学術情報リポジトリ「KURENAI」の「プログラミング演習Python 2019」の51ページより引用)
x = 2
rnew = x
for i in range(10):
r1 = rnew
r2 = x / r1
rnew = (r1 + r2)/2
print(r1,rnew,r2)
結果は以下の通りです。Pythonの実行結果を表示するには、Macの場合だとこのようなターミナルで実行しなければなりません(アナコンダとか入れると別ですが)。
これは、2の平方根を求めるためのアプローチです。r1が2、rnewが1.5、r2が1.0からスタートし、何度も処理を繰り返すほど、2の平方根「1.41421356」に近づいていくのがわかります。私は試しに、10万回繰り返してみましたが、数秒で結果がきました。さすがPython!処理がはやい!と思います。
ですが、そんなことを素直に喜んでモチベーションを維持できるのは、よほど頭の良い人かプログラミング経験者だけです。は?なんなの小林って?訳わかんないんだけど?と思った人は正しいです。プログラミング初心者は、このような説明が続くと不安になります。Ruby on RailsもPHPもPython同様、英語と記号ばかりのため初心者にはイメージが湧きにくいのです。見た目をHTMLやCSSといったマークアップ言語を学べば解消できますが、都合2〜3の言語を同時に学んでいくというアプローチのため、ハードルは高いです。
これに対し、Swiftでの開発画面は以下のようなイメージです。
スマホで操作するボタンなどは、パワポをいじるように配置します。これだけでもグッとモチベーションは保てます。さらに、自分のスマホに開発中のアプリを入れて、他人に見せることもできます。友人から「お、すごいじゃん!」などと言われると、うれしいですよね。他の言語と違ってデザインの仕方を学ぶのにそれほど時間がかからないので、わりとモチベーションを保ちやすいのです。これはSwiftに限った話ではなく、Androidも同じです。
例えば「Pythonを教えてくれる人が身近にいる」「すこしだけJavaScriptを学んだ」などという条件がない限り、スマホ系の言語からスタートしてみてください。
5)学習の進め方その2「ストアカの活用」
「言語が決まれば、あとはプログラミングスクール選びだな」と思った方、もうちょっと落ち着きましょう。最初は「ストアカ」で学んでみることをオススメします。
ストリートアカデミー(略称ストアカ)とは、スキルを教える人と、スキルを学びたい人をつなぐためのWebサイトです。例えば駆け出しのカメラマンやプロのネイリストなんかが、1回3000円ほどから講座を開催していて、登録すれば誰でも学べます。
ストアカには講座がわりと豊富です。試しに検索したら、東京のプログラミング学習だと300件近くありますね。
ストアカを使う魅力は2つです。1つは「価格が安い」こと。プログラミングの教科書を1冊買うほどの価格で、体験的に学ぶことができます。ストアカの魅力の2点目は「誰かが隣で教えてくれる」ことです。オンライン学習も否定はしませんが、プログラミング学習の入口は、誰かが付き添ってくれた方がスムーズだと思います。特に初心者の場合、最初の開発ツールのインストールや、開発ツールの初期設定、スマホとの接続などの導入部分でうまくいかないことがほとんどです。誰かが隣にいることで、それらのつまづきを回避できます。
ちなみに、私もストアカで「プログラミングの学び方講座」というのを開催しています。Micro:bitというマイコン機器や、iPhoneアプリの制作を通じて、プログラミング学習の仕方をアドバイスしています。
6)学習の進め方その3「自学でトライ」
プログラミング初心者の中には「スクールに行けばプログラミングが理解できる」と勘違いしている人がいます。そんなことはありません。最終的にプログラミングを理解するには、自分で頑張って覚えるしかないのです。スクールに通おうが、オンラインで学ぼうが、とどのつまり自学に落ち着いていくので、ストアカに行ったあとは、教材などを買ってみて自学してみましょう。
自学で進めるうちに「文法を覚えられない」とか「実際の動きの滑らかさなどを動画で確認したい」といった欲求が出てきます。その際は「Progate」さんか「ドットインストール」さんをオススメします。
どちらも無料から学べるし、月額1000円ほどで学べる選択肢がぐっと増えます。Progateさんは文法の勉強するのに最適です。早ければ1週間、遅くとも1カ月あれば1つの言語の基礎編はマスターできると思います。ドットインストールさんは動画の解説が豊富です。紙の教材ではわかりにくい操作の挙動などを確認するのに向いていると思います。
このほか、私は使ったことがないのですが「Udemy」というサイトも有名です。ここでは有料で動画解説を購入できます。お手軽な値段で体験できるので、試してみる価値はあると思います。
このように、自学でもプログラミングを学べる選択肢は豊富です。まずはあまり投資額が大きくないとところからスタートしてみてください。気分転換に、たまにストアカを使って、対面で教えてもらうのも良いと思います。
7)プログラミングスクールの選び方
「自学でプログラミング学習を進められない」という人はいます。例えば「どうしても学習をサボってしまう」「小さな疑問がひっかかると先に進めない」という人たちです。そういう方たちは、プログラミングスクールに通うのも良いと思います。初期投資は大きめですが、逆に「高いお金を払ったんだから、頑張って勉強しよう!」という気持ちになります。
プログラミングスクールを選ぶ際は、以下のポイントに気をつけましょう。
(1)半年やるとしてお金が続くか?
プログラミングは1カ月でマスターできないと思います。普通の人でも半年、私は飲み込みが悪かったので1年半ほどかかりました。逆に言えば、どんな人でも1年半ほど頑張れば、そこそこプログラミングのことはわかってきます。独学で勉強している人は、みなさん1〜2年頑張っています。
では、そのスクールに半年通うとしたらお金は大丈夫ですか? 平均的には50万〜70万円ほどかかります。資金的に厳しい人は、最初に予算を確かめて「1カ月は独学でやってから、2カ月スクールに通って、そのあと3カ月は自宅学習」などと、半年ごとの予算組みをしてみましょう。
(2)超初心者向けか、そうでないか?
プログラミングスクールの中には「エンジニアとして就職したい方向け」と、標榜はしていなくても「教養としてプログラミングを学びたい方向け」に分かれています。例えばSQLとかFTPとかGitなどの言葉を聞いてもピンとこない方は、まずは「超初心者向け」に特化したスクールを選びましょう。Macの操作方法から教えてくれると思います。逆に、エンジニアとして就職したいと思っていても、上記の言葉が聴き慣れないのであれば「超初心者向け」からスタートした方が無難です。
プログラミングスクール講師の99%はエンジニアです。プログラミングの専門家ですが、わかりやすく解説をする専門家ではありません。そのスクールの無料体験会などに参加してみて、メンターさんが話している言葉に理解できない頻度が多いようだったら、他のスクールも体験した方がいいと思います。
(3)就職あっせん目的か?
プログラミングスクールの中には「エンジニアとして就職できます」ということをアピールするところも多くなってきました。そこは「職業紹介業」に力点を置いた経営スタイルになっています。いわずもがなですが、通常の職業紹介業の場合、年俸の約2〜3割が紹介料となります。つまり、プログラミングスクール卒業生を年俸500万円であっせんした場合、100〜150万円がスクールに入ります。それを見越したコースになっているので、エンジニアとしての就職を希望している20代にはマッチしても、私のような40代も半ばを超えた人だとアンマッチです。
8)まとめ「ストアカからスタートして自学する」
まとめです。プログラミング学習のスタートは、ストアカなどのスキルマッチングサイトを使って、お手軽な価格から体験学習してみましょう。次に、無料ないし月額1000円程度のオンライン学習サイトを使って、自学してみてください。その後、自学だとモチベーションを維持できない人はプログラミングスクールを検討し、「半年学んだ時の価格」「わかりやすさ」「エンジニアとして就職したいか?」の3つを基準に選んでみましょう。
ここまでの長文を読んでいただいてありがとうございました。
1日に6本ほどiPhoneアプリを作ってみる講座です。興味があればどうぞ。
馬券が当たった方、宝くじを当てた方はお願いします。