今日も8時間睡眠
888文字のブログです

【長文】N予備校、始めてました

🚋

今月は、今年始めたものをいくつか書いていこうと思っています。今日は、2019年の4月から始めている、N予備校について書いていきます。

【目次】

N予備校とは

まずそもそもN予備校とは何か、なのですが、その前にN高等学校の説明をしたほうがいいでしょう。

角川ドワンゴ学園が2016年にN高等学校を開校しました。名前が変わっているので「高校」と名の付く"高校ではない何か"だと思われるかもしれませんが、高校資格がとれる本当の高校です。ネット・通信制であることがウリです。N高等学校自体のさらに詳しい説明は、N高って? | N高等学校(通信制高校 広域・単位制)などでまとめられています。

N予備校は、N高等学校の課外授業用システムとして使われていました。しばらくして、一般向け、つまり、N高等学校以外の人たちに対しても、授業内容が提供されるようになりました。

N高等学校では、一般的な高校の授業内容はもちろん、プログラミングも教えられています。N予備校で提供されている内容はN高等学校の授業内容と被っており、N予備校でもプログラミングを学ぶことができます。

N予備校は、年齢制限もなく、月額の費用を払えば誰でも入学することができます。プログラミングを学びたい人からすれば、N予備校はプログラミング学習サイトの一つと考えて問題ありません。

N予備校はじめました

2019年の4月にN予備校に入学しました。

入学する前まで、N高等学校やN予備校のことは、ネットのニュースで何度か目にしていましたが、特に自分には関係ないと思っていました。どちらも、高校生向けだと思っていたので。しかし、N予備校を経験した人の話をネットでいくつか見てみた結果、興味が出てきました。N予備校は社会人でも入れるようだし、値段もお手頃なので、入学してみることにしました。

目的はプログラミングのコースです。コースはいくつか用意されています。まず、入門用として、Webアプリを作るコースがあります。その後のコースとして、大規模Webアプリやスマホアプリ、ニコニコ動画再現などのコースが用意されています。N予備校のプログラミングコースの詳細はこちらです。

N予備校に入ったら、受講したいコースを選びます。複数を同時に受講しても構いません。なので、入門用のWebアプリコースをとりながら、スマホアプリコースをとる、なんてこともできます。

先ほども書きましたが、N予備校で提供されているものの中には、高校の授業内容もあります。なので、とりたければ、英語とか数学の授業をとることもできます。

今のところ、かかるお金は、毎月1000円+税金です。どのコースをとっても値段は変わりません。複数のコースをとったり、プログラミングと高校の授業を組み合わせてとっても、余計に請求されることはありません。

僕は、4月から、プログラミング入門のWebアプリコースを受講しています。

授業の進め方について

N予備校は、角川ドワンゴ学園が運営していることからも予想できる通り、授業はニコニコ生放送のシステムを使って授業が行われます。録画ではありません。授業ごとに、何曜日の何時から放送、というのが決まっています。

画面には講師が映っている時間帯もあるし、エディタが映っている時間帯もあります。テキストが映っている時間帯もあります。例えば、「このコードを実行すると、ウェブ上でこのように表示されます」といったことが画面を通してみることができます。

ニコニコ動画にはコメント機能がありますが、これを利用して受講生からのコメントや質問を表示することができます。講師が「ここまでは動くようになりましたか?」などと聞いて、それに受講生たちがコメントで答える、という場面が所々であります。

コメントをするほどでもないけど、わかったことを伝えたいときのために、「なるほど!」ボタンがあります。これを押すと、なんと、「なるほど!」とコメントされます(そのまま)。時々、画面上には「なるほど!」「なるほど!」と流れていきます。

授業は双方向で行われ、視覚的にもわかりやすいです。また、この生放送はアーカイブ化され、あとで見返すこともできます。

とここまで書いていていうのもなんですが、僕はあまりこの生放送型の授業は受けていません。

生放送型の授業は、週に2回あるのですが、そこでやる内容は、事前にテキストでまとめられています。N予備校にログインしてコースを選択すると、先々までテキストを確認できます。このテキストをもとに自分で進めていくことが可能です。

僕はある程度プログラミングのことを知っていたので、はじめの方の内容はどんどん進めていくことにしました。そのため、今は実際の授業の進度よりも先のところをやっています。ただ、徐々にペースが落ちてきて、追いつかれ始めてきていますが。

生放送型の授業は、みんなで一緒にやっていくため、ペースが遅い人に合わせて進んでいきます。授業は90分以上続くこともありますが、一人でテキストでやっていけば、数十分から1時間くらいで授業1つ分を終わらせることができます。はまったら自分一人で解決しないといけない点には注意が必要ですが、それを乗り越えられるなら、映像なしでやっても構わないと思います。

