Eat, Play, Nap and Code

食とあそびと昼寝とプログラミング学習

週報 2021/5/3(月)〜2021/5/9(日)

📚 1週間ふりかえり

こんにちは。GWも終わってしまいましたね。 私はGW中遊んだりプログラミング以外の学習をしていたりで、フィヨルドブートキャンプの日報も3日ほど空白期間を作ってしまいました。 後半になってやる気が戻ってきたので課題や競プロをやったりしました。 自分のような無職で勉強している人にとって、GWみたいな長期休みはルーチンが崩れるのでちょっと辛いな〜と思います。まあ普段働いてる人にとったらムカつく発言だと思いますがw

今週は、先週末から取り組んでいたRESTの課題にやっと合格しました!🥳 あとは、ブートキャンプ内でちょっと競プロの流行?が生まれていて、自分ももっと強くなりたいと思うようになりました!! とりあえず、ABCのC問題をコンスタントに正答できるようになりたい。

📚 もくじ

📚 目標と成果

目標 成果 来週の課題
『Webを支える技術』読了 OK JSON、HTML、HTTPもう1回読もう
TwitterURI再設計の課題合格 OK Sinatra課題1度提出
Sinatraの課題でやるべきことを理解して道筋を決める タスク分割した もうちょっと詳細に
ブログ作ろう!!! ダメでした Sinatra終わったらやりましょう

📚 学習時間

日付 時間
5/3(月) 02:00
5/4(火) 01:00
5/5(水) 02:00 ​
5/6(木) 00:30
5/7(金) 06:00
5/8(土) 04:30
5/9(日) 04:30
合計 20:30

📚 週報

📅 5/3(月)~5/6(木)

💪 やったこと

🍕 感想

  • まる1日学習時間が確保できないと、中途半端になっちゃいそうでSinatraの課題に着手できていない。READMEを眺めてみたが、全く理解できないので『Webを支える技術』を読み直したりしていた。→メンターさんより、手を動かしながら読んだら理解できるかも?とアドバイスをいただく。

📅 5/7(金)

💪 やったこと

🍕 感想

  • カナダで2ヶ月プログラミングブートキャンプに行った方の話を聞いて刺激を受けたので、自分も2ヶ月めっちゃ頑張る(当社比)ことにした!とりあえず7/7まで、5時間〜8時間の学習を毎日続ける。Discordのニックネームも期間限定で改名(eatplaynap→addcommitpush)した💪 😾
  • Sinatra、ドットインストール課金分を見ることにした。そのほうが効率的な気がする。

📅 5/8(土)

💪 やったこと

  • ドットインストール課金してSinatraの続きを見る。erbのファイルにシンタックスハイライトを効かせてくてVSCodeの設定ファイルを見たりしていた。この設定ファイルがJSONで書いてあることに今さらながら気づいた!
  • 動画見て、メソッドの使い方がちょっと分かったのでとりあえず課題を書き出してみることにした。基礎ぐるぐるやってるだけど進みが遅いので、壁にぶつかったらまた戻ってくればいいかな。(設定ファイルどこに置こうかな…rubocopも通さなきゃだし、ちょっと考えるのめんどくさい)
  • 京セラプログラミングコンテスト2021(AtCoder Beginner Contest 200) - AtCoder参加。初めて時間内にC問題まで行けたんだけど、TLEになってしまい、やる気を失って寝た。計算量とか言われるともう今の自分には手に負えない気がしてしまう。

🍕 感想

  • ドットインストール課金してみたけど、途中でJavaScriptの話になってしまってよく分からなくなってしまった。
  • ActiveRecordというものも出てきたけどよく分からなかったので、プレミアム会員のうちに見て勉強してみようかな。
  • VSCode拡張機能設定するのめっちゃめんどい…

📅 5/9(日)

💪 やったこと

  • 新しいSinatra課題用のディレクトリを作り、一覧表示のページだけ作ってみた。こんな簡単なページでもめちゃくちゃ考えるべきことと調べることが多くて、何から手をつけたらいいものか…となってしまった。HTMLを忘れている気がするので、ちょっと復習もしたい。

image.png

  • やることリストももっと詳細にしたほうがよさそう。この課題、CSS上級並にやることが多い!
  • 土曜のABCのC問題の復習を解説動画を見て行い、コード書き直した。数学が怖いので解説に今まで触れてこなかったけど、動画はとても分かりやすかったので今後も見るようにする。
