国内最大級プログラミング・WEBデザインスクール検索サイト

(連載)DMM WEBCAMP SKILLS受講後半、Ruby/Ruby on Railsにチャレンジ!率直な感想は?

個人事業主のライターとして開業して3年、ついに法人成り(会社を設立)したライター。

これで将来安泰!かと思いきや、やり残したことがあったのでした。それこそが、プログラミングの学習

なにせ1人会社なので、Webサイト制作はもちろん、いろいろな作業を自らやらなければいけない。

そのうえ、今後は、義務教育でプログラミングを学んだ子どもがどんどん社会に出てくるというじゃありませんか。10年後生き残れているのか、恐怖でしかない!

(2022年度に必修化する高校「情報Ⅰ」についてはこちら。高度な内容にビビり散らかします)

そんなわけでこの連載では、大好評のオンラインプログラミングスクールDMM WEBCAMP SKILLSに自ら入会。

完結編となる今回は、カリキュラム後半にあたる「Ruby」の学習について、受講風景をくわしくお届けします!

いわゆる「ハッカーの画面」みたい。今日から私もハッカーだ


いきなり難易度上げるやん!

見出しからさっそく魂の叫びを上げてしまいました。そうなんです。結論から申し上げますと、HTML/CSSからRubyに入った瞬間、急にハードルが上がったのです!

たとえるならば、HTML/CSSは社会科見学。Rubyは工場で「じゃ、この製品作ってみて。ゆっくりで構わないから」と言われたような感じでしょうか。いよいよ本格的なプログラミングの世界に足を踏み入れたようで、緊張感が高まりました。

「じゃ、今日からは生産チームに入ってもらうね!」って言われたような感じです。心の準備が…


とはいえ、前回の面談で、事前にこんな話を伺っていましたよね。
DMM WEBCAMP SKILLSライフコーチ
DMM WEBCAMP SKILLSライフコーチ

HTML/CSSが終わると、「Ruby」というプログラミング言語の学習に入っていきます。

HTML/CSSがWebサイトの「見える部分」を作る言語なのに対し、Rubyは「裏側」を作る言語です。

その分、人によっては「何をしているのか分からない」「学習の効果が実感できず、モチベーションが持続しづらい」と感じることもあるので、つらくなってきたらぜひ、私たちライフコーチを頼ってくださいね。

この面談のおかげで、私のモチベーションは少しだけ軟着陸することに成功。いきなり「もうヤダ〜!」となることはなく、「よっし、やるか」と感じられてありがたかったです。

というわけで、環境構築から

DMM WEBCAMP SKILLSでは、Rubyの勉強にAWSのCloud9を使います。



そもそも、どこのハードルが高いかって、まずここだったんですよ。一部日本語化されているとはいえツールは英語ですし、なんか専門用語がたくさん並んでいる!という。

ただ、そのあたりはやはり、有料のプログラミングスクール。受講生が戸惑わないよう、テキストでは、とても丁寧に導入の仕方をレクチャーしてくれました。


そんなこんなで、無事にRubyを書く環境が整いました。いよいよ、モリモリプログラムを書いていきますよ。

Cloud9はこんな感じです(この画像は、ある程度学習が進んでからの画面)。

プログラマーの作法に慣れていこう

カリキュラム後半(Ruby編)は、Ruby/Ruby on Railsの2つに分けられています。それぞれの内容は以下の通りです。

Rubyを学ぼう
  • CLIとコマンドを学ぼう
  • Rubyの概要を学ぼう
  • Rubyの基本文法を理解しよう
  • オブジェクトとメソッドを学ぼう
  • 変数と定数を学ぼう
  • データ型を学ぼう
  • 条件分岐を学ぼう
  • 繰り返し処理を学ぼう
  • FizzBuzzプログラムを作ってみよう
Railsを学ぼう
  • Railsの概要を学ぼう
  • データベースを学ぼう
  • SQLでデータをのぞいてみよう
  • Railsでアプリケーションを開発しよう
  • モデルとデータベースを用意しよう
  • 投稿機能を作ろう
  • 閲覧機能を作ろう
  • 編集機能を作ろう
  • 画像投稿機能を作ろう
  • 削除機能を作ろう
  • MVCを振り返ろう
  • レイアウトを整えよう
  • 課題:機能変更をしてみよう