入門コースの内容について

僕は、N予備校で、プログラミング入門用のWebアプリコースを受講しています。「入門」といってますが、かなり幅の広いことをやります。ここでは、各章でやる内容や、やるのにかかった期間について書いていきます。

入門コース第1章

第1章では、HTMLやCSS、JavaScriptのことを学んでいきます。VSCodeでEmmetを使って入力する方法は、僕はこのときにはじめて知ったのですが、こういう今どきの内容が知れるのはいいですね。テーブルを書くのがすごく楽になりました。

JavaScriptでは、プログラミングの初歩的なところからやるので、変数とかif文、for文とかもやりますし、関数、オブジェクトなども一通りやります。最後には、Twitterに関する簡単なアプリを作って終了です。

個人的には、ここの内容はほとんど知っていたので、スラスラと進んでいきました。一応、いつ何を学んだかを記録しているのですが、それによると、4月12日から始めて、4月19日で第1章が終わっています。このときはかなりやる気があったので、ほぼ毎日、1時間か2時間くらい取り組んでいました。ページ数が多いのですが、後半はほとんど小テストなので、ページ数のわりに時間はかかりません。

入門コース第2章

第2章では、プログラミングの開発を行う準備を行っていきます。VirtualBox, Vagrantで仮想環境を用意し、Linux(Ubuntu)を触る練習をしたり、Git, GitHubの使い方を学んだりします。

僕は、自分のコードを管理するために、GitやGitHubをすでに使っていたのですが、プルリクエストはそんなに送ったことはなかったんですよね。一人だと使う必要性がないし、一人で練習をするための環境を作るのもめんどくさい。いきなり本番で試すのもハードルが高い。でも、この講座を受けてからは、プルリクエストを送るまでの流れを何回もやるので、いい練習になりました。

毎回、簡単な課題が出題されるのですが、第3章や第4章では、フォークして修正して(課題に応じたコードを書いて)解答をプルリクとして送る、という形式で回答することが多くなります。なので、いやでもやり方は覚えてしまいます。僕のGitHubのページを見ると、2019年の4月から12月までは、ほとんどN予備校への提出のために使ったものばかりです。

コースを進めながら、以前にVagrantなどを格闘してインストールしたことを思い出しました。大昔はxamppを使ってphpでアプリを作っていた時期もありましたが、ある時期からwordpressのテーマをいじったりするときに、vccwを使う目的でVagrantを入れるようになりました。バージョンが変わると結構不具合がでてめんどくさいんですよね。今は、local by flywheelにして、さらに楽をするようになりましたが。

こういう過去の経験を思い出しながら、「あぁこのテキストにそっていくだけで環境が構築できるのは素晴らしいな」という感情になってました。バージョンの相性は本当にめんどくさいし、調べるのに単純に時間が減っていくだけですからね。

第2章は、4月20日から5月11日までで終わっています。GWをはさんでいますが、GWはそんなにやってないです。だいたい、週に2回か3回程度取り組んでいました。

入門コース第3章

第3章では、サーバーサイドのプログラミングについて学んでいきます。Node.jsの使い方や、HTTPについて、データベースの扱い方、セキュリティ上の問題とその対策、などを見ていきます。

個人的には、このあたりから、知らないことであったり、聞いたことはあるけど詳しくはわからない、といったことが増えてきました。そして、テキストを読む時間も長くなり、進めるペースもだんだん落ちてきました。

やってることも複雑になってきました。例えば、セキュリティのところでは、「こういうコードの書き方だと、こういう攻撃ができてしまう」という説明を読むだけでなく、実際に攻撃も行います。tmuxを使って、サーバー側と攻撃側の両方を準備し、実際に攻撃をしてその結果を確認したり、その対策をとったりします。こうなってくると、追っていくだけでなかなか時間がかかるようになってきます。

Webプログラミングをやるなら必要な知識ですが、なかなか難易度の高いところまでやるなぁ、という感じです。入門コースであって、初心者コースではない、という印象です。

第3章は、5月17日から始めて、9月15日に終わりました。週に2回か3回を目指していましたが、1回しかできないことも多かったです。また、分量も多く、知らないことも増えてきたので、1回で授業1つ分しか進めない感じになっていました。正直に言うと、ちょっと脱落しかけていた時期もありました。

入門コース第4章

第4章では、具体的なWebサービスを作ってみましょう、という内容です。予定を調整するためのWebサービスを作っていきます。調整さんとか伝助みたいなやつですね。

予定と候補の一覧を作り、他の人が各候補に対して都合を答える、というものです。

これだけ聞くと簡単ですぐにできてしまうような印象もありますが、認証はどうするか、データベースをどう設計するか、URLをどうするか、Node.jsでどのように書くか、など、細かいところを考えていくと、結構大がかりになっていきます。

