こさろぐ

アラサーエンジニアの雑記

Java屋がRuby試験Silverに合格するまでにやったことを全部書く

f:id:pepepki:20170404003618j:plain

こんにちは、こさっく(@pepepki)です。

先日、Ruby技術者認定試験のSilver(※)に合格しました。

Silver、Goldと2種類の試験があり、今回は下位のSilverです。

※正式名称:Ruby Association Certified Ruby Programmer Silver version 2.1

www.ruby.or.jp

 

こちらが証拠の合格写真です。

f:id:pepepki:20170403230642j:plain

 

普段はSIerJavaをメインに仕事しており、Rubyを触りだしたのは2017年2月の下旬頃。それから約1ヶ月ちょっとでRubyのSilver試験に合格しました。

そこで、合格するまでにやったことをこの記事に全部書いてみました。受験する場合に参考になれば幸いです。

 

学習期間

約40日。ただし前半の25日はネットを参考にしながらちょっと触った程度。本格的に勉強したのは後半の2週間です。

後半の2週間は1日2時間程度勉強していました。

家では家事や育児であまり勉強時間が取れません。そのため、下記のようなスキマ時間も活用して問題を解いたりテキストを読み進めていました。

スキマ時間だけでも工夫すれば1日30分以上は時間が生まれます。時間制約がある分、集中できたのは良かったです。

 

  • 朝会社に出社後~始業前まで
  • 昼休憩時
  • その他家事の合間(洗濯物が終わるまでの数分、とか)

 

勉強の流れ

学習した順番に記載します。

1.ドットインストール

f:id:pepepki:20170403234620p:plain

環境構築しながらビデオ学習。Rubyってだいたいこんな感じっていうのを理解する。ドットインストールで構築した環境が後々の学習でも役に立ちました。ただし、Rubyのバージョンが2.3でした。試験は2.1でちょっと実行結果が変わるため、注意が必要。

視聴した講義は以下の3つ。いずれも会員登録すれば無料で閲覧できる講義です。Railsは試験合格が目的なら見る必要はありません。

・ローカル開発環境の構築 [Windows編]

Ruby入門 (全26回)

Ruby on Rails 4入門 (全28回)

あえて取り組む必要はありませんが、流れを理解するのには良かったと思います。

2.Progate

f:id:pepepki:20170403234727p:plain

Rubyのプログラミングをしながらレベルを上げるというゲームに興じました。あんまり勉強している感覚はなし。レベル上げ楽しー。飽きた。で終わってしまいました。

何らかの言語経験者には少し物足りないかも。超初心者の人にはいいかもしれませんが、私は試験対策としてはやる必要はありませんでした。

3.Ruby技術者認定試験合格教本 Silver/Gold対応 Ruby公式資格教科書

Ruby技術者認定試験合格教本 Silver/Gold対応 Ruby公式資格教科書

試験対策には必要な参考書ですが、注意も必要です。

まず、数十箇所の誤植があるため、最初に公式サイトの正誤表は必ず見ておく必要があります。

流れとしては、1回Silverの試験範囲を通読。かいつまんだような足りない説明が多く、多大なストレスを感じながら読み進める。気になる箇所だけ実際にソースを書いて実機確認。

通読後、7章の基礎力確認問題に取り組む。正答率50%ほど。解説を本に穴があくほど読む。どういうプロセスで考えるべきだったか。どの知識が抜けていたのか。他の選択肢はなぜ間違いなのかを徹底的に考える。その後もう一度解き直して知識と理解のプロセスを再確認。

4.Rubyがミニツク

まつもとゆきひろさんの解説動画があるRubyの学習サイト。

まずはここからやるべきといえる良サイトです。Ruby入門コースのページは全ページ見ました。各章最後のドリルも全問正解できるまで繰り返しました。

各章の導入でまつもとゆきひろさんの動画解説があり、非常に分かりやすかったです。モチベーション維持にもなりました。