このうち、Webサイトの動作に関わるのは後半のRuby on Railsのほうですが、初めからチャレンジするのはあまりにも強敵!

そのため、準備運動として、「Ruby自体に慣れる」内容からスタートするような流れになっています。
編集
編集

ありがたい話だ。初めから複雑な内容だと、正直しんどかったかも。

なお、カリキュラムいわく、Rubyは文法がとてもシンプルで、初心者でも比較的取り組みやすいのだとか。

Javaのコードと比較。おお、行数が全然違います。

編集
編集

実際には汎用性やTPOが絡んでくるので、必ずしもRuby=最強!ではないのだと思いますが……

初心者にとってはありがたい仕様です。打つ文字数が少ないだけでもうれしい。

このようにRuby自体の特徴を学んだら、いよいよプログラミングの準備を進めていきます。と、このへんで初めのハードルが。
編集
編集

「ディレクトリ」の概念を知らない人だと、このあたりは戸惑うだろうなあ……


そうなんです。私たちの使っているパソコンは、誰でも直感的に使えるよう、かなり工夫されていますよね。たとえば、「右クリックをして、『フォルダを作る』を押すと、フォルダのアイコンが増える」……的な。

一方、Cloud9をはじめとした開発環境は玄人向けなので、見た目では分かりづらいこともしばしば。

私たちが普通に使っているパソコン。「ピクチャ」の中に「思い出写真」があり、「〇〇先生と愉快な仲間たち」フォルダがある、というのが直感的に分かる


コードを書くときの画面。「home」の中に「ec2-user」があり、その下に「environment」があって、という構造なのだが、ちょっぴり玄人向け


中には、こういう作法の違いに戸惑う人がいてもおかしくないなと思いました。
編集
編集

頭の切り替えが必要ってことですね。

Ruby前半は簡単な計算+FizzBuzzに挑戦

準備が整ったところで、いよいよコードを書いていきます。初めはもちろん、「Hello, Wordl!」を表示させるところから。

編集
編集

プログラミングの初歩の初歩として定番のアレです。

それが無事にできたら、簡単な四則計算にチャレンジしながらプログラミングの基本概念を学んでいきます。たとえば……

  • Rubyには型があり、代表的なものに文字列型(String)、整数型(Integer)がある
    必要なメソッドを使うことで、型の変換ができる
  • データを扱う際には「変数」「定数」を使う
    プログラムの初めで定義しなければならないので注意
といったことです。
編集
編集

Excelやスプレッドシートで数値を計算しようとすると、「それは日付であって、数値じゃないんだよ!」ってトラブルが起こることがありますよね。(最近のスプレッドシートは空気を読んで、勝手に計算することがある)

「4/12」って入力したら、「12分の4」と認識されて、0.3333333……になるやつ。

あれはデータの「型」が誤って認識されていたからなんだろうな。

そんなこんなで、前半はさほど苦労せずに終了。HTML/CSSと同様、章末課題がやってきました。どうやら、ここでは「FizzBuzzプログラム」に挑戦するようです。

このFizzBuzzプログラムは、以下のような挙動をするプログラムだそう。
  • 3で割り切れる数値を引数に渡すと、「Fizz」を返す
  • 5で割り切れる数値を引数に渡すと、「Buzz」を返す
  • 3と5の両方で割り切れる数値を引数に渡すと、「FizzBuzz」を返す
  • それ以外の数値は、その数値を文字列に変えて返す
なんでも、これがクリアできるかどうかで、プログラマーとして一歩を踏み出せるかどうかが決まるらしく、登竜門的な存在なのかなと。
編集
編集

「3と5の両方で割り切れる数」=「15を約数に持つかどうか」といった、基礎レベルの数学的知識も問われます。

ここまでの内容を比較的スムーズにクリアできたことで、すっかり鼻高々のライター。「こんなん5分でクリアしたるわ」と臨むものの……

編集
編集

ギャーーッ!!

あえなく撃沈。無限に「FizzBuzz」が出力されるが爆誕してしまいました。
編集
編集

甘くない、甘くないぞ、プログラミング!

しょんぼりしながらも、プログラムを直します。判定がうまくいっていないということは、if文(もし〜なら、〇〇せよ)のあたりが怪しいですね。

