フィヨルドブートキャンプでの学習記録

フィヨルドブートキャンプで修行中です。

2026年6月の目標【小目標】と2026年5月のまとめ

 

2026年5月のまとめ

🖌️プラクティス

目標勉強時間:90 h/month

実施時間: 90 h/month

WebアプリからのDB利用の課題が思ったよりも早く合格がもらえたので、目標を途中で設定しなおした。赤枠の部分の自動テストとオブジェクト指向プログラミングのプラクティスを目標に追加し、実施した。

 



🔹WebアプリからのDB利用

ずっと躊躇っていたお題にやっと着手。

Railsの課題をやった後だと、少し楽に感じた。細かいメソッドや変数やSQLを書くのを最後にして、大体のメソッドやCRUDの場所を決めてから実装をした。すると、とても頭の中がスッキリして早く実装ができた。奇跡の一発合格をもらえた。

実際に自分で作ったアプリにSQLインジェクションを実際に起こしてみようと試みたが、失敗に終わった。Googleの検索結果に飛んでしまい、”これはSQLインジェクションですぅ”みたいなのが出てきた。

 

🔹コメントを付けられるようにする

やっと合格をもらえた!難しいお題でした。。。

コントローラーって一緒にすればいいってもんじゃないんだ!と気付かされました。あとコメント部分のパーシャルの切り出しが難しかった。3つに分割したが、2つで良かったかもしれないと思った。課題の合格後に見た他の人の回答は2つに切り出している人が多かった気がする。

来月ちゃんと時間をとってまとめておこう


🔹日報の言及機能を作る

2回目の提出まで完了した。指摘事項を再度修正して来月提出予定

トランザクション、ロールバック。。。なんでこんな複雑に保存せにゃならんのかと困惑。まだ少し腑に落ちていないのはコントローラーに書くべきものとモデルに書くべきものがちゃんとわかっていないかもしれない。

まとめ直すときにもう一度考えよう

 

🔹テスト技法

課題がAtCoderみたいで楽しかった。合格までもらえた。

 

🔹オブジェクト指向プログラミング

書籍をkindleで購入してざっと目を通した

  • アジャイル時代のオブジェクト脳のつくり方 Rubyで学ぶ究極の基礎講座
  • オブジェクト指向でなぜつくるのか 第3版

む、難しすぎる。。。AIに要約してもらいながら読みますか。。。


🔸AtCoder

AtCoder Beginner ContestでA問題をとにかく解ける問題からやってみることにした。とりあえず、作成した答え合わせスクリプトを使って、10問実施した。B問題は解けそうで解けない。A問題なら時々間違えるが、なんとか解ける。

あと、At Coder用のappを作成している

At Coder用appでやりたいことを整理した

  1. 何問目まで解いたかよくわからなくなるので、問題がどこまで進んでいるのか確認する一覧が欲しい
  2. 途中まで考えていたメモがどこかに行ってしまい、もう一度考え直さないといけなくなる。問題番号とメモをリンクして保存しておきたい。いつでも呼び出せるようにしたい
  3. これ見たことあるなぁという入力時のメソッドがバラバラのファイルに保存されているので、パターンを一覧で見て、そこから選べるようにしたい
  4. いずれは、問題を解答するためのアルゴリズムのパターンの一覧も作りたい これらを解決するために覚えたてのRailsでアプリを作っている

 

タスクばらし

  • csvに出力し、バックアップが取れるようにする
  • 問題一覧とテンプレート一覧を作る
  • 問題一覧とテンプレート一覧に詳細、編集、削除機能をつける
  • 一覧の最終更新日の日付を日本時間に直す
  • 状態が反映されるようにする
  • 入力時のメソッドが大体パターン化されているので、テンプレートの一覧を作り、そこから選べるようにする
  • 問題に何回チャレンジしたかわかるようにタイムスタンプを押せるようにする
  • メモ画面を保存できるようにDBを作成する

今月はCRUDがうまく動いていなかったので、修正した。

修正しているうちに問題一覧にある状態(未着手、途中、解決)が消えた。一覧から消えてしまったが、DBには残っていて安心した。

テンプレート一覧に実際に使用する内容を入力した。

70%くらい完成した。

(左:問題一覧、右:テンプレート一覧)



🔸その他 Rails版学習記録の作成

今月はダッシュボードの見た目を少し改良した(左:これまで、右:改良版)

新たにやりたいことを追加

  •  ダッシュボード2を作る
  • ダッシュボード2にプラクティスごとの集計を作る
  • 目標の入力時にまとめて入力&更新をできるようにする(現行ではプラクティスごとに入力&更新が必要)

 

🖌️5月の反省

  • FBCに入って以来初めて、90h/月勉強できた。もう少しで100h/月まで達成できそうなのだが、これ以上増やすと、いろんなところに支障が出そうなので、この辺が限界そう。去年までは50h/時間が限界だったが、Railsに入って課題が楽しくなったことと、だいぶ隙間時間の活用が上手になってきていると思う。
  • Rails版学習記録アプリを作ったことで、目標に対する進捗具合がリアルタイムでわかるようになり、全体の進捗を考えながら作業するようになってきたと思う。今月はなんだかやり切った感で溢れている✨

 

 


 

2026年6月の目標【小目標】

プラクティス

今月もこのままの90時間/月の時間設定で実施しようと思う

  • 今月は土日が8回×7h = 56時間 残り日34時間は1日最低2時間ほど実施すれば達成できそうか。
  • At CoderのBeginnerA,B問題を解ける問題からやってしまう。引き続き、できそうなA問題を中心に最低10問解く。At Coder用のRailsアプリを使い、改良しながら、来月までに使えるアプリに仕上げたい
  • 日報の言及機能を作るの指摘事項を修正し、合格をもらう
  • Railsの課題が全て終了したら、フリーボードに一枚の表にしてあとで見直せるようにする
  • Railsでテストを書く、オブジェクト指向プログラミングのところのプラクティスを着手していこう
  • あまりまとまった時間が取れない時は、まとめたいプラクティスチェックリストの中のまとめを作成する。

