コウのTechTech Blog

プログラミング学習中

「Happiness Chain Euforia」4ヶ月目振り返り

はじめに

2023年12月から「Happiness Chain Euforia」 (プログラミングスクールHappiness Chainのコンサル型)に入会し、日々学習に取り組んでいます。本記事では、Euforiaの4ヶ月目(2024年3月)の振り返りを記します。

3月の振り返り

ありがたいことにHC運営のゆうだいさんからご紹介いただき、Web系の自社開発企業で働かせていただくことになりました。仕事をしながら1年間、仕事を辞めて3ヶ月間HCでプログラミング学習を頑張ってきてよかったです!

内定後、準備を行い3月末に上京、現在東京のオフィスで働いています。 チームに配属された後は、主にフロントエンドのタスクを行っています。ReactやTypeScriptのコードに慣れておらず、仕事のスピードが遅すぎるのが現状なので、徐々に改善できればと思っております。

今後の予定

まずは、時間を投下してしばらくの間はプログラミングに一点突破で頑張っていきます。 またHCでは、有難いことに転職後もコミュニティを活用していけるので、次回のオフ会ではエンジニア転職後、効率的に成長するためのヒントをCEO、CTOのお二人に伺えればと思っております。 引き続き、息を切らさず頑張っていきます。

「Everyday Rails - RSpecによるRailsテスト入門」を読んだ感想

全体的な感想

RSpecの基本から応用的な内容まで250ページ程に渡り、網羅的に書かれていました。本書を使ってRSpecの基礎的な内容(モデルスペック、リクエストスペック、システムスペック)は理解できました。今後RSpecを書く際も、本書を使って理解度・スキルを向上させたいと思います。
またテストに関しては、開発チームによって考え方が異なるようなので、そのチームの考え方に沿った開発を行うことが大事だと思いました。

良かったところ

  • 本書で使用するアプリケーションのコードがGitHubに公開されており、手を動かしながら学習しやすいこと。
    また自作したアプリケーションにテストコードを追加しながら学習することもできる。
  • 単体テストから始まり統合テスト、テストのリファクタリングまでステップ・バイ・ステップ形式で説明がされていること。
  • テスト技法だけでなく、テストの重要性について説明がされていたこと。

    学んだこと

  • 単体テストや統合テストなどRSpecを使った各テスト技法について
  • テストのリファクタリング、簡潔に書く方法について
  • テストに対するモチベーション(最後の章で著者からのアドバイスがある)

    難しかったこと

  • RubyRailsでは出てこない特有の文法に慣れるのが大変だったこと。
  • リファクタリングし過ぎると、コードが読みにくくなってしまうこと。
    初心者には、どこまで簡潔に書けば良いかの塩梅が難しいと感じました。

    最後に

    以上、簡単ですが感想と学んだことです。最後まで読んでいただきありがとうございました!

    参考文献

    Everyday Rails - RSpecによるRailsテスト入門

「Happiness Chain Euforia」3ヶ月目振り返り

はじめに

2023年12月から「Happiness Chain Euforia」 (プログラミングスクールHappiness Chainのコンサル型)に入会し、日々学習に取り組んでいます。本記事では、Euforiaの3ヶ月目(2024年2月)の振り返りを記します。

自己評価

先月立てた目標の達成度合い

  • must
    • 2月の学習時間:140h (wantで160h)
      →172h30mで達成
  • want
    • Railsアプリ課題の2つ目(Twitterクローン)を完了させる
      Twitterクローン課題を完了させ、自動テストに取り組み中のため達成
    • 週2回ジムに行く
      →週2回行けた週もあるが、行けなかった週もあるため目標達成できず

kohruru.hatenablog.com

良かったこと

  • 学習を行うときは、スマホを押し入れの中に置いておく習慣ができ、スマホの使用時間を大幅に削減したこと。

改善が必要なこと

  • 自動テストのインプットに入ったら、学習速度が落ちてしまったこと。
    →アウトプット課題同様、インプット教材に取り組み前に、どのように行うか+完了までの目標時間を決めるようにする。

感想、今月の予定

先月はプログラミングに関する目標は達成できたが、ジムに行く目標に関しては達成できませんでした。現状はプログラミングで成果を上げたいという思いが強く、一点突破する必要があると感じたので、今月は運動に関しては特に目標を定めず、プログラミングの補助(気分転換)程度に留めようと思います。毎週日記で振り返りを行い、適宜学習方法を見直していく予定です。

今月末までの目標

  • must
    • 3月の学習時間:160h
  • want
    • mustの学習時間+20hで180h
    • Reactのカリキュラムまで完了させる (現在は自動テストでその後、JS、Reactに取り組む)

