はじめに
GPT-4の登場により、近い将来プログラミングスクールが不要になるかもしれないというツイートを目にし、興味を持ち実際に試してみることにしました。
学習を始める前に、ChatGPTにヒアリングを行ってもらい、私専用のスケジュールとカリキュラムを作成してもらいました。
ヒアリングシート
- 使える技術:Webデザイナーを数年していてPHP、HTML、ワードプレス、CSS、jqueryなどを使用しています。
- 新しく学びたい内容:AWS、react、github actions、Tailwind CSS、Ruby、Ruby on Rails、Docker、JavaScript(Tailwind CSS、Ruby、JavaScriptは過去に学習経験あり)
- 制作したいWebサービス:観た映画の評価(点数とコメント記録)、映画情報の検索、観たい映画の保存、会員登録
- 確保できる学習時間:平日は2時間、土日は8時間
- 期間:100日(2023/3/17 - 2023/6/24)
ChatGPTが作成した内容
スケジュール
1.Ruby 入門 (1日目-9日目, 2023/3/17 - 2023/3/25, 32時間)
2.Ruby on Rails 入門 (9日目-23日目, 2023/3/25 - 2023/4/8, 52時間)
3.AWS 入門 (23日目-28日目, 2023/4/8 - 2023/4/13, 20時間)
4.Docker 入門 (29日目-32日目, 2023/4/14 - 2023/4/17, 20時間)
5.JavaScript 入門 (33日目-42日目, 2023/4/18 - 2023/4/27, 32時間)
6.React 入門 (43日目-56日目, 2023/4/28 - 2023/5/11, 52時間)
7.Tailwind CSS 入門 (57日目-59日目, 2023/5/12 - 2023/5/14, 14時間)
8.GitHub Actions 入門 (59日目-65日目, 2023/5/14 - 2023/5/20, 20時間)
9.映画情報検索APIの利用 (65日目-69日目, 2023/5/20 - 2023/5/24, 16時間)
10.会員登録機能の実装 (70日目-73日目, 2023/5/25 - 2023/5/28, 20時間)
11.観た映画の評価機能の実装 (74日目-80日目, 2023/5/29 - 2023/6/4, 20時間)
12.保存した映画リスト機能の実装 (80日目-86日目, 2023/6/4 - 2023/6/10, 20時間)
13.レコメンド機能の実装 (86日目-91日目, 2023/6/10 - 2023/6/15, 20時間)
14.デプロイと運用 (92日目-100日目, 2023/6/16 - 2023/6/24, 36時間)
カリキュラム
1.Ruby 入門(32時間)
- Ruby言語の基本概念と構文
- データ型(数値、文字列、シンボル、配列、ハッシュ)と変数
- 演算子と式(算術演算子、比較演算子、論理演算子)
- 条件分岐(if文、case文)
- 繰り返し処理(each, for, while, until)
- メソッドの定義と呼び出し
- クラスとオブジェクト指向プログラミング
- モジュールとミックスイン
- 例外処理
- ファイル入出力
- RubyGemsとライブラリの利用
- コードの品質向上(リファクタリング、テスト)
2.Ruby on Rails 入門(52時間)
- Railsフレームワークの概要とアーキテクチャ(MVCパターン)
- データベースとの連携(Active Record)
- ルーティング、コントローラー、ビューの設定と実装
- テストの基本とRSpecの導入
- 認証・認可機能の実装(Devise)
3.AWS 入門(20時間)
- AWSの概要と主要サービス
- AWSマネジメントコンソールの操作
- EC2, S3, RDSの基本概念と利用方法
- IAMの基本概念とユーザー、ロールの管理
4.Docker 入門(20時間)
- Dockerの概要と利点
- Dockerのインストールと基本操作(コンテナ作成、起動、停止)
- Dockerfileの作成とイメージビルド
- Docker Composeを使用したマルチコンテナ管理
5.JavaScript 入門(32時間)
- JavaScriptの概要と基本構文
- 変数、データ型、演算子
- 条件分岐とループ
- 関数とスコープ
- オブジェクトとプロトタイプ
- DOM操作とイベントハン
6.React 入門(52時間)
- Reactの概要と特徴
- コンポーネントとprops
- JSXとイベントハンドリング
- stateとライフサイクル
- フック(useState, useEffect, useContext, useReducerなど)
- コンポーネント間のデータの受け渡し(Context API)
- ルーティング(React Router)
- スタイリング(CSS-in-JS)
- テスト(Jest, React Testing Library)
7.Tailwind CSS 入門(14時間)
- Tailwind CSSの概要と利点
- インストールと設定
- ユーティリティクラスとレスポンシブデザイン
- カスタマイズと拡張
- コンポーネントの作成と再利用
8.GitHub Actions 入門(20時間)
- GitHub Actionsの概要と利点
- ワークフローの作成と設定(YAMLファイル)
- アクションとジョブの定義
- イベントトリガーと条件分岐
- セキュリティとセルフホストランナー
9.映画情報検索APIの利用(16時間)
- TMDb(The Movie Database)APIとOMDb APIの概要
- APIキーの取得と設定
- 映画情報の検索と表示
- クライアントサイドのページネーション
10.会員登録機能の実装(20時間)
- 会員登録フォームの作成
- バリデーションとエラーハンドリング
- パスワードのハッシュ化と認証
- セッション管理とログイン・ログアウト機能
- OAuth認証(Google、Facebookなど)
11.観た映画の評価機能の実装(20時間)
- 映画の評価フォームの作成
- ユーザーごとの評価データの管理
- 評価データの集計と表示
- 星評価の表示コンポーネント
12.保存した映画リスト機能の実装(20時間)
- 映画リストのデータベース設計
- 映画リストの追加・削除機能
- ユーザーごとの映画リストの管理
- 映画リストの表示とソート機能
- リスト内での映画の詳細情報表示
13.レコメンド機能の実装(20時間)
- ユーザーごとの映画評価データの分析
- 類似ユーザーの検出
- レコメンド映画の選定アルゴリズム
- レコメンド映画の表示
- レコメンド機能の改善と評価
14.デプロイと運用(36時間)
- Heroku, AWS, Vercelなどのデプロイ先選定
- デプロイの設定と実行
- 環境変数の管理
- ドメイン名の設定とSSL証明書の取得
- パフォーマンスチューニングとモニタリング
教材
Ruby 入門
- Ruby公式ドキュメント: https://www.ruby-lang.org/ja/documentation/
- Ruby入門(プログラミング言語Rubyドキュメント): https://docs.ruby-lang.org/ja/
Rubyでプログラミング初心者が学ぶべきこと(Qiita記事): https://qiita.com/jnchito/items/9f9d45581816f121af6b- Ruby入門(Progate): https://prog-8.com/languages/ruby
Ruby on Rails 入門
- Railsガイド(公式ドキュメント): https://railsguides.jp/
- Railsチュートリアル(マイケル・ハートル): https://railstutorial.jp/
- Ruby on Rails入門(Progate): https://prog-8.com/languages/rails
- Ruby on Rails入門(ドットインストール): https://dotinstall.com/lessons/basic_rails_v2
AWS 入門
- AWS公式ドキュメント: https://aws.amazon.com/jp/documentation/
- AWS入門(Qiita記事): https://qiita.com/tags/AWS
- AWS公式トレーニングリソース: https://aws.amazon.com/jp/training/
AWSのサービスを触って学ぶ(freeCodeCamp): https://www.freecodecamp.org/news/aws-for-beginners/
Dockerの学習教材:
- Docker公式ドキュメント: https://docs.docker.com/
- Docker入門(Qiita記事): https://qiita.com/tags/docker
- Docker入門(Zenn記事): https://zenn.dev/topics/docker
- Docker入門(Progate): https://prog-8.com/languages/docker
JavaScript 入門
- JavaScript公式ドキュメント(MDN Web Docs): https://developer.mozilla.org/ja/docs/Web/JavaScript
- JavaScript入門(MDN Web Docs): https://developer.mozilla.org/ja/docs/Learn/JavaScript/First_steps
- JavaScript入門(Progate): https://prog-8.com/languages/javascript
- JavaScript入門(ドットインストール): https://dotinstall.com/lessons/basic_javascript_v4
React 入門
- React公式ドキュメント(日本語版): https://ja.reactjs.org/
React入門チュートリアル(MDN Web Docs): https://developer.mozilla.org/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React- React入門(Progate): https://prog-8.com/languages/react
- React入門(Zenn記事): https://zenn.dev/topics/react
Tailwind CSS 入門
- Tailwind CSS公式ドキュメント: https://tailwindcss.com/docs
- Tailwind CSS入門(Zenn記事): https://zenn.dev/topics/tailwindcss
Tailwind CSS入門(freeCodeCamp): https://www.freecodecamp.org/news/tailwind-css-tutorial/- Tailwind CSS入門(Traversy Media): https://www.youtube.com/watch?v=UBOj6rqRUME
GitHub Actions 入門
- GitHub Actions公式ドキュメント: https://docs.github.com/ja/actions
GitHub Actions入門(Qiita記事): https://qiita.com/tags/GitHub%20ActionsGitHub Actions入門(Zenn記事): https://zenn.dev/topics/github-actions- GitHub Actions Crash Course(Traversy Media): https://www.youtube.com/watch?v=R8_veQiYBjI
映画情報検索APIの利用
- TMDb(The Movie Database)API: https://developers.themoviedb.org/
- OMDB API(IMDbデータベース): http://www.omdbapi.com/
- APIを使った映画情報アプリの作成(YouTube): https://www.youtube.com/watch?v=YsPqjYGauns
- 映画情報検索アプリ開発(Qiita記事): https://qiita.com/tags/%E6%98%A0%E7%94%BB%E6%83%85%E5%A0%B1%E6%A4%9C%E7%B4%A2
会員登録機能の実装
- Devise公式ドキュメント: https://github.com/heartcombo/devise
- Devise入門(Railsガイド): https://railsguides.jp/devise.html
- Deviseを使った認証機能の実装(Progate): https://prog-8.com/languages/rails5/study/3/9
- Railsで会員登録機能を作る(YouTube): https://www.youtube.com/watch?v=zJYuLebl-Js
観た映画の評価機能の実装
- Ruby on RailsでCRUDアプリケーション開発(Traversy Media): https://www.youtube.com/watch?v=pPy0GQJLZUM
- Railsでレビュー機能を作る(Qiita記事): https://qiita.com/yukihigasi/items/074e60424836d9cfe7fe
- 映画評価アプリ開発(Zenn記事): https://zenn.dev/topics/%E6%98%A0%E7%94%BB%E8%A9%95%E4%BE%A1
Railsで評価機能の実装(Railsガイド): https://railsguides.jp/active_record_validations.html
保存した映画リスト機能の実装
- Railsでお気に入り機能を作る(Qiita記事): https://qiita.com/kitou88C39/items/5f7f0b1e97585a12aeb9
- Railsでお気に入り機能の実装(Zenn記事): https://zenn.dev/topics/%E3%81%8A%E6%B0%97%E3%81%AB%E5%85%A5%E3%82%8A
- お気に入り映画リストの作成(YouTube): https://www.youtube.com/watch?v=ZgP4q9gkcx4
- Ruby on Railsでリスト機能を実装(Railsガイド): https://railsguides.jp/association_basics.html
Webサービスのデプロイと最終調整
- HerokuでRailsアプリケーションをデプロイ(Heroku公式ドキュメント): https://devcenter.heroku.com/articles/getting-started-with-rails
- AWSでRailsアプリケーションをデプロイ(AWS公式ドキュメント): https://aws.amazon.com/jp/getting-started/hands-on/deploy-ruby-on-rails/
- Railsアプリケーションのデプロイ方法比較(Qiita記事): https://qiita.com/superizqi/items/5d5a78d6a58bc6d5c1b5
- Railsアプリケーションのパフォーマンスチューニング(Railsガイド): https://railsguides.jp/performance_testing.html
まとめ
何度かの試行錯誤を経て、無事にChatGPTによるカリキュラムとスケジュールが作成されました。
明日からは、このカリキュラムに沿って学習を進めていく予定です。