Who?
Sier 2年目の新人プログラマー。
以下の基本的なプログラミングはできる程度です。
講座で出てくる概念や単語はおおよそ知っていましたが、実際に利用するのは初めてのものが多かったです。
- Python
- Java
- JavaScript
他に使える技術
- Djangoを少しだけ...
- Unixコマンド, Git
- Dockerの知識が少し
学んだ内容
- Node.jsでのWebプログラミング
- Scala基礎を少し
良いところ
- Webプログラミングについて網羅的に学習できる
- 環境構築もイマドキなので実践を意識した知識を身に着けられる
- 講座は毎年推敲しているためか、非常に平易な文章でまとめられている
- 月額1000円。安い!
N予備校の講座内容については以下に詳しく説明されています。
https://www.nnn.ed.nico/pages/programming/
https://anond.hatelabo.jp/20170911110731
プログラミング自体よりも、Webプログラミングに必要な知識を実際に物を作りながら学べるので初級者->中級者のステップアップに良いと思います。
初学者に特に人気のprogateはその敷居の低さのために、環境構築は学ばないようになっています。
しかしこの部分は回避できない、かつ複雑化しつつある分野ですのでここをしっかりサポートしているのは良いところでしょう。
本講座ではWindows,Macどちらでも開発できるようにVagrantを使います。
仮想環境を扱えることは今ではWebエンジニアにとって、常識といって過言ではないので必須スキルでしょう。
ScalaコースではDockerを使います。
環境構築・セキュリティ・ソースコード管理・テストなど、
非常にモダンなWeb開発を学ぶことができるのではないかと思います。
少し困る or 困ったところ
Node.jsは学びやすいが、RubyやPHPほどの投資対効果は見込めない(と思う)
Node.jsをサーバーサイドの言語として選択しているおかげで、フロントとサーバー両方を1つの言語で書けるのですが、Web系企業でこれを採用している会社はそれほど多くありません。
こういった初学者向けの講座を受ける方の多くは転職や未経験からのエンジニア就職を視野に入れている方が多いと思うのですが、そういった方に門口を開けている会社さんはやはりRubyかPHPの募集が多めです。
そういった意味でNode.jsの経験はそれほど評価されないかもしれません。
ポートフォリオ作成のためにRubyかPHPを学ぶとしたら、初めからRailsチュートリアルを受けたほうが良いのかもしれません(あちらも難易度が高めですが)。
Scalaコースはあまり親切ではない&やはり難易度が高い
もともとこのScalaコース自体、こちらのドワンゴさんの新人研修資料をN予備校生向けに改良したもののようですが、入門コースほど平易な文章ではありません。
関数型とオブジェクト指向両方とも学ぶことになるので仕方ないかとは思います。
https://dwango.github.io/scala_text/
(しかしこの教材は体系的にまとまっていて素晴らしいと思います。)
オブジェクト指向を初めて教えるはずだが、通常のクラス、抽象クラス、継承を行うサンプルコードから始まる。
1つのソースコードに全て盛り込まれ、1つずつ解説していく形なのですが,
正直情報量が多すぎるかなと...。
ソースコードや情報量は増えるのに、解説の量はあまり変わらないので結果的に説明不足になっているところが多いように感じました。
関数型プログラミングを学ぶのと同時にアルゴリズムの勉強もセット
関数型言語は再帰関数など、どうしてもアルゴリズム的な考えや実装が求められるので仕方がない部分ではあります。
例をあげると
- 再帰関数でビット列による全探索で部分和問題を解く
- ケースクラスを使って最短経路問題を解く
といった具合で初めて知る概念+アルゴリズムでなにがわからないのかわからないという状態に見事にはまりました。
N予備校では課題提出にGithubでプルリクエストを行うようにされていますが、このあたりから一気に数が減ります。10人以下だったと記憶しています。
誤字が多い
文章量が多いので仕方ないかなとは思うのですが、入門コースに比べて非常に多い。
"てにをはが"のミスが目立ちました。
一か所、解説の通りに環境構築しても進めない箇所があった
2019年3月の時点でScala基礎コースにて、動画プレイヤーの作成を進めていたのですが、テキストの通りに進めてもJavaFxが動作しない、といった状況に遭遇しました。
N予備校では環境構築などについて質問フォーラムが設けられていますが、私のほかに3人ほど全く同じ状況で止まってしまっているようでした。
とある回答者さんのおかげで解決しましたが、このあたりがアップデートされていないのは非常に困りました。
ScalaはNode.jsと同じ理由で初学者向けとは言いにくい
先ほども述べたように、こういった講座を利用している方は初学者の人が多いと思うのですが、Node.jsと同じ理由でポートフォリオ作成には向かない可能性が高いと思います。
また単純にScalaはほかの言語と比べても難易度が高めなので、何がわからないのかわからない -> 挫折 というルートにはまるのかなと思います。
個人的な感想
Web入門コースは完了、Scalaコースは応用コースで挫折して一旦止めています。
現在は自作プロダクト作成のためにrailsチュートリアルを進めているのですが、N予備校で学んだ知識のおかげですいすい進められているので、結果としては非常に良かったかなと思います。
Scalaは余裕のあるときにまたリベンジしようかと思います...。