# 😭 TLEになったコード
n = gets.to_i
array = gets.chomp.split(" ").map(&:to_i)
pairs = array.combination(2).to_a
i = 0
pairs.each do |pair|
  x = pair[1] - pair[0]
  if x % 200 == 0
    i += 1
  end
end
 
puts i

# 😄 ACになったコード
n = gets.to_i
a = gets.chomp.split(" ").map(&:to_i)
array = a.map {|element| element % 200}
hash = array.group_by(&:itself).map{|key,value| [key, value.count]}.to_h
ans = 0
hash.each_value do |value|
  ans += value * (value - 1) / 2
end
 
puts ans

🍕 感想

  • プログラミングを勉強してよかったな〜と競プロの問題を解いてるとき思う。コードを書いたり調べたり試したりするのがめちゃ楽しい。海外に行ったときに「英語勉強しててよかったな〜」と思うのと似てるかも。
  • Sinatraの課題が進まないからつい競プロやってる感じで、それはよくないかもしれない。
  • もくもく会に参加して、いつも夜やってる英語の勉強ができたので、夜英語を勉強してた分は技術書を読む時間にしようかな。逆でもいいかもしれない。

📚 来週の目標

  • Sinatra課題のタスクをもうちょっと詳細に詰める
  • HTMLの復習を軽くやる
  • Sinatra課題1度提出する
  • ActiveRecordのドットインストールの講座を流し見
  • やる気を失わずにやるべきことをやる

週報 2021/4/26(月)〜2021/5/2(日)

📚 1週間ふりかえり

一週間早すぎてびっくりしました。こんにちは。 今週は何をしていた記憶もないです。ER図の課題は合格しました! 多分勉強してたんだと思うので、週報を書きながら思い出したいです〜!

📚 もくじ

📚 目標と成果

目標 成果 来週の課題
RESTの課題を終わらせる 課題提出した 合格
『Webを支える技術』を半分読み終える 1/3読み終えた 読了したい
TwitterのER図を作る課題合格する 合格した! -
なんでもいいから個人ブログ早く作る!! 作れてない 来週こそ

📚 学習時間

日付 時間
4/26(月) 05:30
4/27(火) 05:30
4/28(水) 04:45 ​
4/29(木) 03:30
4/30(金) 03:30
5/1(土) 02:30
5/2(日) 01:00
合計 26:15

📚 週報

📅 4/26(月)

💪 やったこと

  • 『Web技術の基本』を読み直しながら、RESTについて学ぶ。
  • RESTとはWebの設計思想。下記の4つの原則からなる。
    • 統一インターフェイス(あらかじめ定義された方法で情報がやりとりされる)
    • アドレス可読性(全ての情報がユニークなURLの構文で示される)
    • 接続性(やり取りされる情報にはリンクを含めることができる)
    • ステートレス性(やりとりは1回ごとに完結し、前のやりとりの結果に影響を受けない。このリンク先のハンバーガーの注文での例示が分かりやすかった)
  • RESTの思想に基づいて設計されたWebシステムをRESTfulなシステムと呼ぶ。
  • 具体的にRESTfulなURLがどういうものなのかはよく分からなかった!明日また考える。

🍕 感想

  • 色んな方の日報を読んで、だいたいどんな感じで進めればいいのかの概観を把握することに務めた。
  • 参考図書の『Webを支える技術』はとてもいい本だけど、内容はなかなか難しいみたい。しかし時間の投資だと思ってしっかり読むのがオススメされていた。自分はSQLでの反省を踏まえ、しっかりと読むことにした。1ヶ月くらいかかってもいいので、ちゃんと読み通したい。→メンターさんより、『Web技術の基本』を読んでいればそれほど難しくはないとのコメントをいただいた!
  • 『Web技術の基本』の中で、ブログが動的ページの例とされていて少し驚いた(著者が更新するまで変わらないと思った)が、確かには てぶの場合でもコメントやスターなどがつくことで、状況に応じてコンテンツが変わっているか。

📅 4/27(火)

