【Ruby】to_○メソッドの種類と使い方

はじめに

Rubyto_○メソッドの種類や使い方をまとめていきます。

to_○メソッドの種類

今回まとめたものは、以下のとおりです。

  • to_i:文字列を数値に変換
  • to_s:オブジェクトを文字列に変換
  • to_a:範囲オブジェクト、ハッシュを配列に変換
  • to_f:整数を少数に変換
  • to_h:配列をハッシュに変換
  • to_sym:文字列をシンボルに変換

to_i:文字列を数値に変換(i:integer)

文字列.to_i

# 使用例
"10".to_i 
=> 10

10 + "5".to_i
=> 15

# 数値を含む文字列の場合
"123abc".to_i
=> 123

# 引数を渡して8進数の整数から10進数へ変換
"07".to_i(8)
=> 7

to_s:オブジェクトを文字列に変換(s:string)

オブジェクト.to_s

# 使用例
12345.to_s
=> "12345"

true.to_s
=> "true"

# 引数を渡して10進数の整数から8進数へ変換
10.to_s(8)
=> "12"

to_a:範囲オブジェクト、ハッシュを配列に変換(a:array)

オブジェクト.to_a

# 使用例
# 範囲オブジェクトを配列に変換
(1..5).to_a
=> [1, 2, 3, 4, 5]

("a".."e").to_a
=> ["a", "b", "c", "d", "e"]

# ハッシュを配列に変換
user = {first_name: "hoge", last_name: "ruby"}
user.to_a
=> [[:first_name, "hoge"], [:last_name, "ruby"]]

to_f:整数を少数に変換(f:float)

オブジェクト.to_f

# 使用例
10.to_f
=> 10.0

3/4.to_f
=> 0.75

to_h:配列をハッシュに変換(h:hash)

二次元配列オブジェクト.to_h

# 使用例
user = [[:first_name,"hoge"],[:last_name,"ruby"]]
=> [[:first_name, "hoge"], [:last_name, "ruby"]]
user.to_h
=> {:first_name=>"hoge", :last_name=>"ruby"}

to_sym:文字列をシンボルに変換(sym:symbol)

文字列.to_sym

# 使用例
"hoge".to_sym
=> :hoge

name = "ruby"
=> "ruby"
name.to_sym
=> :ruby

おわりに

Rubyの基礎であるto_○メソッドについてまとめました。

この他にも種類があるので、学習を進めていく上で使い分けれられるようになりたいと思います!

ご指摘などあれば、コメントいただけると幸いです。

未経験からのプログラミング学習【4ヶ月経過】

こんにちは。フィヨルドブートキャンプ(以下、FBC)でプログラミング学習中の「のん」です。学習を始めて4ヶ月が経ちました。日々の学習記録はFBC内の日報につけているのですが、学習の振り返りをしたことがなかったので、この4ヶ月を振り返ろうと思います。

bootcamp.fjord.jp

目次

この4ヶ月の振り返り(12月〜3月)

私は、FBCに入会してからターミナルを初めて触ったプログラミング超初心者です。学習を始めてから4ヶ月経った今は、簡単なコードを書いたり、他の方が書いたコードを読むことができるようになりました。

個人的に感じる大きな変化は、学習を始めた当初はコードがまるで呪文のように見え、エラーが出た時には恐怖さえ感じていたのですが、今ではコードやエラーを読み解くことを楽しめるほどに成長しました。

 

【修了したプラクティス】

108個ある内、34個のプラクティスを修了しました。