Ruby入門コースのあとは、Ruby技術者認定試験(Silver)対策コースを全問正解できるまで解きました。Rubyのバージョンが1.8.X時代の古い内容ですが、やっておく価値はあります。念のため実行結果は実機で見ておきましょう。

5.Ruby技術者認定試験合格教本 Silver/Gold対応 Ruby公式資格教科書

5.としましたが、3.と同じ本です。

ミニツクが一通り終わったあと、7章の模擬試験を解きました。正解率は6割程度だったと思います。ここでも不明点はゼロにした上で全問正解できるまで繰り返し解きました。7章の模擬問題に傾向が近い、またはほとんどそのままの問題が本番の試験でいくつか出題されました。

6.公式模擬問題

仕上げとして、公式の模擬問題を解きました。教科書の模擬問題で鍛えられたおかげでほぼ正解しましたが、理解が曖昧な点や穴が見つかったので、解説を読み込んで知識の補強をしました。公式の模擬問題からも、本番でよく似た問題が出題されました。

 

6終了後は、4~6を3周程度繰り返しました。最後の方には問題文の冒頭を見ただけで答えが浮かぶ程になっていました。

 

試験の感想

模擬問題とよく似た問題が多かったものの、「絶対これが正解だ!」と自信を持って解答できたのは7割程度でした。もうちょっとリファレンスを読み込んでおけば高得点が狙えたと思います。

・ヒアドキュメント

・破壊的/非破壊的メソッドの理解

・String、Hash、配列の基本的な文法・組み込みメソッド

・モジュールのインクルードやインスタンスメソッド・クラスメソッドの扱い

・ファイルを開く際の読み書きモードなどの扱い

・Enumerableモジュールのメソッドの理解(似た挙動のメソッド、違い)

…などなど、まだまだありますが、上記のような模擬試験に頻出のポイントを念頭に置きながら学習するとよいかと思います。

プログラミング学習サービスProgateを課金してレベル70までやってみた

f:id:pepepki:20170315221905p:plain

こんにちは、こさっく(@pepepki)です。

「なんかゲームしたいな。。。」と思っていたころ、Progateという面白いサービスを発見しました。

prog-8.com

Progateは、レベル上げができるプログラミング学習サービスということで、ゲーム好きな私の心をロックオン。

無料でもある程度の学習はできるのですが、せっかくなので月額980円の有料会員に登録してみました。

あまり「学習学習!」と肩の力を入れずに、純粋にレベル上げを楽しむのが目的。その後、現在レベル70まで学習したので所感含めてレポートします。

Progateとは?

f:id:pepepki:20170315222837p:plain

Progateは2014年7月に当時東大生の加藤將倫さんらが始めたプログラミングの学習サービス。登録ユーザー数は2年余りでなんと10万人を超えています

Ruby,Java,HTML,jQueryなどのWEB開発を中心としたプログラミング言語を体系的に学ぶことができます。無料で始めることができるのも大きな魅力。

Progateの特徴はいくつかありますが、良かった点を挙げてみます。

ブラウザで完結するプログラミング学習サービス

まずは「ブラウザで完結する」という点です。

プログラミング初心者が学習しようとする場合、コーディングに入る前に環境構築で手間取って挫折してしまうということがよくあります。

例えば、「Ruby」をLinuxの仮想環境をイチから構築して学習しようとした場合

などなど、やることがたくさんあります。

もちろんこれはこれで実際の開発では必要なことなのですが、挫折してしまえばそこで終わりです。Progateは、そういった環境構築の工程をショートカットすることでコーディングの学習に集中できるサービスになっています。

ちょっと横道にそれますが、こちらの画像をご覧ください。

f:id:pepepki:20170316000003p:plain

これは、Progateの会社概要のページに掲載されている画像です。

初心者から、創れる人を生み出す
プログラミングの最初のハードルを徹底的に低くし、世界一わかりやすく、楽しい学習環境を創る

「 初心者が挫折せず、楽しくプログラミング学習ができる」ということを目指したサービスとしてProgateは設計されています。環境構築の手間が無いのはこの基本理念が具現化されたものですね。