💪 やったこと

  • RESTfulなURLについて学ぶ。
    • URIはリソースを示すから名詞のみで構成させる。
      • /api/getUsersではなく/api/usersがRESTful。
    • パス名は、小文字とダッシュ-で構成させる。
      • service-api.com/usersservice-api.com/app-setupsなど。
    • attribute(属性)はserver_classのようにアンダースコア_を使う。
    • リソースを表すとき、IDだけだとエンドユーザーに分かりづらいので、https://service.com/apps/{app_id_or_name}のようにIDと名前どちらも受け入れるようにできる。
  • 『Web技術の基本』を読み進める。
    • YouTubeNetflixプログレッシブダウンロード配信。オンラインで映画をレンタルするときは、キャッシュ期間が決められてるということかな。
  • SinatraRailsと同じくRubyフレームワークのひとつ。知らなかった〜というかきっと何度も聞いたことあるんだろうけど理解してなかった。
  • スマホとかのアプリとWebブラウザの関係、知らなかった。どちらもWebサーバーとやりとりを行うWebクライアントというソフトウェアだけど、アプリはそれぞれに最適化された専用のクライアントプログラムが用意されている。

    🍕 感想

  • Web技術の基本、点と点が線になる感じで、読んでいてとても面白い!
  • 新しく知ることが多すぎるとストレスだけど、うっすら聞いたことのあったあれってこのことだったのか〜!という瞬間がたくさんあると学習は楽しい。
  • なので、エンジニアに限らず色んな人の話を(わからなくても)聞いて興味のアンテナを広げるのは大切だな〜と思った。最近雑談タイムの参加していなかったけど、週1回は必ず参加するようにしたい。

📅 4/28(水)

💪 やったこと

  • 『Web技術の基本』を読み進める。
    • Googletwitterアカウントの情報で会員制サイトの登録ができると、ユーザーは個別にアカウント管理しなくてよいから便利だし、運営者側は個別に利用者の個人情報を管理する負担がなくなって便利。
      • 思えばGoogleのアカウントを作ったのは2008年くらい?で、高校の先輩にgmailを作れと言われたのがきっかけ。そのとき初めて設定したeatplaynapというアカウント名をずっと使いつづけている。
    • OAuthの読み方はオーオウス
    • ロボットじゃないことを証明するパズルはCAPTCHA
    • 歪んだ文字を読むやつを考案したのはDuolingoを作ったルイス・フォン・アン https://www.lifehacker.jp/2014/05/140519duolingo.html
    • データベースの物理設計について勘違いしていた。「データが文字列か数値か」とか「数値であれば整数か少数か」とかの検討は論理設計の一部かと思ってた。物理設計は、ハードウェアとかの話かと思ってた。
      • ER図を書くところまでが論理設計で、それ以降より具体的な作業が全て物理設計になる。達人の本(p.29)にも、論理設計は、一旦「具体的で実装レベルの条件」を脇に置いて行うと書いてあるので、自分が想像してたものよりずっと抽象度の高い作業みたい。逆にいうと、ER図を作っただけでは本当にラフスケッチ段階だとwakatta😄

🍕 感想

📅 4/29(木)

💪 やったこと

  • 『Webを支える技術』を読み進めつつ、TwitterURIを設計する課題にちょっと取り組む。使うHTTPメソッドはPOSTとGETだけになりそうだけど、「ツイートに返信」「リツイート」もPOSTでいいかな?
  • ダメな例については『Webを支える技術』に載っているけど、理想的な(RESTfulな)URIが何なのかわからないから、手を付けるのがちょっとむずかしい。
    • と思ってたけど、ブートキャンプのサイトの設計を見ればいいことに気づいた。
  • 階層構造にできるところは階層で表して、難しそうなところはマトリクスURI(p.62)を使って表現できそうかな?

🍕 感想

  • 頭痛であまり進まなくて残念。まあ祝日だからいいか…
  • HTTPのメソッド、POSTとPUTの使い分け方がよく分からないな。

📅 4/30(金)

💪 やったこと

  • 『Webを支える技術』を読み進める
    • クライアントのアプリケーション状態とは、クライアントがシステムを使ってる間のやりとりで発生した情報のこと。
      • 別名はセッション状態
      • システムにログインしてからログアウトするまでの一連の操作をまとめて「セッション」と呼ぶため。
    • ステートレスなアーキテクチャでは、サーバはクライアントのアプリケーション状態を覚えない。クライアントが自らのアプリケーション状態を覚えておき、リクエストのときに自己記述的メッセージでサーバに都度伝える。
    • HTTPのメソッドは8個しかなくて、そのうち2個(TRACEとCONNECT)はほとんど使われてないので実質6個。
      • GETが最も利用頻度が高いメソッド。
      • POSTは子リソースの作成の使われるメソッド。例) /listの下に/list/item5を作成
      • POSTではリクエストボディにキーワードを入れることができるのでGETではURIに入れざるを得ず検索できないような長いURIを検索させることができる。
  • ブートキャンプのサイトの設計について、とりあえず目についたページのパスを調べてみた。
    • ヘルプというページはDocsの一部。
    • Q&Aは/questionsという親から行く場合と、//practices/#{practice_number}/questionsから行く場合がある。
    • 日報・提出物・ポートフォリオは個人や課題に紐付かない。→Twitterのツイートもそうかも。
      • その場合、リツイートとかはどういう扱いになるかな?

