プログラミングスクールを終えて

  • 2018.03.02
  • Web

またしても臨時更新です。
2月中に連載を一区切りつけたいと思って第6回を2/28に更新してしまったので、本来2/28に更新する予定として用意していた記事を本日更新しています。

2/22をもちましてプログラミングスクールの課程が全て終了しました。
振り返ってみると、2月第2週でインターンのためほぼ進めていない期間があったり、他にもサボっていた日がちょくちょくあったりしました。
それでも一応は予定していたカリキュラムであるRuby、ターミナル、Git、HTML/CSS/Bootstrap、SQL、Sinatra、Rails(受講当時4まで公開されていた)の講座を見終えることができました。

身につけたスキル

ここで、身につけたスキルについて列挙していこうと思います。

  • Rubyの基本的な操作、プログラミングへの理解(paizaのスキルランクBを取れる程度)
  • ターミナルの基本的な操作
  • Git、GitHub、vimの基本的な操作
  • HTML/CSS/Bootstrapの基本的な仕様の理解
  • SQLの基本的な操作
  • Sinatraの理解
  • Ruby on Railsの概略の理解

スクール受講者向けに用意されていた69題のうち、期間中に67題を解き、最終的には全て解き切ることができました。
paizaのプログラミングスキルチェックも期間中にランクC、最終的にはなんとかランクBを取ることができました。
Rubyだけとはいえ、これはなかなかに大きな収穫といえるかなと思います。

ただ、4週間の間ではカリキュラムを終えただけに留まり、新しいウェブアプリケーションを作るところまでには入れませんでした。

paizaラーニングの動画の中では

  • 1行掲示板(Sinatra・Rails)
  • Markdown形式によるメモ帳アプリ(Sinatra)
  • ランチマップアプリ(Rails)

を作成しました。ただ、これだけでは自力で作るのには心許ないかなと感じます。
Paizaラーニングでも今後はユーザー制御の話を盛り込もうとしているようですが、自分でもRuby on railsチュートリアルをやったり参考書をやったりして実践的な知識を深めていきたいと思います。

サービス間比較

以前の記事でも触れましたが、Progateの有料会員となり、期間中にこちらの講座も並行して進めていました。
以下両方受けてみての感想です。

Ruby

paizaラーニングの圧勝です。
Progateはやはり演習問題が少なすぎるのと、ステップが細かいので演習問題が一問一答のクイズのようになってしまっているのとがあり、自力で一からプログラミングできる程のスキルを身に着けられるかという点では不安が残るかなと思いました。

その点paizaラーニングでは充実した演習問題とスキルチェックがありやりやすいと感じました。
演習問題についてはSlackで質問してヒントや考え方を聞くことができたのも良かったと思いました。
ランクDでは予め備えられているメソッドを知っているかどうかで終わる問題が大半ですが、ランクCやランクBではそれらをどう組み合わせるかを考える必要があるので、詰まりポイントを質問できるというのはとても大きいです。
やはり初めのうちは演習量も確保しないとですね。

ターミナル

Progateの講座が整理されていて分かりやすいと感じました。
スライドがよくまとまっているのでしょう。無料なのに凄いですね。

paizaラーニングでは動画を視聴する形となるためややテンポが悪く間延びした感じになってしまいました。

Git

Progateの講座が整理されていて分かりやすいと感じました。
スライドがよくまとまっているのでしょう。無料なのに凄いですね。

ただ、内容面ではpaizaラーニングのほうが充実していました。
vimの操作についての解説もあり詰まりポイントの解消にも努めていた気がします。

HTML/CSS

これはProgateの圧勝でしょう。

Progateはかなり分量がありますが、最終目標がProgateのランディングページを作るというもので明確で、途中過程も見えやすいのが良かったと思いました。
道場コースや実践コースもあり、これらを全てこなせば自力で一から静的ウェブサイトを制作することも可能でしょう。
実際CSSの知識はこのブログのカスタマイズに大いに役立ちました。

一方でpaizaラーニングは内容が飛ばし気味だったのと演習量が少なかったのとで一から静的ウェブサイトを制作するのには不十分かなと感じました。
そもそもBootstrapを始めとした便利なテンプレートが出回っているこのご時世では一から作る必要もないだろうという考え方なのかもしれません。
動画でもBootstrapの導入や活用の仕方について重点を置いて解説されていました。ここがおまじないのように感じられてしまったのがおそらく私にとっての不満な点だったのでしょう。

SQL

両方とも分かりやすくて良かったと思います。

paizaのSQL2の講座は業務の実例を想定しておいてかなり実践的なシチュエーションだと思いました。

一方Progateでは道場コースで演習を積めたのが良かったと感じました。
paizaラーニングにも2題だけ演習問題がありますが、これだけでは不十分かなと感じたからです。

Sinatra

paizaラーニングにしかありませんでしたが、これはやはり学習しておいて正解でした。
Railsでscaffoldを使うと1行掲示板が自動生成されてしまい、途中過程がブラックボックス化してしまいがちだなと思いました。これが進むと、とりあえず自動生成したけど仕組みがわからないといったことになるのでしょう。
Railsを学ぶ前にSinatraを学び、reloaderやerbの導入、コントローラーやルーティングの記述、Rubyファイルからviewを記述してファイルを分ける、ActiveRecordの記述といった流れを通じてウェブアプリケーションを一からある程度自力で書くという経験ができたのは良かったです。

この辺りになると途中で詰まることも結構あったので、Slackで質問を投げられたのは学習を進める上でとても良かったと思いました。

Ruby on Rails

両方とも受けましたが、Progateのほうが良かったかなと思います。

paizaラーニングではユーザー制御の話まで盛り込めていなかったのはやはり残念です。
一方でランチマップアプリを通じて外部APIの利用の話もあったのは面白いと思いました。

progateではTwitterクローンの作成を通じて複雑なユーザー制御の話まで一通り学べたのは良かったと思いました。

今後に向けて

プログラミングはアルゴリズムとデータ処理からなるという話を書いているブログを以前見かけました。
(執筆時に改めて探しましたが見つからなかったのでリンクは貼れません。ご了承ください)
この観点から見ると他のプログラミングスクールと比較してpaizaラーニングではアルゴリズムを重視しているのでしょう。
特に高ランクのスキルチェック問題ではその傾向が顕著です。また、学習画面でもプログラミングの実行時間が表示されます。
私はそこまでの領域に至れませんでしたが、基本情報技術者試験の勉強内容を復習するなどしてアルゴリズムの話にも触れておこうと思います。

また、TechacademyやTECH::CAMPとは異なりオリジナルウェブアプリの作成まではサポートされなかったため、これらを完成までこぎつける必要があります。
2月中にインターンがちょこちょこ入ってしまい体力を吸われたので全然作成まで漕ぎ着けていません。
そのうち進めたいです。

また、Railsはデプロイが最も難しいと言われる程にレンタルサーバーの環境が整っていません。
定番どころで言うとHerokuですが、講師の方々には自由度と業務で使われている環境からAWSを使うことを推奨されました。AWS講座の動画を見ながら整備していきたいと思います。
ただ従量制課金が怖いので無料期間が終わったらVPSに移行するかもしれません。

以上のデプロイの問題から、ちょっとしたお問い合わせフォームや掲示板くらいならフレームワークを使わないPHP(いわゆる生PHP)のほうがやりやすそうだなと思いました。
それもあってpaizaラーニングやProgateでPHPも基礎をさらってみようと思います。

ではまた。