Rubyコース受講体験記

Rubyマスターコース修了証

【Rubyマスターコース修了証】

 

PR アフィリエイト使用

 

当サイト管理人の徳野です。

 

オンラインプログラミングスクール「コードキャンプ」で「Rubyマスターコース」を受講し、無事卒業ました。

 

1番短い2ヶ月のプランです。

 

体験談をシェアします。

 

 

Rubyマスターコースの内容

Ruby言語を使ってWebサービスを作る方法を総合的に学ぶコースです。

 

クックパッド、グノシー、価格.com、hulu、Twitterなど多くの有名ウェブサービスに使われている言語なので、学ぶ価値は大きいと思います。

 

卒業すればあなたもWebサービスが作れるし、それが世界を獲る可能性もあります。

 

教科は次の4つ。

 

  1. HTML/CSS
  2. JavaScript
  3. Ruby
  4. Ruby on Rails

 

HTML/CSS

最初の科目はサイト制作に必須の言語。

 

HTMLは文書構造を作るもので、CSSはデザインを制御するものです。

 

この科目の最終課題は与えられたサイトの見た目をコーディングで完全再現すること。

 

難しいですが、クリアすると大きな自信になります。

 

気に入ったサイトを何でもコピーできるようになるわけですから。

 

ここまで学ぶだけで、動きのない普通のサイトなら作れるようになります。

 

JavaScript

ウェブサービスはサーバーサイドのプログラムとフロントエンド(ユーザーの端末側)のプログラムの連携でできています。

 

JavaScriptはフロントエンドでサイトに動きをつけるのに使われる言語です。

 

これが使えるようになると下記のようなことをはじめ、色々なことができるようになります。

 

  • 警告を表示して数秒後に消す
  • 複数の画像を見せる時に単に貼りつけるのでなく、スライドショーで見せる
  • 誕生日を入力すると星座が表示されるようにする

(実習にあるのは1番目で、2番目と3番目は私が挙げた例です。)

 

JavaScriptのライブラリであるjQueryも少しやります。

 

ライブラリというのは、1からコーディングしなくていいようにあらかじめ少し作りこんであるものだと思ってください。

 

これを使えるようになると短いコードを書くだけでいろいろ面白いことができます。

 

最終課題はルーレットゲームの作成。

 

ゲーム作りに興味のない人もいるでしょうが、応用範囲の広い重要なエッセンスが盛り込まれた課題なので実力はつきます。

 

Rubyマスターコースを完走できなくても、2科目目まで学ぶだけで動きのあるサイトが作れるようになります。

 

Ruby

Ruby言語の基礎を学びます。

 

Rubyはシンプルな言語で、命令文の末尾には必ず「;」をつけるといった面倒なルールもありません。

 

拍子抜けするくらい簡単で、すぐ終わりました。

 

提出課題はありません。

 

Ruby on Rails

このコースの山場で、相当むずかしいので、十分な時間を確保する必要があります。

 

Ruby on RailsはRuby言語のフレームワーク。

 

「フレームワーク」というのは、さきほど説明した「ライブラリ」よりさらに作りこまれたもの。

 

「ひな形」などとよく例えられますが、「半完成品」というのとも少し違うような気がします。

 

まあ、それがどんなものかは体験して理解してください。

 

Ruby on Railsでウェブサービスのサーバーサイドのプログラムを組む技術を学びます。

 

この科目はだいたい3部に分かれていて、最初にRuby on Railsの基本をやります。

 

その後、データベースを操作する言語として最重要で有名なSQLを学びます。

 

最後にRuby on Rails経由でSQLを使い、データベースを使ったシステムを構築する方法を学びます。

 

本格的なWebサービスを作る上でデータベースは非常に重要で、Amazonや楽天などはもちろん、みなさんが普段使っているブログでも中核をなしています。

 

実際に2つのウェブサービスを作って学ぶのでとても実践的です。

 

  • ひとことBBS(Twitterのようなもの)
  • 画像投稿サイト

 

この中でユーザー登録、ログイン、お気に入り、投稿、「いいね」など色々な機能の作り方を学びます。

 

