これで将来安泰!かと思いきや、やり残したことがあったのでした。それこそが、プログラミングの学習。
なにせ1人会社なので、Webサイト制作はもちろん、いろいろな作業を自らやらなければいけない。
そのうえ、今後は、義務教育でプログラミングを学んだ子どもがどんどん社会に出てくるというじゃありませんか。10年後生き残れているのか、恐怖でしかない!
(文部科学省取材)高校「情報Ⅰ」必修化、大学入試「情報」新設どうなる?高校情報科教科調査官・鹿野利春氏に聞く
コエテコでは小学校・中学校でのプログラミング教育必修化について、さまざまな取材を行なってきました。今回はいよいよ高校での「情報Ⅰ」必修化、大学入試「情報」新設について、新学習指導要領を取りまとめた文部科学省 鹿野利春氏にインタビュー。約8000字に及ぶロングインタビューで、「新学習指導要領、どうなる?」を詳しくお届けします。
この記事をcoeteco.jp で読む >そんなわけでこの連載では、大好評のオンラインプログラミングスクールDMM WEBCAMP SKILLSに自ら入会。
完結編となる今回は、カリキュラム後半にあたる「Ruby」の学習について、受講風景をくわしくお届けします!
いきなり難易度上げるやん!
見出しからさっそく魂の叫びを上げてしまいました。そうなんです。結論から申し上げますと、HTML/CSSからRubyに入った瞬間、急にハードルが上がったのです!たとえるならば、HTML/CSSは社会科見学。Rubyは工場で「じゃ、この製品作ってみて。ゆっくりで構わないから」と言われたような感じでしょうか。いよいよ本格的なプログラミングの世界に足を踏み入れたようで、緊張感が高まりました。
とはいえ、前回の面談で、事前にこんな話を伺っていましたよね。
というわけで、環境構築から
DMM WEBCAMP SKILLSでは、Rubyの勉強にAWSのCloud9を使います。Cloud9(クラウドナイン)は、ローカル(手元のパソコン内)ではなく、クラウド(インターネット上)でプログラムを書いたり、動かしたりすることができる統合開発環境で、どんな端末(パソコンなど)からでもアクセスでき、書いたコードを共有しやすい特長がある。
(プログラミング学習者は随時、メンターさんに添削してもらう必要があるので、こうした環境のほうが便利なのです!)
そもそも、どこのハードルが高いかって、まずここだったんですよ。一部日本語化されているとはいえツールは英語ですし、なんか専門用語がたくさん並んでいる!という。
ただ、そのあたりはやはり、有料のプログラミングスクール。受講生が戸惑わないよう、テキストでは、とても丁寧に導入の仕方をレクチャーしてくれました。
そんなこんなで、無事にRubyを書く環境が整いました。いよいよ、モリモリプログラムを書いていきますよ。
プログラマーの作法に慣れていこう
カリキュラム後半(Ruby編)は、Ruby/Ruby on Railsの2つに分けられています。それぞれの内容は以下の通りです。Rubyを学ぼう
- CLIとコマンドを学ぼう
- Rubyの概要を学ぼう
- Rubyの基本文法を理解しよう
- オブジェクトとメソッドを学ぼう
- 変数と定数を学ぼう
- データ型を学ぼう
- 条件分岐を学ぼう
- 繰り返し処理を学ぼう
- FizzBuzzプログラムを作ってみよう
- Railsの概要を学ぼう
- データベースを学ぼう
- SQLでデータをのぞいてみよう
- Railsでアプリケーションを開発しよう
- モデルとデータベースを用意しよう
- 投稿機能を作ろう
- 閲覧機能を作ろう
- 編集機能を作ろう
- 画像投稿機能を作ろう
- 削除機能を作ろう
- MVCを振り返ろう
- レイアウトを整えよう
- 課題:機能変更をしてみよう
そのため、準備運動として、「Ruby自体に慣れる」内容からスタートするような流れになっています。
ありがたい話だ。初めから複雑な内容だと、正直しんどかったかも。
実際には汎用性やTPOが絡んでくるので、必ずしもRuby=最強!ではないのだと思いますが……
初心者にとってはありがたい仕様です。打つ文字数が少ないだけでもうれしい。
「ディレクトリ」の概念を知らない人だと、このあたりは戸惑うだろうなあ……
そうなんです。私たちの使っているパソコンは、誰でも直感的に使えるよう、かなり工夫されていますよね。たとえば、「右クリックをして、『フォルダを作る』を押すと、フォルダのアイコンが増える」……的な。
一方、Cloud9をはじめとした開発環境は玄人向けなので、見た目では分かりづらいこともしばしば。
中には、こういう作法の違いに戸惑う人がいてもおかしくないなと思いました。
頭の切り替えが必要ってことですね。
Ruby前半は簡単な計算+FizzBuzzに挑戦
準備が整ったところで、いよいよコードを書いていきます。初めはもちろん、「Hello, Wordl!」を表示させるところから。プログラミングの初歩の初歩として定番のアレです。
-
Rubyには型があり、代表的なものに文字列型(String)、整数型(Integer)がある
必要なメソッドを使うことで、型の変換ができる - データを扱う際には「変数」や「定数」を使う
プログラムの初めで定義しなければならないので注意
Excelやスプレッドシートで数値を計算しようとすると、「それは日付であって、数値じゃないんだよ!」ってトラブルが起こることがありますよね。(最近のスプレッドシートは空気を読んで、勝手に計算することがある)
「4/12」って入力したら、「12分の4」と認識されて、0.3333333……になるやつ。
あれはデータの「型」が誤って認識されていたからなんだろうな。
このFizzBuzzプログラムは、以下のような挙動をするプログラムだそう。
- 3で割り切れる数値を引数に渡すと、「Fizz」を返す
- 5で割り切れる数値を引数に渡すと、「Buzz」を返す
- 3と5の両方で割り切れる数値を引数に渡すと、「FizzBuzz」を返す
- それ以外の数値は、その数値を文字列に変えて返す
「3と5の両方で割り切れる数」=「15を約数に持つかどうか」といった、基礎レベルの数学的知識も問われます。
ギャーーッ!!
甘くない、甘くないぞ、プログラミング!
あっ、ここか!
記事なのでサクッと書いてますが、実際は1時間くらいかかりました。
でも、問題を自分で解決できるようになって、精神的には大前進!
Ruby後半ではMVCモデルとデータベースを学ぶ
Ruby自体の書き方に慣れたので、ついにWebサイトを動かすパートに入っていきます。初めに学んだのは、MVCモデルという考え方。なんでも、Webアプリケーションって、内部ではいろいろな動作が行われているそうなんですね。
ある部分では、ユーザーから見える部分(Webサイトの見た目)を表示させなければいけませんし、別の部分では、データベース(以下、DB)とのやりとりをしなければいけない。
これらをごっちゃにして記述すると、いざトラブルが起きたり、アップデートをしたくなったりしたときに、「あのプログラムって、どこに書いてあるんだっけ」と混乱してしまいます。また、複数人での作業分担もしづらくなります。
会社とまったく同じですね。
営業と開発と経理の資料が一緒くたに箱に放り込まれていたら……どう考えても面倒です。
再び会社にたとえると、「営業部のパソコンが壊れたので、全社員の仕事が止まります」みたいなことにならないように設計されているんですね。
ペラ1枚で作った、動きのないWebサイトならDBは不要ですが、「お問い合わせフォーム」などを設置したいならDBは必須の存在。
せっかく作った会社に「お問い合わせ」が来るよう、必死に学びます!
余談:HTML/CSSのほうが楽しい?それって人によるのかも
ここでちょっぴり余談ですが、ライターの家族はインフラエンジニア。まさにDBを専門としており、日々、黒い画面に向かって何やら操作をするのが仕事です。そんな家族に、「HTML/CSSと比べて動きが少ないから、なんかテンション上がらないな〜」と愚痴ってみると……
え、そう?俺は「これこそがカッコイイ!」と思ってこの世界に入ったけどな。
自分の命令がしっかり反映されて、意図通りの動きをしてくれるのって嬉しいじゃん。
人間と違って、俺のことを嫌ったりしないし……
お、おう。
(どういう人生を送ってきたんだよ)
この記事を読んでくださっている人も、ぜひ実際にトライして、「自分はどっちが好きかなあ」と考えてみてくださいね。
そして章末課題!難易度は高いがやり切った
ときには家族に頼りながら、なんとかRuby on Railsの学習をひと段落させたライター。もちろん、ここでも章末課題がやってきます。課題の内容は、「ここまでで作ったWebアプリケーションの機能を変更する」こと。
実際の職場でも、すでにあるWebアプリを改修する仕事が多いだろうことを考えると、実践的な課題ですね。
HTML/CSSはもちろん、MVCモデルのどこをどう直せばいいのか、直す際の文法……など、教材を行ったり来たりして必死に取り組みました。
日曜をまるまる潰すつもりでチャレンジし、なんとか成功!しかし、余裕がなさすぎて、記事に起こすためのメモを忘れてしまうという失態。
そのくらい歯応えのある問題だったんです。でも、おかげさまで理解が深まりました!
こうして、長いようで短かったDMM WEBCAMP SKILLSの学習が終わったのでした。
DMM WEBCAMP SKILLSを終えて、率直な感想は?
1ヶ月間の受講期間を終え、プログラミングの世界にほんの少しだけ足を踏み入れたライター。SKILLSは教養目的なこともあり、今すぐ転職!という踏み込んだ内容ではありませんでしたが、「ちょっとチャレンジしてみようかな?」程度のライターにはちょうどいい負担感だと思いました。
また、ありがたかったのは、無料で公開されている「お役立ちTips」。
私がいた時期には「ノーコード開発(ソースコードを記述せずにWebサイト・アプリ開発を行うこと)」に関する記事が無料で公開されており、便利なツール/サービス集もあったので、知見を深めるきっかけになりました。
ちなみに、ノーコードといっても、改造にはちょっとした知識が必要になることが多いそうです。
ライターのレベル感なら、DMM WEBCAMP SKILLSで学んで → サイト制作はノーコード(部分的にコードを改造)くらいがちょうどいいのかもしれません。
これはDMM WEBCAMP SKILLSに限らないことで、どのようなスクールに入会するにあたっても、「何のために学ぶのか」「どのくらいの期間で、どのくらいのレベルまで到達したいのか」をハッキリしておかないと、モチベーションが続きづらいのかなと思います。
まさにダイエットと一緒!自慢したいので、何度でも結果を貼っておきますね!
いずれにせよ、内容的には満足。これだけの知識を体系的に得るには、それなりのリサーチコストがかかってしまいますし、書籍などで学ぶと、質問できる場所がありません。
DMM WEBCAMPなら、一定の質が担保されたテキストで学べ、オンラインで何度でも質問可能。料金的にも、大人の習い事として充分コスパ良しと判断できる範囲だと感じました。
そして何より、SKILLSで興味を持ち、本格的に学びたいと感じた方は、○万円引きでPRO/COMMITコースに移行可能!
思わぬキャリアチェンジのきっかけは今、ここに開かれているのかもしれません。気になった方は、ぜひDMM WEBCAMP SKILLSでプログラミングの学習にチャレンジしてみてくださいね!
全3回の連載にお付き合いいただき、ありがとうございました!
HTML/CSSが終わると、「Ruby」というプログラミング言語の学習に入っていきます。
HTML/CSSがWebサイトの「見える部分」を作る言語なのに対し、Rubyは「裏側」を作る言語です。
その分、人によっては「何をしているのか分からない」「学習の効果が実感できず、モチベーションが持続しづらい」と感じることもあるので、つらくなってきたらぜひ、私たちライフコーチを頼ってくださいね。