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での活動を記録するブログを書く

週報 2021/4/5(月)〜2021/4/11(日)

📚 1週間ふりかえり

こんにちは。今週も色々ありましたね。

自分的に1番大きかったのは、AtCoderのA問題を1日1問解くYouTubeチャンネルを作ったことです。

(チャンネル登録者のひとりはカーチャンですが!!皆さん登録ありがとうございます😭 )

始めた経緯などは一つ前のポストに書いてあります。 eatplaynap329.hatenablog.jp

YouTubeを始めるなんてとても恥ずかしかったし、正気にかえると一体私は何をやってるんだ!?という気分になることもあるんですが、恥ずかしさよりも勉強になることの方が多いので続けようと思います😘 いつもコピペして意味も分からず使っていたメソッドの使い方を改めて考えるきっかけになりましたし、普段見てるYouTubeの映像はいろんな工夫と技術を経て作られているんだな〜と実感することができました。

ではでは、1週間の振り返りをしていきます〜。

見やすいかと思って見出しに絵文字をつけてみたんですが、目次に集まってると何かグロいっすね😇

📚 もくじ

📚 目標と成果

目標 成果 来週の課題
達人に学ぶDB設計徹底指南書を読み終える 読み終えた! 楽々ERDレッスン読み終える
競プロを楽しく続ける YouTubeはじめた YouTubeの拡充
DBのプラクティスにも楽しさを見つける 達人のアツさに感動 ERDレッスンを引き続き楽しむ

📚 学習時間

日付 時間
4/5(月) 05:00
4/6(火) 03:00
4/7(水) 05:00 ​
4/8(木) 03:30
4/9(金) 05:15
4/10(土) 01:00
4/11(日) 01:45
合計 24:30

📚 週報

📅 4/5(月)

💪 やったこと

  • 大名エンジニアカレッジの講義動画で正規化→ER図作成について学ぶ。
  • 『達人に学ぶDB設計徹底指南書』で正規化を詳しく学ぶ。
    • 第2正規化までは理解するものの、第3正規化で詰まる。
  • FJORDのDiscord分報チャンネルを本格的に使いはじめる。
  • A - Tak and Hotels (ABC Edit)を解いた。

🍕 感想

  • 前週分の週報を書いていた。週報はブートキャンプで書いている日報をベースにコピペするだけなので気楽で続けられている。
  • 週報書きながら、これの日報版が分報か〜!と気づいた。のでそういう使い方をしてみることに。たしかに分報にちょこちょこ書きながら学習を進めると、日報書くのがとても楽!

📅 4/6(火)

💪 やったこと

  • YouTubeチャンネルを開設して問題を解いた。
  • 『達人に学ぶDB設計徹底指南書』を読み進めた。ER図の役目が分かってきた。
  • 第2→第3正規形については、ブートキャンプの受講生のid:fkmbra さんの日報で理解することができた。

🍕 感想

  • 前輪読会に何の準備もせずに参加したとき、ER図をみんなで作っているところで、各テーブルは正規化して作られたとかが分かってなかったし関係性も見えてなかったな〜。
  • この本、達人の熱意がすごくてたまに笑ってしまう。けどDB設計への情熱に満ちた達人のアツさに感動。

📅 4/7(水)

💪 やったこと

  • 引き続き『達人に学ぶDB設計徹底指南書』を読み進め、インデックスの箇所でつまる。
  • Discordの分報にひとりごとを↓のように垂れ流していたら、メンターさんが拾ってくださり、夜に画面共有しながら説明していただいた。 f:id:eatplaynap329:20210412134021p:plain

🍕 感想

  • 分報&&熱心なメンターさんがいるフィヨルドブートキャンプありがたい😭
  • 説明していただいてなんとなく分かった気になるものの、咀嚼してまとめるのには時間がかかりそう。

📅 4/8(木)

💪 やったこと

  • 昨日教えていただいた「カーディナリティの高い列をB-treeインデックスをつくる候補にするべきだけど、値が平均的に分散しているのがベスト」という箇所について、ちゃんと理解するよう努めた。
  • 本読んで分からなかったのは、下記のような理由に依ると思う。
    1. 列の中身が数字で表されてるから、他の数字(行数やカーディナリティの高さ)と混同して混乱した
    2. 双方向連結リストis what(検索木はなんとなくわかる)
    3. 新たにインデックスという番号を振るのかと思った
  • ↑は、とくに1番目の理由が大きかったので、『達人に学ぶDB設計徹底指南書』の該当箇所(p.175)のカーディナリティの中身の例を具体的なもの(都道府県名など)に置き換えてみたら理解できた。
  • A - キャンディーと2人の子供解いた。