🍕 感想

  • Twitterの課題今日提出したかった〜なんかお腹が痛くてめっちゃ早く寝てしまった。
  • やるべきこととできないことが多すぎて落ち込みがちかも。
  • あ〜〜〜早く海外旅行したい〜〜〜!!!

📅 5/1(土)

💪 やったこと

  • とりあえずTwitterの再設計の課題提出してみた。
    • 影響されるから見ないでいた本家のURIと結構違うので自信がなくなってきたが、まあいいや。
  • これからは次のSinatraの課題に入りつつ、Webを支える技術を読み進めるつもり。

🍕 感想

  • Twitterの再設計の課題、とりあえず一度出してみることにした!よくわからないので一度フィードバックをもらってから考えたい。
  • YouTubeの登録者がちょっとずつ増えて嬉しい🥺自分の成長の記録が主目的なので、人気になりたいとか収益化したいという気持ちはないのだけど、見てくれている方がいると思うとモチベーションが上がるので本当に感謝です。
    • 最近ベタ書きしてからメソッド化するのに挑戦しているので、メソッドってどう定義するのか気になる人は見てもらうとちょっと役に立つかも…(?)

📅 5/2(日)

💪 やったこと

  • Twitterの再設計の再提出した〜。メソッドの理解が曖昧で何でもPOSTを使っていたけど、Qiitaの記事を読み直して、PUTを使うべきでは?と思う箇所が出てきたので修正修正。指摘をいただけると理解が深まってイイネ。

    登録だけ/eventIdが無いのは/eventIdが自動採番されるためです。/eventIdが振られたイベント(一つのリソース)に対し異なるメソッドで取得、更新、削除などを行います。RESTではこのようにHTTPメソッドを利用するというインターフェースの統一が図られている為、サービスが利用しやすくなっています。

🍕 感想

  • この日の夜はYuka Masuda (@yukamasuda) / Twitterさんの主催されている、海外で働いている・働きたい女性エンジニアDiscordのコミュニティで自己紹介LTをして、他の方の話を聞いた。
  • 私は今すぐに海外で(どこでもいいから)ジュニアエンジニアとして働きたいという希望はないので、全部が自分に当てはまる話ではなかったけど、見聞が広がったし自分のやりたいことも認識できたので、色んなコミュニティの話を聞くのは大事だな〜と思った。

📚 来週の目標

  • 『Webを支える技術』読了
  • TwitterURI再設計の課題合格
  • Sinatraの課題でやるべきことを理解して道筋を決める!
  • 来週こそブログ作ろう!!!

週報 2021/4/19(月)〜2021/4/25(日)

📚 1週間ふりかえり

こんにちは。もうすぐGWですね〜。花粉が落ち着いて、暑すぎず寒すぎない、このくらいの気温が1年中続けばいいのにと思います。 今週は生理で休んでる日もありましたが、午前中しっかり勉強するという流れが出来てきていい感じです!

あと先週の週報でバイトしよっかな〜と書いてましたが、1社落ちたので今の所はもういいや!!と諦めモードです。 勉強に集中するためにバイトでもするかな〜という浅はかさがにじみ出てたんでしょうか😘 まあ最近は集中できているので、落ちてよかったかもしれないです。

Netflixを見てるだけでお金になるバイトがあったらご連絡ください!!!

📚 もくじ

📚 目標と成果

目標 成果 来週の課題
進捗がなくても毎日日報をつける OK 引き続き
Udemyの動画をできれば全て見る 必要な箇所は全て見た 必要になったら続き見る
YouTubeでの活動を記録するブログを書く 別ブログを作るアイディアがでた さっさと作ろう

📚 学習時間

日付 時間
4/19(月) 04:00
4/20(火) 05:30
4/21(水) 05:30 ​
4/22(木) 01:30
4/23(金) 03:30
4/24(土) 02:15
4/25(日) 03:00
合計 25:15

📚 週報

📅 4/19(月)

