本サイト管理人の私は、仕事の関係上、いろいろなコンピュータ言語をかじっています。

 

Rubyはさまざまなウェブサービスの起業に使われているので、興味のある言語でした。

 

Rubyの講座ではコードキャンプがよさそうだったので、受講してその体験記をこのサイトに掲載することにしました。

 

会員登録

コードキャンプのサイト内の「無料体験レッスンを試してみる」のボタンを押すと、会員登録のページに案内されます。

 

メルアドを登録し、送られてきた認証メールのリンクをクリックすると、個人情報を入力するページに進みます。

 

これまでのプログラミング言語学習体験や興味のある言語などの質問にも答えます。

 

会員登録が済むと、受講環境の確認テストができます。

 

自分の持っているウェブカメラやマイクでちゃんと交信できるのか?

 

事前に確かめておかないと、当日になってなぜか作動しないという不測の事態が不安です。

 

通信ソフトはZoomではなく、Google Meetであり、簡単に設定できるようになっています。

 

通信環境が大丈夫だと確認できたので、体験レッスンの日時を決めて申し込みました。

 

体験レッスンは開始2時間前まではキャンセルして、別の日時に再申し込みできます。

 

開始前2時間を切るとキャンセルはできず、通信しなければ「欠席」扱いとなり、再申し込みはもうできません。

 

体験レッスン

ウェブカメラをUSBに差し、指定のページにアクセスして開始を待ちます。

 

あ、Oさんという若い男性の方が出てきました。

 

体験レッスンの内容

今回はプログラミングを学ぶのではなく、次のような内容になるという説明がありました。

 

  • 事前アンケートをもとにした学習経験や興味の確認
  • おすすめコースの案内
  • コードキャンプでの学び方の説明

 

そりゃあそうでしょうね。何を学ぶか決まっていない人もいるでしょうし。

 

学習経験や興味の確認

私の場合は、他の言語の学習経験が少しあったのと、学びたい言語がRubyと決まっていたことで、前段の話は短く済みました。

 

しかし、プログラミング学習が初めてで自信がない人は、この段階でしっかり相談することが役に立ちます。

 

また、学ぶ言語が決まっていない人もしっかり相談しましょう。

 

プログラム言語はそれぞれ用途が大きく異なります。

 

将来自分がやりたいことにつながっていく言語をよく検討して選ばないと、遠回りになってしまいます。

 

特にエンジニア転職を考えている人は、最初の段階でよく相談しておくべきです。

 

どの言語がどんな分野で使われていて、人材の需要はどの程度か、といったことです。

 

おすすめコースの案内

私の場合、Rubyを学ぶことは決まっていましたが、プランの選択に迷っていました。

 

6ヶ月プラン 4ヶ月 2ヶ月
受講料(税抜) 298,000円 248,000円 148,000円
入学金(税抜) 30,000円 30,000円 30,000円
レッスン回数 60回 40回 20回
学習目安時間/週 5〜10時間 10〜15時間 20〜25時間

 

できれば最安の2ヶ月プランでやりたいのですが、学習時間がこんなに取れません。

 

週20〜25時間といえば1日当たり3時間以上です。無理、無理。

 

しかし、プログラミング学習の経験があるので、もっと短時間でできるのかもしれない。

 

そこで、この目安時間はどういう学習者を想定しているのかと聞いてみました。

 

すると、プログラミング経験がまったくない、HTMLも知らないような初学者を前提にしているとのことです。

 

次に学習内容について聞いてみると、HTML、CSS、Javascript、Ruby、Ruby on Railsなどとのこと。

 

HTML、CSS、Javascriptはホームページ制作の知識であって、つまりそういうことも知らない人でもちゃんと一から学べるようになっている。

 

逆に、私の場合はそれはもう知っているので、実質の学習負担はRuby関係だけになる。

 

そこでHTML、CSS、Javascripの学習ボリュームはどの程度かと聞いてみると、4割程度だといいます。

 

その部分はさくっと済ませて、レッスンの大半をRubyの学習に費やしてもよいか聞くと、問題ないとの答えです。

 

そういう縛りのない自由さ・柔軟さがコードキャンプのメリットだそうです。

 

つまり学習ボリュームの6割だけを期間内に学べばいいのです。

 

これで答えが出ました。

 

2ヶ月プランで十分やれそうです。

 

複数ある追加授業オプション

しかし、まだ不安もありました。

 

受講中に何か大変なことが起きて忙しくなり、レッスンを消化できなかった時はあきらめるしかないのか?

 

私の場合、Googleの順位変動で売上が飛んで、そういう事態になることが何年かに一度はあります。

 

これについては、月3万円で受講期間を延長できるとの回答でした。

 

また、レッスンは全部消化してしまったが、あと少し教えてほしいことがある時は1回5,000円で追加レッスンを受けられるそうです。

 

また、月15,000円の追加でオプションのチャットレッスンをつけることもできること。

 