最終課題はフリマサイトの自作です。

 

大筋は「画像投稿サイト」の応用ですが、最後まで完成させるのはかなり大変です。

 

しかし、これをやり遂げてやっと全体像が見えた気がしました。

 

提出課題と修了証

以上のようにこのコースでは3つの提出課題があり、合格基準はかなり厳しいです。

 

私はHTML/CSSで2回、JavaScriptで2回、Ruby on Railsで1回不合格になりました。

 

合格認定なんかどうでもいいという考え方の人もいるかもしれませんが、最後までやり遂げると自信がつきます。

 

合格すると修了証がもらえて、転職を考えている人は履歴書に添えてスキルの証明にも使えます。

 

 

コードキャンプの学習方式

オンライン教科書で自習し、自分でプログラミングし、行き詰まったら講師がマンツーマンのビデオ通話レッスンで助けてくれるというシステムです。

 

Ruby on Railsのオンライン教科書

【Ruby on Railsのオンライン教科書】

 

プログラミングはクラウドサービスを使うので、自分のPCにRubyの環境構築をする必要はなく、ネットにつながりさえすれば低スペックPCでも受講できます。

 

開発環境Cloud9の画面

【開発環境Cloud9の画面】

 

講師は全員現役のエンジニアで、技術力はもちろん、コミュニケーション力・教え方のスキルでも選抜・訓練された人たちです。

 

コードキャンプのいいところはレッスンの自由度が高いところです。

 

  • 生徒が講師を選ぶ
  • 時間は朝7時~夜11時(午後と夜だけの学校が多い)
  • レッスンの目的も自由
  • 曜日・時間は固定でなく、毎回予約

 

講師は特性を示すピクトグラムがつけられ、詳しいプロフィールも公開されているので選びやすい。

 

講師の特性ピクトグラム

【講師の特性ピクトグラム】

 

何人かの講師を試した上で、自分の「師匠」を選ぶことができました。

 

レッスンの目的は何でもありです。

 

  • 教科書のわからないところを解説してほしい
  • プログラムが動かないので助けてほしい
  • 画面を共有していっしょにコードを書いてほしい
  • エンジニアの職業事情を聞きたい

 

私はHTML/CSSとJavaScriptは学習経験があったので、前半でレッスンを温存し、半分以上をRuby on Railsに投入しました。

 

曜日・時間が固定の学校だとこうは行きません。

 

プランの選び方

私は教科の一部に経験があったので、最短の2ヶ月プランを選びました。

 

レッスン数は20回しかなかったので、レッスンがムダにならないよう、毎回何を聞くかをよく計画して臨みました。

 

Rubyマスターコースのプラン

【Rubyマスターコースのプラン】

 

プログラミング経験や自信がある人は短めのプランにして、毎回濃いレッスンになるよう準備し、足りなかった時は有料で期間延長やレッスン追加購入をするのがいいと思います。

 

未経験者、自信のない人、学習時間が取れない人は長めのレッスン数の多いプランにして、講師にまかせる部分を増やしましょう。

 

レッスンのペースは毎回、1.ゆっくり丁寧に、2.さくさくポイントを押さえて 3.講師におまかせ から選べます。

 

何から聞いたらいいかわからないぐらいわからない時は、講師におまかせを選んで、ありのままを伝えればいいのです。

 

 

受講を終えた感想

本当に受けてよかったと思っています。

 

HTML/CSSはわかっているつもりでしたが、Google検証ツールの使い方すら知らなかった。

 

プロならこれがなくては仕事にならないくらい基本的なものだそうです。

 

以前は目視でスタイルシートとにらめっこしていたのです。

 

提出課題も2回落ちて、自分のレベルの低さを思い知らされましたが、合格するまで頑張った結果、自信がつきました。

 

JavaScriptのデバッグも以前はコードを必死に読んで考えるという原始的な方法しか知らなかった。

 

これだと少し大きなプログラムになると限界がきます。

 

console.log()と検証ツールを使って1ステップずつ確認していく方法を教えてもらったおかげで、大きなプログラムも完成できるようになりました。

 