具体的な画面で説明してみましょう。例えばこちらはRuby on Railsの演習画面です。

f:id:pepepki:20170315225643p:plain

ブラウザ上の1画面で

  • 左のペインに演習の指示内容が表示(講義スライドも参照できる)
  • ディレクトリツリーでGUIによるファイル操作
  • テキストエディタAtomっぽい感じ)
  • ターミナル(コマンド操作)
  • 動作確認用ブラウザ

と動作に必要な環境は全て揃っており、ブラウザさえあればプログラミング学習ができる仕組みになっています。

※レッスンの種類により、表示内容は変わります。

ログインはTwitterFacebookアカウントと連携できるので、パソコンと通信環境さえあればどこでも手軽に学習ができるのは大きなメリットですね。

自分のペースで学習できる

ドットインストールなどの動画サービスとは異なり、Progateはこのような「スライド」で学習します。 

f:id:pepepki:20170315231410p:plain

大体1レッスンで5枚程度のスライドで構成されていて、絵も多用していて分かりやすく説明されています。内容にもよりますが、結構サクサク進みます。

スライド形式なので、自分が理解できるペースで学習できる点は良かったです。動画も良いのは良いんですが、動画は戻ったりするのが面倒くさいですから。。スライドの使い勝手の良さを再発見しました。

演習機能と道場コースはアウトプットの格好の場

f:id:pepepki:20170315232151p:plain

Progateは、主に「学習コース」と「道場コース」の2つのコースがあります。

学習コースはスライドで学習したのちに演習。道場コースはひたすら演習するコースです。

Progateで特筆すべきは、演習の機能。

学習した内容をエディタやターミナルで実際に打ち込んでコーディングをすることができます。アウトプットをすることで更に理解が深まり、学習した内容を頭に叩き込んでいくことができるのです。

さらに、プログラミングした内容が正しいか、自動で判定してくれます。

コーディングした内容が問題なかった場合、このように「正解」と表示。

f:id:pepepki:20170315232600p:plain

逆に間違っていた場合、アラートが挙がって次に進めません。

f:id:pepepki:20170315232711p:plain

この正誤判定があることによって、間違って理解してしまうのを防げます。「正解です!」と教えてくれるのはモチベーション維持にもいいですね。

また、答えが分からなくてもあまり悩まなくても大丈夫です。「ヒント」が各演習に備わっており、ヒントを見ればどのようなアプローチでコーディングすればよいか分かるようになっています。

f:id:pepepki:20170315233552p:plain

どうしても分からない場合は「答えを見る」こともできます。

f:id:pepepki:20170315233738p:plain

ただし、答えを見た場合は経験値が減るらしいので気をつけましょう。

f:id:pepepki:20170315233810p:plain

やればやるほどレベルが上がる仕組み

 Progateで楽しいのは、レベル上げができる仕組みです。私はレベル上げがしたくてProgateを始めましたが、これがゲームっぽくやみつきになりました。

学習コースの演習や道場コースで正解をすると、経験値が手に入ります。経験値が一定値まで貯まると、このようにレベルが上がります。テンションも上がります。

f:id:pepepki:20170315234056p:plain

Twitterなどでシェアすることができます。私はしょっちゅうTwitterシェアしていました。たまにProgateの中の人が「いいね」してくれて嬉しかったです。

ただ学習しているだけだと中だるみしてモチベーションが下がってしまうことがありますが、レベル上げが楽しいのでモチベーションはあまり下がりませんでした。

ちなみに、通常の学習コースより道場コースの方が経験値は高いです。また、一度学習したコースを再度やり直しても経験値が手に入ります。

例えば道場コースが難しいとき、学習コースに戻って学習しなおす、ということも学習のやり方としてはありですよね。その場合でも経験値が手に入るのです。

スライムを何回倒しても経験値が手に入って強くなるということですね。

でも欲を言えば「レベルが上がっても何もメリットがない」のでレベル40ぐらいからレベル上げ自体は飽きてきました。何かレベルが上がることでのメリットがあればいいと思います。

