プログラミング学習ブログ#18 *24週目:42時間
#今週の一言
"粘り強さが全て!"
#7月3週目の学習記録
#学習開始24週目
24週目の合計学習時間:42H
7/17土曜:4H →DB修正
7/118日曜:8H →DB修正・管理者投稿機能
7//19月曜:9H →管理者投稿機能
7/20火曜:2.5H →管理者投稿機能
7/21水曜:6H →管理者投稿機能
7/22木曜 :1.5H→管理者投稿機能
7/23金曜:11H ※休日→投稿機能(同じテーブルに複数データ)/カレンダー
"一週間の振り返り"
<先週のTryの確認・24週目にチャレンジしたかったこと>
●オリジナルアプリ開発
・管理者機能・管理者投稿機能
→○:予想以上に時間がかかったが、今週中に完了させた。やっているうちに新しい昨日の学習が必要になったり、ミニアプリを作ったり、牛歩の気分で一歩ずつ進む。
・日付ごとの表示切り替え機能
→△:今週中は無理で、理想は26日の月曜午前までとか。まったく進め方が検討つかず、悩んだけどノートに手書きで整理していって、処理手順や試せそうなアプローチを見つけ出す。たぶん、なんとかなるかも。
・メモ機能/いいね機能/JSの修正
→×:日曜までに入る、と言っていたが理想論は理想論。現実的には月曜の夕方からとか。JSの修正部分は日付切り替えと同時並行になりそう。
・paizaは日々Cランク1問。
→△:毎日とはいかないが、定期的にやるようになる。朝の勉強会で他人の力を借りつつ継続をしている。
<Keep・良かったこと継続したいこと>
・学習習慣は問題なし
→計算していて40時間を超えたことに驚いた。でも、もはや時間じゃない。できるかできないか、結果の部分だけを注目している。ただし、たくさん向き合ったことはちょっとだけでも褒めてあげよう。まだアプリは未完成だけど。。。
・投稿機能(ActiveHash + 中間テーブル)で保存と表示ができました!
→意外なところに落とし穴。複数のデータを一度に登録したい。その保存先は、ActiveHashを使いつつ中間テーブルへ。さてどうしよう?と思い、ノートにやりたいことをまとめる。順番に何をすれば良いかを考えて試していく。
同時に、この処理って他のアプリだと何にあたるのだろう?と想像して、これはタグの複数登録と似ている!と気づく。さっそくカリキュラムの追加実装を学習。それをオリアプの方に踏襲して進めた。
保存ができたら表示は簡単だろうと思っていると、なかなか思うようにいかない。同時に、カレンダー機能に関わる日付のデータ部分や、JSでの要素取得部分も関わってくる。これも、焦りつつも立ち止まってノートに書いて整理する。
・焦りの中で生活リズムを守ったこと!
→睡眠時間を削るのはやめようと思い、そこを守ったおかげで健康に進めることができた。これは褒めてあげようと思う。
<Problem・課題点>
・残り2週間の逆算スケジュールを考えること
→思い通りにいかない中で、最終発表までの公開は守りたいところ。何ができるのか?を考える。
・7/25~7/31:カレンダーの切り替え表示・いいね機能・メモ機能(途中まで?)
・8/1~8/6:メモ機能・デザイン・デプロイ
現実的にはこんなところかなと思う。
追加実装もたくさんしたいけど、それはまた卒業後に。
<Try・25週目にチャレンジしたいこと>
・めげずに着実に、なんとなくで進めずに、オリアプの制作をやること
・いいね機能は確実に終わらせる
・理想はメモ機能が終わって、デザインに入るところまで
<オリジナルアプリの候補>
◎メイン制作:情報アプリ
→鋭意制作中
●ファンクラブアプリ(後回し制作予定)
→簡単なHPのプラスアルファ版。メインはクレジットカードの機能をつけること。
→DB設計は6月中に完成させたい!
◎イメージ:広瀬香美さんが利用している"Bitfan"が近い
<一週間の学習日報>
7/17土曜 7:00~9:00/18:30~19:30/21:00~23:30
・本日の学習時間:4時間
・今週(22週目)の課題
「オリアプ:DB修正/管理者機能/カレンダー/いいね/paizaと課題図書/output」
→オリアプ:やっとDB修正が終わった。これでDBやテーブルのアソシエーションを気にせずに進められる。はず。
・学習進捗と内容
→金曜に続いて、各テーブルの関連性を整理しながら修正に臨む。機能の夜から、ようやく整理されてきてActiveHashの中間テーブルも問題なく作動してデータが表示されるようになった。今日はその確認と、新たに、「昼か夜か」の選択部分と「演芸場」の選択部分も固定データなのでActiveHashに変えた。当然、番組表を保存している「eventsテーブル」では、カラムをintger型に変えて、アソシエーションも組み直す。これも、なんとか土曜日中に完成。仮のデータをDBに入れて、@event=Event.find(1)の変数から、レコード1の各データをindexビューに出せた! いや〜、週の最後に出来て良かった良かった。。。
と思いきや、Herokuにpushしたら、ブラウザにエラー画面で表示がされない。
最初は、memosテーブルのファイル名を変更していたので、もしかしてDOWN状態じゃないときにmigrationファイルをいじったのか??と思ったけど、ローカル環境ではなんの問題もなくmirate出来ていたし、挙動も問題ない。なぜ??と思ったけど、heroku側でDBのテーブルに異常があるときの解決方法がややこしすぎて、一度、Herokuにアップしているアプリを削除。もう一度heroku上で作り直した。。。で、再度やってもエラー。
もしかして、migrationファイルの問題以外にも、コントローラー側で@event=Event.find(1)と記述したままなのがダメなのか?
Heroku側のDBには何のデータも保存されていないし。。。
ここで深夜24時半。一度寝て、明日の朝にコントローラーの記述を消して、もう一度Herokuへpushして、今まで通りの表示がされるかを確認する。どうか、ちゃんと表示されると良いのだけど。。。
・反省と明日の予定
→いいわけだけど、精神がめちゃくちゃでオリアプ以外のことを考えられない。今日、月曜の面談用に就活の希望条件を整理しておくことを思い出した。いっそのこと、仮病で3連休ぐらい取りたい。。。
冷静に考えると、決して「卒業発表で良いアプリを作っておくこと」が最終目標ではないので、ちょっと「卒業までに!」の思いが強すぎるかもしれない。受講生側でも、その意識が強い人が多いので(Twitter界隈とか)、そこに引っ張られすぎたかなと思った。もちろん、期日までにどう戦うかも大切なので、現実と向き合いながら進めていくこと。落ち着いて考え、進めていく。
卒業発表94期生。自分がこんな状態なので、発表者全員を「立派だな〜」と思って見ていた。そして、改めて、卒業制作はまったくのゴールではなく、むしろカリキュラムが終わってからの人生でどのように学習をしていくのかが圧倒的に大切だなと再認識。
元気が出てきたので、頑張ってHerokuのエラーと向き合う。
============
7/18日曜 7:30〜8:30/15:00〜16:00/16:00~17:30交流会/18:00〜19:30/19:30~20:00夜間交流会/21:00〜22:00
・本日の學習時間:6時間
・今週(22週目)の課題
「オリアプ:管理者投稿機能,カレンダー連動,いいね機能/paizaと課題図書/output」
→オリアプ:管理者機能を付けた。あとは投稿機能のデータ確認。その後、複数のデータを同一テーブルに送信する方法を解決。
思考力:なし
output:管理者機能のミニアプリをブログに書き始める。明日アップ予定。
・学習進捗と内容
→DBを整理できたことでこんなにスムーズに進むのかと、今更感動している。同時に、どれだけ前提の設計が大切なのかを身に沁みる。
早く見た目に入りたくて急いでも良いことはないのだと知った。個人開発だと特に。
見た目に意識が行きがちだけど、そこは後からで出来るから基礎部分の設計をちゃんとしないと。
有志で集まる交流会。ちょっと長くなりすぎた。自分が疲れて集中力を切らした。元がお喋りで、基本的に人の話を広げようとしたり、おもしろくなるまで粘ろうとする癖があるので、時間管理を考えていなかった。よくないなと気づけたので勉強していく。
・反省と明日の予定
→夜は充電が切れたけど、卒業後に向けての活動もできたと思うし、DBがすっきりしたのでガンガン開発を進めつつ、今後の学習継続のことも楽しんで進めていこうと思う。
============
7/19月曜 6:30〜9:30 paiza会1H/12:30〜14:00 転職活動,オリアプ/14:00~15:00キャリア面談/15:00~16:00オリアプ/16:00〜17:30個人面談/17:30~18:00オリアプ
・本日の學習時間:8時間
・今週(22週目)の課題
「オリアプ:管理者投稿機能,カレンダー連動,いいね機能/paizaと課題図書/output」
→オリアプ:投稿による番組表の作成ができた。あとは複数の芸人名を一気に保存できるか確認して投稿機能終わり! いよいよカレンダー連動。
思考力:paizaはCランク一問で80分消費。答えは出たけど、ポイントにはならず。標準入力やっかいすぎる。
output:ブログは予告通りアップ。管理者のミニアプリとしては、最低限の機能だけどわかりやすいのでは?と思う。今後もアップを続ける。
・学習進捗と内容
→オリアプは昨日と変わらず。投稿機能が完成に近づいただけか。ちょっと進捗がよくないかも。明日以降で取り戻そう。
面談での最低目標と希望的観測の考え方は、いつかそれが一つに重なったら良いなと共感。今週の最低目標目指してやるのみ。
Paizaは、今日から朝のpaiza会を6時半スタートで。軽く挨拶だけして、あとはzoomで繋ぎながらひたすらもくもく。良い時間。
一方で、人は慣れるものなので、そこを乗り越えてサボらない仕組みを意識したい。でも、まずは運営として動くこと。今の10名弱の人数で上手くそれぞれのプラスになるようにやれればと思う。
・反省と明日の予定
→今日は、Googleカレンダーを振り返ると色々とイベントが多かった。面談も二種類。転職活動のあれこれも、オリアプ、paiza、合間を縫っての予約していた病院。今後は、こうやってさまざまな予定がある中で学習をすることになる。今までとは少しずつ変わっていくのだろうなと感じた。
優先順位を意識することは、以前と変わらず。オリアプも転職につながるものなので、完全な別作業でもないし。なにをするかを整理して進めていく。
============
7/20火曜 8:30~10:00 オリアプ/22:30~23:30 paiza
・本日の學習時間:2.5時間
・今週(22週目)の課題
「オリアプ:管理者投稿機能,カレンダー連動,いいね機能/paizaと課題図書/output」
→オリアプ:コードはあまりかけなかったけど、ノートに道筋と細かい手順をまとめた。これを元にどんどん実装する。
思考力:paiza、いままでやっていなかったDランクだけを集中して解いてみた。改めてCランクとのレベル差に驚愕。なぜDランクはこんなに簡単なの?笑
output:特になし。ちょこちょこTwitterに日々の積み上げを投稿している。
・学習進捗と内容
→オリアプの実装を進めるのみ。今週がうまくいったら、形にはなるんだけど。勝負。
Paizaは朝の勉強会を経て、うまく付き合っていきたいし、他の受講生とともに積み重ねていきたい。
・反省と明日の予定
→なぜか疲れてしまい、仕事がしんどかった。でも、しっかり学習時間は確保した。
また、明日の朝のpaiza勉強会があるので寝る時間も意識できている。
良いリズムで週始めを過ごしているので、このまま水曜・木曜も仕事をしつつ時間をコントロールしていく。
============
7/21水曜 6:30~10:00 paiza,オリアプ/ 19:30~20:00交流会/21:00~23:30オリアプ
・本日の學習時間:6時間
・今週(22週目)の課題
「オリアプ:管理者投稿機能,カレンダー連動,いいね機能/paizaと課題図書/output」
→オリアプ:formオブジェクトによる投稿機能の実装
思考力:paiza Cランク1問
output:Twitterをちょこちょこ
・学習進捗と内容
→オリアプは、どうしても芸人名のIDが中間テーブルに保存されない。仕組みとしてはタグ機能が近いと思ったので、課題図書のタグ機能をやって、新たにclassを作ってみたり、試行錯誤。
送信したパラメータには、ちゃんと芸人名のIDが含まれているのは分かるので、これをどう保存するのか、、、
また寝て、明日チャレンジ。
paizaは、朝の勉強会でCランク問題をやる。今日は時間内に出来たが、早くはないのでスコアは伸びない。いつか右肩上がりになる日はくるのか。コツコツやる。
・反省と明日の予定
→仕事の日にしては、朝と夜とバランス良く学習が出来た。良かったと思う。
来週までにカレンダーの日付連動表示の予定だが、さっさと投稿機能の完成をしないとヤバイ、、、
ここが完成したら大きく前進するんだけど、ずーっと山が続く。さて、どうやって進めれば良いのか。試行錯誤。
夜間交流会に参加。今月4回目? 土曜日も参加予定。これで一旦終わりにしようかと思う。
木曜と金曜で前に進めるのか、解決出来ずに終わるのかが、完成・未完成の山になりそう。久々にカリキュラムに関する質問も上手く使おうと思う。
============
7/21木曜 22:00~23:30 オリアプ
・本日の學習時間:1.5時間
・今週(22週目)の課題
「オリアプ:管理者投稿機能,カレンダー連動,いいね機能/paizaと課題図書/output」
→オリアプ:管理者機能というか「formオブジェクト関連」の実装
思考力:なし
output:なし
・学習進捗と内容
→オリアプは、なんとかformオブジェクトで中間テーブルと番組表テーブルへの保存が完成! ActiveHash+中間テーブルというややこしい構造だったが、仕事をやりながら形にできて良かった!
ただし、投稿に関して残る問題が「一度に数十人の芸人データを中間テーブルに保存する」方法。今は一人だけの保存しかできていない。
課題図書のタグ機能をやりつつ実装したが、ここから先は自分一人の力になっていく。どうすれば良いのか。複数タグの登録と形は似ているはずで、ザーッと調べて雛形は作ったけど、今はエラー状態。なるべく早く完成させて、金曜〜日曜の3日間でカレンダーの切り替え表示を形にしたい。
時間が過ぎていくが、この二つができれば、ほぼ完成で、あとは追加実装の気分!
明日が大事。カレンダーの日付切り替えの実装を始められるかどうかが肝。
・反省と明日の予定
→朝が学習できずで、夜もダレたけど、せめて問題を一つ解決してから寝ようと思い取り組む。そのおかげで、見事にformオブジェクトのデータ保存が完成した。残りは、中間テーブルに一度の送信で複数のデータを登録する方法。やるしかないですね。途方に暮れた一人だけの芸名保存も、なんとかできたし。考えて、考えてやるだけです。(期限がなければ、こんな楽しいことはないのに!笑)
明日は朝にpaiza会。そこからオリアプ〜13時ランチ会〜オリアプ〜オリアプ〜オリアプ・・・寝る。
ポイントとしては、たぶん朝から動いている分、ランチ会のあとにスイッチが切れそうなので、そのタイミングで外に出て学習をすること。
さ、頑張りましょう!
============
7/21金曜 6:30~8:30 paisa /11:30~13:00 オリアプ/13:00~14:00 ランチ会/14:30~17:30 オリアプ/20:30~23:30 オリアプ
・本日の學習時間:9.5時間
・今週(22週目)の課題
「オリアプ:管理者投稿機能,カレンダー連動,いいね機能/paizaと課題図書/output」
→オリアプ:formオブジェクトに関して、複数のデータを送信・保存が完成。カレンダーはイベント表示が完成。あとは日付選択。
思考力:paisa Cランク1問
output:エラーブログの下書き1本
・学習進捗と内容
→オリアプは、複数人のidデータを一度に保存する方法で難儀。一つ一つ、今データがどんな状態で保管されているのか、この時点でのパラメーターは?と辿りながら、どうすれば保存されるのかを考えて実装ができた。最初は、とりあえずformだけ2人分を作ったが、そうすると2人目のidだけがparamsに含まれる。上書きの状態。そこで、二人のidを保存するには、配列の形が良いと思い、検索しながらformで配列保存の方法を試す。次に配列保存ができたあとは、それを一つずつ抜き出して保存しないといけない。配列データをコントローラーからsaveメソッドへ渡すこと、そしてsaveメソッドでeachメソッドを使用して一つずつidを保存する方法を考える。タグの複数登録を参考に進めた。午前中〜午後までかかったが、無事に成功! 本番環境でもエラーなく保存された。
さて、夕方はメインのカレンダー機能。正直、どう進めればいいかの手順を考えられていなかったので、何をしたいのかをノートに書き出すところから始める。その後、その処理に対しての記事を5~6本ほどバーっと読み漁り、simple_calendarでできることを確かめる。日付の選択による切り替えはJSがかかると思うので、まずはカレンダーの日付に、すでに保存されている番組表のタイトルがでるように実装した。
意外と初めてだったのは、日付での条件分岐。1~10日は上旬、11日〜中旬、20日~は下旬。寄席は大きく3つに分けて出演者を入れ替えるので、そこをビューに記述した。うまく反映されて本日は終わり。明日は日付の選択と出演者の切り替えです。たぶん丸1日以上かかりそう。日曜に終われば最高のつもりで進めていく。
・反省と明日の予定
→paiza勉強会は、さすがに自分がzoomを発行しているので寝坊ができない。今日も無事に起きて、いつものお二方も参加。朝からリズムを作って1日学習に集中できた。オリアプも当初はどうなるか不安だったが、なんとか前には進めているなと実感。とはいえ、これからのタグ切り替え、日付選択がメイン中のメイン。これをどう倒す?かで、全てが決まる。ささっと2~3日で全部できたら良いのだけど。とにかく、投げ出さずにコツコツとトライ&エラーしかない。明日も休日。しっかりと向き合うこと。