そしてRuby on Rails!

 

これは本当に難しかった。

 

私が師匠に選んだ人は京大の理学部出身なのですが、こんなアドバイスをくれました。

 

「Railsは最初からひとつずつ完全に理解しようとしてはいけない。それは挫折への道。とにかく手を動かして、ひとつのアプリを作る工程を何周もやる。自分は昔100周やった。そうすると理解が追い付いてくる。」

 

その言葉があったおかげでこんなに短時間に修了することができました。

 

本当に、教科書通りにやると動きはするのですが、何をやらされているのかよくわからない。

 

そして時々エラーが出て動かなくなるのですが、エラーメッセージ(全部英語)の意味がわからない。

 

でも、京大理学部出身者でも1回ではわからなかったんだから、自分がわからないのは当たり前。

 

とにかく前に進めばいいんだ。

 

そう信じて教科書のアプリを2周作り、提出課題も合格した時、ようやく「だいたいわかった」という感触が得られました。

 

独学だと途中で考え込んでしまって投げ出した可能性が高いと思います。

 

独学を検討している未経験者がいたら言いたいです。

 

「自分を天才だと思わないなら、プロに習いなさい。その方が断然早い」と。

 

ほかにはクラウドの開発環境に触れた刺激も大きかった。

 

「今はこんな便利なものがあるのか?!」と、ネット業界にいながら自分がどれだけ遅れた人間なのかを思い知らされました。

 

私はサイトを作っていろいろなサービスを紹介して生計を立てているので、受講の目的は自分のスキルアップとここに載せる体験談の作成が半々ですが、この講座は絶対にいいものだとお勧めします。

 


各教科の受講状況

ここでは4つの教科の講習の様子や特に受けてよかったと思ったことを書きます。

 

遭遇したトラブルや講師とのやり取りも収録しているので、受講の様子がリアルに想像できると思います。

 

第一科目 HTML/CSS

私は10年以上もサイトでの集客業をやっていてHTML/CSSにはなじみがあるので、この教科は軽く復習するだけでいいと考えていました。

 

しかし、実際はこの科目を受けて得るところが大きかったです。

 

プロの検証方法

まずCSSで思ったようなデザインにならない時にどうやって調べるかを教えてもらったのが大きい。

 

Google検証ツールの使用はプロなら当たり前らしいですが、自分は知らなかったです。

 

これを使うと一つの要素に複数のCSSがかかってしまっていて、どれかが無視されているような状況がすぐにつかめます。

 

以前はHTMLとCSSのファイルを目視しながらやっていたのですが、それではサイトが大きくなってスタイルシートも何ページにもなると能率が顕著に落ちます。

 

当然、企業のサイトの作成やメンテは無理です。

 

自分のサイトだけだし、デザイン性を競うようなサイトも作っていないので、そんなやり方でもやってこれたのです。

 

このコースでプロのやり方を勉強できたのは大きな収穫でした。

 

指定通りのものを作る体験

しかし、一番勉強になったのは提出課題です。

 

「これと同じ見た目のものを作ってみろ」という内容です。

 

しかも、下記のような35の指定要件のうち、32以上を満たしていることが合格条件です。

 

  • ブラウザの横幅を変更してもコンテンツが中央にある
  • ブラウザの横幅を960px以下に狭めてもレイアウトが崩れない
  • ナビゲーションとメインコンテンツの背景には外枠をつけない。ナビゲーションの区切り線は点線とする
  • ・・・

 

自分のサイトしか作っていないと、つい妥協してしまいます。

 

「本当はこういうデザインにしたいが、CSSが難しいので、自分ができるデザインでいいや」とか。

 

「スペースを空けたいが、CSSが面倒くさいので空白や改行でごまかしておこう」とか。

 

でもそんなことをやっていると進歩しないし、プロとして通用しないし、サイトのメンテも煩雑になってしまいます。

 

妥協を許さない制作は本当に貴重な経験でした。

 

提出課題のコーディング手法は教科書に出てないものも一部含まれています。

 

