半年600時間-プログラミング学習ブログ!

プログラミング学習中+転職活動中! オリジナルアプリは1つ目を(仮)完成。2つ目を制作中!

プログラミング学習ブログ#17 *23週目:32時間

#今週の一言

"時間が足りない事実に焦るが、卒業制作アプリが全てではないので慌てるな!"

#7月2週目の学習記録

#学習開始23週目

23週目の合計学習時間:32H

7/10土曜:2H →メモ機能

7/11日曜:8H ※休日 →メモ機能の実装といいね機能

7//12月曜:8H ※休日 →いいね機能とカレンダー表示切り替え

7/13火曜:4H →DBの修正、整理。paiza

7/14水曜:0H →ワクチンで撃沈

7/15木曜:1H→ワクチン副反応と戦いつつ、ミニアプリ準備

7/16金曜:9H ※休日管理者権限のミニアプリ作成/DBの修正仕上げ/ActiveHash表示

 

"一週間の振り返り"

<先週のTryの確認・23週目にチャレンジしたかったこと>

・プラスアルファを目指した過ごし方

→◎:学習自体は集中して取り組んだ。休日の集中もできた。

 

・オリジナルアプリ:メモ機能・いいね機能・タブの切り替えJS・カレンダーのデータ表示

→△:DBの大幅な修正が発生。機能の実装には手付かず。なんとか修正が終わったので、ここから機能面を進めていく。

 

・paizaは日々、Dランク2問、Cランク1問。

→△:やったりやらなかったり。習慣化にはほど遠く。Dランクは簡単すぎると気づく。1日Cランク一問として継続していく。

 

・課題図書を4つ。できれば5つ。

→✖️:課題図書はまったく触れていないな。。。ちょっと相談事項。

 

<Keep・良かったこと継続したいこと>

・学習習慣は問題なし

→寝ることを意識することで、夜と朝のリズムは良くなっている。ただし、あと3週間しかない現状でのアプリ制作に黄色信号。 どこまで出来るのか、スケジュールの見通しが分からない。

 

・DBできました!

→約一週間ほど格闘していたが、なんとか形になってデータの表示もできた。

残りには、一番面倒なカレンダーの日付の連動があるが、これを今週は解決して機能とデザインに進めたい!

 

<Problem・課題点>

・時間が足りない中で、どう時間を作るのか?

→まず睡眠時間を削るのはやめること。正しいリズムの中で、スッと集中できる環境や、30分でも時間を有効に使っていくこと。まずは卒業までの3週間はその意識を強く持つ。平日は4時間、休日は10時間を最低ラインにする。

 

・アウトプットをサボらずにやること

→アウトプットは常に意識。休日の日は特に。朝の最初に取り組んで記事を書くとか。

 

<Try・24週目にチャレンジしたいこと> 

●オリジナルアプリ開発

・管理者機能・管理者投稿機能

→これは7/19(月曜)を目標に進める。

・日付ごとの表示切り替え機能

→これは7/24(土曜)を目標に進める。平日は主にこの機能を中心に過ごす。

 ・メモ機能/いいね機能/JSの修正

→これは来週にこぼれても構わないが、7/25(日)には入れるようにしたい。

 

・paizaは日々Cランク1問。

 

<オリジナルアプリの候補>

◎メイン制作:情報アプリ

→鋭意制作中

 

●ファンクラブアプリ(後回し制作予定)

→簡単なHPのプラスアルファ版。メインはクレジットカードの機能をつけること。

→DB設計は6月中に完成させたい!

◎イメージ:広瀬香美さんが利用している"Bitfan"が近い

kohmihirose-sing.bitfan.id

 

<一週間の学習日報>

7/10土曜 14:00~14:30/19:00~20:00 交流会/23:00~24:00

・本日の学習時間:2.5時間

 

・今週(22週目)の課題

「オリアプ:メモ機能,いいね機能,タブ切り替え,カレンダー/paizaと課題図書/output」

→オリアプ:メモ機能を進める。実装完成は日曜日。