🍕 感想

  • Discordのひとりごとチャンネル、出来たばかりのときは「本気のひとりごとなんて恥ずかしすぎて公開できないし絶対使わない😤」と思ってたけど、流れに乗ってみたらSlack時代よりいろんな人と交流できるようになった気がする。
  • 本を読みながらテキトーにメモった箇所を拾っていただきメンターさんに直接教えていただけた。全然ちゃんとした質問でもないつぶやきを見つけてくださりありがたい😭

📅 4/9(金)

💪 やったこと

  • 『達人に学ぶDB設計徹底指南書』を読みすすめ、読了した。
  • 『楽々ERDレッスン』を読みはじめる。
    • 正規化を分かっていなかったときに読んだら1章からとても難しくて面食らったけど、2章の「データベース設計の基礎知識」は達人〜の当該箇所より平易で親しみやすいと感じた。

楽々ERDレッスン (CodeZine BOOKS)

楽々ERDレッスン (CodeZine BOOKS)

🍕 感想

  • やっと達人に学ぶ本を読み終えることができた。課題を進め、正規化について分からなくなったら参照したい。9章や第4正規化以降についてはちんぷんかんぷんのままなので、必要になったときに戻ってくるようにしよう。
  • 楽々ERDレッスンでER図を作ってみているけど…むむ難しい。1対多の関係が、模範解答とことごとく逆にしてしまっていた。 image.png

📅 4/10(土)

💪 やったこと

🍕 感想

  • エンティティ同士の関係(1:1とか1:Nとか)が全く分からない…どちらが多なのかがよく分からない。
  • SQLをきっちりやらずに進めちゃったからわかんないのかな?

📅 4/11(日)

💪 やったこと

  • 『楽々ERDレッスン』引き続き。全然ラクラクじゃない…
    • ハンバーガーショップの課題に取り組むけど、1対多の関係が分からなすぎて課題を進めても意味ない気がしてきた。
  • YouTubeのバナーを作成。Placeitというサービスを使ってテンプレの文字や色を変えて作成し3ドル弱で購入。
    • デザインの知識がないので微妙かもしれないけど、自分では満足。CSS上級で学んだ色の抽出などの知識が役に立った! image.png
  • A - Addition and Subtraction Easy解いた。

🍕 感想

  • 達人〜と楽々ERDレッスンはたしかに考え方が違うな〜。達人はDB設計を厳密に行うことを優先させる印象だったけど、実際にソフトウェアを使う身としてはべつにDBに正しいデータを集めるために仕事してるわけじゃないし…という気持ちになることも多々あった。 例えば前職の商品単価管理システムでは、システムの都合上同じ商品を別の2社から買うという行為ができなくて、少しでも安くいいものを仕入れたい購買という立場からは不満があった。
  • でもまあ、DB設計初心者としては達人のやり方を学ぶのが良いんだと思う。達人のやり方に慣れてきたら、もっとユーザーフレンドリーな楽々の方法も取り入れられたらいいな。

📚 来週の目標

  • 無理せず出来る範囲でYouTubeを続ける。
  • 『楽々ERDレッスン』を読了する。
  • TwitterのER図を書く課題に着手する。
  • 30時間の学習を確保出来るよう意識する。

🎞 YouTubeチャンネルを作ってみました

はじめに

こんにちは。 一億総YouTuber時代なので、わたしもYouTubeを始めてみました😆 www.youtube.com

まだ何も分かってないので、これからだんだん拡充してゆきたいですね🌈

もくじ

何のYouTube

AtCoderでA問題を1日1問解いてるので、その様子をスクリーンキャスト形式の動画にしてみました。 説明は英語です😄

何で作ったの

  • 英語の練習
  • 成長の記録
  • 人がコーディングしてるのを見るのはおもしろいと思うから
  • 就活に際し自分のスキルが分かりやすいかなと思った
  • 競プロをもっと楽しむため

当面の目標

続けるのが第一かな。毎日撮って載せます。 余裕が出てきたらサムネとかかわいく作りたいですね👁

週報 2021/3/29(月)〜2021/4/4(日)

1週間ふりかえり

今週は先に言っておくと、なんともダメな一週間でした😞 まず月曜が誕生日でお祝いをしてもらったり、新しい仕事をはじめた家族のお祝いをしたり、1年ぶりに友達に会ったりとイベントが多かったのが学習時間が取れなかった原因です。