無事に動くようになったプログラム。(詳細は忘れちゃいましたが)if文あたりがおかしくなっていました

編集
編集

あっ、ここか!

というわけで、無事に課題をクリア!

編集
編集

記事なのでサクッと書いてますが、実際は1時間くらいかかりました。

でも、問題を自分で解決できるようになって、精神的には大前進!

では満を辞して、Ruby on Railsの学習に進みましょう!

Ruby後半ではMVCモデルとデータベースを学ぶ

Ruby自体の書き方に慣れたので、ついにWebサイトを動かすパートに入っていきます。

こういう、簡易なインスタグラムのようなページを作っていきます


初めに学んだのは、MVCモデルという考え方。なんでも、Webアプリケーションって、内部ではいろいろな動作が行われているそうなんですね。

ある部分では、ユーザーから見える部分(Webサイトの見た目)を表示させなければいけませんし、別の部分では、データベース(以下、DB)とのやりとりをしなければいけない。

これらをごっちゃにして記述すると、いざトラブルが起きたり、アップデートをしたくなったりしたときに、「あのプログラムって、どこに書いてあるんだっけ」と混乱してしまいます。また、複数人での作業分担もしづらくなります。
編集
編集

会社とまったく同じですね。

営業と開発と経理の資料が一緒くたに箱に放り込まれていたら……どう考えても面倒です。

そこで、トラブルを回避し、チームで開発するために採用されているのがMVCモデルというわけ。Model - View - Controllerでそれぞれの役割を分担し、仮にどこかのプログラムがエラーを起こしても、影響する範囲が最小になるように配慮されているのだとか。

コントローラーが中枢となり、ビューやモデルと必要なデータを受け渡しする仕組み。役割分担がしっかりしていてgood!

編集
編集

再び会社にたとえると、「営業部のパソコンが壊れたので、全社員の仕事が止まります」みたいなことにならないように設計されているんですね。

それが理解できたら、次に学ぶのはDBの扱い方。DBを作ったり、作ったDBに書き込んだり、はたまた削除したり……といった操作を一つずつ学んでいきます。

ペラ1枚で作った、動きのないWebサイトならDBは不要ですが、「お問い合わせフォーム」などを設置したいならDBは必須の存在。
編集
編集

せっかく作った会社に「お問い合わせ」が来るよう、必死に学びます!

ライフコーチさんがおっしゃった通り、HTML/CSSと比べて見た目が地味な面は否めませんでしたが、自分の作業がしっかり反映されていくのは嬉しかったです。

余談:HTML/CSSのほうが楽しい?それって人によるのかも

ここでちょっぴり余談ですが、ライターの家族はインフラエンジニア。まさにDBを専門としており、日々、黒い画面に向かって何やら操作をするのが仕事です。

そんな家族に、「HTML/CSSと比べて動きが少ないから、なんかテンション上がらないな〜」と愚痴ってみると……
ライターの家族
ライターの家族

え、そう?俺はこれこそがカッコイイ!」と思ってこの世界に入ったけどな。

自分の命令がしっかり反映されて、意図通りの動きをしてくれるのって嬉しいじゃん。

人間と違って、俺のことを嫌ったりしないし……

編集
編集

お、おう。
(どういう人生を送ってきたんだよ)

というわけで、「見た目に反映されなくて、テンションが上がらないな〜」というのは個人差であり、人によってはRubyのほうが超楽しい!ということがわかりました。

この記事を読んでくださっている人も、ぜひ実際にトライして、「自分はどっちが好きかなあ」と考えてみてくださいね。
DMM WEBCAMP SKILLSはこちら

そして章末課題!難易度は高いがやり切った

ときには家族に頼りながら、なんとかRuby on Railsの学習をひと段落させたライター。もちろん、ここでも章末課題がやってきます。

課題の内容は、「ここまでで作ったWebアプリケーションの機能を変更する」こと。
編集
編集

実際の職場でも、すでにあるWebアプリを改修する仕事が多いだろうことを考えると、実践的な課題ですね。

が、ここの部分、正直なところ大変すぎて細部までは覚えておりません……。というのも、過去に学んだことが一気に襲いかかってくるのです。

HTML/CSSはもちろん、MVCモデルのどこをどう直せばいいのか、直す際の文法……など、教材を行ったり来たりして必死に取り組みました。