目標学習内容

 

 


🖌️気になっていて、いつかやりたいこと

  • AtCoderで問題を提出できるようになりたい。
  • クラスが書けるようになりたい
  • まとめたいプラクティスチェックリスト

     Linuxの環境設定とターミナル操作
     SSH
     Ruby on Rails 各種プラグインまとめ
     Rails の基本を理解するまとめ
      Bundler の基本を理解する
      rubocop の使い方
      GitHub
    Nginxの環境設定
      SQLの環境設定
      Sinatraの環境設定


🖌️5月の出来事

今月は、私の実家で恒例行事の千代保稲荷神社に行った。実家のお墓が近くにあるので、我が家ではお墓参りを兼ねて年に2回ほど行く。

新幹線の岐阜羽島駅から車で15分くらいのところにある神社で、商売の神様が祀られているとかなんとか。

ここへ来るといつも楽しみにしているのが、立ち食いで食べる串カツとホルモンのどて煮。串カツをどて煮の汁に浸して食べる。串カツ用の串でキャベツをさして食べるのがこの地域の流儀。

もう一つ楽しみにしてるグルメが、ナマズの蒲焼。岐阜は海がないので、鯉のお刺身やナマズやモロコなどの川魚が有名。

 

 

母親と行く時は、私が運転手なので、お酒が飲めないのが残念すぎる。

茶色い食べ物って全部美味しい😋

 

 

 

2026年5月の目標【小目標】と2026年4月のまとめ

 

2026年4月のまとめ

🖌️プラクティス

目標勉強時間:85 h/month

実施時間: 84.5 h/month

 

 

🔹コメントを付けられるようにする

今月は指摘事項の修正で1ヶ月が終了してしまった。しかも2回目の提出物がほとんどデフォルトに戻さないといけなくなるという失態。元からあるコードに何か実装しようとする時に、実装しようとする内容以外のものを変えてはいけないというルールを破ってしまっていた。やっているうちにごちゃごちゃになり、どこがスタート地点かよくわからなくなってしまっても、一度深呼吸して、スタート地点を確認する癖をつけようと思う。

 


🔹日報の言及機能を作る

着手はしたが、実装までは進んでいない。タスクばらしと公式ガイドで必要となる部分について調査を行った。


🔸AtCoder

A問題を解けそうな問題がないか見ていたら、何だか難しくて解けないものが多くなっている気がした。そこで、チャッピーに相談したところ確かにAtCoder Regular Contest はだんだん難しくなっているので、AtCoder Beginner Contestの方からやってみることを勧められる。知らなかった。。。

というわけでやってみることに

2、3問やってみたら、A、B問題あたりだったら、自分でも解けそうな領域だったので、この辺を中心にやっていくことにした。

あと、At Coder用のappを作ってみることにした

 

解いた問題を整理するapp

自分のイメージの50%くらいのものはできたが、ちょっと使い勝手が悪い。
解いた問題や着手した問題の一覧は何とか使えそうだが、右の詳細画面はとても使いづらい。来月修正していこうと思う。

 

 

🔸その他 Rails版学習記録の作成

今後追加したい機能一覧

  • csvへのエクスポートボタンを作る
  • 学習ログ新規で保存ボタンを押したら、一覧に遷移しないで繰り返し入力できるようにする
  • カテゴリ一覧やプラクティス一覧に連番じゃないid番号(例:その他)を入れる時はどうすればいいか
  • 今月の目標時間と残り時間を表示させる⬅️今月はこれ
  • カテゴリの編集ボタン作成⬅️今月はこれ
  • これまでのログをインポートする
  • 学習ログ、カテゴリ、プラクティス各一覧を見やすくする⬅️今月はこれ
  • デザインを修正⬅️今月はこれ

今月はダッシュボードの大幅改訂をした(左:これまで、右:改良版)

  

 

  • 月の学習目標を設定できるようにして、その日の終了後に学習時間を入力すると、その月に実施したプラクティスの時間の合計を表示できるようにした。
  • 目標達成までの残り時間が表示されるようになった。
  • そのまま日報に貼り付けできるように、当日の学習時間を一覧で見られるようにした。
  • 見たい月まで戻ることができるようになった。

 

各種一覧も作成した。

  • 編集や追加ができる
  • CSVへのエクスポートができ、定期的なバックアップも取れる。

自分の欲しい仕様の95%くらいまでできたので、ほぼ満足している。これまではSQLに入れていた時間を月末か月初めに手動で集計していたが、自動でやってくれるし、リアルタイムで進捗を確認できるのがとても便利だ。

 


 

🖌️4月の反省

  • 大体85h/月勉強できた。少しずつ伸ばしていけば、もう少しで100h/月まで達成できそうだ。
  • とにかく指摘事項の修正に時間がかかった。まだ合格をもらえていないので、最後にまとめをして、どうすればもっと早くできたのか考えよう。
  • Rails版学習記録は、4月の初めごろに作成して、今月毎回日報ごとに使ってみた。自画自賛だがとっても使いやすい!

 

 


 

2026年5月の目標【小目標】

プラクティス