これなら、始めてみたところ想定外の苦戦に陥った場合も安心です。

 

講師の質

講師の質については先方からアピールがありました。

 

まず、全員が現役のエンジニア、つまりコードキャンプ以外の企業でSEやプログラマとして働いている人限定だそうです。

 

そういう人に業務委託という形で講師をしてもらっているそうです。

 

まずは最前線で通用しているプロが先生で、教育専業の人はいないということです。

 

そういう人に試験・査定を課して「人に教える能力は十分か?」を判断し、合格した人だけを講師として採用するそうです。

 

合格率は約17%とのことなので、結構狭き門です。

 

さらに採用後は研修を行い、受講生の意見もモニタリングして、問題があれば指導しているそうです。

 

なるほど。

 

いくら天才プログラマーでもコミュニケーションが苦手な先生に当たったら嫌ですが、そういう人はいないということです。

 

最前線で通用するプロで、かつ教え上手な先生。

 

そういう人がオンラインで家庭教師をしてくれるようなイメージだと言っていました。

 

さらに教材の一部を画面で共有しながら、このカリキュラムのイメージを伝えてくれました。

 

早期申込特典

受講料は競合他社に比べてかなりお得だとアピールしておられましたが、さらにお得な特典があるそうです。

 

この体験レッスンが終わった後にあるアンケートに答えると、回答から1週間以内に受講申し込みすれば1万円引きになるとのこと。

 

すると私のコースの場合、費用は次のようになります。

 

入学金3万円+受講料14.8万円−1万円=16.8万円

 

OK!これで行くことに決めました。

 

これで体験レッスンを終えましたが、受講申込までに追加で聞きたいことがあれば、それも可能だと言っていました。

 

CodeCamp

 

申込〜講座スタート

1万円引きの期限が来る前にカード支払いで受講料を払いました。

 

コードキャンプの自分のログインページに受講コースの「教科書」などが公開されました。

 

これを読んで自習し、わからないところを先生に聞く形のようです。

 

さっそく教科書の冒頭の「HTML」を読んでみます。

 

学習の1項目が数行の解説文とコード例で完結するように細分化され、非常に単純な内容になっています。

 

とりあえず、そこに書いてあることさえ理解できればいい。

 

理解できたら、「理解した」ボタンを押して次の項目に進む形式です。

 

ホームページを作ったことがない人でもわかりやすく作られていると思いました。

 

1項目の学習が非常に短時間で済むため、忙しい日でも1項目や2項目は進めます。

 

私はHTMLの知識はすでにあるので、サクサク進んでいました。

 

すると「オリエンテーションを受けてください」という指示が来たので、予約を入れました。

 

オリエンテーション

オリエンテーションをしてくれたのは、芸能人みたいな名前のTさんという30代前半くらいの女性でした。

 

経歴を見ると大学は文系だが、エンジニアの道を進み、Javascriptの専門家とのこと。

 

お子さんがいらっしゃるようです。

 

オリエンの内容は以下の3点とのことでした。

 

オリエンテーションの内容
  • 学習の進め方
  • スケジュール管理方法
  • エディタ(Cloud9)の使い方

 

学習の進め方

教科書などの画面を講師と共有しながら、勉強の進め方を教えてもらいます。

 

コードキャンプのスタイルは、講義を受けるのではなく、自習が基本です。

 

オンライン上の教科書で、細分化された項目をひとつ理解するごとに「理解した」ボタンを押して進んでいきます。

 

そして大きな区切りごとに提出課題が与えられています。

 

自習や課題でわからないところが出てきた時に、レッスンを予約してオンラインで家庭教師に教えてもらう感じです。

 

ただ、1回目のレッスンは早めに受けてみたほうがいいとのことです。

 

エディタ画面を共有しながら、一緒にコードを書いて教えてくれるそうです。

 

また、受講コースのカリキュラム以外の質問もOKだそうです。

 

たとえば「こういうものが作りたい」というものが独自にあって、相談したい場合。

 

ただ、対応力は講師によって差があるので、そこは容赦してほしいとのこと。

 

それはそうですね、得意不得意もあるから。

 

相談内容と講師の組み合わせで、得られる成果は変わって当然です。

 

講師リストでは経歴が出ているので、自分の質問に答えてくれそうな人を予約するのも手ですね。

 

あるいはエンジニアとしての転職や仕事の実情などの話もかまわないそうです。

 

例えばベンチャー起業を目指して勉強している人は、その経験のある先生を予約するといいですね。

 

ほかには「コードはコピペでなく、手書きしないと身につかない」といった注意をいくつかいただきました。

 

スケジュール管理

コードキャンプでは学習の進捗管理をサイト上でできるようになっています。

 

そのページに移動して使い方を教えてもらいます。

 

単元ごとに着手・完了を入力していくと、自分の進捗状況が一目瞭然です。

 

この表はレッスンする講師も事前に見ます。

 