paiza:できなかった。。。反省

output:おなじみの週一ブログをアップ。明日は技術ブログ。

 

・学習進捗と内容

→メモ機能を少しでも進めておいた。明日はとにかくガッツリ実装を進めていく。

 

・反省と明日の予定

→明日はとにかく実装、実装、実装。天王山の1日目。そして明後日の月曜の休日につなぐ。どちらか1日を頑張るのではなく、どちらもしっかりと学習をして進めること。この2連休に進めないとかなり進捗に黄信号が灯る。その予定で計画を立てているので、じっくりと集中して進めていく。楽しみでもあるが、いったいどんな1日になるのか? 頑張ります。

あと、どういう結果になっても技術ブログをアップすること。

 

============

7/11日曜 9:30〜12:30/13:30〜15:00 途中でや友人とアプリ運営の打ち合わせ/16:00〜17:00/17:00〜18:00オリアプ會/21:30〜24:30

・本日の學習時間:8時間

 

・今週(22週目)の課題

「オリアプ:メモ機能,いいね機能,タブ切り替え,カレンダー/paizaと課題図書/output」

→オリアプ:いいねを押した番組に対してのマイページ用メモ機能を実裝。番組表のidを取得するには、いいね機能を先にやるべきと気づいて中斷。途中段階でmerge。

思考力:paizaを一日一問と思ってやったが、まったく解けない問題に出くわし、2時間近く消費して答えに辿り着かず。

 

・学習進捗と内容

→学習時間自体は問題ではなく、中身が大切な段階になってきた。唯一、気を付けたいのはバランス。

今日は、他の方とのオリアプ状況を聞いて、みんな悩んでいることを知る。

メモ機能を途中で切り上げたこともそうだが、理想と現実をちゃんと比べて進めていく。ノートに書いて、何をしたいか、どういう順番でやるのかを整理してパニックにならないように気を付ける。

 

・反省と明日の予定

→今日の反省点は、paizaに引っ掛かり寝る時間が遅くなったこと。

予想よりも大変な2連休になりそう。

とにかく、明日も貴重な時間をオリアプに費やす。いいね機能がどうなるのか不安。

 

============

7/12月曜 9:30〜11:00/11:00〜11:45CA面談/12:00〜15:00/15:00〜16:00LC面談/20:30〜22:00

・本日の学習時間:8時間

 

・今週(22週目)の課題

「オリアプ:いいね機能,タブ切り替え,カレンダー/paizaと課題図書/output」

→オリアプ:いいね機能を実装していて最終的にDB設計の部分での間違いに気付く。今週は地獄を見そう。

paiza:オリアプで軽く焦り、paizaの時間を後回しにした。気をつけたい。

output:技術ブログ更新。タイトルも過去のものを編集した。

 

・学習進捗と内容

→今日は面談が2つ。昨日も友人との打ち合わせと他の受講生との意見交換もあり、休みの日に交流が増えた。さすがに初対面の人と話すことも慣れてきた。

オリアプに関しては、昨日はメモ機能の実装中に「そもそもいいね機能が出来ないと、どれにメモを保存するのかを特定できない」と気付いた。そして今日は、「いいね機能を実装するには、対象を特定するために番組表の表示の実装を全て終わらせる必要がある」と気付いた。

いいね機能も途中で切り上げ、後回しにしていた番組表とDB関連を実装し始める。そこで、更に大きなことに気付いた。

番組表のテーブルには「開催日・時間・場所・出演者」というカラムを作成しているが、この「出演者」というのが勘違い。出演者は複数いるので、複数のカラムを作成しないければいけない。

同じ名前のカラムを複数作ることは出来るのか? それとも番組表テーブルを作成して、そのテーブルと名前を保存しているActivehashを繋げるのか?

どちらにせよ、Active hashとの関係性は多対多になるかどうか?

色々とクリアにしなければいけないものがある。

一度、切り上げて寝ることにした。

また、明日からどういう形でよDB設計になるのかを再検討する。

これは大変だなと気付いた。

 