先月、85時間達成できたので、今月は先月よりも少し高めに目標を設定する

  • 学習目標時間90h/month。GWに5日間時間が取れるので、ここで35h、残り9日から31日までの土日を中心に65時間(週16−17時間)勉強できそう。
  • At CoderのBeginnerA,B問題を解ける問題からやってしまう。現在の452問目から降順にすすめる)。設定時間10時間できるところまで。At Coder用のRailsアプリを改良する時間も含む
  • コメントを付けられるようにするの課題の指摘事項を修正し、合格をもらう
  • 先月できなかった日報の言及機能を作るを提出まではやり切る
  • 先月できなかったWebアプリからのDB利用に着手する
  • あまりまとまった時間が取れない時は、まとめたいプラクティスチェックリストの中のまとめを作成する。

目標学習内容

項目 目標 設定時間 優先順位
🔹WebアプリからのDB利用 着手 15 4
🔹コメントを付けられるようにする 実装&課題合格 20 2
🔹日報の言及機能を作る 実装&課題合格 40 3
🔸その他 ブログ(月報)を書く 5 1
🔸 AtCoder A問題を解ける問題からやる 10 5
合計 90  

 

🖌️気になっていて、いつかやりたいこと

  • AtCoderで問題を提出できるようになりたい。
  • クラスが書けるようになりたい
  • まとめたいプラクティスチェックリスト

     Linuxの環境設定とターミナル操作
     SSH
     Ruby on Rails 各種プラグインまとめ
     Rails の基本を理解するまとめ
      Bundler の基本を理解する
      rubocop の使い方
      GitHub
    Nginxの環境設定
      SQLの環境設定
      Sinatraの環境設定


🖌️4月の出来事

4月の初め、ちょっと肌寒い日が続いた。散歩嫌いの我が家のわんこ様がお散歩に出かけられるように準備することにした。ワクチンやら、フィラリア、マダニなどのお薬をもらったりした。あと犬用の服が必要だった。

本来、私は犬に服を着せることが好きではない。何だか犬の自由度を奪うようでどうかなぁと思っていた。しかし、ティーカッププードルは人工的に小さくしているので、寒さに耐えられないらしく、冬場は服を着せて体温調節が必要ですとブリーダーに言われていた。そろそろ1歳半になり、成長も止まったし犬用の服を買うことにした。

とっても気が弱い犬なので、ちょっとでも強く見せようと、恐竜の服を着せてみた。。。

恐竜に食べられているようにしか見えない。。。

服で誤魔化そうとしてもダメでした。

 

2026年4月の目標【小目標】と2026年3月のまとめ

 

2026年3月のまとめ

🖌️プラクティス

目標勉強時間:80 h/month

実施時間: 81.5 h/month

項目 目標 設定時間 進捗 実施時間
🔹WebアプリからのDB利用 着手 50 × 0
🔹コメントを付けられるようにする 実装&課題合格 57.5
🔹日報の言及機能を作る 実装&課題合格 2
🔸その他 ブログ(月報)を書く 5 5
🔸 AtCoder A問題を10個提出 15 12
🔸その他(Rails版学習記録を作る) 欲しい機能を実装する 10 5
合計 80   81.5

 


🔹コメントを付けられるようにする

今月メインで実施したRailsアプリに日報のCRUDを作り、コメントをつけられるようにするお題。提出までに50時間以上もかかってしまった😮‍💨なかなか手強いお題でした。日報のCRUDを作ることはそれほど難しくなかったのですが、コメント機能をつけるのが難しい。結局、歓迎要件だった、コメントの編集機能はつけられなかった。。。

 

今月、iPadを購入した。主に使う目的は、kindleとフリーボードだ。特にFBCでの学習にこのフリーボードを使ってみたかった。コードを付箋に貼り付け、ブラウザの画面をスクショで写し、貼り付けていった。今までしっくりこなかった画面とコードのつながりができて、Railsがとても楽しくなり始めた。調べたことを貼り付けたり、手書きで追記もできる。最初は少し手間だが、これを書いてから、Railsを動かすと、とてもスムーズにできた。これは来月も活用していきたいと思う。

 


🔸AtCoder

A問題を10個提出という目標はやり切った。最後の方にAtCoderの目標に時間をかけていられなくなり、できる問題からやって、提出した。

 

 

🔸その他 Rails版学習記録の作成

今後追加したい機能一覧

csvへのエクスポートボタンを作る⬅️今月はこれ

 学習ログ新規で保存ボタンを押したら、一覧に遷移しないで繰り返し入力できるようにする
 カテゴリ一覧やプラクティス一覧に連番じゃないid番号(例:その他)を入れる時はどうすればいいか

 今月の目標時間と残り時間を表示させる
カテゴリの編集ボタン作成
 これまでのログをインポートする⬅️今月はこれ
学習ログ、カテゴリ、プラクティス各一覧を見やすくする
 デザインを修正

今月は学習ログ、カテゴリ、プラクティス各一覧にcsvへのエクスポートボタンを実装した。時々、バックアップを取ろうと思う。※昭和生まれなので、csvで保存できると安心する。

 

これまでのログをインポートした。総学習時間が正しく表示された。

 


 

🖌️3月の反省

  • 学習目標時間80時間は達成できたことは良かった。フルマラソンの後、体力がなかなか回復せず、勉強が身に入らなかったので、後半にまとめてやることになってしまった。予期せず体力やメンタルがやられたりすることもあるので、時間が確保できた時は、集中してやろう。
  • 進捗は自分のイメージよりもちょっと遅いなぁ。早めたいという気持ちもあるが、プラクティスの進捗を目標設定にしてしまうと、できなかった時の”もうやめたい病”がすごいので、やっぱりプラクティスの進み具合を目標設定にするのはやめよう。
  • AtCoderは簡単な問題からやって10問達成したが、やらないよりやった方が気分が上がるぅ☝️☝️☝️

 

 


 

2026年4月の目標【小目標】

プラクティス