無料版と有料版(980円/月)の違い

Progateは会員登録をしたときは無料版で、入門レベルを中心に12レッスンに取り組むことができます。

課金して有料版にすると、応用レベルの学習コースや道場コースなど計46レッスンに取り組むことができます。 

2017年3月現在、無料と有料の違いはレッスン内容だけで特にサービスの機能に関しての優劣は無いようです、

無料版は各言語で入門レベルの1~2レッスン程度なので、応用レベルまで取り組みたい場合は有料版を選択するのがよいでしょう。

まとめ

Progateは学習のハードルがとことん低いサービスなので、初心者はもとより「Pythonちょっとやってみようかな」など初めて触る言語を手軽に学習するのに良さそうです。

 

ドットインストールのプレミアム会員で学習したので感想を書いてみる

f:id:pepepki:20170227235419j:plain

こんにちは、こさっく(@pepepki)です。

 

先日からドットインストールRubyの勉強をしていました。

pepepki.hatenablog.com

無料版会員のまま勉強していたのですが、ちょっと気になる表示が。 

。。。!

f:id:pepepki:20170228000334j:plain

※イメージです

 

ということで、プレミアム会員(有料版)に登録してみることに。

 

ドットインストールのプレミアム会員とは?

 ドットインストールは会員登録を行うと、無料で入門レベルの講義は一通り受講することができます。そして、月額980円を支払いプレミアム会員になると、以下のような特典が得られます。

プレミアムレッスン動画の視聴※

文字起こしの閲覧

ソースコードの閲覧

レッスン動画の速度変更

女性ボイスによる再生   ドットインストールより特典を一部抜粋

※2017/2現在、297種類の講義の中で、110講義がプレミアムレッスン動画です。

プレミアム会員は中上級者向けの動画が閲覧できることに加えて、講義の音声を文字で閲覧出来たり、レッスン速度が変更できたりと学習しやすい仕掛けがいくつか。なかなかよさそうです。

Ruby関連でいうと、RubyRailsの講義は無料版会員で視聴できますが、SQLiteやActive Recordはプレミアム会員にならないと視聴ができません

プレミアム会員になって実際どうだったのか。

上にピックアップした特典について、実際の感触をレポートしてみます。

 ちなみに、

Ruby入門 (全26回)は無料版会員で視聴

Ruby on Rails 4入門 (全28回)をプレミアム会員 で視聴しました。

文字起こしの閲覧:◯

超便利。効率アップしました。

ドットインストールは3分間に講義を凝縮している関係もあり、先生がタイピング激速なのもあり、初めての分野では講義スピードが速く感じることがあります。

自分の環境でのんびり打ち込んでいるとあっという間に講義が終わることも。

そんなとき、何度も巻き戻したりすると面倒なのですが、ポーズしておいて文字起こしの文字を追っていけばゆっくり理解しながら学習ができます。

また、文字をクリックすれば該当の場所にスキップして再生が始まります。自分のペースで学習したい場合に文字起こしはオススメです。

なくても学習はできますが、個人的にはとても便利で重宝しました。

ソースコードの閲覧:◯

講義で使った修正前のソース・修正後のソースが閲覧できます。何度か思いがけず処理が落ちてしまったのですが、コーディングの誤りを発見するのに役立ちました。

この機能がなければ、動画から遡って調べる必要があり、かなり手間がかかったと思います。

なくても学習できますが、やっぱりソースコードがあるのは便利です。コピペもできますし。

レッスン動画の速度変更:△

私はあまり使いませんでしたが、0.7倍から2.0倍まで再生速度の変更ができます。聴いてみましたが、0.7倍も2.0倍も声自体に違和感はなかったため、自分の理解のスピードに合わせて変更することができますね。

女性ボイスによる再生:△

個人的には1番期待していた特典だったのですが、思ったほどの恩恵はありませんでした。結論からいうと、男性ボイスに戻しました。期待通りのきれいな女性の声で、途中まで女性ボイスで学習していましたが・・。