「Happiness Chain Euforia」2ヶ月目振り返り

はじめに

2023年12月から「Happiness Chain Euforia」 (プログラミングスクールHappiness Chainのコンサル型)に入会し、日々学習に取り組んでいます。本記事では、Euforiaの2ヶ月目(2024年1月)の振り返りを記します。

自己評価

先月立てた目標の達成度合い

  • 1月の目標学習時間:130h
    → 154h35mで達成
  • Railsアプリ課題の2つ目(Twitterクローン)に着手
    → 現在Twitterクローン課題PR3つ目なので達成

kohruru.hatenablog.com

良かったこと

  • 休憩時間にスマホをいじることが多かったが、1月の後半から「目標学習時間を達成するまで基本的にはスマホ禁止」ルールを設けたこと
  • 日記で行動の振り返りができていること

改善が必要なこと

  • 各PR提出までの目標時間を決めること
    目標時間を決めることでだらだら情報収集せずにメリハリがつくと思ったため
  • 引っ越したことにより、スポーツジムに行く習慣が途切れたこと
    →週2回(基本的には3日おきに)ジムに行くようにする

今月末までの目標

  • must
    • 2月の学習時間:140h
  • want
    • mustの学習時間+20hで160h
    • Railsアプリ課題の2つ目(Twitterクローン)を完了させる
    • 週2回ジムに行く

「Happiness Chain Euforia」1ヶ月目振り返り

はじめに

Happiness Chain Euforiaスタート

2023年12月から「Happiness Chain Euforia」 (Happiness Chainのコンサル型)がスタートしました。0期生としてこのスクールに参加し、日々プログラミングの学習に取り組んでおります。本記事では、Euforiaの1ヶ月目の振り返りを記します。

Euforiaでの取り組み (今月は主に下記3つ)

全体的な感想

1日毎に目標を立て、それに向けて動くようになりますので、より生産的な活動をしようと行動するようになりました。同期メンバーの頑張りも見れるので、良い方向に同調圧力がかかります。また、ペアプログラミングを行っていただいたことによって自分の足りない部分がわかり、それを埋めていくことで成長を実感しております。

自己評価と来月の目標

良かったこと

  • 毎日mustで立てた目標は達成できたこと
  • プログラミング以外にも日記を書く習慣ができたこと

改善が必要なこと

  • 休憩時間にスマホをいじることが多く、上手く休めていないこと
    →勉強時間の管理をスマホでしていたが、パソコンで記録する。
     (パソコンでは、余計なアプリ等見ることがないため)
     立ち上がって外を眺めたり、ストレッチするようにする。
  • mustで立てた目標を達成したら、長時間ダラダラしてしまうこと
    →自由にしていい時間を決める(日記にそのことも書くようにする)

来月の目標

  • 1月の目標学習時間:130h
  • Railsアプリ課題の2つ目(Twitterクローン)に着手する
    ※現在、1つ目のアプリが半分程完成

「HappinessChain」に入会してもうすぐ1年 感想綴ります

はじめに

これはHappiness Chain Advent Calendar 2023 - Adventar 15日目の記事です。HappinessChain (HC)で学習を開始して11ヶ月、もうすぐで1年になりますので、このタイミングで入会した感想、これまでに行ってきたことを書いていこうと思います。

自己紹介、HC入会経緯

コウと言います。 仕事は、学生時代が化学系専攻だったため、その関係で材料メーカーの開発職をしております。
最初は何か新しいことに挑戦したいとぼんやりと始めたプログラミングでしたが、新しいものづくりやそのスピード感などWeb系のカルチャーに惹かれ、次第にWebエンジニアにジョブチェンジしたいと思い、本格的に学習を始めました。 プロから直接教えてもらえるスクールがあったらいいなと思っていた中、Xでゆうだいさんを見つけ、HCに入会することにしました。

これまでの学習内容とその感想

上記各項目に対して、インプット→アウトプット→レビューのサイクルを回していきました。 その中でも、HTML & CSSの模写コーディング、DockerによるRailsの開発環境構築、Rubyオブジェクト指向課題は難しく、苦労しました。 ただ、課題をクリアした際の達成感は一入で自分自身が徐々にスキルアップできていると認識することができました。 現在はRailsアプリケーションを作る課題を行っており、こちらに苦戦中です。課題に詰まりながらも、徐々に理解できていることが増えているので、達成感も同時に感じております。

HCの良かったところ

ロードマップの安心感