あとはAtCoderの問題を1日1問解きはじめました。最初はAtCoder Beginners Selection - AtCoderの問題を問いていたのですが、A問題は苦労せずに解ける一方、B問題になると簡単に解けなくて1日中考えてしまい、ブートキャンプのプラクティスに支障をきたしてしまっていました。

そもそも何でAtCoderをやってるかというと、DBのプラクティスに入ってから、どうにも難しいのと面白みが分からないのとで進捗がなくて辛い気持ちを、別の簡単なことに取り組むことでごまかしているからかもしれません。 あ〜あ。来週は気持ちを切り替えたいな。

もくじ

目標と成果

目標 成果 来週の課題
Udemyの課題を終わらせる 半分 全部
『楽々ERDレッスン』を読みはじめる 難しくてめげた 再挑戦
『達人に学ぶDB設計』を読みはじめる 読み進めた 読了
TwitterのDB設計をする課題に着手する 難しくてめげた タスク整理

学習時間

日付 時間
3/29(月) 02:30
3/30(火) 05:30
3/31(水) 04:30 ​
4/1(木) 01:00
4/2(金) 01:00
4/3(土) 02:30
4/4(日) 01:00
合計 18:00

週報

3/29(月)

やったこと

  • フィヨルドブートキャンプのDiscordの分報チャンネルを作った。まだちゃんと使いこなせてない。
  • 達人に学ぶDB設計をパラパラ眺めた。輪読会の資料と一緒に読み返したい。

達人に学ぶDB設計 徹底指南書

達人に学ぶDB設計 徹底指南書

感想

  • 誕生日で、Rubyと同じ28歳になった😎
  • なんか一日中眠かった。昨日遅かったからかも。今日は早く寝て明日から頑張ろう。

3/30(火)

やったこと

感想

  • 楽々ERDレッスン序盤からかなり難しかったので怖気づいた。
  • Discordの分報チャンネルとても楽しいな〜😊 私はUdemyで勉強しているときに出てきた英単語を書き記して後で見直したりしている。

3/31(水)

やったこと

  • 楽々ERDレッスン難しすぎたので、達人に学ぶ本をちゃんと読みはじめた。
  • ABC081A - Placing Marblesを解いた。

感想

  • 難しい本(楽々ERDレッスン)に挑戦して挫折した後なので、達人に学ぶ本がとても分かりやすくてありがたく感じる。
  • 正規化について学んで思い出したこと。前職でSEの人と社員旅行の幹事をやったことがあり、その人の作る名簿などの表が独特で、何故こんな見づらい表を作るんだろう?と不審に思っていた。しかし今思い出すと私が作ってた表は『達人に学ぶDB設計 徹底指南書』p.87の非正規形、SEの人が作ってたのはp.89の正規形の表の例に似ていた。
  • でも社内の掲示物としては、私の作った非正規形の表のほうがみんなに分かりやすかったと思う…😄

4/1(木)

やったこと

感想

  • テキストエディタで、command+/コメントアウトできることを分報チャンネルで知った。(ずっとcommand+kを押してからcommand+cを押す方法を使ってた)もっと早く知りたかった😭
  • 1年ぶりに友人に会って、ちょっと疲れた。

4/2(金)

やったこと

感想

  • B問題、気楽な気持ちで取り組んだらハマってしまい、全くプラクティスに集中できなくて反省。
  • 解けたのは嬉しいけど。

4/3(土)

やったこと

  • 達人に学ぶ本を読み進めた。
  • A - 和風いろはちゃんイージーを解いた。Beginners Selectionの次のB問題どうしてもWAになってしまうので過去問のA問題を解いた。しばらくA問題を解くことにした。

感想

  • 頭が痛くて辛い。
  • 達人に学ぶ本面白いけど体調が悪い時全く読み進められない。

4/4(日)

やったこと

感想

  • 今日も頭痛がひどい〜〜😖
  • こういうときに寝ながらいつも思うんだけど、目を使わずに勉強できるようなプログラミング教材があればいいな〜。
  • 英語でPodcastとかは聞いてるけど、日本語でもっと初学者向けの音声コンテンツがあったら体調が悪くても前進できる気がするんだけどな〜〜。

来週の目標

  • 達人に学ぶDB設計徹底指南書を読み終える。
  • 競プロを楽しく続ける。
  • DBのプラクティスにも楽しさを見つける。積極的に楽しがる。