生徒の進捗状況を知ってからレッスンしたいので、できるだけちゃんと管理していくように言われました。

 

エディタ(Cloud9)の使い方

Rubyマスターのコースではアマゾン・ウェブサービスのCloud9というエディタを使います。

 

別会社の有料サービスですが、使用料はコードキャンプの受講料に含まれており、コードキャンプのサイトから直接飛べるようになっています。

 

飛んでみると、おおっ!真っ黒な背景に全部英語のメニュー・・・

 

いかにも辣腕プログラマーが使いそうなカッコいい画面ですが、ちょっととっつきにくくもある。

 

使い方は難しいものではなかったですが、一人でいじっていたら戸惑っていたかもしれません。

 

オリエンを受けておいてよかったです。

 

*****************************

 

以上のような内容でオリエンが終わりました。

 

いよいよ実習に入ります。

 

前半を超特急で飛ばして、Rubyの学習に集中するつもりです。

 

提出課題の確認

HTMLの章の冒頭を読んでみてスラスラ進むので(すでに知ってますから当然)自信を持っていたのですが、ちょっと不安が出てきました。

 

先に提出課題がどんなものか確認しておいた方がいいのではないか?

 

そう思って教科書の先の方に飛んで提出課題を確認し、ちょっと青ざめました。

 

HTML&CSSの提出課題

かなり見栄えのいい1枚もののサイトがあって、「これと同じものを作ってみろ」という課題です。

 

たしかにそれができなければ、プロの現場で「HTML&CSSはできます」ということになりません。

 

しかし、そんなに単純なデザインではないので、完全コピーはかなり骨が折れそうです。

 

逆にこれをクリアできれば、自分のスキルに自信が持てるでしょう。

 

一刻も早く自習を終えて、この課題に取り組まないと時間が無くなると思いました。

 

Javascriptの課題

ルーレットゲームを作る課題です。

 

Javascriptは昔、本を一冊やりましたが、サイト上で動的な見栄えを作る小細工的なプログラムばかりでした。

 

ゲームの設計なんかしたことはありません。

 

しかももう完全に忘れています。

 

これも早く着手しないと間に合わなくなりそうです。

 

Rubyの課題

フリマサイトを自作するそうです。

 

Rubyを学ぶのは初めてだし、これは当然、かなり難しいでしょうね。

 

*************

 

というわけで、急に焦り始めた私でした。

 

HTML、CSS、JavaScripをざっと自習

この3つは過去に学んでいるので、とにかく早く読んでしまうことにしました。

 

提出課題以外に章ごとに自習用の課題がありますが、後でまとめてやることにして先に進みました。

 

読み進むうちに記憶がよみがえり、最初は難しそうに思えた提出課題も出来そうな気がしてきました。

 

しかし、どの節も非常にわかりやすく書かれています。

 

数千円の本を買ってきて、あまり良くない本に当たって独学するより、絶対に効率はいいと思います。

 

さすが、結構なお値段がする講座だけのことはあります。(笑)

 

また、なんとなく使えてはいたけど、正確には知らなかったことを確認する機会にもなりました。

 

たとえば、CSSにおけるfloatとclearの機能や使い方です。

 

idは英単語をもとに作るのが常識というのも知りませんでした。

 

別に日本語で id="ringo" とやってもプログラムは作動するのですが、プロエンジニアの世界に行くとやんわり注意されて「apple とかにしろ」と言われるんでしょうね。

 

ていねいなケアのご連絡

入学から1週間近いのにまだ1度もレッスンを受けていないのを心配してメール連絡がきました。

 

「学習は進んでいますか?『もう少しちゃんとできてから』などと言わずに、まずレッスンを受けてみましょう!」といった趣旨でした。

 

こちらとしてはHTMLとJavascriptをほぼ自力で済ませて、レッスンの大半をRubyに使うつもりなので、予定通りなのですが・・・

 

でも引っ込み思案とか完全主義の生徒をほったらかしにはしないという姿勢だと思います。

 

第1回レッスン

HTMLの提出課題に取り組んで、大枠は出来たと同時に、細部の詰めで行き詰まってきたので、レッスンを受けてみることにしました。

 

講師のスペック

講師リストの各講師には、初心者歓迎とか説明がゆっくりていねいかサクサクか、起業経験者、ベンチャー経験者などのスペックがわかりやすいマークでついています。
興味がある講師については、さらに詳細を読むこともできます。

 

レッスン申込み

レッスン申し込みのページに入ると、自分が取っているコースを教えられる先生だけが、空きのある日時ごとに表示されます。

 

私はコードキャンプ内で高い認定を受けていて、説明がサクサクタイプの人を初めての先生に選びました。

 

40代くらいの男性でした。

 

講師への事前連絡

レッスンに当たっては、事前に何を教えてほしいのかとか、レッスンのスピード(ゆっくりか、さくさくか)などについて注文をつけることもできます。

 