個人的には、ここの章はついていくのが大変で、言われるままにコードをかいている、みたいな感じになりつつありました。「ここに書いているコードはこういう役割をしている」「コードのこの部分は、こういう処理をしている」というのはわかるけれど、「ここにこのコードを書くって、どうやって思いつくんだっけ?」とか「この処理を書かないといけないってどうやって思いつくんだっけ?」と、詰まる部分が出てきた感じもします。端的にいうと、ちょっと消化不良です。

こなしているだけで身についてないんじゃないか、という気もするのですが、一方で、今まで自分が学んできたことから考えると、これは自分が作りたいものを作る流れでしか習得できないんじゃないか、という気もしています。なので、将来、何かを作るときに、「たしか、テキストで学んだな」ということがわかればいいんじゃないか、と思い直して、今は先に進んでいます。

9月16日から始めて、もうすぐで第4章が終わりそう、というところです。あと授業2つ分です。

章は第7章まであるのですが、実質的には4章でおしまいです。受講中のコースは進捗度が出るのですが、今の時点で95%です。

入門コースを受けてみて

入門コースを受ける前の時点では、JavaScriptやPHPをいじったことがあり、wordpressの簡単なテーマを作るくらいはできる状態でした。そのため、第1章はすんなりと終えることができました。

ただ、3章や4章になると、知らない知識が増えてきて、ついていくのが大変になってきました。Node.jsなど、いつかは学んでみたいと思っていたことを学べた点はよかったのですが、まだ自分一人で何か動かせるものが作れるかというと、ちょっと怪しいです。

まったくの未経験の人が、最後までやり切るのは結構厳しいレベルのようにも感じました。しかし、Webエンジニアを目指すなら、あまり削れるところもなさそうです。これ以上端折ると中身がなくなってしまうのかもしれません。未経験者の場合は、かなり丁寧なフォローがないと、中盤以降は厳しいのではないでしょうか。

一方、あまり知識がないままWebエンジニアになってしまい、現場で都度都度学びながら仕事をしている、という人にとっては、包括的に知識を学び直せる場としてはとてもいい内容だと思います。ここまでの内容を一か所にまとめられていることは、本でもサイトでもなかなか少ないでしょう。

テキストについて

プログラミングで使うテキストは、よくできていると思います。特に、序盤で初心者が脱落してしまいそうなところは、手厚く説明されているように感じます。

例えば、やはり環境構築のところで脱落しやすいので、これを実行するとこの画面が出て、次はこうなって、次はここを選択して、みたいなことが丁寧に書かれています。Qiitaでも似たような記事を見つけることもありますが、書いている人を信頼できる点が大きく違います。

この内容を本にするのは難しいでしょう。網羅的に書いているので、実際の本にすればすごく分厚くなってしまいます。毎年テキストの内容は見直されているようなので、本になることはないでしょうね。

一方、「どうやったらその情報にたどりつけるか」という説明が少ないような気がします。

例えば、コードを説明するときに、「ここはこのように書きましょう、このコードはこういう意味です、このコードはこういう処理をやります」という説明があって、「ふむふむ」と納得しながら読み進められます。人が書いたコードを読むときなどでは、この知識は役に立つと思います。

しかし、「テキストに載っていなかったけど、あれと似ている処理を書きたい」となった場合、「公開されている情報のどこを調べればそれが載っているか」を知る手掛かりが少ないように感じます。なので、同じものは作れるかもしれないけど、ちょっと違うものを作ろうとしたときに、どうやって進めていけばいいか、迷う場面が多くなりそうな気がします。魚ではなく魚の取り方も必要なんじゃないかと。

ところどころ、外部のドキュメントへのリンクが貼られていますが、あぁいう情報がもっとあればなぁ、と思います。ただ、リンク切れのチェックが大変になってしまうので悩ましいですけどね。また、自分で作る場合は、ググって情報にたどりつくスキルを磨かないとダメなので、そういう意味では、「自分でドキュメント見るなり、ググるなりしてよ」ってことなのかもしれません。

また、テキストの内容は、包括的ですが、体系的ではありません。モノを作ることが最終的なゴールで、そのために必要な知識を順番に身に着けていく、という感じで進んでいきます。そのため、振り返ってみると、いろんな内容に触れることになります。しかし、一般的なプログラミングのテキストにあるような、簡単なものから難しいものへ、具体的なものから抽象的なものへ、基本から応用へ、という順番では並んでいません。そのため、「あの説明はどのタイミングでしてたっけ?」というのを後で探すのはちょっと大変です。

掲示板について

N予備校には、授業の内容や課題などの質問や議論ができる、オンライン掲示板が用意されています。N予備校の中では、フォーラムと呼ばれています。