💪 やったこと

  • 引き続きUdemyの講座SQLの復習(というか、ちゃんと理解してないまま進めたから復習じゃなくて新規学習かも)。
  • Udemyの課題はInstagramのDBクローンを作る課題なので、TwitterのER図を作る課題の参考になりそう。

🍕 感想

  • SQLのことを少し理解できてきたら、『楽々ERDレッスン』の課題の解説が少し理解できるようになってきたので嬉しい🥳
  • ひとつ前のプラクティスである、「SQLの基本を理解する」課題の終了条件を、個人的にはできればもっと厳しくしてほしい〜と思った🥺『ゼロからわかるデータベース操作』を読み終えて理解する、とか。
  • アルバイトの面接に行った。CS業務のバイトなんだけど、プログラミングの学習をしてる話をしたら「ポートフォリオあります?」と聞かれた。考えてみるとそういうものは特にないや。そしてあまり面接の手応えはよくない😞
    • メンターのりほやんさんに、GitHubでlsコマンドやwcコマンドのソースコードを見てもらったらいいかも!とアドバイスいただいた。次聞かれたらそうしよう。

📅 4/20(火)

💪 やったこと

  • Udemyの講座のInstagramのクローンのER図を自分で書いてみる。 image.png)
  • usersからfollowsに伸びる矢印がよく分からなかったが、大名の動画を見たら「1:多」の矢印を2本引けばよさそうなのでそうしてみた。
  • ER図を作るdrawio全然使いこなせない…。SQLからER図を自動生成するソフトウェアで答え合わせできないかな?と思ってちょっと調べたけど難しそうで使いこなせる自信がないので保留。

🍕 感想

  • Udemyの講座では、いろんなデータを取り出す課題に取り組んだんだけど、ER図を書いておいて、視覚的にどういうクエリを書けば良いのかイメージできたのでとてもよかった。
  • サブクエリの理解がまだ曖昧。
  • ここまで来るのが長かったけど、やっと理解が進んでいるという手応えが出てきた気がする。やっとスタート地点に立った感じ。
  • ポートフォリオの件、暇なとき静的サイトを自分で立ち上げてみようかな。JekyllとGatsbyで迷い中だけど、NotionBlogも良さそう。

📅 4/21(水)

💪 やったこと

  • SQLの復習はあらかた終わったので、『達人に学ぶDB設計徹底指南書』と『楽々ERDレッスン』の、ER図作成に関わりが深そうな箇所(正規化、エンティティの抽出、リレーションを結ぶ)を復習。

🍕 感想

  • DB設計の本2冊どちらも難しいけど、読んでてどこが必要かが検討がつくし、内容が分かる(SQLの部分とか最初ちゃんと読んでなかった)ので、最初に読むときの100倍楽だった。
  • 達人に学ぶ本のリレーションシップを結ぶ課題あってた✨楽々ERDレッスンのエンティティ抽出を復習したらTwitterの課題に入ろう!

📅 4/22(木)

💪 やったこと

  • フィヨルドブートキャンプのQ&AページのER図を作ってみたものを添削して頂いた。 f:id:eatplaynap329:20210426084125p:plain

  • 「ステータス」と「回答評価」を別テーブルにしていた(なんとなく、選択肢が複数あったらテーブルに分けるのでは?というイメージがあった)が、これは質問・回答テーブルにそれぞれ列を持たせればいいとのこと。

  • ユーザーと回答を多対多にしていた(動画内でご指摘のとおり、回答が複数あるしユーザーも複数あるし…と考えて)けど、回答に対してユーザーが多という状況は「複数の人がひとつの連名回答を作る」 ということ。そういう設計ではなく、ユーザーは複数の回答を持てるけど、回答は複数のユーザーを持てないので、ユーザー1に対して回答多が正しい。 指摘を参照に新たにQ&AのER図を書き直してみた(↓)。 f:id:eatplaynap329:20210426084253p:plain

🍕 感想

  • DB設計、メンターのmaedanaさんは「感覚でやっている」と仰っていたので、楽器の演奏とか外国語みたいに、理論と実践に乖離があるのかもと思う。実践してみて初めて「達人が言ってたのってこのことか〜」と分かるというか。そして実践してみるとそこまで難しくないかも。題材が分かりやすければ小学生でもできそう。
    • 「感覚でやっている」という発言に対し、アジャイルな開発現場でRailsを使っている場合DB設計はざっくり素早く作ることが多いけど、ウォーターフォールな現場だったり、トラディショナルなDB設計を取り入れている場合は先にきっちり作ることが多いと教えていただいた。でも自分はたとえざっくりした設計でもめちゃくちゃ考えて間違えているので、プロはすごいな〜と素直に思ってしまった😅
  • DB設計、分かりやすい題材を見つけるのが難しい…。id:fkmbra さんがサザエさんを題材にそういう本を出してくれたらいいな〜😄(↓参照)