・反省と明日の予定

→後回しにしていた番組表周りのDBに気づけたのは良いこと。7月の中盤。ここからどこまで出来るのか? なんとか踏ん張りたい。

明日からは仕事。ちゃんと時間を作ってやること。そして早寝早起き。今週で番組表の表示までは辿り着きたい。

そのあとは、タブの切り替えのJS。

そしてカレンダーの日付けとの連携。

 

============

7/13火曜 18:30~19:30/19:30~20:00/21:00~23:30

・本日の学習時間:4時間

 

・今週(22週目)の課題

「オリアプ:DB設計修正,index表示,タブ,カレンダー,管理者/paizaと課題図書/output」

→オリアプ:面倒だと思っていたDBとひたすら向き合う。中間テーブルを一から学習し直す。ようやく整理ができた。

paiza:Dランクは簡単すぎる。Cランクは難しい。なにこのバランス??

output:特になし

 

・学習進捗と内容

→オリアプ。正直、昨日までの2連休を経ての今日からの仕事は気持ちがしんどい。DB設計どうしよう。どうすれば大丈夫なの?と仕事中にうわの空になりかける。今日は夕方上がりで、19時前に帰宅。そこから交流会に参加。そしてオリアプと向き合う。一つずつノートに書いて整理をした。そもそも、いいね機能の関係性はどうなのか? メモ機能はどうなのか? そもそもユーザーと番組表は「いいねテーブルを挟んで多対多」になっているのだから、アソシエーションが必要なのでは? そして、番組表とActiveHashの芸人名のクラスとの関係性。ここでは「一つの番組に、複数の芸人が出演する」・「一人の芸人は、複数の番組に出演する」ということで、多対多の関係。これは昨日分かったこと。では、Active:Hashにおける多対多の関係をどういう風に解消する? 当然、必要となるのは中間テーブル。ここも、一つ一つノートに書きつつ、ゆっくりと実装。

夜中になりそうなので、もう寝るけど。一つ調べきれなかったのは、この時にActiveHashが絡んでいても「through」は書くのか? 大丈夫なのか? 実際にデータの表示をして分かる部分なので、そこは保留中。

そして、管理者機能。どうやらUsersテーブルの中で管理者を作成することが分かった。adminを使うことも理解した。そこから先の実装は明日以降の宿題。いや〜、しびれる。

Paiza。もうオリアプで疲れた。。。と思ったけど、面談で「忙しいは言い訳ですから、言い訳ですから、、、、」と指摘された声が響くので、負担の軽いDランクから。いや、びっくりするくらいDランクが簡単すぎる。ずっとCランクをやっていたから、ギャップに驚く。そして、調子に乗ってCランクをやっていたら、泥沼。二日連続の不正解。今回は、ちゃんと挙動確認をしていたのになぜ?? いまだに納得いかないが、前に標準入力からの出力の時になぜか”hairetsu[0][0]”と要素数を記述しないと出力されなかった。その時は、どう考えても”hairetsu[0]”が正しいだろ!と思ったけど、今日の問題ではテスト時に”[0][0]”で正しく出力され、本番時にエラーになり。やり直しで”[0]”と元々、自分が正しいと思っていた記述をしたら、ちゃんと正解の挙動をした。やり直しが点数にならないのが非常に悔しい。

前の問題の時は、何か別の環境だったのかもしれない。変にinputをした自分のせいだと反省。勝手な納得をしないように気をつけること。明日はC問題をちゃんと80点以上で回答したい。

 

・反省と明日の予定

→今日は、憂鬱だったDBに向き合ったのを褒めてあげたい。

そして夜間交流会は2回連続参加。次の日曜も仕事後に間に合いそうなので参加したい。

この一週間だけでも、zoomを通して初対面の5人と話した。

実は、壁を作りがちな正確なので初対面の人と話すのは苦手なのだけど、さすがに慣れてきた気がする。

交流会で知り合いも作れたし、あとは有志で集まるチームを運営できるように準備しておく。

