DIVE INTO CODEの自習&課題はこんな感じ

2016年12月19日

DIVE INTO CODEのオンラインテキスト、DIVERでの自習は、課題付きです。
課題を一つ一つクリアしていくことで、学習した内容が身についているかどうか確認できるシステムです。まず、採点がとても早くて驚きました。

自習&課題の内容

DIVE INTO CODEにはDIVERというテキストが用意されています。
学習内容ごとに章が別れており、順を追って受講することで、Ruby on Railsでウェブアプリケーションを作成するために必要な(実践的な!)知識が身につくようになっているようです。

私が今日まで学習してきた一ヶ月間ぐらいの内容までは、ウェブ上で一般公開もされています
チラ見していただければ分かるとは思いますが、一章のボリュームも多いです。
ただコピペして動かすだけなら割とすぐに終わるかもしれませんが、きちんと理解しようとすると、それなりに時間を割く必要が出てきます。
(この課題の他にも、自分で何か適当なサイトを自分の思う通りに作ってみると、より効果的だと思います…が、手いっぱいで実行できていません)

私もできるだけコードのコピペはせず、手を動かして入力するようにしています。
Rubyでよく使う記号のうち、普段打ち慣れない記号(|パイプや%パーセント)も、だんだんすぐに指が届くようになってきました。

課題の提出&採点

課題はウェブ上で提出します。
今のところは、Cloud9GithubHerokuに公開したものをURLで共有する形です。

DIVE INTO CODEの営業時間中に提出すると、いつも驚くようなスピードで採点してくれます。
採点が完了するとメールで合否やコメントの連絡が届くのですが、提出から10分も経たずに連絡が来た時は驚きました。

課題はプロジェクトを順を追って拡張していくような形なので、採点が早いと、間をおかずに次のステップの学習作業を進めることができます。

中身もきちんと見てくれていて、コーディング規約や動作上あまり良くない書き方をしていると、教えてもらえます。
最初のうち、変な癖がつく前に教えてもらえるのは安心しますね。
一行一行見られているかと思うと、頭の中を覗かれているようで恥ずかしくもありますが…!
自分では気づかなかった、あるいは勘違いで起こしているミスが結構ありました。

余談:誰が書いても同じ、が理想?

Ruby (on Rails)は、できるだけ無駄なく、統一された形でコードを書くという思想のようです。

今まで携わって来たPerl/PHPもそうですが、私は一番長く触れているHTML/CSSは、書く人によって「流派」のようなものがあり、誰が書いても同じにはなかなかなりません。
HTMLコーダーとして請けた案件では、もちろんコーディング規約が存在するものもありますが、その規約内容も案件によって違いがあります。

HTMLに関してはインデントする派・しない派で大きく別れています。
私は「インデントしない(ブロック要素は改行する、インライン要素内は改行しない)」という派閥にいました。
※プログラム部分はインデントします

HTMLは敷居が低いため、複数のコーダーとファイルを共有することになりがちですが、一度でも人の手に渡ってしまうと、ぐっちゃぐちゃになるというのは皆が感じていることのはずです。
インデント一つにしても「Tab派、スペース派(スペース1つ、2つ、4つ派)」等があり、どれを選ぶかはコーダーの好みに委ねられています。どれを選んでも、別に間違いではありません。
インデントしないことにより、そのあたりの差を吸収でき、結果的にソースが綺麗になります。
そもそもHTMLでインデントが必要なほど階層が深かったらそれはダメなコードだろうとか、昔は少しでもファイル容量を減らしたいからインデントしないという人も多かったと思います。
また、中にPHPを埋め込んだり、あるいはCGIで吐き出すHTMLと組み合わせた時に、何にしてもインデントは乱れるので、だったらしなくても良いじゃないかという点も。
そしてまた改行の位置やら数やらファイルやクラスの命名規則とか、ディレクトリ構造とか、他にももう「好きなようにやって!」という部分が非常に大きいんですね。

Rubyも(少なくともプログラムの動作上は)規約は強制的なものではないようなのですが、PerlやPHPと比べると書き方のバリエーションの幅が狭いように感じます。
Railsというフレームワークを取り入れることで、ディレクトリ構造も統一されているようです。
さらに、もしこのDIVE INTO CODEの卒業生同士で組むことができれば、より一層、チームとして管理しやすくコードも共有しやすい仕事仲間にもなれるのではないかと思っています。

※余談に重ねて余談ですが…CSSの流派を知りたい方に是非オススメの本が「Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法」です。

CSSの書き方はHTML学習本でも触れられている事が多いですが、この本はCSSに絞って複数のやり方を紹介してくれているので、マニアックではありますが、色々な考え方に触れる事ができて面白かったです。

質問に答えてくれるネ申がいる

DIVE INTO CODEには、オンライン上でいつでも質問できるフォームが用意されているほか、自習内容ごとに質問を検索できるナレッジベースも用意されています。
テキスト通りに組んだはずなのになぜかうまくいかない時や、疑問に感じた些細な点を質問できるようになっています。

独学の場合、そんな時はひたすらググる(しかも日本語だと情報が少ないので、英語でググる)か、もしくはQ&Aサイトで質問するかということになリます。
この過程で副産物として得られるものも多かったりするのですが、やっぱりそれでもどうしても自力では解決できないことがあると思います。
私が独学で学ぶ時は、数日後に再挑戦するか、それでもダメなら他の方法を探すなりしてどうにかしていました。

Q&Aサイトで質問しようとしても、そもそも「分からないことをどこでどうやって質問して良いかが分からない」ことは多いですし、善意で回答してくれる側も「あなたの環境もコードも全部見られるわけじゃないから、原因を特定しようがないです」という事は多いと思います。

DIVE INTO CODEでは、講師やメンターの方が動作環境もコードもバッチリ把握しているので、ズバッと的確なアドバイスを返してくれます。
きっと「初心者あるある」のノウハウも、スクールには蓄積されているものと思いますし、次に進むための近道をずっと提供し続けてくれている感じです。

趣味でやっている事なら回り道も楽しいのですが、一刻も早く実務に結びつけたいなら、スクールで近道するのはおすすめですね。