エンジニアの職業事情とか転職の話とかもOKだそうです。

 

もちろん何から聞いていいかわからない人は、いきなりレッスンでもOK。

 

そういう人は「初心者歓迎」「説明がゆっくり」のマークがついた先生を選んで、先生主導で進めてもらうといいと思います。

 

私の場合は、提出課題でつまづいているポイントを中心に5点ぐらい挙げておきました。

 

レッスンスタート

時間になると先生とのビデオ通信が開通してレッスンが始まります。

 

自分のPC画面を共有して、作品やコーディングの画面もいっしょにみながら教えてもらえます。

 

私は開口一番、「画像と段落がずれていないか?」と言われて驚きました。

 

確かによく見るとずれているようですが、せいぜい2ピクセルくらいではないでしょうか?

 

しかし、プロの目にはそれが目につくようです。

 

まあ、細部の詰めはまだできてないので、まずは事前に挙げた問題について教えてほしいと言いました。

 

私の書いたコードを見ながら、素早く的確な指示が飛んできます。

 

Google検証ツール

コードの表示確認については、エディタ(クラウド9)のプレビューではなく、Chromeで開けるように指示されました。

 

Google検証ツールを使う必要があるからだそうです。

 

これは開発に必須なツールらしいですが、私は使ったことがない。

 

誰のGoogle Chromeでも画面を右クリックしたら出てくるものですが、中身はチンプンカンプンです。

 

先生の説明で意味がわかりました。

 

これを使うとどのコードに問題があるのか迅速につかめます。

 

今まで膨大なコードとにらめっこして人力で問題点を探していた自分が原始人に思えました。

 

自分で調べるスキル

コードキャンプでは最初の段階で「教えていないことも自分で調べて使えるようになるスキルを身に着けるよう」に言われていました。

 

HTMLの課題にもそういうものが含まれています。

 

例えば、見出しの箱を四角ではなく、角丸にする方法とか。

 

私はそれは知っていましたが、ある種の区切り線の作り方がわからなかった。

 

自分が知っている方法でやろうとすると、ごちゃごちゃした数行のCSSコードになる。

 

先生に聞いたら、10文字に満たない1行のコードでできました。

 

そしてそういう知識を調べるのにいいサイトも教えてもらえました。

 

CSSコードをスッキリさせるコツ

このレッスンで先生に最後に聞きたかったのがこのテーマです。

 

自分で試行錯誤的にデザインしてCSSコードを書いていくと、どうしても煩雑なものになる。

 

時間が経ってからデザインを修正したい時にわけがわからなくて疲れてしまいます。

 

「プロならこんなことしているはずがない」と常々思っていました。

 

どうやったらもっとスマートに処理できるのか、知りたかった。

 

先生の答えは「divタグを濫用せず、極力HTMLセレクタを優先的に使うとCSSがスッキリする」というものでした。

 

また、「idを多用しているが、主にjavascriptとの組み合わせで使うもので、CSS目的ならclassを使うケースがほとんど」ということも言われました。

 

初回レッスンの感想

初回からいきなり「そうか、そういうことだったのか!自分はそんなことも知らなかったのか?」と思うことがいくつもありました。

 

HTMLに関しては自分はレッスンを受けなくてよいのではないか、などと考えていたのがとんだ勘違いだと悟りました。

 

自分のホームページ作りのスキルは「上手な素人」レベルです。

 

自分のサイトだったらいいが、報酬をもらって他人のサイトを作るなら、プロとして通用しない。

 

ショックでしたが、同時にITのプロに直接教えてもらう刺激に興奮もしていました。

 

コードキャンプに申し込んだのは、半分はスキルアップ、半分はこのサイトに体験記を載せることが目的でした。

 

しかし、初回レッスンを受けた後は純粋に楽しくなってきました。

 

もっと一生懸命やって、最先端のエンジニアからいっぱい吸収してやろう!

 

そう思いながら飲んで寝ました。

 

第2回レッスン

HTMLの提出課題はあと少しで完成しそうですが、いったん置いてJavascriptの学習を先に進めることにしました。

 

最初の方はサクサク進んで「楽勝、楽勝!」と思っていたのですが、だんだん課題解決に手間取るようになりました。

 

そしてついにどうしても解決できない課題に突き当たりました。

 

20時間以上かけてあれこれいじって、もうエラーはないと思えるのに、どうしても正常に動作してくれない。

 

ボタンを押すと一瞬何かが表示されるがすぐに消えてしまう状況から脱出できないのです。

 

これでは提出課題のルーレットゲームなんかできるはずがない。

 

もう先生に聞いてみよう・・・そう思って2回目のレッスンを予約しました。

 

レッスンであっさり問題解決

2回目の方はほかの講師よりかなり高齢に見える男性のKさんという方でした。

 

しかし、ひとたびレッスンが始まると、活舌滑らかに明快に話されて、すごい知性の持ち主だと感じました。

 