fukindesu.hatenablog.com

📅 4/23(金)

💪 やったこと

  • 改めて、プラクティスのTwitterのER図で表現するべき項目と、実際のTwitterの画面を見比べ、この間書いたInstagramのER図と見比べたりした。
  • 一覧を表示するというエンティティが必要?と思ったけど、SELECT * FROM tableで一覧表示できるから必要ない。
  • リストが難しい。実際にリストは使ったことがないので仕様がわからん。
  • YouTubeで「twitter ERD」で検索して出てきた動画を見てみる(今気づいたけど日本語の字幕あったんだ)。大半はもっと専門的なことを話しているけど、ツイートからリツイート、コメントの流れはヒントになった。

🍕 感想

  • TwitterのER図、エンティティの抽出は出来たと思うけど、お手本ページに貼ってあるモザイクがかかってるやつよりテーブル数がだいぶ少なくなってしまった。大丈夫かな?
    • メンターさんより、Twitterの機能の代表例として「リプライ」「リツイート」「いいね」「フォロー」「リスト」があるので、このあたりが実現できるER図になっていれば良いとの回答を頂いたのでOKかな!?
  • 英語のサイトを見ていると、テーブル名について複数形にしろ派と単数形しろ派がいるっぽい。StackOverflowで複数形のテーブル名を怒られている質問者がいて不憫だった。私は↓の記事の著者に賛成かな〜。

📅 4/24(土)

💪 やったこと

  • 実際のTwitterの画面を見ながら、一旦表を書いてみた。自分のTL上で見つけた実在の人やツイートを使ってるので個人のアカウントにはモザイクかけたけど、だいたいこんな感じで8個のテーブルができそう。

長いのでたたみます ユーザーテーブル。とりあえず必要そうな情報だけ。

無題のスプレッドシート_-_Google_スプレッドシート.png


ツイートテーブル。これにツイート区分(リツイートなのか、リプライなのか、普通のツイートなのか)を付けるか迷ったけど一旦付けないことにした。

無題のスプレッドシート_-_Google_スプレッドシート.png


人のツイートを巻き込む系のテーブル郡。引用リツイートのコメントはリツイートの属性にしてもいいかなと思ったけど、一旦テーブルを分けることにしてみた。

無題のスプレッドシート_-_Google_スプレッドシート.png


フォローテーブル。followerとfolloweeが必要かな?と思ったけど、followee(フォローしてる人)の情報だけで事足りそう。

無題のスプレッドシート_-_Google_スプレッドシート.png


リストテーブル。中間テーブルlisted_peopleでユーザーテーブルと結ぶ予定。

無題のスプレッドシート_-_Google_スプレッドシート.png

無題のスプレッドシート_-_Google_スプレッドシート.png

🍕 感想

  • TwitterのER図、紙の上では出来たので、後はdrawioで仕上げて一回提出してみよう。
    • Q&Aで色んな方のER図の書き方を知ることができたのが理解の助けになった。あとSQLをちゃんとやりなおしたのも良かった。そして一度Q&AページのER図を実際に添削していただいたのが1番良かったな。
  • LT会に参加して勉強のモチベがめっちゃあがった〜💪
    • 特にうだ (id:ud_ike)さんの発表が刺さった〜。私も色々やりすぎなので、プラクティスファーストで進めていかなくちゃな〜。

speakerdeck.com

📅 4/25(日)

💪 やったこと

  • とりあえずTwitterのER図は完成?したので一旦提出してみることにした。
  • drawioで図を作るのが時間かかった。 真っ直ぐな線引くのムズすぎ...。
  • Technovation Girlsのピッチイベントに参加した。

🍕 感想

  • Technovation Girlsは女子中高生たちが身近な社会課題をアプリ開発で解消することを目指すイベントなんだけど、若い人たちの志と能力の高さにすごく感動した😭 アプリの設計自体についてもとても勉強になった。
  • 私は主催のWaffleのお手伝い少しとマンスリーサポートをしている立場だけど、自分の支援がこういう立派な学生たちの手助けになっているのがとても誇らしい〜と思った✨