終了したプラクティス一覧
  • 学習の準備
    • フィヨルドブートキャンプにようこそ!
    • 学習の進め方を知る
    • チャットを使えるようになる
    • ブログを作る
    • SNSの登録
    • GitHubアカウントの登録
    • 日報を書く
    • 質問する力をつける
  • 開発環境
    • 開発環境を作る
  • HTML & CSS
    • HTMLの基本を理解する
    • Markdownを使ってHTMLを書く
    • CSS初級
  • Vi
    • viの基本を理解する
  • Linux
    • Terminalの基本を知る
    • Linuxをインストールする
    • UNIXLinuxについて知る
    • Linuxのファイル操作の基本を理解する
    • aptの基本を理解する
    • sudoをインストールする
    • SSHの基本を理解する
    • 標準入出力・リダイレクション・パイプを理解する
    • SSL/TLSの基本を理解する
  • Git & GitHub
    • Gitの基本を理解する
    • GitHubの基本を理解する
    • Pull Requestを行う
  • Ruby
    • rben
    • Ruby初級
    • FizzBuzz問題Ruby
    • カレンダーのプログラム(Ruby
    • rubygemsの基本を理解する
    • プログラムの修正
    • Bundlerの基本を理解する
    • rubocopの使い方を知る
    • ボウリングスコア計算プログラム

【学習時間】

4ヶ月間の総学習時間は、300時間でした。

月の平均だと、75時間です。

学習計画は、100時間/月で考えていたので予定よりも少ないです。

原因は、3月に体調を崩し学習時間が20.15時間しか取れなかったことにあります。この反省から、4月以降の学習計画と体調管理を見直しました。

学習時間

できるようになったこと

1. Git、GitHubを使ってファイルの管理・提出ができるようになった。

ラクティスでGit、GitHubの使い方を学び、その後の課題はGitHubからPull Requestで提出しています。まだ操作には慣れていないですが、git diffやgit statusで変更点を確認する癖が付き、操作ミスや苦手意識が軽減されました。

 

2. Rubyで簡単なプログラムを作成できるようになった。

RubyFizzBuzzプログラム、カレンダーのプログラム、バグの修正、ボウリングスコアの計算プログラムを作成しました。初めのうちはタスクの粒度が大きいまま取り組んでしまい、予定よりも時間がかかった上に理解度も低いままでした。その後、やるべきことを書き出したり文章に起こしたりして取り組んでみたところ、自然と「仮定と検証」を繰り返すことができるようになり、理解を深めながら学ぶことができています。

 

3. オンラインでのコミュニケーション、イベントへの参加を積極的に行った。

私は、リモートワークやオンライン交流の経験があまり無いので、FBC内で積極的にオンライン交流を行っています。この4ヶ月間で、他の受講生の日報や分報へのコメント、輪読会への参加、音声チャットでの交流、FBC内のオンラインイベントへの参加、メンターさんに文章やペアプロで質問などを行いました。対面のコミュニケーションだと問題なく伝わっていたことも、オンラインになると伝え方を工夫しなければいけないと感じ、意図が伝わりやすい文章構成や質問の仕方など相手へ負担をかけないコミュニケーションを意識するようになりました。オンラインでのコミュニケーション力を養うことが目的でしたが、FBCの受講生、メンターさんとの交流は長期の学習のモチベーションにつながっています。お世話になっている皆さんに、いつか直接ご挨拶がしたいです。

また、FBC内だけではなくconnpassでのオンラインイベントにも複数回参加しました。エンジニア職のイベントはオンラインで学べる場が多くあり、子育て中の私でも参加がしやすく大変ありがたいです。今後も積極的に参加していきたいと思います。

 

4. FBC内Q&Aで他の受講生からの技術的な質問に回答することができた。

FBCのコミュニティへの貢献と困っている方への支援、習得した知識のアウトプットのために他の受講生の質問に回答しました。

以下を意識して回答しました。

  • 正しい情報
  • 相手に伝わりやすい表現
  • 正解ではなくヒント

回答にはベストアンサーをつけていただきお役に立てたことがとても嬉しかったです。また、自分自身の知識の定着にもつながり大変良い経験でした。今後も答えられそうな質問には積極的に回答していこうと思います。

苦労したこと

1. Git、GitHubの操作を誤った

課題提出時に、提出不要な設定ファイルまでコミットしてしまったため、該当ファイルの取り消しに苦労しました。2つの対応策(⑴不要な設定ファイルを別ディレクトリに移して再コミット。⑵ .gitignoreに追記して差分をコミット)を考え、試したところ⑵の方法で解決に至りました。誤ってGitHub上にあげてしまったものは完全に削除されないので、以降git diffやgit statusで随時確認を行い、より慎重に操作しています。

今の気持ち

学習計画を見直して心理的負担を減らしていく

3月に子どもと私の体調不良から学習に遅れが生じたので、学習計画の見直しを行いました。元々おおまかな計画と月の目標学習時間だけ定めていたのですが、これを週ごとの学習計画に作り直しました。学習の進め方が掴めてきたので、今回の見直しでは学習計画の指標を時間での管理からプラクティスの進捗管理に変更しました。

また、週計画が達成した場合は学習を進めるも休憩するも良しとし、余白を設けています。時間を指標として管理していた時は、「とにかくプラクティスを進めなければ…!」と焦った状態が続いていたので、今回の変更で心理的な負担が軽減されることを期待しています。

 

次月の目標

  • Rubyラクティス修了
  • 技術ブログ執筆

フィヨルドブートキャンプでプログラミング学習をはじめました

はじめに

2023年11月23日、フィヨルドブートキャンプ(以下、FBCという)に入会しました。

フィヨルドブートキャンプとは、プログラミング学習ができるオンラインスクールです。

bootcamp.fjord.jp

 

自己紹介

まずは、私について紹介したいと思います。

30代、女性、愛する2歳の娘と優しい夫と暮らす主婦です。

前職は地方公務員で現在は個人事業主として働いています。

プログラミングの経験はなく、FBCで初めて学んでいます。

 

間取りを見るのが好きで、チラシで入ってきたマンションや新築物件の間取りをパズルのように組み替えて理想の間取りを描いたりしています。

また、自分を含む誰かの暮らしや状況を良くすることが好きで他者のために貢献したいという思いが人一倍強いと感じています。

 

なぜプログラミング学習を?

私は公務員として働いている中で、自分の好きなことや希望の生き方が見えてきました。

 

好きなこと

「課題を見つけて改善すること」

希望の生き方

「自分や誰かの暮らしをより良くしたい」

 

しかし、公務という性質上変化を求めることは難しく、好きなことや希望の生き方との矛盾を感じるようになりました。

そんな中、後述する一元管理ソフトの作成をきっかけに「サービス」で世の中を良くしていきたいと思うようになり、プログラミング学習を始めました。

 

「サービス」で世の中を良くしていきたい

公務員時代私が配属された部署では、情報管理不足による業務ミスや長時間残業が恒常化していました。

この状況を変えるために、一元管理ソフトによる情報管理を考えました。

ですが、新たにシステムを導入する予算はないので、インストール済みのソフト(Access)を用いて一から作り上げる必要があり、

Accessについての勉強(作り上げるのは初めて)

・必要な機能の設計

・同僚からのフィードバック

を経て約4ヶ月かけて作り上げました。

 

運用をはじめてなんと、1時間かかっていた業務が10分ほどでできるようになり大幅な業務改善に成功しました。また、一元管理を行うことで業務ミスも減り、市民からの苦情や相談が減りました。

これらの成果には私も想像以上で驚きましたし、同僚や上司からたくさん褒めていただき誇らしかったことを覚えています。

 

何よりも、業務時間が減ることで私や同僚の「時間の過ごし方」が変わったことが嬉しかったです。

「時間」が生まれたことで、今まで手がつけられていなかった業務に充てることができたり、

残業に充てていた時間を家族と過ごすことができたり、

誰かの暮らしをちょっと良くすることができたということに達成感とやりがいを感じました。

 

この経験は私の中ですごく大きく「サービス」で世の中を良くしていきたいと思うきっかけとなりました。

 

なぜFBC

FBCを卒業されてエンジニアに転職されている方に紹介いただいたことがきっかけです。

また、1000時間以上の学習時間が必要なため技術や知識がしっかりと身につきそうだと感じたことと、サブスク型で未経験からでも始めやすかったことも理由の一つです。

さらに、私は心配性なので入会前にFBCのメンターさんに就職相談にも乗っていただき、具体的な就職候補先などを教えていただき心配事を減らせたことも大きかったです。(他スクールは具体的な就職先は教えてもらえず不安だったため)

 

今後について

私のFBC入会の目的は転職なので、卒業・転職を目指しています。

卒業までには約1,200時間かかるといわれているため、年内(できれば9月ごろ)までに卒業・転職が叶うと良いなと思っています。

また、卒業までにRuby silverの資格取得も目指します。