レッスン後の雑談で「ボケ防止に楽器を再開した」とおっしゃっていましたが、ボケとは縁遠い方です。

 

コードをざっと見て、「多分だいたいできてる。HTMLでいらないタグが入っているが原因」とのこと。

 

JavaScriptはローカル環境で計算して動きを出すものです。

 

HTML部分でformタグが入っているために、サーバーに連絡してしまう。

 

サーバーから取ってきた情報で、せっかくJavaScriptが作ったものを上書き消去してしまう。

 

それが原因だというのです。

 

私はテキストボックスのタグはフォームタグの入れ子で使うルールだと思い込んでいたし、フォームタグにそんな作用があることも知らなかった。

 

フォームタグを除去し、JavaScriptも少し直すと正常な結果が出ました。

 

私は独力で95%くらいできていたのです。

 

しかしあとの5%がどうしてもわからないために結果が出せなかった。

 

プログラミングを独学で学んでいるとそういうことが多いのではないでしょうか。

 

ここでもし先生がいれば、乗り越えて自信を持つことができます。

 

JavaScriptのデバッグ方法

先生には事前にもう一つ根本的な質問をしておきました。

 

それはちょっとプログラムが複雑になっただけでデバッグ(間違い修正)が大変になり、疲労困憊してしまうのをどうしたらいいか、ということでした。

 

先生によると、この言語はエラーがあるとあっさりそこで計算を中止するように作られているので、デバッグツールで効率的にデバッグできない。

 

大きなプログラムを書く時もいきなり大量のコードを書かず、ワンステップごとに動作を確認しながら進めることだ、とのご回答でした。

 

そしてconsole.log();というコードとGoogle検証ツールを使ってそれをやる具体的方法を教えてもらいました。

 

これはとてつもない大きな収穫でした。

 

JavaScriptこぼれ話

先生からは次のようなことも聞き、大変興味深かったです。

 

JavaScriptがエラーに対してあきらめが早いように作られているのは理由がある。

 

HTMLは少々エラーがあってもコンテンツ(文章や画像)は表示されるが、それと同じ。

 

とにかく、デザインや動きは崩れても中身だけは見えるように作られている。

 

これは学者が学術論文の交換を目的としてHTMLを発展させたことと関係している。

 

学術論文で一番重要なのは中身だからだ。

 

インターネットの技術のほとんどはアメリカ起源。

 

(実際、米国防省主導で作られた軍事目的のARPANETがインターネットの先祖)

 

しかし、昔はバラバラだった文章や画像の情報を統合するHTMLはCERN(欧州原子核開発機構)の学者たちが作った。

 

スマホを含め、端末の機能発達とともにJavaScriptはますます活用されている。

 

これには企業の経済的理由がある。

 

ユーザーはますます頻繁に膨大な情報を求めるようになっているが、それをいちいちサーバで提供していたら数千万円単位のサーバー投資が必要になる。

 

ローカル端末でできることはローカルに任せる仕組みにすれば、JavaScriptプログラマーに数十万円払うだけで解決できる。

 

その典型がYahooオークションの残り時間表示ポップアップだ。

 

第2回レッスンを終えて

今回も収穫は大きかった。

 

なんといってもJavascriptをワンステップずつ動作確認しながら書き進める具体的手法を教えてもらったことが大きい。

 

これを知らなかったら、本当に心が折れると思う。

 

また、こぼれ話も面白かった。

 

最後に「CodeCampは、HTMLもJavaScriptも最後に急に難易度が上がるので、段取りをしっかりね。」という言葉をいただきました。

 

最前線のエンジニアに習うというのがこんなに楽しくて豊かな体験だとは思っていなかった。

 

以前に大手の通学校でPHPとか習ったことがあるが、それとは全然違う。

 

Javascriptの提出課題も早く仕上げて、Ruby学習でレッスン取りまくってやろう!

 

そう思いながら飲んで寝ました。

 

第3回レッスン

ここまでかなり根をつめてやったせいで頭がプログラミング思考に慣れてきたのか、すいすい進み始めました。

 

後半はjQueryというものを導入した課題になっているのですが、そのリンクを貼っているのに謎の理由で動かない。

 

しかもクラウド9のエディターに「$」というjQueryのコードに対して「こんなん、知らん」という警告が出ます。

 

「ワンステップずつ動作を確認して進め」という2回目レッスンの先生の教えには反するが、動作を確認しないままコードを書き進めました。

 

コードが自然に浮かぶので。

 

一気に提出課題まで書き上げて、2回目と同じ先生で3回目のレッスンを予約しました。

 

そこでjQueryが効かない問題を解決してもらって仕上げるというつもりで。

 

先生に見てもらったところ、jQueryのリンクには異常なし。

 

エディターに警告が出る理由はわからないが、警告であってエラーではないので、とにかく動かしてみようということになりました。

 