先月、80時間達成できたので、今月は先月よりも少し高めに目標を設定する

  • 学習目標時間85h/month。週に換算すると21.25h/weekくらい
  • At CoderのA問題を解ける問題からやってしまう(約200問あるうちのできるものから)。設定時間15時間できるところまで
  • At Coder用のRailsアプリを実使用できるところまで作る
  • コメントを付けられるようにするの課題の指摘事項を修正し、合格をもらう
  • 日報の言及機能を作るを提出まではやり切る
  • 日報の言及機能を作るを提出したらWebアプリからのDB利用に戻る
  • Rails版学習記録の追加したい機能一覧から選んで実装する
  • あまりまとまった時間が取れない時は、まとめたいプラクティスチェックリストの中のまとめを作成する。

目標学習内容

項目 目標 設定時間 優先順位
🔹WebアプリからのDB利用 着手 55 4
🔹コメントを付けられるようにする 実装&課題合格 2
🔹日報の言及機能を作る 実装&課題合格 3
🔸その他 ブログ(月報)を書く 5 1
🔸 AtCoder A問題を解ける問題からやる 15 5
🔸その他(Rails版学習記録を作る) 欲しい機能を実装する 10 6
合計 85  

🖌️気になっていて、いつかやりたいこと

  • AtCoderで問題を提出できるようになりたい。
  • クラスが書けるようになりたい
  • まとめたいプラクティスチェックリスト

     Linuxの環境設定とターミナル操作
     SSH
     Ruby on Rails 各種プラグインまとめ
     Rails の基本を理解するまとめ
      Bundler の基本を理解する
      rubocop の使い方
      GitHub
    Nginxの環境設定
      SQLの環境設定
      Sinatraの環境設定


🖌️3月の出来事

今月の大きな出来事は4回目のフルマラソン完走できたこと。今回はこれまでの4回のマラソンを振り返る。

まずはこれまでのタイム、練習量、結果、感想を記す。今回はAIの練習メニューをもとに5時間30分あたりのタイムを狙っていた。

 

2023

2024

2025

2026

タイム

5:45:49

6:30:35

6:17:44

5:55:46

1月練習量

(本番2ヶ月前)

129km/月

84km/月

70km/月

110km/月

2月練習量

(本番1ヶ月前)

117km/月

33km/月

81km/月

134km/月

感想

初フルマラソンを完走できた喜びでいっぱい

足を故障していたので、完走できただけで嬉しかった

自分の走りたい速さで楽しむことに徹した結果、つまらないと感じた。

万全を期したつもりが自己ベストすら更新できず、物足りなさを感じた。

 

結果は、体調も万全だったのにも関わらず、どうにもこうにも足が動かなくなり25km以上で失速した。年齢と言われればそれまでだが、もっと効果的に練習すればなんとかなるのかもしれないという気持ちになった。そんな思いもあり、マラソンに関する書籍を少し読んだ

 

フルマラソンサブ4達成に向けたトレーニングプログラム (ランニングを科学する) | 日比野就一 | 科学読み物 | Kindleストア | Amazon

 

この著書の中で述べられていること

  • 週4回以上の練習頻度
  • 週間走行距離50km/week以上(月間200km)
  • 最低3ヶ月〜1年続ける

 

ま、マジですか?、、、全然足りてない。

サブ5になろうと思ったら、最低でも150km/月ってこと?

というか、なんで最初に書籍から入らんかったんやろうか。。。

めっちゃ情報載ってるやん。。。

 

サブ4になれなくてもいいから、サブ5くらいまでは頑張りたいなぁなんて欲が出てきたのであります。サブ5を目標にして、それが達成できたら、フルマラソン完走後に嬉しい気持ちになれるんだろうなぁ、きっと。もう少し頑張りますか

 

今年は、小田凱人さん似の爽やかお兄さんからバカラをもらいました😍(ちょっと腰が引けてるのが気になります😅)

2026年3月の目標【小目標】と2026年2月のまとめ

 

2026年2月のまとめ

🖌️プラクティス

目標勉強時間:65 h/month

実施時間:78 h/month

 

項目 目標

設定

時間

進捗

実施

時間

🔹WebアプリからのDB利用 保留 - - 0
🔹devise を使ってユーザー認証を実装する ひたすら実装 45 23.5
🔹ActiveStorage で画像アップロードを実装する 終わったら着手 12
🔹コメントを付けられるようにする 終わったら着手 × 1
🔹日報の言及機能を作る 終わったら着手 × 0
🔹 Pull Request を行う - - 6
🔸その他 ブログ(月報)を書く 5 9
🔸 AtCoder A問題を10個提出 15 14
🔸その他(Rails版学習記録を作る) - - 12.5
合計 65   78

 

 



 


🔹devise を使ってユーザー認証を実装する

時間かかったなぁ。12月末に着手して2ヶ月もかかってもた😮‍💨

ちょっと時間がかかりすぎたので、どうすればもっと早くできたのかChatGPTに整理してもらった

 

🟦 Phase1:機能を完成させる(まず動かす)

🟨 Phase2:仕様を確定させる

🟩 Phase3:i18nを一気にやる

🟥 Phase4:最後に掃除 & lint

 

コミットを元に色分けした

 



🔹ActiveStorage で画像アップロードを実装する

そこそこ時間はかかったが、難しすぎることはなかった。

 

🔸AtCoder

今月はコマンドを作成して終わってしまった。ブログに内容をアップした。

namacosansan.hatenablog.com

AtCoderの問題は簡単なものだけコマンドの環境確認をしながら解いた。10問を目標にしていたが、4問しか解けなかった。今回は環境設定をしていたので仕方がないか。

 

 