📚 来週の目標

  • RESTの課題を終わらせる
  • 『Webを支える技術』を半分読み終える
  • TwitterのER図を作る課題合格する
  • なんでもいいから個人ブログ早く作る!!

週報 2021/4/12(月)〜2021/4/18(日)

📚 1週間ふりかえり

こんにちは。 私は朝7時から1時間散歩をしているんですが、運動というより歩きながら色々考えることができるのが気に入ってます。 先週はあまり体調が優れず、日報も出せていないためこの週報書くのも憂鬱だったのですが、散歩していたら完璧に書かなくてもできなかったことも記録しよう、という気分になってきたのでなんとか書いてます。

先週末に立てた目標は、全く達成できてないです…😭 というのも『楽々ERDレッスン』でつまづきまくり、他のことに考えを巡らせる余裕がなくなってしまったためです。 DB設計でこんなに分かんなくなるなんて思わなかったので、これからどうしようか…とちょっと心配。(今はSQLの復習をしてます)

とりあえず週報書いて行きます〜(YouTubeは続けてるんですが週報にまとめるとごちゃごちゃするので別途記事にしようかとおもいます。)

📚 もくじ

📚 目標と成果

目標 成果 来週の課題
無理せず出来る範囲でYouTubeを続ける OK 引き続き
『楽々ERDレッスン』を読了する orz 頑張れ〜
TwitterのER図を書く課題に着手する NO 頑張れ〜
30時間の学習を確保出来るよう意識する 意識はした 頑張れ〜

📚 学習時間

日付 時間
4/12(月) 04:45
4/13(火) 04:15
4/14(水) 05:00 ​
4/15(木) 04:00
4/16(金) 03:00
4/17(土) 00:15
4/18(日) 02:25
合計 23:40

📚 週報

📅 4/12(月)

💪 やったこと

  • ブートキャンプの先輩のDB設計に関するブログを2件読む。

masuyama13.hatenablog.com

saki-htr.hatenablog.com

  • おふたりとも一旦表を書いてみることを進められているので、『楽々ERDレッスン』ハンバーガーショップの課題についてもざっくりとした表を書いてみた。汚いけど載せてみる。 image.png

ここから第1正規化(↓)してみる。

image.png

なんか色々キーがあってどれが主キーになるのかも分からん…。ここからどう第3正規化までできるか分からないので、もう勢いでテキトーにER図書いてみる。

image.png

回答例と見比べてみると、エンティティが多い。店舗や顧客情報のテーブルは必要ないみたい。 あと1:多の関係が何も分かってない感じ。

🍕 感想

  • やっぱり1:Nの関係がよく分からん。誰目線でやればいいのかが分からない。この1枚のレシートだけ(複数の商品を1人が1回で注文して1回支払いする)から読み取るのか、業務全体(複数の商品を複数人が複数回注文して複数回支払いする)を通してやるのかが分からない。
  • 自分が今誰目線でやろうとしてるんだっけ?というのも途中で分からなくなってくる。
  • 学習以外にやるべきこともないのに全然学習時間がとれなくて謎だとDiscordに書いたら、お子さんを2人育て&&お仕事をしながら学習しているid:siroemk さんが「やることがあるから逆に集中できる」と仰っていて、なるほど〜と思いバイトを始めてみようかと思って探し中。1件応募してみたけど、引き続きゆるく探そう。

📅 4/13(火)

💪 やったこと

  • そういえば、SQLドリルの複数テーブルが出てきた段階で??となってたことを思い出し、正規化の理論を飲み込むためにSQLに一度立ちかえることにした。
  • Udemyの教材でMySQLを学ぶ。論理演算子はだいたいRubyと一緒なのでスムーズに理解できた(もしかしたらRubyの経験がなかったらSQLも理解するのもっと大変だったのかな?)。次の講座は1:多についてっぽいので楽しみ。
  • 楽々ERDレッスンの第1部をすべて読み終えた。

🍕 感想

  • バイトをしよう、と決めてから、自分の進み具合の遅さにさほど恐怖を感じなくなった。バイトを始めたら始めたで別の恐怖があるのかもしれないが、じっくり分からないことと向き合う時間を持った方が後々のためになるかな〜と思う。
  • 最近めちゃ早起きしているので21時にはもうかなり眠い。今まで日報書く時間は夜中だったが、スケジュール組み直したほうがいいっぽい。

📅 4/14(水)