自分で調べる力をつけないとプロのエンジニアとして通用しないので、カリキュラム後半になると徐々に自分で調べる項目が入ってくるのです。

 

課題の一部

【課題の一部】

 

例えば、上の見た目を実現しようとすると、hタグの形状を四角で妥協するわけにはいかず、角丸にするやり方を調べるしかありません。

 

それぐらいは知ってますか?

 

では、liタグの行頭の「・」を取って横並びにする方法は?

 

私はそこまでは知っていましたが、画像と文字の入ったリストを横並びにして縦横がそろうようにするのは苦労しました。

 

あと、floatを使わないといけない場面が出てきます。

 

レイアウトが崩れやすいので中級者でも悩みの種なのではないでしょうか?

 

そういうことも相手の求める要件を厳密に満たす課題に取り組むことで乗り越えられます。

 

合格まで頑張ることで得られるもの

というわけで、少し苦労はしましたがだいたいそっくりなものが出来たので提出しました。

 

その時は一発合格すると思っていたのです。

 

しかし、結果はまさかの不合格でした。

 

不合格の理由は、例えばメニューの横幅や画像間の余白が均等でないということが指摘されていました。

 

「え~?ほぼ均等じゃん?よく見ないとわからんレベルでしょ?」

 

そう思いましたが、やはりお金をもらって制作を請け負った場合は許されることではないのでしょう。

 

気を取り直して修正の方法を考えました。

 

マージンやパディングの数値を試行錯誤して合わせるのではなく、完全に正確に均等になる方法をです。

 

もうひとつ、「ブラウザの横幅が960px以下になった時、レイアウトが乱れます。」という指摘があります。

 

確かに幅を狭めるとフッターの文字が移動します。

 

それも修正して再提出しました。

 

今度こそ大丈夫だと思っていました。

 

添削にずいぶん時間がかかっているので「何をしているんだ?」と思っていましたが、返ってきた結果は二度目の不合格でした。

 

理由は「ブラウザの横幅が960px以下になった時、レイアウトが乱れます。」です。

 

「いったいどこが?!」

 

何回やってもレイアウトの崩れなんか起きません。

 

これは採点ミスに違いないと思って、事務局に問い合わせました。

 

すると「ブラウザの横幅が960px以下にした上で、ブラウザ下部に現れるスライダーを右に動かしてみよ」という指示が来ました。

 

すると「なんということでしょう!(笑)」、右上の角が確かに崩れております。(再度大笑)

 

これの修正には苦労しましたが、その中で根本的原因は私のボックスモデルに対する理解があやふやな点にあると悟りました。

 

修正して再々提出した結果、ついに合格をいただくことができました。

 

軽く復習のつもりだったHTML/CSSで思わぬ足止めを食らいましたが、いい勉強になりました。

 

この課題はあちこちに地雷をいっぱい埋めこんであるようで、HTML/CSSがそこそこできるつもりの方もいいチャレンジになると思います。

 

HTML/CSS修了証

【HTML/CSS修了証】

 

 

第二科目 JavaScript

JavaScriptも学習経験があったので、軽い復習のつもりでした。

 

何かまとまったプログラムを書いたことはないですが、以前に薄い本を買って載っているサンプルコードをほぼ全部試したことはあったのです。

 

しかし、これも甘かった。

 

サンプルコードなんか動いて当たり前です。

 

なにかまとまりのあるものを作り、バグが完全になくなるまで仕上げた経験こそが力になるのだと悟った経験でした。

 

DOM操作

この科目の前半はやさしいのですが、後半になるとDOM操作というものが入って来て一気に難しくなる。

 

DOMというのは「HTML文書をオブジェクトとして扱えるようにしたもの」で、JavaScriptを使ってHTMLやCSSを操作できるようになります。

 

難しいと同時にこれこそJavaScriptの醍醐味で、動きのあるサイトを作れるようになるものなのです。

 

デバッグ技法

このあたりからデバッグ(間違いの修正)に苦戦するようになりました。

 

プログラムがある程度以上複雑になってくると、コードを熟読して考えるだけでは限界が出てくるのです。

 