🔹コメントを付けられるようにする
🔹日報の言及機能を作る
この2つの課題は着手できなかった。


🔹Pull Request を行う

メンターさんのお試しプラクティスを実施した。


🔸その他 Rails版学習記録の作成

↓これまでFBCでの学習時間をSQLとLinuxを使って、集計していた

namacosansan.hatenablog.com

このツールをRailsでできないか考えていた。

今月はこのRails版の学習記録アプリを実装することにした。自分の趣味で使うものなので、ChatGPTを活用しながら、ダッシュボードを作成し、毎日学習時間を入力すればカテゴリー別やプラクティス別の欲しい値が出てくるappがざっくりでき上がった。時間をリアルタイムで集計してくれるので、あとどれくらい頑張ればいいか確認しながらできる。いいところまで出来上がった。今後追加したい機能を一覧に挙げた。

 

 

  • 今後追加したい機能

     csvへのエクスポートボタンを作る

     学習ログ新規で保存ボタンを押したら、一覧に遷移しないで繰り返し入力できるようにする
     カテゴリ一覧やプラクティス一覧に連番じゃないid番号(例:その他)を入れる時はどうすればいいか

     今月の目標時間と残り時間を表示させる
    カテゴリの編集ボタン作成
     これまでのログをインポートする
    学習ログ、カテゴリ、プラクティス各一覧を見やすくする
     デザインを修正


🔸その他 ブログの作成

自分のわからないことや忘れそうなことは、ブログにアップすることにした

namacosansan.hatenablog.com

 


 

🖌️2月の反省

  • 今月は学習時間78時間でき、目標時間65時間を達成できた。
  • 課題に50時間、それ以上は自分のやりたいことやブログに時間を充てるのがいいかなぁ
  • わからないことは、図式化して、都度ブログにアップしてしまうと便利だなぁ。面倒だけど今後も習慣づけよう
  • GitHubでpushをする前にrubocopとlintを通すのを忘れてしまう。これを忘れるとコミットが一つ増えてしまう。ある程度これが最終形態かなぁと思ったら、rubocopとlintを忘れないようにしよう。
  • AtCoderをやる環境で修正したいことがいくつかある。解けなかった問題をつい放置してしまうことである。どこまでやったかも忘れがちで、それを探すのも面倒である。どこか一つにまとめておきたいなぁと思う。Railsで何か仕組みを作りたいなぁとも思っている。

    また、実際の問題を解くとき、簡単な問題でも時間がかかってしまうので、1問にかける時間を決めて、AIにヒントをもらいながら、とにかくやり切る方法でやろうかと思う。

 

 


 

2026年3月の目標【小目標】

プラクティス

