30代Webエンジニア転職奮闘記 プログラミングスクール第10週目

こんにちは。Almontaです!

この記事では、Webエンジニアへの転職を決めた、私のプログラミングスクールDIVE INTO CODE入校から卒業までの4ヶ月間(123日)、更には就職までの軌跡を記していきます。

10週目に入りました!

日記ブログとなり、読者に配慮のない記事となっていますが、プログラミングスクールではどのような過程で、どんな内容を学んでいくのか、これからプログラミングスクールを考えている方には参考になるかと思います。

必要に応じて、本日記ブログを整理し、別でまとめ記事を作成しようと思います。

スクールの4ヶ月間の全体スケジュールがこちら

引用:DIVE INTO CODE公式HP

59日目 2021年6月28日(月)

今日やったこと

  • 課題タスク作成アプリstep5
  • アソシエーションについて ペアワーク

課題タスク作成アプリstep5

タスクアプリにラベル機能を追加した。多対多のアソシエーション。

この2つの記事がまんま参考になった。

Rails 爆速でtag機能を搭載したtodoアプリを作ってみよう(docker構築有) - Qiita
今日の目標爆速でtag機能を搭載したミニアプリを制作してみるまずは基本機能のみのアプリを作り 追加実装を意識した作りをする環境Ruby 2.5.1Rails 5.2.4docker 19…
Railsでラベル機能(タグ付け)を実装する - Qiita
はじめにRailsでTo Doアプリにラベル機能を実装しました。今回はラベル機能の実装方法を紹介します。前提として、私の環境は下記の通りです。Ruby 2.6.3Rails 5.2.3目的…

また、追加したラベル機能のテスト(Rspec)を行った。

Rspecでも、モデルのアソシエーション同様、FactoryBotの関連付けをしてあげないといけない。

アソシエーションについて ペアワーク

ブログアプリに、お気に入り機能を追加するアプリを実装した。

今日の成果

ラベル機能の追加完了

今日の気づき

やっぱりペアでやると気づきがあっていい。

db:create忘れ、db:migrate忘れ、migrationファイルの削除など一人では気付くのに時間が掛かりそうなこともペアでやると問題がすぐ見つかる。

60日目 2021年6月29日(火)

今日やったこと

  • マインドセット
  • 課題タスク作成アプリstep5

マインドセット

Connecting the dots

Steve jobs

今日は、Appleの創業者Steve jobsの言葉

プログラミング学習では、学ぶことが大量にあり、どこに重点を置くべきか分からず不安になることもあるが、それらの学習はいつか線になると信じて学び続けようと思った。たとえその点のちらばりが大きくてもそれはより太い線になるということなので。意味あることであると信じて。

課題タスク作成アプリstep5

今日やった要件は2点

  • シードデータの作成
  • herokuへのデプロイ
今日の成果

課題タスク作成アプリの課題完遂

今日の気づき

migrationファイルを好き勝手いじってしまっていた結果herokuデプロイで苦戦した。
migrationファイルはいじってはいけない。

61日目 2021年6月30日(水)

今日やったこと

  • Ajax
  • 1対1のメッセージ機能
  • モデルバリデーション

Ajax

Ajaxとは、ブラウザ上で処理を実行できるもので、画面を移動せず、画面の一部分だけを更新できる。

1対1のメッセージ機能

テーブルを3つ(users, conversations, messages)作り、ルーティングはconversations内にmessagesをネストする。これまで学習してきたお気に入り機能などのアソシエーションは中間テーブルの両側にあるテーブルが別物だったが、メッセージ機能では、1つのテーブルを別の2つのテーブルに見立てる。

そのため、理解が難しかった。

モデルバリデーション

バリデーションはDBでもモデルでもかけることができるが、テストや、保守の面から、モデルにバリデーションをかけるのが良いとされている。

今日の成果

これまでバリデーションを曖昧な理解で進めてきたが、今日理解を深められた。

今日の気づき