レッスンを受けてみると、console.log()とGoogle検証ツールを使ってワンステップずつ検証する方法を教えてもらえました。

 

これはJavaScriptプログラマーにとっては常識の部類だそうです。

 

現役エンジニア講師の余談

そしてこんな話も聞かせてもらえました。

 

JavaScriptは不整合な点があるとそこで計算を中止する仕様になっているため、普通のプログラミング言語みたいにデバッグツールができない。

 

どうしてそんな仕様になっているかというとHTMLがもともと学術論文の情報交換の目的で作られたものだから。

 

インターネットの起源は軍事用の通信ネットでほとんどの技術はアメリカ起源だが、HTMLに限ってはヨーロッパ起源。

 

欧州原子核研究機構(CERN)の学者が学術論文の交換にネットを利用しはじめたのがきっかけ。

 

論文情報の交換が目的の場合、プログラムに不具合があっても、エラー画面になるより文章だけでも表示された方が好都合。

 

だからHTMLやCSSに不具合があるとデザインは崩れるが、文字は表示される。

 

JavaScriptに不具合があると意図した動きはしないが、文章の表示に支障はない。

 

そういう言語なので、意図どおりに動いているかワンステップずつ確認するしかないというわけだ。

 

こんな話が聞けるのも現役エンジニアの講師ならではです。

 

ユーザーの想定外の操作に対応できてこそ完成

提出課題のルーレットゲームはかなり難しかったですが、デバッグ技法を教えてもらったおかげで何とか完成しました。

 

要件表と照らし合わせてチェックしたところ、全部クリアしているので提出したところ、またまさかの不合格でした。

 

理由は「すばやくボタンを交互に押すと異常な動作をする」ことです。

 

「え~?そんな完成度まで求めるの?」と一瞬思いましたが、考えてみれば当然です。

 

この学校はエンジニア転職者を送り出しているのです。

 

ユーザーがちょっと想定外の操作をしただけで不具合が起きるようなプログラムを書くクズを世に出すわけにはいきません。

 

私も気を取り直して、原因と対策を考えてみました。

 

この課題はもう一度不合格になりましたが、三度目の正直で合格をもらうことができました。

 

プログラミングの厳しさを痛感するとともに、スクールへの信頼を新たにした体験でした。

 

JavaScript修了証

【JavaScript修了証】

 

 

第三科目 Ruby

Rubyは文法がシンプルな言語と聞いていましたが、想像以上でした。

 

プログラミング言語を勉強すると、必ず「変数」「文字列」「数値」「繰り返し(while, for文)」「制御構造(if文)」「配列」などが最初にでてきます。

 

どの言語でもそうなので、第二科目でJavaScriptを勉強した人なら問題なく理解できます。

 

この科目は楽勝でした。

 

第二科目との違いは第6章「オブジェクト」ぐらいでしょうか。

 

オブジェクト、クラス、インスタンス、メソッドといった概念がさらっと紹介されます。

 

あまりにあっさりした紹介なので、ここで「つまづき感」を感じる人が少ないでしょう。

 

しかしオブジェクト指向言語の考え方が理解できるかどうかは最終章の明暗を分けます。

 

user = User.new(current_user.id) といった「user」だらけの呪文のようなコマンドの意味が理解できるか?

 

まあ、スクールとしてはそれをこの章で詳しく説明しても難しく感じるだけなので、次章での実践の中で理解してもらおうという考えなのでしょう。

 

とにかく、この章は提出課題もないし、すぐ終われます。

 

第四科目 Ruby on Rails

このコースの最大の難所だと予想して、持ちレッスン20コマの大半を温存しておきました。

 

講師にそう告げると「正解です」との答えでした。

 

1個目のウェブサービス作成

Railsの学習は演習問題ではなく、ウェブサービスを実作することで進められます。

 

2個のウェブを教科書どおりに作り、3つ目は要件どおりに自作する提出課題です。

 

1個目は「ひとことBBS」で、いわばツイッターもどきです。

 

最初からなんだかわけのわからない作業が始まりました。

 

書かれているとおりにやると書かれているとおりになりますが、狐につままれたようで何か腑に落ちません。

 