2回目のレッスンの時と同様に、console.log();というコードを使ってワンステップずつ調べていきます。

 

レッスン終了時間が近づいてきて、「今回はもう解決しないかな」と覚悟していたら、ギリギリで解決しました。

 

HTMLのテーブルタグという基礎的な部分に間違いがあったのです。

 

先生もjavascriptの方に集中していて、そんなところで間違っているとは想定外だったので、手間取ったようです。

 

しかし、もちこんだ3課題のうち、ひとつがきれいに表示されて自信を持ちました。

 

やはりコードはほぼほぼ正しかった。

 

あと一歩のところで躓いていたのですが、指導者がいたおかげで乗り越えられました。

 

翌日、ルーレットゲームの提出課題を仕上げてオンライン提出しました。

 

これでjavascriptはひとまず完了です。

 

完成間近で保留しているHTMLの提出課題を数日中に仕上げて、早くRubyを始めないといけません。

 

Ruby学習

HTMLの課題提出がまだですが、なんとなく先に行きたくてRubyの勉強を始めてしまいました。

 

Rubyはまったく初めてなので、多分少し不安があったのだと思います。

 

しかし、始めてみるとどんどん進みます。

 

こんなにシンプルな言語は見たことがありません。

 

ほかの言語はたいてい命令の末尾にセミコロンをつけたりするルールがあり、それをうっかり全角で打ったためにエラーになるといったことが起きます。

 

Rubyにはそういうものはありません。

 

変数型の宣言も不要で、配列も断りなしに書き始めるとプログラム側が「あ、それは配列のつもりですね?」と自己判断してくれます。

 

だから、コードの文字数も少なくて済み、実に早く書けます。

 

JavascriptもC言語なんかに比べると圧倒的にシンプルらしいですが、Rubyはさらにシンプルです。

 

ただ、途中でひとつ気づかされたのが、インデント(字下げ)の意味が重要だということです。

 

他の言語はインデントが揃っていなくても、人間が読みにくいだけで、エラーメッセージは出ません。

 

しかし、Rubyはエディタがエラーメッセージを出します。

 

最初、「なんでエラー?どこもおかしいとはないのに」と思い、自分が読みやすくするためにインデントを揃えたら、エラーメッセージが消えたので驚きました。

 

ともかく、Rubyの基礎は特に先生の力を借りなくても学習できました。

 

しかし、それとRuby on Railsを使って実戦的な課題を解決できる能力は別物です。

 

2回目と3回目にレッスンを受けた先生が「コードキャンプは終盤で急に難易度が上がるので頑張るように」とおっしゃっていました。

 

ここからが急な上り坂になると思うので、心して臨みたいと思います。

 

javascript 提出課題返却

javascriptの提出課題の添削が完了したというメールが来ました。

 

コードキャンプのサイトで確認すると、まさかの不合格!

 

え?なんで?

 

要件は全部動作確認したのに!

 

不合格理由を読むと「添付のファイルが動作しないから」とのこと。

 

課題提出はクラウド9上のURLと、クラウド9からダウンロードした圧縮ファイルの両方で行います。

 

前者はちゃんと動くので、後者の動作確認を怠ったことに思い至り、今やってみるとうんともすんとも動きません。

 

ダウンロードした方のHTMLファイルのコードを開けてすぐ理由がわかりました。

 

jQueryのファイルを参照するコードになっています。

 

それはクラウド9上のファイル内にはあったけれど、ダウンロードはしませんでした。

 

手元のパソコンにはjQueryのファイルがないから動かないのです。

 

すぐにルーレットゲームのHTMLファイルとjQueryのファイルを同じフォルダに入れて、フォルダごとダウンロードしました。

 

動作確認してみるとちゃんと動きます。

 

これで再提出しました。

 

こんなこともプロの現場なら大問題になりますね。

 

コードキャンプは事前に「ダウンロードしたファイルも動くか確認せよ」とか「実行に必要なファイルを全部入れたか確認せよ」などという注意はしてくれませんでした。

 

プロなら提出前に自分で気づいて確認せよ、確認を怠る奴は不合格を食らわせて思い知らせる、というわけです。

 

鍛えてくれますね〜(笑)

 

いろんな点で甘っちょろいお勉強を教える「学校」ではなく、プロになれる人材を鍛える「ブートキャンプ」なんだと感じます。

 

転職サポートの情報メール

コードキャンプから不要不急の情報メールが来ました。

 

内容は、転職した場合に新しい配属先で役に立つ質問のテクニックです。

 

わからないことがある時、漠然とした質問の仕方では求める答えが得られないことも多い。

 

下記質問の「フレームワーク」を利用して、3点セットで聞くとうまくいくとのことです。

 

質問のフレームワーク