明日もDBと格闘する。今はアソシエーションとカラムの整理だけど、明日や明後日以降のデータ表示でエラーが出た時に冷や汗をかくのだろうと想像できる。は〜、コツコツ、なんとか頑張りたい。管理者機能もどうなるのか未知数。

みんな未知の機能をどうやって実装しているのか? 不思議。

 

 

===========

7/14水曜

・本日の学習時間:0時間

・反省と明日の予定

→午前中にコロナワクチンの接種をしたら、副反応で夜から左腕に激痛。もうこれは無理だと判断。寝る。

 

===========

7/15木曜

・本日の学習時間:1時間

・反省と明日の予定

→日中はワクチンの副反応で何もできず。痛み止めを飲みつつ仕事。夜は若干落ち着いてきたので、ほんの少しだけ学習。

管理者機能をつけるために、一度ミニアプリを作成することにした。

 

===========

7/1金曜 14:00~18:00/18:00~19:00オリアプ相談会/19:00~24:30

・本日の学習時間:9時間

 

・今週(22週目)の課題

「オリアプ:DB設計修正,index表示,タブ,カレンダー/paizaと課題図書/output」

→オリアプ:管理者機能のミニアプリが完成!やっておいて良かった。その後、DB設計の仕上げ。やっと整いそう。目処が立ち始めた。

 

・学習進捗と内容

→オリアプ:管理者機能をつけるためにまずは、簡単な投稿アプリを作成し、そこに管理者だけが投稿ができるようにしてみた。結果としては3~4時間くらいで実装完了。ミニアプリも無事に動いたので一安心。これを本番の方にも実装してみる。やっておいて良かったと思う。

夜はDB周りの修正をついに完成させる。ActiveHashにおける中間テーブルの扱い方が分からず、ウンウン唸っていたが、手書きでテーブルを作成して整理していた時に思ったのが「ActiveHashは、固定したデータの保存ができるもので、変動するデータは保存できない」ということ。つまり、芸人の名前自体は「固定データ」であるが、その日の出演者を保存する番組表は「変動するデータ」が保存されていく。つまり、番組表自体はテーブルとしてActiveRecordで管理する必要がある。芸人の名前自体は引き続きActiveHashでの管理でOKのはず。諸々のテーブル間の関係性を整理し、READMEを修正。そして中間テーブルの「EventComesiansテーブル」を新たに作成。Eventsテーブルには「日付・昼か夜か・場所」をカラムとして管理、アソシエーションで「has_many :event_comedians」を設定。これはPictweetにおけるコメント機能と同じ考え方だと気づいた。Tweetsテーブル自体にはCommentsテーブルのidを保存せず、アソシエーションでデータを扱えるようにする。最初は番組表のidもカラムに追加しようと考えたが、手書きで整理している時に、同じレコード内に「一人目の出演者・二人目の出演者・・・」と、複数のidを保存することになるので違うと気付いた。

とりあえず、今夜の作業で無事にActibeHashが動き、芸人の名前を呼び出せるようになる・・・はず。続きは明日。

 

・反省と明日の予定

→相変わらずワクチンによる副反応で、若干の左腕の違和感とダルさがあるけど、だいぶ回復した。大事をとって、休日の今日は午後から始動する。

良かった点として、午後から始動する時に家を出たこと。たぶんダラダラするなと感じたのと、ミニアプリを作成したりDBを考えたりするのが正直「面倒」だと思っていたので、環境を変えたほうが良いと思った。

おかげで、午後から夜まで一気に集中して取り組めた。

夜に1時間ほど交流会。同期の毎週の進捗を確認する。その進捗具合に今日は焦ることになった。みんな着実に進めている。自分もサボらずにやっている方だと思うけど、やっている人はやっているということ。

井の中の蛙だったということに気付かされた。いやー、みんなすごい。自分もラスト3週間でしっかりアクセルを踏み続けないと追いつけないと感じた。自分のダメさにやや落ち込んだが、負のエネルギーをプラスに変えていく。

やることは変わらず、コツコツやっていきましょう。