そのうちエラーが出てまったく動かなくなりました。

 

Railsのエラー画面は真っ赤なデザインに全編英語で、とてもイヤな感じです。

 

Ruby on Railsのエラー画面

【Ruby on Railsのエラー画面】

 

私は英語はできるのですが、そのエラーメッセージはまったく理解できませんでした。

 

レッスンを受けてみると共有画面を見るなり、講師の口から「これは多分・・・」という言葉が洩れました。

 

原因は命令文の前に入力してしまっていた全角スペースでした。

 

透明なのでエディタでは存在がわかりません。

 

エラーメッセージも「full-width space」とか言ってこないで「' '」がおかしいとか言ってくるので意味不明になります。

 

講師は昔独学した時に同じ問題の解明に1週間かかったそうです。

 

「今のところ順調に進んではいるが、本質的にはよくわかってない感じだ」と講師に言うと「それが普通」とのことでした。

 

「スラスラ理解できるのはPHPなどのプログラミング経験者だけ。普通は手を動かして作業を何周もやるうちに理解が追い付いてくる。」とのこと。

 

私はこの講師に信頼感を抱いて、以降のレッスンは主にこの人から受けるようになりました。

 

データベース学習

「ひとことBBS」が終わるといったんRailsを離れてデータベースの勉強をします。

 

最初はphpMyAdminというソフトを使いますが、これもよく使われるので慣れておいて損はないです。

 

データベースを操作する言語は複数ありますが、業界標準として広く使われているSQLを学びます。

 

phpMyAdminの画面にSQLの命令文のを入力して、データベース上のテーブルにデータ追加、更新、削除などをする練習をします。

 

テーブルというのはエクセルの表みたいなものです。

 

だからこの学習は命令文を使ってエクセルを間接操作するような感覚です。

 

2個目のウェブサービス作成

いよいよ本コース最大の難所に入ります。

 

ここではphpMyAdminを離れ、RailsでSQL文を発してデータベースをコントロールする技を学びます。

 

データベースを使えるとアプリケーションが急に本格的な感じになってきます。

 

  • ユーザー登録
  • ログイン
  • 投稿(売買サイトの場合は出品)
  • いいね
  • お気に入り

 

以上のような機能はみんなデータベース技術の応用です。

 

2個目のウェブサービス「画像投稿サイト」作成でこれらをすべて学びます。

 

難易度は一気に増し、言われるままにやらされているだけで、何をやっているのかわからない感覚が強まっていきます。

 

繰り返しレッスンを受けてすでに私の「師匠」になっていた講師が言っていました。

 

CSSやJavaScriptの学習では『教科書通りやっているのに、なぜちゃんとならないのか?』と思うことが多い。

 

しかし、Railsに入ると『教科書通りにやったら動くが、これでなぜ動くのかわからない』と思うことが増える。

 

まさにその通り。名言です!

 

師匠はこうも言っていました。

 

Railsは最初から一歩ずつ完全に理解しようとしてはいけない。

 

そんなことをするとたいてい挫折する。

 

自分も1回目はさっぱりわからなかった。

 

自分の若い頃はコードキャンプのような便利なものはなかったので独学だったが、ひとつのウェブサービスを作る工程を100周勉強した。

 

繰り返し同じ作業をするうちにだんだん理解が追い付いてくる。

 

それがRailsの勉強の仕方だ。

 

師匠は京大の理学部出身ですよ。

 

そんな理系の最高峰みたいな人でも1回では理解できなかったのだから、自分にできないのは当たり前です。

 

その一方で、Railsはアインシュタインの相対性理論みたいに一部の極度に頭脳明晰な人しか理解できないようなものではありません。

 

文系出身や高卒のRailsプログラマもたくさんいます。

 

いろいろなプログラマが言っている言葉があります。

 

プログラミングはスポーツと似ているところがある。

 

頭で理解するものではなく、手を動かしてコーディングを重ねるうちにわかってくるものだ。

 

というわけで、私も「よく理解できないことをやらされている」ストレスを苦にせず、手を動かし続けました。

 

