【コードキャンプのRubyコース修了証】
PR
Ruby言語およびそのフレームワークRuby on Railsを学べるオンライン講座の情報を提供しています。
サイト管理人の私、徳野はオンラインプログラミングスクール「コードキャンプ」の「Rubyマスターコース」を修了しました。(受講体験談はコチラ)
受講経験に基づく紹介文であることの証拠として、その修了証をこのページの冒頭に掲載しています。
他のオンラインスクールの受講経験もあり、コードキャンプ以外のスクールも客観的に紹介していきます。
私はエンジニアではないですが、その分、読者に近い目線で情報提供していけるメリットもあると思います。
ウェブサービスはサーバーサイドとフロントエンド(ユーザーのPC側)で動くプログラムの連携でできていますが、サーバーサイドのプログラミングによく使われる言語です。
後述のRuby on Railsというフレームワークを使って、ショッピングサイト、SNSサイト、アプリケーションサイトなどを作るのに向いています。
クックパッド、グノシー、価格.com、hulu、Twitterなど多くの有名ウェブサービスの構築に使われていることで有名です。
オンラインプログラミングスクールのカリキュラムはだいたいこの用途での学習になっています。
あなたもそういうカリキュラムで学ぶことでウェブサービスを世に出せるし、それが世界的地位を築くこともあり得るわけです。
Rubyは文法的には単純明快でややこしいルールが少なく、書く量が少なくてやりたいことがやれる言語です。
また、matzこと「まつもとゆきひろ」さんという日本人が開発した世界的コンピュータ言語という点でも有名です。
Ruby on RailsとはRuby言語によるフレームワークです。
よく必要になるプログラミング部品を毎回1から作らなくて済むように、あらかじめ作りこんで用意したものを「ライブラリ」といいます。
「ライブラリ」よりもっとあらかじめ作りこんであるのが「フレームワーク」で、よく「ひな形」に例えられます。
「ひな形」とは「模型」、「手本」、「見本」などの意味で、「テンプレート」も意味が近いです。
「半完成品」と言うと行き過ぎで、ちょっとイメージが違う感じです。
事実上、RubyはRuby on Railsとセットで学ぶもので、エンジニアの求人で「Rubyプログラマー募集」という時は当然Ruby on Railsに精通しているものと期待されます。
各プログラミングスクールでもセットで教えています。
各校のRubyコースで勉強が一番難しいのもこのRailsです。
「Rubyで一からプログラミングしてたら大変で時間もかかるからフレームワークを開発したはず。簡単にできるように作ったはずのRuby on Railsが難しいって、本末転倒というかおかしくない?」と思うかもしれません。
Ruby on Railsを使うと圧倒的に早くWebサービスを作れるのは事実で、それが世界的人気の要因です。
しかし、最初は「MVC」や「オブジェクト指向」の発想に慣れるのが難しいのです。
パソコンはすごいことができる便利な道具だが、最初は難しいのと同じです。
私がコードキャンプでついた師匠は京大理学部出身でしたが、その人でさえ言っていました。
「1回目はプログラムは動いたものの、何をやってるのか、さっぱりわからなかった。」と。
ただ、難しいといってもアインシュタインの相対性理論みたいに特別に頭のいい一部の人しか理解できないようなものではなく、勉強の仕方にコツがあるのです。
これを知らずにコースを受講すると心が折れてリタイアする危険がかなりあります。
そういうことも含めて紹介していきます。
どのスクールのRubyコースでも習う内容はだいたい共通です。
各科目の概要と学習上のポイントを説明します。
Webサービスを作る上で不可欠なのは次の5科目です。
「データベース、SQL」はRuby on Railsの1章として含まれている場合もあります。
サイト作りの基礎知識です。
HTMLは文書構造を作るマークアップ言語、CSSはデザインを制御する言語。
この2つをマスターすれば、とりあえず特別な機能のない普通のサイトは作れます。
フロントエンド(サーバー側でなくユーザーのPC側)のブラウザ上で動作して「動き」を出すのに使われる言語です。
画像を単に並べるのでなくスライドで見せたり、演出レベルを高めることができます。
JavaScriptのライブラリであるjQueryの初歩もカリキュラムに入っていることが多いです。
jQueryを使うと短いコードでカッコいい動きのあるワンランク上のサイトが作れます。
これらを駆使してリッチなサイトを作るフロントエンドプログラミングが今真っ盛りです。
ただ、これらがないとウェブサービスができないわけではなく、別の機会に学ぶことにして先に進む選択肢もあります。
どんなコンピュータ言語でも学ぶ変数、配列、繰り返し処理、条件分岐などを学びます。
Rubyは文法がシンプルなので、ここは楽勝です。
「データベース」というのは「テーブル」という表計算ソフト・エクセルの表のようなものを保存できる場所だと考えてください。
データベースの操作というのは、エクセルの操作と内容的には同じです。
1行書き加えたり、削除したり、条件に合うものを選んで表示したり、といったことをします。
ただ、エクセルはマウスとキーボードで操作しますが、データベースはSQLという言語の命令文で操作します。
コンピュータに命令を発して間接的にエクセルを操作する感じです。
SNSやショッピングサイトのユーザー登録、投稿・出品、お気に入り、いいねなどの機能はすべてデータベース技術の応用です。
データベースを使いこなすと機能の幅が一気に拡大します。
RubyでなくPHPやJavaでサーバープログラムを書く時もSQLの部分は共通です。
だから、SQLを知っていると他の言語を学ぶ時も楽になり、学習価値の高いものです。
Ruby言語によるフレームワーク、ひな形です。
これはSNSサイトなど、ウェブサービスを実作しながら学んでいきます。
普段使っているサービスの簡易版みたいなのが出来上がっていくので一番面白いが、一番難しい科目でもあります。
その中でRubyを介して先ほどのSQLを駆使し、データベースを操作する術を学びます。
コードキャンプでRailsを学んだ時、京大理学部出身のエンジニアを師匠に選んでいろいろ教えてもらいました。
私は2ヶ月プランという最短のコースを選んだのですが、師匠の助けがなかったら期限内にRailsの提出課題で合格をもらうことは出来なかったと思います。
教えてもらったことや私が実感したことをシェアします。
コードキャンプでは教科書に従って、「ひとことBBS」というTwitterの真似サイトみたいなのと「画像投稿サイト」を作ります。
まあ、何とか作って動きはしたのですが、何か「狐につままれたような感じ」でした。
教科書の指示に従っているだけで、何をやっているのか理解できた実感がない。
それを師匠に言うと、こんな答えが返ってきました。
「それが普通。自分も1回目は何をやってるのか全然わからなかった。だから全工程を何周もやった。」
「昔はコードキャンプのような便利なものはなかったので、自分は独学。あるウェブサービスの工程を100周勉強した。」
「1回目でちゃんと理解できるのはPHPなど他の言語の経験者だけ。未経験者は理解できないのが普通。」
「最初からひとつずつ完全に理解して次に進もうとするのはやめた方がいい。たいてい挫折してやめてしまうことになる。」
「手を動かしてコードを書き、ソフトが動くのを何度も体験する。そのうちに理解が追い付いてくる。Railsはそういうものだ。」
京大理学部卒という理系最高峰の人でも1回目はわからなかったんです。
自分にわからないのは当たり前だと思い、素直に師匠の助言に従うことにしました。
すると2周目でかなり手ごたえがありました。
1周目は2週間ぐらいかかったのに、2周目は2日で終わり、ちょっとだけわかってきた感じがしました。
師匠の言っていたことに通じますが、多くのプログラマーが「プログラミングはスポーツに似ているところがある」と書いています。
よくわからなくても、とにかくコードを書いてソフトを動かしていくうちに理解が追い付いてくるようなところがある、と。
自分もそれを実感しました。
Railsは難しいんだけど、それは相対性理論や量子力学みたいに特別な知性が求められる難しさとは違う。
学歴が低くても優れたプログラマーはいるし、専業主婦や高齢者で始めて上達した人もいます。
逆に超高学歴でもマスターできない人もいます。
何が違うのか?
それは「よく理解できないストレス」があっても、手を動かしてコードを書き続けられるか?、です。
これは、最初は思い通りに体が動かなくてもスポーツの練習を続けられるか?、に似ています。
理屈ばかり言って考え込んでしまい、体を動かさない人は上達しません。
また、「原因不明のエラー」を苦にせず、解決するまで頑張れるか?、です。
これは、疲労やケガがへっちゃらで決めた練習をやりぬけるか?、に似ています。
プログラミングはスポーツだと考えると一人でやるよりコーチについてもらう方が上達が早いのは当然です。
ここでもうひとつ、師匠が言っていたおもしろい話を載せておきます。
JavaScriptを勉強している時は「教科書どおりにやっているはずなのに、なぜ動かないかわからない」と思うことが多い。
それがRailsになると「確かに教科書通りにやると動くが、これでなぜ動くのかわからない」と思うことが増える。
わからなくていいから「Railsはこういう風にできているんだ。こういうもんなんだ。」ということを受け入れる中で理解が深まっていく。
師匠は「先に教科書の課題を5周ほどやった方が早道かも」と言ってましたが、講座の期限が迫っていたので、2周で切り上げて提出課題に取り掛かりました。
仕様書などをもとに自力でフリマサイトをプログラミングする課題です。
最初はあまりの難しさに途方に暮れましたが、冷静になって眺めているうちに教科書の「画像投稿サイト」とほぼ同じだと気付きました。
教科書の「画像投稿サイト」のコードを読みながら、同じままでいけるところと変えないといけないところを判断して1行ずつ組み上げていきました。
この過程で理解も大きく進みました。
よく「アウトプットこそ最強の学習法」と言われます。
「人に教えるのが一番自分の勉強になる」とか「1回の試合は練習100回分の価値がある」とか言うのも趣旨は似ていますね。
分厚い本を買って、サンプルコードなんかちょこちょこ動かしてわかった気になってはダメ。
そんなの動くの当たり前。
やはりSNSサイトやショッピングサイトの簡易版くらいのまとまったサイズのウェブサービスを、自力で組み上げてみる経験をする。
バグがなくなって完全に動作するようになるまで頑張って完成する。
それが一番身に付く。
そしてその成功体験が自信になる。
提出課題は骨子ができ、あとは細部を詰めて、最後にデザインを仕上げて完了というところまでこぎつけました。
ところがそこから先がなかなか進みません。
次から次に問題が出てきて、いくら直してもバグがなくなりません。
受講の期限に間に合わない可能性も出てきて、師匠に訴えるとこんな答えが返ってきました。
それが普通。形の9割は早い時期に出来上がる。
残りの1割を仕上げるのに時間の9割がかかる。
それを最後までやり抜くことで実力がつく。
だからみなさんも受講中にこんな事態になっても焦ったり、自分はダメなのかと思う必要はないということです。
プログラミングとはそういうものだということです。
もう1点は課題提出のスケジュールには余裕を持つということですね。
順調に進んでいるように見えても「最後の仕上げ」に手間取って時間切れということもあり得ます。
まあ、その場合は有料で期限延長やレッスン追加購入をすればいいのですが。
Rubyを学べるおすすめのオンラインプログラミングスクールを紹介します。
受講体験に基づいて紹介しています。
ここの「Rubyマスターコース」は、私が初めて受けたオンラインプログラミング講座。
このページの冒頭に「修了証」を受講の証拠として掲載しています。
受講体験に基づいておすすめします。
コードキャンプのサポートは現役エンジニアのビデオ通話で、受講者が講師を選べるのが特長です。
受講者には講師のプロフィールや特長が公開されます。
レッスンの時間帯は朝の7時から夜の11時と業界一広く、1日何回までとか週何回といった決めごともありません。
自分が本当に助けが必要なタイミングで好きな講師に指導を受けられる自由度の高さが魅力です。
カリキュラムはHTML/CSS、JavaScript、Ruby、Ruby on Railsの4本立てで、Railsの中でSQLも勉強します。
Railsでは2本のSNSを作り、その後で仕様書に基づいてフリマサイトを自力でプログラミングし、提出します。
講師もみんな言ってましたが、コードキャンプの講座は最初はやさしいが後半で急に難易度が上がっていきます。
提出課題はHTML/CSS、JavaScript、Railsの3つあり、なかなか難しく、合格水準も厳しいです。
みんな何回か落ちるのが普通みたいで、私もHTML/CSS、JavaScriptでは2回、Railsで1回、不合格を食らいました。
それだけに乗り越えると自信がつきました。
厳しいが、しっかり教えてくれるスクールとして推薦します。
開発環境はクラウド(AWS Cloud9)なので、お持ちのPCのスペックが高くなくても受講可能です。
すぐにプログラミングが始められる環境を設定して引き渡してくれます。
AmazonのCloud9という最新サービスに触れること自体も価値ある体験でした。
あと、エンジニアへの転職支援も充実しています。
受講中に求職登録できるし、公式サイトには異業種からエンジニア転職を成功させた人のインタビューが多数収録されています。
国内最大のオンラインプログラミングスクールで、コースの多さは群を抜いています。
親会社はかなりの規模の東証マザーズ上場IT企業。
エンジニア養成学校としてはバリバリのバックグラウンドがある所と言えます。
こちらも講師は現役エンジニアですが、サポート方法はチャットとビデオ通話の2本立てです。
ちょっと聞きたい程度のことはチャットで、エディタ画面を共有しての相談などはビデオ通話で、と用途を分けると効率が上がります。
チャットはいつでも投稿可能で、24時間以内に回答が来ます。
ビデオ通話は週2回、あらかじめ曜日と時間を設定して行います。
午前しか空いていない人やスケジュールが非常に不規則な人は受講が難しいかもしれません。
講師を選ぶことはできませんが、自分がWordPressコースを受けた時のサポートはとてもよかったです。
「Webアプリケーションコース」というのがRubyを学べるコース。
このコースの受講経験はないですが、「WordPressコース」は受けたことがあります。
カリキュラムはさすがに明快かつ濃厚でした。
Rubyのコースも充実しているはずです。
教習内容はRuby/Ruby on Rails、HTML/CSS、SQL、Git/GitHub、Bootstrapなど。
コードキャンプと違ってJavaScriptは入っていませんが、かわりにGit/GitHub、Bootstrapが学べます。
Git/GitHubはプロエンジニアなら必須のコードバージョン管理システム、Bootstrapは近年注目のフロントエンドツールです。
開発環境はクラウド(AWS Cloud9)なので、お持ちのPCのスペックが高くなくても受講可能です。
AmazonのCloud9という最新サービスに触れること自体も価値ある体験です。
ここもエンジニアへの転職支援が充実しており、いろいろな人材紹介会社やIT企業と提携しているので、期待が持てます。
テックアカデミーは申し込んですぐ受講できるのではなく、開講2週間前に募集を打ち切り、その2週間を準備に充てるシステムです。
その間に事務局は曜日・時間固定のレッスンのスケジュール調整をし、受講生はcloud9の環境設定など準備をします。
cloud9の設定などはちょっと面倒ですが、卒業したらどのみち自分でできるようにならないといけないことを、サポートつきで体験させてくれているとも言えます。
というわけで、受講開始は申し込み日より2週間以上先になるので、自分の予定をよく見て申し込んでください。
「プラン」というのは、受講期間やレッスン回数のセットのことです。
短いプランは値段も安いかわりに修了期限が短く、レッスン数も少ないです。
だから自分で勉強時間をたっぷり取らないと修了できません。
逆にカリキュラムの一部に経験がある場合は、長いプランを選ぶと期限とレッスンが余ってお金がもったいないということも起きえます。
例えば、Rubyを勉強したいが、HTML/CSSはもう知っているとか、Ruby/RailsではないがPHP/Laravelでのサーバーサイド開発を学んだことがあるという場合です。
あるいはカリキュラムの中身は全部初めてだが、CやJavaなど他のプログラミング言語でかなり経験がある場合もそんなに長いプランは必要ないでしょう。
というわけで自分に合ったプランを選ぶには、次の要素をよく吟味する必要があります。
短めのプランを選び、レッスンも生徒主導で効率よく進めましょう。
レッスンで何を聞くか、時間が余ったら何をするかなど事前準備をしっかりして臨めば、少ないレッスン数で目的を達成できます。
それでも足りなかったら、有料で期限延長やレッスン追加購入をすればよいだけの話です。
余裕のあるプランを選んで、レッスンも講師にまかせる部分を増やしましょう。
一人ではなかなか進まない生徒もたくさんいて、講師はそれにも慣れています。
レッスンを受けていれば徐々にでも進んでいきますし、後半には自分でペースを作れるようになってくるはずです。