ドットインストールは基本的に男性ボイスの方がエディタなどの操作をしながら説明をしています。女性ボイス版は、その説明内容を元に、女性の方が声を吹き込んだものと思われます。

そうすると、若干棒読み感があったり、なんというか講義の躍動感が足りない感じがちらほら。。。

微妙な違いなんですが、音声と講義内容にちょっとしたチグハグ感を感じたので、結局男性ボイスに戻すことになった次第です。

まとめ

ということで、

・本気でドットインストールで勉強してえええ!という人

・中級以上の講義でも学習したい人

にはプレミアム会員はオススメですが、

 

・とりあえず入門レベルの講義をさらっと見たい人

・効率が少々悪くても動画講義で学習できればよい人

無料会員でも十分かなと個人的には感じました。※個人の感想です。

 

ドットインストールでRubyの勉強を始める

f:id:pepepki:20170220224046j:plain

こんにちは、こさっく(@pepepki)です。※画像は違う人です。念のため。

Twitterを再開したので、ブログも始めてみることにしました。

さて、私はSIerシステム開発を8年ぐらい経験していますが、これまで要件作成やユーザーサポートのようなドキュメントが仕事の中心でした。実はプログラムに直接触ったのは3年程度の経験値です。

そのため、技術的なスキルを磨こう!と考えた結果、RubyRuby on Railsをやってみることにしました。

↓こんな記事があります。お金の話はみんな好きです。Pythonが大人気。Rubyは第2位ですね。いやこの記事に影響を受けたわけではあはははは。

paiza.hatenablog.com

私の周りではJavaや.netの開発が中心ですが、私がマーケットとしての可能性と勢いに魅力を感じているのがWeb開発。

でWeb開発をやるならRailsは抑えときたいよね!ということでRubyを選択しました。

もちろん案件が多いかというと、そんなこともありませんが、スタートアップやベンチャーを中心に短期のプロダクト開発でRailsが広く使われています

が、SIerでは経験がしにくい言語でもあるのがRuby(Rails)。

仕事で経験できず、自分の力で勉強するならこれだろ!ということでしつこいですがRubyを勉強することにしました。

ドットインストールで勉強してみる

前置きが長くなりましたが、とりあえずRubyのいろはを勉強することに。

現場の開発からだいぶ離れていたので、体系的に勉強を進められる教材を探した結果、「ドットインストール」を選ぶことにしました。

f:id:pepepki:20170220221339p:plain

http://dotinstall.com/

 

ドットインストール

・初級レベルのプログラミング動画が無料で見放題

・ 4000本以上の動画ストックがある

・課金対象の動画も月々980円で見放題

・わりと頻繁に更新されているので内容(言語のバージョン含め)が古くない

といった特徴があります。

とりあえずRubyの講義とRailsの講義は無料で見れるので、良かったら課金していく形で使っていこうと思います。

 

とりあえず環境構築(Windows

Ruby始める前に、まずは環境構築です。

環境構築もドットインストールの別の講義を参考にしました。

ローカル開発環境の構築 [Windows編]

ざっくりいうと

VirtualBox(仮想環境)のインストール

Vagrant(→CentOS)のインストール

Puttyのインストール

・gitのインストール

cyberduckのインストール

と、Windows上にLinuxの仮想環境を構築するというものです。

とっても基本的なところですが、私はVmwarePlayerやTeratermWinSCPばかり使っていたので今回慣れないツールばかりでむしろ新鮮です。

Vagrantの起動が上手くいきませんでしたが、こちらの記事を参考になんとか起動できました。。。

qiita.com

これで14レッスンが完了、いよいよ次はRubyのレッスンに入ります

ちなみに、環境構築のレッスンの最後で少しRubyのコードを書きます。

print "hello world"

おなじみのHelloWorldですが、1ファイルに書くコードがこれだけ。。。やっぱりRubyは直感的な言語だなあとしみじみ感じました。