エラーは一定時間考えてわからなかったら、レッスンを受けることにしました。

 

すると問題は即座~10分くらいで毎回解決し、前に進むことができました。

 

独学ではとても出来なかったと思います。

 

あきらめなかったにしても習得の時間は10倍以上かかったでしょう。

 

「画像投稿サイト」1周目では消化不良だったので、2週目をやってみました。

 

すると2週目はたった2日で終わり、だいぶ理解できたような気がしてきました。

 

当初は不吉な印象さえ受けた真っ赤なエラーメッセージ画面も親切な相棒のように思えてきました。

 

理想を言えばあと何周かした方がいいのでしょうが、修了期限までもう時間があまりありません。

 

提出課題「フリマサイト」にとりかかることにしました。

 

ついに最終課題に着手!

「フリマサイト」はユーザー登録、出品&削除、いいね、お気に入りなどができるメルカリの簡易版みたいなサイトです。

 

  • 画面の見本
  • テーブルの仕様
  • 満たすべき要件リスト

 

この3つだけを与えられて、プログラミングの方法は自分で考えます。

 

最初は「激ムズ!こんなんできるかっ?!」って思いましたが、冷静に見返すと「画像投稿サイト」と大筋は同じことに気づきました。

 

アウトプットこそ最強の学習法

教科書の「画像投稿サイト」の部分を読み返しながら、骨子部分のコーディングをしていきます。

 

基本は教科書のマネで、フリマサイトの場合は少し変える場所があるかどうか考えるだけです。

 

それでも1行思い浮かぶたびに急に理解が深まるというか、少し「自分のモノ」になった感じがします。

 

よく「インプットばかりでは身につかない。アウトプットこそ最強の学習法。」と言いますが、まさにアレです。

 

「完成まぢか」からが一番時間がかかる

ほどなく、機能面はだいたい仕上がりました。

 

・・・というか、その時はそう思いました。

 

師匠に「そろそろ要件表と照合してひとつずつクリアすることを始めるべき」と言われ、それを開始しました。

 

ところが、それがなかなか終わらない。

 

修了期限が迫っているのに、下記のような感じで次から次へといろいろな不具合が見つかります。

 

  1. 出品はできるが、出品商品の情報編集がうまくいかない。
  2. 商品名や商品説明の情報は編集できるようになったが、画像変更がうまくいかない。
  3. それを直すと、今度は編集すると新規出品されてしまうようになった。
  4. それを直すと、今度はurl中のidを手動で書き換えると、他人の出品商品を編集できてしまう不具合が見つかった。
  5. ・・・・

 

いったいいつになったら終わるのか?・・・・

 

最後の詰めに予想外の時間がかかっていると師匠に相談すると、こんな言葉が返ってきました。

 

それが普通。形の90%は早い時期に出来上がる。

 

最後の詰めをして完成度を高めるプロセスに一番時間がかかる。

 

一部のユーザーは設計者の想定外の操作をする。

 

どんな変なことをされても不具合を起こさないシステムに仕上げるのが大変。

 

なるほど、そういうものか。

 

これはもう少しかかると覚悟しないといけない。

 

デザインは最初にちゃんとした方がいい

すると今度はデザインの仕上げという別の問題が気になってきました。

 

デザインは合否判定の対象外なので、機能面が完全になってから最後に仕上げればいい。

 

そう考えていたのですが、その時間がないかもしれない。

 

師匠に相談すると次のような返事でした。

 

この課題に合格する目的からはCSSは最低限でいい。

 

しかし、自分の場合はコーディングを始める前に2日くらいCSSにかけてデザインを完璧にする。

 

それはその後のプロセスのモチベーションに大きく影響する。

 

画面のデザインがいいと「こんなにカッコいいサイトだから機能も完璧にするぞ!」という気持ちになる。

 

デザインがいいかげんだと「自分は何を作ってるんだろう?」という気持ちになる。

 

急がば回れ!

師匠の言葉を受けて、いったんコーディングとテストを止め、デザインを仕上げることにしました。

 

こんなしょぼいデザインだからいつまでも完成イメージが持てないんだと思ったのです。

 