課題の答えをそのまま聞いて、「自分で考えろ」といったレスがつく場面がYahoo知恵袋ではよく見られますが、N予備校でもそういうのは見かけます。

ただ、ちゃんとしている人は、「こう考えたけど答えがでない」とか「ここまで考えたけどその先に進めない」といった感じで聞くし、答える方も、答えを直接言うんじゃなくて、うまいヒントを出すような人もいます。

他のオンライン掲示板と違って、参加者が限定されている(N高等学校とかN予備校の人だけ)ので、レスはつきやすいし、変な質問やレスがの割合も低い気がします。

レスがつきやすいとは言いましたが、グループ分けは必要ではないか、と思います。今はどの質問も同じところに全部まとめられていますが、高校の授業とプログラミングの授業とが、同じところに並んでいると、見づらいです。高校も科目で分けたりしたほうが、よりレスがつきやすくなるんじゃないかと思います。

また、例えば、テキストに誤植があったときに、気軽に指摘する手段がないように思います。指摘するには掲示板に書くしかなく、わざわざスレッドを作って、「このテキストのここがおかしいですよ」って書くのもなんだかちょっと違う気がするし、そういうスレッドには誰もレスがつかないことが多いんですよね。講師にもスルーされがちで。もっと直接意見が送れるフォームがあるといいのに、と思います。

受講料について

現時点では、受講料は、月に1000円+税金です。個人的にはすごく安いと思える金額です。プログラミングだけを学ぶ人にとっても安いと思うし、高校の内容もとりたいと思っている人にとってはさらに安く感じられるでしょう。

高校の内容は、僕はあまり詳しく見てないんですけど、例えば英語なら英文法を解説する授業があるので、TOEICなどの勉強をするのにも向いてると思います。他の科目は仕事で必要になることは少ないかもしれませんが、数学などを学び直したいという人にはいいかもしれませんね。

契約期間は少し注意が必要です。申し込んだ日から30日ごとではなく、月末までです。例えば月末に契約したら、その月は1ヶ月分請求されます。また、月初に契約を解除しても、その月は1ヶ月分請求されます。月中で契約したり解約しても、日数で案分されないようですので注意です。

他のプログラミング学習サイトとの比較

N予備校をプログラミング学習サイトと見た場合に、他の学習サイトと違う点を書いていきたいと思います。

大前提として、N予備校のプログラミングコースは、プログラミング未経験の高校生が、IT企業にWebエンジニアとして就職できるレベルになることを目指しています。高校生でなくても受講できますが、メインターゲットとして考えているのは高校生です。Webエンジニアになるために必要な知識を包括的に学べるように構築されているので、他のサイトとは異なる点がいくつかあります。

まず、授業スタイルとして、双方向型の生放送を用意している点が大きく違います。動画で解説しているサイトや動画への質問を受け付けているサイトはあっても、その場で質問してその場で講師が答えるサイトはほとんどありません。相手は高校生もありうるという前提で授業が進むので、初心者を脱落させないようにしようという意識が感じられます。

また、単なる文法の説明にとどまらない点も大きく異なります。他のサイトでは、言語の文法解説が多く、何かを作るところまではいかないものがあります。環境構築すらやらないサイトもあります。学び始めるハードルが下がる点はいいのですが、Webエンジニアになるのはなかなか難しいかもしれません。N予備校は、環境構築もやるし、Webエンジニアに必要そうなことは一通りやります。じゃあ受講後はすぐに就職できるかというとそれはわからないですが、少なくとも他のサイトで学ぶよりは一番近いところにいると思います。

逆に、N予備校は、欲しい部分をちょっとつまみ食いするような感じで学ぶことにはまったく向いていません。例えば、すでに今プログラマーとして働いている人が、「wordpressを始めてみようかな」とか「pythonをちょっとやってみようかな」といった目的でやるにはまったく向いてません。

N予備校は、プログラミングの学習サイトというよりは、Webエンジニアになるための職業訓練学校に近い感じがします。

今後のN予備校との付き合い方について

今は入門コースしかしていませんが、これが終われば別のプログラミングのコースを受けようと思っています。しばらくは、N予備校で引き続き学んでいくつもりです。

ただ、やめたくなった場合、過去に見たテキストにアクセスできなくなってしまうのは痛いですね。手元にあるのは、自分の書いたコードだけです。自分で読み返してわからなければ、もう何も分からなくなってしまいます。

かといって、あのテキストを持ち出せるようにするのは現実的ではなさそうだし。本のように手元に残るものがあればいいのですが、それがないのでどのように卒業すればいいのかはよくわからないですね。

以上、N予備校でプログラミングを学ぼうと思っている人や、プログラミングを教えている人(=中の人)への参考になれば幸いです。

(8826文字)

バックリンク