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のドットインストールの講座を流し見
  • やる気を失わずにやるべきことをやる