このコースの第一提出課題でCSS技能を鍛えなおされたおかげで、ほどなくそこそこ見栄えのする画面が出来上がりました。

 

同時にテスト用の画像データもちゃんとしたものを用意することにしました。

 

今までは画像の記録や更新ができるか確認できるだけでいいからと、ペットの猫など適当な写真を使用していたのです。

 

しかしユーザー登録のテストでは人物の写真を使うべきだし、出品のテストではフリマにありそうな商品の写真を使うべきです。

 

写真はネットで適当に拾いました。

 

自分のテストに使うだけで公開はしないので、著作権とかを気にする必要はありません。

 

画面デザインとテスト画像をちゃんとすると、一気に本物のフリマサイトに見えてきました。

 

なんで最初からこうしなかったんだろう?・・・・心からそう思いました。

 

最終のスケジュール組み

2ヶ月プランの修了期限まで残り1週間になりました。

 

提出課題は期限後1カ月まで受け付けると聞いているので、まだ余裕があります。

 

問題はレッスンで、3レッスン分のポイントが残っています。

 

事務局からも「期限を過ぎるとレッスンポイントは無効になるので、使い切って」と警告が来ました。

 

しかし、ここで「期限」の意味がよくわからなくなりました。

 

「レッスンを受けられる期限」という意味なら今週中に3レッスン終えねばなりません。

 

「ポイントを使ってレッスンを予約できる期限」という意味なら、期限日から2週間先まで予約できるので、まだ最大で合計3週間あることになります。

 

事務局に問い合わせると後者の意味でした。

 

ただし、期限後はレッスン日時の変更はできず、出席できなくても消化扱いになるそうです。

 

これで作戦が決まりました。

 

今週のレッスンでほぼ完成しそうな感触が得られたら、残り2レッスンは不合格になった場合の対策用に期限後の1週と2週に予約を入れる。

 

今週のレッスンでまだまだかかりそうな感触だったら、期限日までにポイントを追加購入して期限後の2週間に3~4レッスンの予定を入れる。

 

*****

 

今週のレッスンを受けた感触では、ポイントを追加購入してレッスン数を増やしておくほどでもないと判断しました。

 

しかし、自分で仕上げて提出してしまうには不安も残る状況だったので、期限後1週目のレッスンで完成してから提出し、最後の1回を不合格になった場合用に残すことにしました。

 

課題提出、1回不合格も晴れて合格!

期限日が過ぎ、もはや新たにレッスンを入れることも期限を延長することもできなくなりました。

 

残り2回です。

 

その1回目でどうしても自分で解決できなかった問題を師匠に解決してもらった後、ついに提出しました。

 

「この場で全部チェックはできないので断言はできないが、一発合格の可能性はある。」とのことでした。

 

しかし、結果は不合格でした。

 

理由を読むと原因に心当たりがありました。

 

何かを修正したために元々正常に動いていた部分に不具合が出ていたのです。

 

すぐに自分で直して動作確認し、再提出しました。

 

3日ほど待つとついに合格通知が来ました。

 

そこからさらに少し経つとコース全体の修了証がダウンロードできるようになっていました。

 

たかが私企業のオンラインスクールの修了証かもしれません。

 

しかし、これまで書いたようにかなり大変だったので、素直にうれしかったです。

 

Ruby on Rails修了証

【Ruby on Rails修了証】

 

最後のレッスン

師匠に合格の喜びを伝えると、師匠も喜んでくれました。

 

このコースはコードキャンプきっての難関で、2ヶ月で修了できる生徒は少なく、たいてい期間延長するそうです。

 

最後のレッスンでは自習できなかったJavaScriptの追加課題とRailsのgemの進んだ知識について解説してもらうことにしました。

 

まとめ

いかがでしたか?

 

結構苦労しましたが、充実した2ヶ月あまりでした。

 

自分では何か頭がバージョンアップしたような気がしています。

 

オンラインプログラミングスクールの受講はこれが初めてなので他校との比較はできません。

 

しかし、自分の体験に基づいて、このコースはとてもいいものだとお勧めできます。