メッセージ機能は難しい。。ポートフォリオ作る時に再確認したい。

62日目 2021年7月1日(木)

今日やったこと

  • クエリの使い方
  • Active Job
  • gemのdevise実装

クエリの使い方

クエリとはコンピュータへの問い合わせのことで、SQLの発行回数のこと。

この発行回数を減らすことで、応答時間を短くすることができる。

モデルファイルに、絞り込みのメソッドロジックを記述し、そのメソッドを別ファイルから呼び出すという使い方をする。

Active Job

バックグラウンドで非同期処理を行うActive Jobについてと、

Wheneverというgemの利用により、あるタイミングでまとめて実施するバッチ処理を設定できることを学んだ。

gemのdevise実装

ログインシステムのgem、deviseについて。
これまで、何度かログインシステムを一から作ることを経験してきた。便利なgemがあることを知っていながら、やっと学ぶことが出来てよかった。

でも思っていたよりも導入は簡単ではなかった。

今日の成果

モデルでのメソッド定義、非同期処理について習得

今日の気づき

非同期処理を学び、ある日時を過ぎたら表示を切り替えるといった身近なシステムに導入されているようなプログラムを知ることが出来てよかった。

63日目 2021年7月2日(金)

今日やったこと

  • Nginx
  • ワーク チーム開発を経験する

Nginx

Railsのwebサーバは、デフォルトではpumaというものが使用されている。

これをNginxに変更する方法について学んだ。

なぜ変える必要があるのか?Nginxは、処理速度が速く、高負荷に比較的強いといった特徴があるため。

ワーク チーム開発を経験する

チーム開発を想定して、4人でgithubでのconflict等を経験してみるといった内容だった。

しかしそれ以前に、RubyやRailsの使用バージョンが異なることにより、共通ファイルの読み込みが出来ないため、バージョンをあわせるのに一苦労だった。

今日の成果

Nginxの課題達成

今日の気づき

webさーばのデフォルトはpuma、今日はNginxに変更。こんなふうにいろんなwebサーバが世の中には存在し、変更するといったことが今後もあるのだろうか?果てしない。。

64日目 2021年7月3日(土)

今日やったこと

  • GraphQL
  • OAuth

GraphQL

リソースの呼び出し方式を、resourcesからGraphQLというものに変更する方法について学んだ。

なぜ変えるのか?余計なリクエストを減らすことができるから。

OAuth

OAuthとは、認可に基づいた認証のことで、facebookのログインをgoogleアカウントとかでできるあれの機能のこと。

アクセストークン、認証サーバーの存在があることで、情報の漏洩が無い様になっている。

実際に、自分のgoogleアカウントを使ってログインをする実装を行った。

今日の成果

GraphQLの課題突破

今日の気づき

これまで、ユーザーの立場で、googleアカウントを使用していろんなアプリケーションにログインすることに少し危機感があったが、どのような仕組みでログインが出来ていたのか知ることが出来てよかった。トークンと認証サーバーが使用されているから危険ではない!

65日目 2021年7月4日(日)

今日やったこと

  • 書籍Ruby入門 第7章:クラスの作成を理解する

書籍Ruby入門 第7章:クラスの作成を理解する

書籍にてクラスについて学習した。

また、ワークで部分的に担当が割り振られ、発表をしないといけないため、資料作成もしていたら、第7章だけで一日かかった。

主な内容は、オブジェクト指向、クラスの定義・継承、selfの使い方について

今日の成果

発表用資料作成した。

今日の気づき

人に伝えないといけないと思うとやっぱり理解が深まる。全てをそれくらいの理解で出来たら良いんだけど、この書籍を隅から隅まで理解しようと思ったらほんとに頭がパンクする!!

まとめ

3週間に渡って続いたRailsの大きな課題が終わった!課題が終わってからは、付随したその他の技術について学習を始め、本当に知らないこと、まだまだ勉強することはいっぱいあると痛感する日々。しかし、カリキュラムも、来週いっぱいでもう終わりそう!!

コメント