大抵の人はプログラミング言語からはいって、プログラムをつくることに対して興味や関心を抱いて、そこからシステム屋になる。ただし、その人たちが何を習得して、何を理解しているのかは、各々全く異なるし、知っている知らない、出来る出来ない、そこは仕事としてやってきたことと、自らで投資して学んできたことによる。多くの場合は、目の前の作業におわれて、段々新しい技術や方法論にも無頓着になってしまったり、仕事というのはやっている感があるから、恐ろしいくらいつぶしの効かない作業をやっている人も多い。
さて、最近もっとも大きな影響を受けた方なのですが、マズローの人間の欲求5段階をもとに、人間の状態と次の段階へステップアップするためにの課題と対策を625段階にきめ細かく分けて定義し、9000人の方々に人生の最適化をフォローしているという方の話を聞き、最終的には2000万人までのデータを集めたうえで、統計的に80億人から90億人に相当するデータとしていきたいという。
それ自体にも協力していくのだが、まえまえからわたしも考えていたところで言う、プログラマやエンジニアが抱えるキャリアアップが、ものすごくざっくりとしていて、それ自体が現実離れしているところが多いと感じていた。
そこに、このきめ細かい課題と対策。まさしく、このくらいきめ細かくしていけば、誰もが上を目指していくことに心地よくすすんでいけるのではないかと思い、わたしもさっそくつくっていきたいと思い作り始めたのでした。
✅ 大項目①:コーディング基礎 – 中項目10
- 変数とデータ型の理解
- 演算と条件分岐
- ループと繰り返し処理
- 関数とスコープ
- 配列・コレクションの扱い
- エラーハンドリング基礎
- コーディング規約とスタイル
- 入出力処理の基礎
- IDEと補完・デバッグ機能の活用
- プログラム構造の原理理解
✅ 大項目②:構造と設計 – 中項目10
- 処理の分割と関数化
- 単一責任原則(SRP)
- データと処理の分離
- モジュール設計と粒度
- コードの再利用とDRY原則
- 名前付けと意図の明確化
- コードの階層構造設計
- 設計図(ワイヤー/ER図/クラス図)の描き方
- スパゲッティコードの回避
- 拡張しやすい構造の考え方
✅ 大項目③:オブジェクト指向とアーキテクチャ – 中項目10
- クラスとインスタンスの概念
- 継承・ポリモーフィズム
- カプセル化と情報隠蔽
- 責務分離と凝集度/結合度
- オブジェクト同士の協調と依存
- デザインパターン基礎(Factory/Strategyなど)
- MVCモデルの理解と実装
- DDD(ドメイン駆動設計)の入り口
- アーキテクチャ層の分離(Presentation/Domain/Infraなど)
- アンチパターンとリファクタリング
✅ 大項目④:テストと品質管理 – 中項目10
- 単体テストの考え方と実装
- 結合テストと統合テスト
- テストケース設計(正常系・異常系)
- テストフレームワークの使い方(PHPUnit/Jestなど)
- モックとスタブの活用
- カバレッジと品質指標
- CI/CDによる自動テスト実行
- バグ報告・再現・修正フロー
- レビューとペアプログラミング
- 品質向上のための継続的改善(継続的リファクタリング)
✅ 大項目⑤:データとストレージ – 中項目10
- データベースの基礎概念(RDB/NoSQL)
- テーブル設計と正規化
- SQLの基本操作(SELECT/JOIN/WHEREなど)
- インデックスとパフォーマンス
- トランザクションとロック制御
- ORMの活用(Eloquent/ActiveRecordなど)
- マイグレーションとスキーマ管理
- ファイルストレージとバイナリ管理
- データ整合性とバリデーション
- バックアップとリストア手法
✅ 大項目⑥:Web開発とAPI – 中項目10
- HTTPの基本理解(GET/POST/ステータスコード)
- ルーティングとURL設計
- フロントとの通信(AJAX/Fetch/axios)
- フォーム処理とバリデーション
- REST APIの設計と実装
- JSONの構造と扱い方
- 認証付きAPI(Bearer/OAuthなど)
- エラー応答とレスポンス設計
- GraphQLの基礎理解
- 外部APIの活用(天気/地図/決済など)
✅ 大項目⑦:インフラと運用 – 中項目10
- OSとシェルの基礎(Linuxコマンド)
- Webサーバの構成(Apache/Nginxなど)
- デプロイ手順と自動化(Git/rsync/Capistrano等)
- ログ管理とトラブルシュート
- サーバ監視(top/htop/uptime)
- コンテナ基礎(Docker/docker-compose)
- クラウドサービス利用(AWS/GCP/VPS等)
- DBサーバのチューニングと運用
- ジョブ・バッチ処理の設定と監視
- キャッシュとCDNの導入
✅ 大項目⑧:セキュリティと信頼性 – 中項目10
- SQLインジェクション対策
- クロスサイトスクリプティング(XSS)対策
- CSRFとフォーム保護
- パスワードハッシュ化と認証管理
- アクセス権と認可制御(RBAC等)
- セッション管理とタイムアウト
- HTTPSとSSL証明書
- 外部ライブラリの脆弱性チェック
- 障害時のログ記録と通知設計
- 障害に強い設計(冗長化・バックアップ)
✅ 大項目⑨:プロジェクトとチーム開発 – 中項目10
- バージョン管理の基本(Gitの概念)
- ブランチ戦略(Git Flowなど)
- コードレビューのやり方・され方
- タスク管理とチケット文化(Jira/Trelloなど)
- スクラム・カンバンなどの開発手法
- コミュニケーションと共有文化
- Pull Requestとマージ運用
- ドキュメント管理(README/Wiki等)
- チームの役割理解(リーダー・レビュワー)
- リモート開発環境の整備とルール
✅ 大項目⑩:要件理解と価値設計 – 中項目10
- 要件定義とは何か?
- ヒアリングと要求分析のスキル
- 業務フローとユースケース設計
- ペルソナとUXの理解
- MVPとスモールスタートの考え方
- プロトタイピングによる検証
- 本質的な課題と仮説の立て方
- ビジネスモデルと収益構造理解
- ステークホルダーとの調整力
- 技術提案と意思決定のサポート力
この各項目について、さらに10段階の課題と対策を考えているのである。
大項目も、中項目も、もちろん、暫定的に挙げた内容であって、つくりながら変わっていくことになるだろうと思う。