1)どうなって欲しいのか?(求める結果)
2)実際にはどうなったのか?(実際の結果)
3)何をしたらそうなったのか?(実際の行動

 

このメールを見て、受講者にエンジニア転職を考えている層がかなりいること、コードキャンプがそれを支援しようとしていることがわかります。

 

javascript 課題 2度目の不合格返却

添削完了の通知が来ました。

 

まさかの2度目の不合格です。

 

不合格の理由

●初期状態でスタート、リセット、ストップの順にボタンを押し、その後スタートとストップを交互に押していくと求めているのと違う動作をする。
●一定の速さ以上でスタート、ストップを押すと動作が追い付かない。

 

う〜ん、そんなテストまではしませんでした。

 

確かにプロの仕事としてならクレームの種になりますが、お勉強の課題だから高い完成度までは求めてないかな、と。

 

自分が甘かった。

 

がっくりはきましたが、コードキャンプが真剣に現場で通用する人材を鍛えているのが伝わり、逆に信頼感を持ちました。

 

改善策は考えましたが、再々提出する前にレッスンを取って確認した方がよさそうです。

 

Ruby on Rails概観

先にRuby on Railsを少し進めておこうとしましたが、クラウド9エディタに入っても教科書と違う画面になり、操作できません。

 

そのやり方を聞くのと、javascript 提出課題の確認の目的でレッスンを予約しました。

 

そしてRuby on Railsの教科書をざっと一通り見てみました。

 

う〜ん、、、格段に難しい。何のことだか、予想がつきません。

 

おまけにデータベース(SQL)の操作も勉強するようです。

 

やはりRuby on RailsがRubyマスターコースの最大の難所のようです。

 

がんばらねば。

 

第4回レッスン

4回目のレッスンはjavascriptもRuby on Railsも指導できる先生を選びました。

 

今回は若い男性の先生です。プロフィールを読むと渋谷などが活動領域みたいです。

 

典型的なIT人ですね。(笑)

 

画面でお会いすると、知的で穏やかな印象の方でした。

 

まず、javascriptの提出課題の修正方針を説明すると、だいたいそれでいいだろうとのことでした。

 

ただ、できれば稼働中はボタンを押せなくするjQueryのdisabled属性を使った方がいいと言われました。

 

合格条件は「disabled属性がどうしてもわからない場合は、フラグによる制御でもOK」なのですが、やはり検討した方がよさそうです。

 

次にRuby on Railsの起動画面が教科書通りにならない問題。

 

これは私が勘違いをして環境設定の一部をスキップしていることが原因でした。

 

起動や停止の仕方も教えてもらいました。

 

とにかく、Ruby on Railsは「フレームワーク」というもので、javascriptやRubyのような「言語」とはかなり勝手が違います。

 

自分一人で解決しようとしていたら、膨大な時間を無駄にしたでしょう。

 

価値あるレッスンでした。

 

プロフィールを見ると、自分が興味を持っているPythonという言語もできる方なので、それについても聞いてみました。

 

大量のデータ処理を得意としていて、人工知能やデータ解析が主な用途とのこと。

 

自分の仕事に役立てうる可能性はあまりなさそうに思えました。

 

無理にやっても「勉強のための勉強」になってしまうかもしれません。

 

余裕ができたらやることにして、今はRuby on Railsのマスターに専念しようと思いました。

 

第5回レッスン

第4回レッスンを受けてからRuby on Railsの学習はサクサク進んでいたのですが、課題でつまづきました。

 

そこまでに学んだ方法を真似て新しいページを作り、動作を実装する課題です。

 

ちゃんと同じ手順を踏んだはずなのに、実装の前段階でつまづきました。

 

新しいページだけでなく、ここまで作ったものがすべて表示されなくなりました。

 

ここまでレッスンを温存してきました。

 

苦戦するとしたらRuby on Railsだと踏んでいたからです。

 

2ヶ月コース20回のレッスンのうち、まだ4回しか使っていません。

 

もうすぐ始めて1カ月になりますが、このペースだと逆に期限内にレッスンを消化できない可能性も出てきます。

 

そこで、今回はあまり一人で悩まず、レッスンを受けることにしました。

 

今回の先生は中年の男性で、独立起業の経験があり、話好き歓迎とのことです。

 

レッスンが始まってみると30代後半の小太りのオタクっぽい外見(失礼)の先生でしたが、話しやすく、説明はとても明快でした。

 

問題の原因は私がどこかで誤ってrailsを落としたことであって、作業内容は全部合っていました。

 

その後、この講座の難所も教えてもらいました。

 

Railsの22〜24章が激ムズだそうです。(汗)

 

また、自分はネット上の集客業なのだが、railsの後にさらに学ぶべきことがあるとしたら何かという質問もぶつけてみました。

 

彼の意見は、javascriptのもっと高度な運用、フロントエンドに精通せよとのことでした。

 

レッスンがおわるたびに講師からメッセージが届くのですが、下記のような内容でした。

 

JavaScriptあたりまでは「教科書通りにやっているつもりなのに動かない」ということが多かったと思いますが、Railsは逆で「教科書通りにやれば動くけれども、どうしてこれで動くかわからない」という状況に陥りがちです。

 

全体像を掴んでいくには教科書を何周も繰り返してじわじわ理解を深めていく、という感じで進めてみましょう。

 

なるほど・・・・

 

レッスンが終わるたびに生徒も講師を評価するのですが、最高点をつけたのは言うまでもありません。

 

Rails とデータベースの勉強を継続

HTML/CSSとjavascrip、2つの提出課題がまだ終わっていませんが、とりあえずRuby on Railsの勉強を先に進めました。

 

8章までがRailsの基本になっていて、だいたいはわかりました。

 

Railsの話はそこでいったん終わり、9章から17章まではデータベース操作言語SQLの話です。

 

ここは意外に簡単で、特に引っかかるところもありませんでした。

 

18章はRailsでデータベースを操作するお話。

 

そして19章から35章までがRailsとデータベースを使って実際に小さなウェブサービスを作ってみる実習で、ここは別の一塊になっています。

 

そしてその中の22,23、24章が大変な難所なんだとか。

 

まもなく受講期間の半分が過ぎようとしているので、それまでに18章まで済ませ、2つの提出課題も提出しようと考えています。

 

そして残り半分の期間を全力でRailsの実習課題に取り組みます。

 

HTML/CSS課題提出

保留にしていた最初の提出課題を仕上げるために丸1日確保して臨みました。

 

9割方仕上がっているのですが、最後の詰めに時間がかかるからです。

 

例えば何かが1直線に揃わないというデザイン上の問題が起き、その解決に3時間かかったりします。

 

自分のサイトなら妥協して自分が簡単にできるデザインに変更するのもアリですが、プロとして請け負う場合はそんなことはできません。

 

というわけで、朝の10時から初めて夜の8時にやっと終わり、オンライン提出しました。

 

今回はパスする自信があります。

 

javascript課題提出

2回不合格になったjavascriptの課題も最後の詰めに1日用意しましたが、半日で完成して提出しました。

 

Rubyの学習に移行したためにしばらく触れていないので、細かいことは忘れているのですが、全体を見通す力は前よりついている感じがしました。

 

動作確認もしっかりやってから提出したので、今回は大丈夫だと思います。

 

第6回レッスン

データベースの学習はサクサク進みましたが、最後の課題ができませんでした。

 

そのままRailsを用いたデータベース操作の学習に突入したのですが、いきなり環境設定でつまづきました。

 

2ヶ月コースの約半分が過ぎ、20回レッスン中まだ15回も残っています。

 

一番の難所のために温存しておいたのですが、あまり多いと期限内に消化できないリスクも出てきます。

 

ここは一人で頑張りすぎないで、6回目のレッスンを取って聞いてみることにしました。

 

先生は第5回の人と同じ講師を選びました。

 

データベースの問題はレッスン開始を待つ間にできてしまったので、先生に確認してもらうだけで終わりました。

 

一方、Railsの環境設定の問題は画面を見るなり「これは多分・・・」と言って何かコードを打ち込んで一発で解決してくれました。

 

昔、独学していた時、同じ状況に遭遇して1週間がかりで解決したことがあるそうです。

 

それは鍛えられたと思いますが、自分はエンジニアになるわけではないので、そんなに時間はかけていられません。

 

やはりコードキャンプのようなサービスはありがたいです。

 

さて、そこからしばらく一緒に教科書に沿って作業を進めました。

 

ちょっとした解説の有無で理解のスピードが変わるので、やはりプロの助言は貴重です。

 

最後の10分はITで意味を知りたい言葉について聞きました。

 

Bootstrap、vue.js、react.js、node.jsなど。

 

フロントエンドの言語事情がだんだんわかってきました。

 

自分の仕事に生かすためには今後何を学んでいけばいいのかも見えてきました。

 

提出課題添削完了

添削が返ってきました。

 

javascriptが合格!

 

でもさらに改善するためのヒントがいくつか書かれていたので、さっそく実行しました。

 

で、HTML/CSSの方は不合格。

 

でも、もうそんなにがっかりしません。

 

こんなもんかな、と。

 

問題点が6つ指摘されているので、それを改善していきます。

 

3時間くらいで修正して再提出しました。

 

今回こそ合格できるでしょう。

 

しかし、一つ気づいたことがあります。

 

合格に2〜3回要するなら、最後のRailsの課題は終了期限の2週間くらい前には1回目の提出をしないと期限オーバーになるぞ、と。

 

もちろんそうなっても1カ月数万円の延長費用を払えば続けられるのですが、余計な費用を発生させないためにはRailsの学習を早めに終えないといけない。

 

がんばらねば!!

 

Railsの最後の山 登頂開始

ついにこの講座の最大の難所だというRailsの後半戦に入りました。

 

20章、21章は大きな困難もなく通過。

 

 

 

 

 

提出課題添削完了