インプット、アウトプット課題ともにボリュームがあり、着実にレベルアップしていることを感じました。最初は、やることを自分で考えることが重要だと思い込んでいましたが、プログラミングにおいても守破離の考え方が重要だと気付かされ、プロが考えたレールから外れないようにすることを意識しました。そうすることで、初心者が自分で道筋を立てた結果実力が伸び悩んでしまうことを防げると思いました。

同じ目的を持った仲間ができる

HCには、オンラインとオフラインのミートアップ、雑談会がありますので友達ができやすいですし、slackのtimesや日報の文化があることで頑張っている仲間の発信を見ることができます。プログラミングの楽しさ、大変さを共有することでフェードアウトせずにここまで学習が継続できています。

CEO、CTOから直接アドバイスを頂ける

HCではコードレビューだけでなく困りごとがあれば、面談を申し込むができ、ミートアップでも相談・交流することができます。そのため、プログラミング学習における悩みはすぐに解決することができます。個人的には、9月頃からHCのProプランで週1回の面談やペアプログラミングを行っていただき、学習時間が増え、知識も増えていったのでありがたく思っています。

最後に (今後の意気込み)

HCに入会してもうすぐで1年、月の学習時間は平均すると約50〜60時間で仕事をしながらゆっくりのペースで進めてきましたが、今月末で仕事の方を退職予定で、覚悟を決めました。また、12月からはHC ProからHC Euforiaに移行しております。1日単位で成長を刻み続けるというコンセプトのもと作られており、同期の皆さんと共に奮闘しております。プログラミングだけでなく、良い習慣を作るには絶好のチャンスですので、この環境に感謝をし、今までより一層学習に励み成長を刻んでいきたいと思います。

「現場で使える Ruby on Rails 5速習実践ガイド」を読んだ感想

全体的な感想

Railsの基本からチーム開発の流れ、注意点についてわかりやすく書かれており、Railsを使ったアプリケーション開発の基礎を身につけるには最適な本だと感じました。

良かったところ

  • Railsを扱う上でのRubyの基礎についての章があったこと。
    個人的に難しく感じていたクラスやモジュールについてわかりやすく解説されており、以前より理解度が上がったと思います。
  • 2章のscaffoldを使った簡単なアプリ作成でMVCの概要を掴めたこと。
    コントローラーが行う処理が細分化されており、リクエスト→レスポンスまでに行われる一通りの処理を理解することができました。
  • その他、Railsアプリケーションの開発の流れやメンテナンス性を向上させるためにしかるべきところにコードを書くことの重要性について学べたこと。

学んだこと

Railsアプリケーションの開発の流れについて(3章)

まずは、全体的な設計や下準備を行います。

  • 作成するアプリケーションの内容を考える
  • アプリケーションの名前を決める
  • アプリケーションの雛形を作成する
  • データベースを作成する

設計、準備が終われば各機能の実装に移ります。

  • 機能に関連するモデルを作成する
    ①設計したモデル(テーブル)の情報をもとに雛形を作成します
rails g model [モデル名] [属性名: データ型 属性名: データ型...] [オプション]

  ②マイグレーションでデータベースにテーブルを追加します

rails db:migrate
  • コントローラとビューを作成する
    下記コマンドでコントローラとビューの雛形を作成します
rails g controller [コントローラ名] [アクション名 アクション名] [オプション]

※ アクション名で指定するのは、ビューを作成するものだけ。 (ビューを作成しないものは、ここでは指定しない)
雛形作成後、リクエストを処理すべきコントローラとアクションを特定させるための ルーティングファイル(config/routes.rb)を編集します。

  • 機能実装を行う
    モデル、コントローラ、ビューの雛形作成後は本格的に機能を実装していきます。
    (ビューの実装、アクションの実装等々)
    開発状況に応じて、、
    ※データベースにテーブルやカラム、インデックスを追加・削除したり、既存データに修正を加えるためには「マイグレーション」を利用します。(詳しくは本書p.126〜参照)
    ※データ内容の制限やモデル検証の追加等行っていきます。

また、開発を進めていくうちにコントローラーファイルやビューファイルのコードの記述量が増えていく可能性があるため、下記を利用することを考えます。

  • モデルに書くべきコードをモデルに寄せること
  • モデルやコントローラの共通化 (モジュールのMix-inを利用)
  • ビューの共通化 (パーシャルテンプレートの利用)

難しかったこと

Railsのバージョンが5系のため古く、環境構築に苦労しました。Dockerを使用したが、苦労した分前よりもDockerに習熟できたと思います。

最後に

以上、簡単ですが感想と学んだことです。最後まで読んでいただきありがとうございました!

参考文献

現場で使える Ruby on Rails 5速習実践ガイド