💪 やったこと

  • 『楽々ERDレッスン』でのエンティティ同士のリレーションシップの見出し方が全く分からず、Q&Aに投稿してみた。

    『楽々ERDレッスン』の演習課題に取り組んでいます。
    エンティティの抽出については少しずつ理解できてきているのですが、出来上がったエンティティのリレーションシップの見出し方が全く分かりません😭
    どちらが1でどちらが多なのかが直感的に分からず、解説にも詳しく書かれていないので、模範解答のER図を見ても腑に落ちない状態です。 『達人に学ぶDB設計徹底指南書』も読んだのですが、自明のことみたいでリレーションシップの見出し方については詳しく書かれていませんでした。 皆さん深く考えなくても直感でわかるのでしょうか…😭
    そこで、ER図を作成するとき、どちらが1でどちらが多かをどうやって見極めているのか、皆さんの思考手順(もしくは理解の助けになった資料など)を教えていただければ嬉しいです😄

🍕 感想

  • この日くらいから体調&メンタル不調。
  • 分かることがほとんどないため、日報も書けず。

📅 4/15(木)

💪 やったこと

  • 昨日投稿したQ&Aについて、メンターさんから「具体的にどこが分からなかったのか教えてほしい」と言われ、自分の思考を整理する。
  • 本当に何がわからないのかも分からん状態だったので『達人に学ぶDB設計徹底指南書』と『楽々ERDレッスン』を読み込み、下記のように整理した。

『楽々ERDレッスン』のp.136「図書館の予約申込書」が分かりませんでした。
p.143の上の、外部キーがなくリレーションシップが書かれていないエンティティに関係を見出そうとすると、全て多対多では?という気持ちになってしまいます。
例えば予約者と連絡先に対して、連絡先に予約者IDが外部キーとして設定されているエンティティであれば、予約者に対して連絡先が複数あるというのは分かるんですが、外部キーを自分で設定しようとすると、自宅や会社の電話番号だったら多:多になりそう…などが頭に浮かんでしまい、うまく関係性を見出すことができません。
見返してみると、具体的にこの解答例のここが納得いかない!という段階ですらなくて、どうやって解答例まで思考を整理させればいいのかが分からない、という感じです😭
どのエンティティにどの外部キーを設定すればいいのかが分かっていないことにも気づきました。

🍕 感想

  • この日も日報書けず。
  • 何が分からないか言語化できないときは1番辛い😭
  • とりあえず、外部キーの設定方法がわからんことは分かった。

📅 4/16(金)

💪 やったこと

  • Q&Aへの回答で、メンターの伊藤さん id:JunichiIto から、『楽々ERDレッスン』の課題(レシートや図書館の予約申込書などの紙の業務からER図を作成する)は少し手強いので、ブートキャンプのQ&AページのER図を書いてみたらどうかとご提案いただき、挑戦してみる。 image.png
  • このER図自体が正しいかどうかは自信がないけど、リレーションシップの見出し方については「XXはYYをたくさん持てる」と声に出して考えてみることでちょっと出来るようになってきた。
    • ↑のER図も伊藤さんに見ていただけることになったので楽しみだ。

🍕 感想

  • やっと成果物ができたので日報を再開できた。
  • DB設計、色々理解できてないことが多すぎて本当に辛いが、ちょっとは分かってきた部分もあるのでめげずに頑張ろう。

📅 4/17(土)

💪 やったこと

  • ブートキャンプのDiscordでおすすめされていたムーザルちゃんねるというYouTubeチャンネルを眺めて、DB設計に関係ありそうな動画を見つけたのでちょっとだけ見た。
  • 先週の、インデックスの理解に苦しんでた自分に見せたい。

🍕 感想

  • 低気圧による頭痛とPMSのせいでほとんど何もできなかった。
  • でも少しでも学習したのは偉い。

📅 4/18(日)

💪 やったこと

🍕 感想

  • Udemyのこの課題、一気にやろうと思わずコツコツやってればよかったな〜。私はいつもそのパターン(一気にやろうとして挫折→間が空いてしまう→ちょっとずつやるにシフトチェンジ)で失敗しがち。
  • TwitterのDB設計、本当にできるのだろうか…DBの話してる人の話、3割くらいしか理解できないょ…言葉も概念もむずい。

📚 来週の目標

  • 進捗がなくても毎日日報をつける
  • Udemyの動画をできれば全て見る
  • YouTubeでの活動を記録するブログを書く