今月は大きな予定は少なそうなので、目標を少し高めに設定する

  • 学習目標時間80h/month。週に換算すると20h/weekくらい
  • At CoderのA問題を10問/15h実施する。
  • コメントを付けられるようにするの課題を提出
  • 日報の言及機能を作るの課題を提出
  • WebアプリからのDB利用の課題に戻り、着手したい
  • AtCoderのやり方を変えてみる。
  • Rails版の学習記録を作成する。
  • Rails Girls Nagoyaに参加する(https://railsgirls.com/nagoya.html)
  • あまりまとまった時間が取れない時は、まとめたいプラクティスチェックリストの中のまとめを作成する。

目標学習内容

項目 目標 設定時間 優先順位
🔹WebアプリからのDB利用 着手 50 4
🔹コメントを付けられるようにする 実装&課題合格 2
🔹日報の言及機能を作る 実装&課題合格 3
🔸その他(ブログ(月報)を書く) ブログをアップする 5 1
🔸 AtCoder A問題を10個提出 15 5
🔸その他(Rails版学習記録を作る) 欲しい機能を実装する 10 6
合計 80  

🖌️気になっていて、いつかやりたいこと

  • AtCoderで問題を提出できるようになりたい。
  • Railsで学習ログを作りたい
  • クラスが書けるようになりたい
  • まとめたいプラクティスチェックリスト

     Linuxの環境設定とターミナル操作
     SSH
     Ruby on Rails 各種プラグインまとめ
     Rails の基本を理解するまとめ
      Bundler の基本を理解する
      rubocop の使い方
      GitHub
    Nginxの環境設定
      SQLの環境設定
      Sinatraの環境設定

 


🖌️2月の出来事

高校時代の友達4人で、名古屋の劇団四季に新しい演目が来るとなんとなく一緒に観に行こう!という慣習のようなものが出来上がり、10年くらい続いている。特にミュージカルマニアというわけでもないが、劇団四季のミュージカルは楽しいと感じている。新しい演目が1年から2年くらいの間に入れ替わるので、みんなで集まるタイミングとしてもちょうどいい。今期はマンマミーアだった。名前くらいは聞いたことはあったが、正直、そんなに期待していた演目ではなかった。

 

しかーーーし!面白かった。なんだったら、これまで観た中でかなり上位だったかもしれない。

 

ストーリーとしては、小さな島のホテルを経営するシングルマザーの娘が、結婚式を挙げるついでに、父親候補を結婚式に呼んで、父親探しをするという話である。(すごいざっくり)

このベースのストーリーに誰でもどっかで聞いたことがあるABBAの曲の歌とダンスが盛り込まれているみたいなミュージカルである。

 

これまでのミュージカルは、女性の観客が圧倒的に多い印象だったが、50代から60代くらいの男性観客がちらほら見られていた。これもミュージカルを観て納得したが、ABBAの曲をコンサートっぽく歌う演出があり、前の方の観客は当たり前のようにペンライトを持参して振っていた。若い頃、ABBAが好きだったんだと思う。特にABBAが好きと言うわけでもない私でもなんか楽しめた。

 

これまで観てきた劇団四季のミュージカルで好きな上位から挙げるとこんな感じかなぁ

  1. オペラ座の怪人
  2. マンマミーア
  3. リトルマーメイド
  4. ウィキッド
  5. 美女と野獣

この他、ノートルダムの鐘、パリのアメリカ人、ジージャスクライストスーパースター、キャッツ、ライオンキングも観たけど個人的にはそれほど面白いと思わなかった。

改めて振り返ると、ミュージカル好きでもない私が、この10年で結構たくさん観たんだなーと思う。

今期はオペラ座の怪人が来るので、絶対観に行くつもり。

あと、アラジンとかアナ雪来てくれないかなぁ。ずっと名古屋飛ばしされてるーーー🥲

 

AtCoderをどうしたら続けられるか考える3

AtCoder

atcoder.jp

 

AtCoderとは?

AtCoderでは、次のようなことをします。

  • 問題を読む
  • プログラムを書く(Ruby / Python / C++ など)
  • 提出する
  • 自動判定される(正解・WA・TLE など)

これを繰り返して、プログラミング力を鍛える場所

何が身につくかというと、

  • 基本的な文法の使い方
  • 条件分岐・配列・ループ
  • 問題文を読んで、処理の流れに落とし込む力
  • 入力の扱い(STDIN や gets)

特に Ruby 初心者が基礎を固めるのに、とても相性が良い学習サービス

。。。だそうです(ChatGPT談)

そこで意気込んで毎日コツコツやるぞ!と思っていたが、三日坊主ならまだしも一日で挫折した。ついでにどうすれば続けられるか聞いたら、テンプレートに沿って学習することを勧められた。これに沿ってやってみることにした。

 

 

namacosansan.hatenablog.com

 

namacosansan.hatenablog.com

 


 

先月はあらかじめ作成したinput値とoutput値で答え合わせをするコマンドを作った。

先月に作成したコマンドの問題点

  • in_X.txtに値を一個ずつ入れるのが面倒。
  • 問題ごとにファイル名.rbやフォルダを作るのが面倒。

 

そこで今月はコマンドをさらにパワーアップした。

まず問題を集めるproblemフォルダとscriptsフォルダを作った。

また、下記の3つのscriptsフォルダに入れるコマンドを作った

  1. コマンドと引数XXXを入れるとarc_XXX.rbファイルとinputXXXとoutputXXXフォルダを下記のproblemsの下に作ってくれるコマンド
  2. inputXXXとoutputXXXフォルダに入力値と出力値を入れるコマンド
  3. inputXXXとoutputXXXを使って正誤判定をしてくれるコマンド
スクリプト 役割
mk_arc.sh Rubyファイル作成
fill_io.sh input/output生成
test.sh 実行&diff確認

 


1️⃣mk_arc.sh

問題arcXXXのXXXを引数として、`mk_arc.sh`というスクリプトを作り` ./scripts/mk_arc.sh XXX`とコマンドに入力すると`arcXXX.rb`ができる
ファイルを作成するスクリプト

#!/bin/bash
set -euo pipefail

usage() {
  cat <<'EOF'
Usage:
  ./scripts/mk_arc.sh XXX [--force]

Creates:
  problems/arcXXX.rb

Options:
  --force    overwrite existing files
EOF
}

[ $# -ge 1 ] || { usage; exit 1; }

XXX="$1"; shift

if ! [[ "$XXX" =~ ^[0-9]{3}$ ]]; then
  echo "ERROR: XXX must be 3 digits like 017" >&2
  exit 1
fi

FORCE=0
if [ "${1:-}" = "--force" ]; then
  FORCE=1
fi

mkdir -p problems
rb="problems/arc${XXX}.rb"

if [ -f "$rb" ] && [ "$FORCE" -ne 1 ]; then
  echo "skip: $rb already exists (use --force to overwrite)"
else
  cat <<RUBY > "$rb"
# frozen_string_literal: true

RUBY
  echo "created: $rb"
fi

echo "done: arc${XXX} scaffold ready"

2️⃣fill_io.sh

問題arcXXXのXXXを引数として、問題文に書かれている入力値と出力値が入力するための`fill_io.sh`というスクリプト作る。コマンドに入力値用` ./scripts/fill_io.sh XXX in << 'EOF'`と出力値用` ./scripts/fill_io.sh XXX out << 'EOF'`を入れると、後のtest.shで使うテキストファイルとフォルダを作成される

#!/bin/bash
set -euo pipefail

usage() {
  cat <<'EOF'
Usage:
  ./fill_io.sh XXX in   < cases.txt
  ./fill_io.sh XXX out  < cases.txt
  ./fill_io.sh XXX in           (paste, Ctrl-D)

Case format:
  - One case can be multiple lines
  - Separate cases by an empty line

Example (2 cases):
  3
  1 2 3

  2
  10 20
EOF
}

[ $# -ge 2 ] || { usage; exit 1; }

XXX="$1"
TYPE="$2"

if ! [[ "$XXX" =~ ^[0-9]{3}$ ]]; then
  echo "ERROR: XXX must be 3 digits like 017" >&2
  exit 1
fi

case "$TYPE" in
  in)
    dir="problems/input${XXX}"
    prefix="in"
    ;;
  out)
    dir="problems/output${XXX}"
    prefix="out"
    ;;
  *)
    echo "ERROR: TYPE must be 'in' or 'out'" >&2
    usage
    exit 1
    ;;
esac

mkdir -p "$dir"

rm -f "${dir}/${prefix}_"*.txt 2>/dev/null || true

i=1
buf=""

flush_case() {
  [ -n "$buf" ] || return 0
  f="${dir}/${prefix}_${i}.txt"
  printf "%s" "$buf" > "$f"
  echo "wrote: $f"
  i=$((i + 1))
  buf=""
}