サラッと書かれているけれど、これがなかなか大変だったんですよ……。


日曜をまるまる潰すつもりでチャレンジし、なんとか成功!しかし、余裕がなさすぎて、記事に起こすためのメモを忘れてしまうという失態。
編集
編集

そのくらい歯応えのある問題だったんです。でも、おかげさまで理解が深まりました!

無事に課題を提出し、『合格』のお墨付きもゲット。


こうして、長いようで短かったDMM WEBCAMP SKILLSの学習が終わったのでした。

DMM WEBCAMP SKILLSを終えて、率直な感想は?

1ヶ月間の受講期間を終え、プログラミングの世界にほんの少しだけ足を踏み入れたライター。

SKILLSは教養目的なこともあり、今すぐ転職!という踏み込んだ内容ではありませんでしたが、「ちょっとチャレンジしてみようかな?」程度のライターにはちょうどいい負担感だと思いました。

また、ありがたかったのは、無料で公開されている「お役立ちTips」

私がいた時期には「ノーコード開発(ソースコードを記述せずにWebサイト・アプリ開発を行うこと)」に関する記事が無料で公開されており、便利なツール/サービス集もあったので、知見を深めるきっかけになりました。


編集
編集

ちなみに、ノーコードといっても、改造にはちょっとした知識が必要になることが多いそうです。

ライターのレベル感なら、DMM WEBCAMP SKILLSで学んで → サイト制作はノーコード(部分的にコードを改造)くらいがちょうどいいのかもしれません。

一方でつらかったのは、やはり学習時間の確保。なんといっても会社設立直前の1ヶ月だったので、「たった1時間」をひねり出すのが、なかなか難しい!

これはDMM WEBCAMP SKILLSに限らないことで、どのようなスクールに入会するにあたっても、「何のために学ぶのか」「どのくらいの期間で、どのくらいのレベルまで到達したいのか」をハッキリしておかないと、モチベーションが続きづらいのかなと思います。
編集
編集

まさにダイエットと一緒!自慢したいので、何度でも結果を貼っておきますね!

「夏までに痩せる!」で頑張った結果。やっぱり、目的意識と期限は大切なのです


いずれにせよ、内容的には満足。これだけの知識を体系的に得るには、それなりのリサーチコストがかかってしまいますし、書籍などで学ぶと、質問できる場所がありません。

DMM WEBCAMPなら、一定の質が担保されたテキストで学べ、オンラインで何度でも質問可能。料金的にも、大人の習い事として充分コスパ良しと判断できる範囲だと感じました。

そして何より、SKILLSで興味を持ち、本格的に学びたいと感じた方は、○万円引きでPRO/COMMITコースに移行可能!


思わぬキャリアチェンジのきっかけは今、ここに開かれているのかもしれません。気になった方は、ぜひDMM WEBCAMP SKILLSでプログラミングの学習にチャレンジしてみてくださいね!
編集
編集

全3回の連載にお付き合いいただき、ありがとうございました!

ゼロからプログラミングを学べる!DMM WEBCAMP SKILLSへの申し込みはこちら

プログラミングスクールで、転職に有利なスキルが学べる!

DMM WEBCAMP SKILLS|知識ゼロでも始められる!未経験者97%、初心者にやさしいプログラミングスクール

DMM WEBCAMP(ディーエムエム ウェブキャンプ スキルス)はDMM.comグループ傘下の株式会社インフラトップが運営する、短期集中型プログラミングスクールです。

目的に応じてCOMMIT/PRO/SKILLSの3コースから選ぶことができ、中でも、教養・スキルアップ目的の「SKILLS はじめてのプログラミングコース」では、まったくの初心者でもゼロからプログラミングを学習することが可能。前半ではWebサイト制作(HTML/CSS)、後半ではWebアプリケーション制作(Ruby、Ruby on Rails)を学ぶことができるので、「自分のWebサイトを作ってみたいな」といった需要にも対応できます。

また、学習を終え、「もしかして向いているかも?」と感じた方は、そのまま転職コースへ進むことも可能!気軽に初めて、意外な適性を発見するかもしれません。デジタル社会に必須のスキルを、今こそ身につけませんか?

\\本気で生き方を変えたいなら//
DMM WEBCAMP SKILLSに申し込む

RECOMMEND

この記事を読んだ方へおすすめ