while IFS= read -r line; do
  if [ -z "$line" ]; then
    flush_case
  else
    buf+="${line}"$'\n'
  fi
done

flush_case

echo "done. cases: $((i - 1))"

 

使い方

  • 緑の枠の中の改行はそのまま改行として、テキストXXXin_連番.txtに保存される
  • 赤矢印の改行ごとに新しいテキストXXXin_連番.txtができる


3️⃣`arcXXX.rb`に回答のコードを書く。(ここに書くコードがAt Coderの答え)


4️⃣test.sh

 `./scripts/test.sh XXX`をコマンドに入れると、2️⃣で作った入力値と出力値を元に正誤判定をしてくれる

#!/bin/bash
set -euo pipefail

usage() {
  cat <<'EOF'
Usage:
  ./scripts/test.sh XXX

Expected layout (recommended):
  problems/arcXXX.rb
  problems/inputXXX/in_1.txt ...
  problems/outputXXX/out_1.txt ...

This script also supports old layouts:
  problems/inputsXXX/, problems/outputsXXX/
EOF
}

[ $# -ge 1 ] || { usage; exit 1; }

XXX="$1"

if ! [[ "$XXX" =~ ^[0-9]{3}$ ]]; then
  echo "ERROR: XXX must be 3 digits like 017" >&2
  exit 1
fi

[ -d scripts ] || { echo "ERROR: run this from AtCoder/ (repo root)" >&2; exit 1; }
[ -d problems ] || { echo "ERROR: problems/ not found" >&2; exit 1; }

rb="problems/arc${XXX}.rb"
if [ ! -f "$rb" ]; then
  echo "ERROR: not found: $rb" >&2
  exit 1
fi

in_dir=""
out_dir=""

if [ -d "problems/input${XXX}" ]; then
  in_dir="problems/input${XXX}"
elif [ -d "problems/inputs${XXX}" ]; then
  in_dir="problems/inputs${XXX}"
fi

if [ -d "problems/output${XXX}" ]; then
  out_dir="problems/output${XXX}"
elif [ -d "problems/outputs${XXX}" ]; then
  out_dir="problems/outputs${XXX}"
fi

if [ -z "$in_dir" ]; then
  echo "ERROR: input dir not found: problems/input${XXX} or problems/inputs${XXX}" >&2
  echo "hint: ./scripts/fill_io.sh ${XXX} in" >&2
  exit 1
fi

if [ -z "$out_dir" ]; then
  echo "ERROR: output dir not found: problems/output${XXX} or problems/outputs${XXX}" >&2
  echo "hint: ./scripts/fill_io.sh ${XXX} out" >&2
  exit 1
fi

shopt -s nullglob

in_files=( "${in_dir}/in_"*.txt )
if [ "${#in_files[@]}" -eq 0 ]; then
  echo "ERROR: no input files: ${in_dir}/in_*.txt" >&2
  exit 1
fi

ng=0
i=1

for in_f in "${in_files[@]}"; do
  out_f="${out_dir}/out_${i}.txt"

  echo "===== case ${i} ====="
  echo "input : ${in_f}"
  echo "expect: ${out_f}"

  if [ ! -f "$out_f" ]; then
    echo "❌ NG (expected file missing)"
    echo
    ng=$((ng + 1))
    i=$((i + 1))
    continue
  fi

  tmp="$(mktemp)"
  ruby "$rb" < "$in_f" > "$tmp"

  if diff -u "$out_f" "$tmp" >/dev/null; then
    echo "✅ OK"
  else
    echo "❌ NG"
    diff -u "$out_f" "$tmp" || true
    ng=$((ng + 1))
  fi

  echo
  i=$((i + 1))
done

if [ "$ng" -ne 0 ]; then
  echo "done: NG ${ng} case(s)"
  exit 1
fi

echo "done: all OK (${#in_files[@]} case(s))"

実際にコマンドに./scripts/test.sh XXXを入力するとこのようにアプトプットされる。

 

fork と clone の違いを整理する

 

fork と clone の違いを整理する

最近 fork と clone がごっちゃになっていたので整理した。

名前 実行場所 操作
fork GitHub 上 他人のリポジトリを 自分の GitHub アカウントへコピー
clone ローカルPC GitHub 上のリポジトリを 自分の PC にコピー

 

 

王道の開発フロー

  1. 他人の main自分の GitHub に fork

  2. 自分の GitHub のリポジトリを ローカルに clone

  3. clone したら main は触らず、ブランチを切って作業

  4. 元リポジトリの変更を取り込みたいときは upstream を設定して pull

 

🔹 upstreamとoriginの違いを整理する

 

相手 操作 目的
upstream fetch 本家の最新取得
upstream/main merge 本家を取り込む
origin pull 自分のGitHubから取得

 

🔹 fetchとpullの違いを整理する

名前 何のこと? 典型的な使い方
origin 自分が clone した GitHub リポジトリ(多くの場合 自分の fork) push / pull する場所
upstream 元のリポジトリ(fork 元) 最新の変更を取り込むとき

 

 

2026年2月の目標【小目標】と2026年1月のまとめ

 

2026年1月のまとめ

🖌️プラクティス

目標勉強時間:50h/month

実施時間:66.5h/month

項目 目標 設定時間 進捗 実施時間
🔹WebアプリからのDB利用 保留 - - 0
🔹Rails の i18n を理解する 修正&合格 5 13
🔹kaminari を使ってページング処理を実装する マージだけ - 1.5
🔹devise を使ってユーザー認証を実装する ひたすら実装 5 21.5
🔹ActiveStorage で画像アップロードを実装する 終わったら着手 残り時間 - 0
🔹コメントを付けられるようにする 終わったら着手 - 0
🔹日報の言及機能を作る 終わったら着手 - 0
🔸その他 ブログ(月報)を書く 5 4
🔸 AtCoder A問題を20個提出 残り時間 26.5
合計 50   66.5



 

🔹Rails の i18n を理解する
1月に指摘事項を修正し、合格をもらえた。大事な部分をメモしておく

gitignoreに関する指摘

gitignoreについて勘違いしていた。自分のローカル用に設定した.gitignoreはPRに含めてはいけない。.DS_Store(Macのみ)とかxxx~(viのみ)とか.idea(RubyMineのみ)とかその人にしか必要ないファイルを含めてはいけなかった。Macのみなどマシン固有のファイルはマシン固有の設定ファイル(~/.gitconfigなど)に書かないといけなかった。

 

不要行の削除に関する指摘

何を勘違いしていたのかわからないが、コメントアウトなどのコードに関係のないところは消してもいいと思い込んでいた。でも少しでもそこをいじってしまうとgitに履歴が残る。それは結局PRに関係のない変更なので、触ってはいけないのだ。自分が書き換えた部分の上下にできた空白とかも同じだ。そうしないとレビューする方が何これ?ってなってしまう。

 

翻訳をする順番

翻訳する順番がいまいち腑に落ちていなかったので、ChatGPTに聞いてみた。

“置き換える場所”を4カテゴリに分ける

1️⃣View の固定文言
→ t(".title") / t("books.index.title") などに置き換え

2️⃣Controller の notice/alert/flash
→ redirect_to ..., notice: t(".created") など(アクション単位が管理しやすい)

3️⃣Model 属性名・モデル名(User / email / postal_code など)
→ config/locales/ja.yml の activerecord.models / activerecord.attributes で管理
※ここをやると form のラベルやエラーメッセージが一気に整う

4️⃣日付・数・通貨などのフォーマット
→ l(Time.current) / number_to_currency + i18n(必要になったら)

 

なるほど、、、

 

 

🔹devise を使ってユーザー認証を実装する

難易度が高かったが大まかな実装は完了した。一度自分の思った感じに出来上がったが、どこの修正がどの実装かわからなくなったため、ブランチを作り直し、細かくgit pushしながら進めたら、何の実装か後でわかりやすくなった。今後も細かくgit pushした方がいいと思った。

あと直さないといけない部分は、翻訳であるが、ボタンの文字やエラーの文字だけ直ってなかったりする。i18nと同じような感じになっているのでここはもう少し復習が必要か。

 

🔸AtCoder

少し出し方のパターンがわかってきた。しかし、途中で20時間以上かけていることがわかった。こればかりやっていると、課題が進まなくなるので、目標値を20問回答から10問に下げる。先月よりは少し時間を短くして、10問/15hにしようと思う

先月実施した内容をまとめた

namacosansan.hatenablog.com

 


 

🖌️1月の反省

  • 学習目標時間50時間は達成できた。
  • 今月はDeviseの課題の提出まで終わらせたかったが、提出までできなかった。
  • AtCoderの出し方、解き方のパターンが少しわかってきたが、1問1時間程度でできるほど簡単ではなかった。

 

 


 

2026年2月の目標【小目標】

プラクティス

今月は大きな予定は少なそうなので、目標を少し高めに設定する

  • 学習目標時間65h/month。週に換算すると16.5h/weekくらい
  • At CoderのA問題を10問/15h実施する。
  • devise を使ってユーザー認証を実装するの課題を提出
  • ActiveStorage で画像アップロードを実装するを着手
  • コメントを付けられるようにするを着手
  • あまりまとまった時間が取れない時は、まとめたいプラクティスチェックリストの中のまとめを作成する。

目標学習内容

項目 目標 設定時間 優先順位
🔹WebアプリからのDB利用 保留 - 7
🔹devise を使ってユーザー認証を実装する ひたすら実装 45 2
🔹ActiveStorage で画像アップロードを実装する 終わったら着手 4
🔹コメントを付けられるようにする 終わったら着手 5
🔹日報の言及機能を作る 終わったら着手 6
🔸その他 ブログ(月報)を書く 5 1
🔸 AtCoder A問題を10個提出 15 3
合計 65  
 

🖌️気になっていて、いつかやりたいこと

  • AtCoderで問題を提出できるようになりたい。
  • クラスが書けるようになりたい
  • まとめたいプラクティスチェックリスト

     Linuxの環境設定とターミナル操作
     SSH
     Ruby on Rails 各種プラグインまとめ
     Rails の基本を理解するまとめ
      Bundler の基本を理解する
      rubocop の使い方
      GitHub
    Nginxの環境設定
      SQLの環境設定
      Sinatraの環境設定


🖌️1月の出来事

今期2回目のスキー。スキーを始めて3年くらい経とうか。おひとり様でスキーに行く時は、温泉施設がついているスキー場に日帰りツアーで行くことにしている。

朝7時くらい集合のバスツアーで岐阜のスキー場まで連れて行ってもらって10時くらいに滑り始め、お昼すぎまで少し滑って、14時くらいで力尽きる。そこから温泉に入り、お酒を飲んで、またバスで帰るコースがお気に入りだ。

 

いくつか行く中で、めいほうスキー場が一番気に入っている。初心者コースが5kmととっても長い。

明宝ハムが有名で、リフトから見えるハムの形をした看板があざとい。

最近のゲレンデのレストランはとってもオシャレ。デミコロッケオムライス、美味しすぎる。おひとり様も結構いるようで、おひとり様用の窓際席でいただく。

 

たいして頑張って滑ってもいないが、自分へのご褒美ビールの後帰宅(完)