第5部:現場別ガイド / 第2章:技術領域別ガイド

Web系の場合

Web開発(JavaScript、Python、PHPなど)に携わる場合のガイドです。フロントエンドとバックエンドを含むフルスタック体験が可能で、技術の変化が速く、アジャイル開発で素早いリリースサイクルが特徴です。

📖 読了目安 約20分 対象:Web開発に携わる方

この領域の特徴

Web開発とは、ブラウザで動作するWebアプリケーション(フロントエンド)やそれを支えるサーバー(バックエンド)を開発する領域です。JavaScript、Python、PHPなど様々な言語が使われており、技術の進化が速いことが特徴です。

  • フロントエンドとバックエンドがある:ユーザーが見る画面と、その背後で動作するサーバー処理の両方に関わります
  • 技術の変化が速い:フレームワークやライブラリが頻繁に更新され、新しい技術が次々と登場します
  • アジャイル開発が多い:小さなサイクルで作って改善することが標準的です
  • ユーザー体験(UX)が重視される:技術的に正しいだけでなく、ユーザーにとって使いやすいことが重要です

よくある1日の流れ

毎日の活動パターンを図で見てみましょう。

flowchart LR
    A[10:00
朝会] --> B[10:30
開発作業] B --> C[12:00
昼休み] C --> D[13:00
開発作業] D --> E[15:00
レビュー・MTG] E --> F[17:00
デプロイ確認] F --> G[19:00
退勤]

朝は進捗確認、午前中に機能開発、午後はコードレビューとデプロイが中心です。以下はより詳しいタイムスケジュール例です。

時間活動詳細
10:00デイリースタンドアップ昨日やったこと、今日やること、困っていることを共有
10:30開発作業コーディング、動作確認
12:00昼休み
13:00開発作業午前の続き、PR作成
15:00コードレビュー他のメンバーのPRをレビュー、指摘対応
16:00ミーティング仕様確認、設計相談など
17:00デプロイ・動作確認ステージング環境へのデプロイと確認
18:00翌日の準備タスク整理、Slackの確認
19:00退勤

ポイント

Web系は「デプロイして本番に出す」サイクルが速いことが特徴です。小さな変更を頻繁にリリースするため、「動く状態を維持する」意識が大切です。

最初の1ヶ月で覚えること

第1週:環境とツールに慣れる

やること完了の目安
ローカル開発環境構築アプリがローカルで動く
Git/GitHubの操作ブランチ作成、PR作成ができる
ブラウザ開発者ツールElementsタブ、Consoleタブが使える
Slackなどのコミュニケーションチャンネルを把握、適切に投稿できる

第2週:小さな機能を実装

やること完了の目安
簡単なUI修正CSSを変更してPRを出せる
APIの呼び出し既存のAPIを使って画面に表示できる
開発者ツールでのデバッグNetworkタブでリクエストを確認できる

第3〜4週:開発フローを一通り経験

やること完了の目安
小さな機能の追加フロントエンド or バックエンドで1機能完了
デプロイまで経験ステージング環境へのデプロイを経験
不具合修正バグを1つ修正してリリース

1ヶ月後の目標状態

flowchart TB
    A[1ヶ月後の目標] --> B[開発環境で自力で作業できる]
    A --> C[PRを作成してレビューを受けられる]
    A --> D[開発者ツールで問題を調査できる]
    A --> E[APIの呼び出しが理解できる]

ブラウザ開発者ツールの使い方

Web開発で必須のスキルです。Chrome DevToolsを例に説明します。

開き方

  • WindowsF12 または Ctrl + Shift + I
  • MacCmd + Option + I
  • 右クリック → 「検証」でも開ける

主要なタブと用途

タブ用途よく使う場面
ElementsHTML/CSSの確認・編集表示がおかしいときにスタイルを確認
ConsoleJavaScriptのログ・エラーエラーメッセージの確認、console.logの出力確認
Network通信の確認APIリクエスト・レスポンスの確認
Sourcesソースコードの確認・デバッグブレークポイントを設定してデバッグ
Applicationストレージの確認Cookie、LocalStorageの確認

よく使う操作

Elementsタブ

1. 調べたい要素を右クリック →「検証」
2. Stylesパネルでスタイルを確認
3. 値を変更して、リアルタイムで結果を確認

Consoleタブ

// エラーが赤字で表示される
Uncaught TypeError: Cannot read property 'name' of undefined

// console.logの出力を確認
console.log(userData);  // オブジェクトの中身を確認

Networkタブ

1. Networkタブを開いてからページを更新
2. 確認したいリクエストをクリック
3. Headers:リクエストヘッダーを確認
4. Response:APIの戻り値を確認
5. 赤字のリクエストはエラー(ステータスコードを確認)

ポイント

「画面が表示されない」「データが取得できない」問題の多くは、Networkタブでリクエストの成否とレスポンス内容を見れば原因が分かります。

REST APIのテスト方法

APIの動作確認はWeb開発で頻繁に行います。

Postman/Insomniaの使い方

APIをブラウザから呼び出す前に、ツールで動作確認しておくと効率的です。

基本的な流れ

flowchart LR
    A[URLとメソッドを入力] --> B[リクエストボディを設定]
    B --> C[送信]
    C --> D[レスポンスを確認]

例:ユーザー情報を取得するAPI

メソッド:GET
URL:https://api.example.com/users/123
ヘッダー:
  Authorization: Bearer xxxxx
  Content-Type: application/json

例:ユーザーを登録するAPI

メソッド:POST
URL:https://api.example.com/users
ヘッダー:
  Authorization: Bearer xxxxx
  Content-Type: application/json
ボディ:
{
  "name": "山田太郎",
  "email": "yamada@example.com"
}

curlコマンドでの確認

ターミナルからAPIを呼び出すこともできます。

# GETリクエスト
curl https://api.example.com/users/123

# POSTリクエスト(JSON)
curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -d '{"name": "山田太郎", "email": "yamada@example.com"}'

# レスポンスを見やすく整形
curl https://api.example.com/users/123 | jq

よくあるHTTPステータスコード

コード意味よくある原因
200成功正常に処理された
201作成成功リソースの作成に成功(POSTで新規作成時)
400リクエストが不正パラメータの形式が間違っている
401認証エラートークンが無効、未ログイン
403権限なし認証はOKだが、そのリソースへのアクセス権がない
404見つからないURLが間違っている、リソースが存在しない
500サーバーエラーサーバー側のバグ(ログを確認)

フロントエンドとバックエンドの連携

Web開発では「データの流れ」を理解することが重要です。

sequenceDiagram
    participant User as ユーザー
    participant Frontend as フロントエンド
    participant Backend as バックエンド
    participant DB as データベース

    User->>Frontend: ボタンをクリック
    Frontend->>Backend: APIリクエスト(fetch/axios)
    Backend->>DB: クエリ実行
    DB-->>Backend: 結果を返す
    Backend-->>Frontend: JSONレスポンス
    Frontend-->>User: 画面に表示

トラブルシューティングのポイント

問題確認するところ
画面に表示されないConsole(JSエラー)、Network(APIレスポンス)
APIエラーが返ってくるステータスコード、レスポンスボディ
リクエストが送られないNetworkタブ、ブラウザのコンソール
認証エラートークンの有効期限、リクエストヘッダー

この経験で身につくスキル

技術スキル

スキル説明
フロントエンドスキルHTML/CSS/JavaScript、React/Vueなど
バックエンドスキルAPI設計、サーバー処理、DB連携
デバッグ力ブラウザ開発者ツールでの問題解決
Git操作力バージョン管理、チーム開発のフロー
自己解決力公式ドキュメントやStackOverflowで調べる力

ビジネススキル

スキル説明
スピード感素早く作って素早く改善する姿勢
ユーザー視点使いやすさを意識した開発
自律性自分で考えて動く力
学習力新しい技術をキャッチアップする力

目指せる人材像

flowchart TB
    A[Web系からのキャリア] --> B[フロントエンドエンジニア]
    A --> C[バックエンドエンジニア]
    A --> D[フルスタックエンジニア]
    A --> E[テックリード/CTO]

    B --> B1[UI/UXに強いエンジニア]
    C --> C1[API・インフラに強いエンジニア]
    D --> D1[フロント・バック両方できる]
    E --> E1[技術戦略を決める立場]
人材像説明目安期間
一人前のWebエンジニア機能単位で実装できる1〜2年
専門エンジニアフロント/バックの専門性を持つ2〜4年
フルスタック/リード幅広い領域をカバー、チームを牽引4年〜

Web系は「自分で作れる」が強み

個人でもサービスを作れるスキルが身につきます。副業やスタートアップへの参画など、キャリアの選択肢が広がります。

成長を感じられるポイント

3ヶ月後

6ヶ月後

1年後

成長のサイン

「以前は動かなくて困っていたエラーが、今は自分で解決できる」「新しい技術を見ても、学び方が分かる」と感じたら成長の証です。

本編で特に重要な章

重要度理由
よく使う技術知識★★★API、Gitを多用
開発環境の基礎★★★環境構築が頻繁
デバッグの基本★★★ブラウザデバッグも必要
実装の進め方★★☆短いサイクルで開発

追加で学ぶと良いこと

優先度:高

内容説明学習方法
HTTP/REST APIWeb通信の基礎本編 + 実践
Git/GitHubバージョン管理とPR本編 + 実践
ブラウザ開発者ツールフロントエンドデバッグ実践で学ぶ
HTMLとCSS基礎フロントエンドの基礎実践で学ぶ

優先度:中

内容説明学習方法
フレームワークReact、Vue、Laravelなどプロジェクトで使うもの
非同期処理Promise、async/await言語のドキュメント
セキュリティ基礎XSS、SQLインジェクションステップアップガイド

Web系特有の注意点

フロントエンドとバックエンド

  • 両方の知識があると強い:APIの設計と利用を理解する
  • データの流れを把握する:ユーザーの操作がどのようにサーバー処理につながるか理解する

技術の変化が速い

  • 基礎をしっかり学ぶ:基礎は変わりにくい
  • 流行を追いかけすぎない:全ての新技術が必要なわけではない
  • 必要なときに学ぶ姿勢:プロジェクトで使う技術から学ぶ

開発サイクルが速い

  • 短期間でリリース:完璧を目指すより早めにフィードバックを得る
  • フィードバックを素早く反映:ユーザーの声を開発に活かす
  • 完璧より動くものを優先:まず動かす、その後改善する

よくある悩みと対処法

「覚えることが多すぎる」
  • 全部覚えようとしない:HTMLとCSSの基礎、JavaScriptの基本構文だけで十分スタートできます
  • 今必要なことから学ぶ:配属されたプロジェクトで使う技術を優先
  • 基礎を固める:言語の基本文法、HTTP通信の仕組みなど、変わらない部分を固める
「フレームワークの使い方が分からない」
  • 公式ドキュメントを読む:チュートリアルから始める
  • チュートリアルをやってみる:実際に手を動かして学ぶ
  • 動くサンプルを参考にする:同じプロジェクトの他機能を参考にする
「デザインの知識がない」
  • 最初からデザインスキルは不要:ブラウザ開発者ツールでスタイルを編集して学ぶ
  • 既存のUIコンポーネントを活用:Bootstrap、Material Design等のフレームワークを使う
  • 必要に応じて学ぶ:デザイナーとのコミュニケーションを通じて理解を深める

成長のためのアドバイス

基礎を固める

  • JavaScript(またはメイン言語)の基礎:変数、関数、非同期処理など言語の基本
  • HTTP/WebAPIの理解:リクエスト・レスポンスの流れ、ステータスコード
  • HTMLとCSSの基礎:要素の構造と見た目の分離

実際に動かして学ぶ

  • サンプルを動かす:ドキュメントのサンプルコードを自分の環境で実行
  • 小さなアプリを作ってみる:TODO管理アプリなど、シンプルなWebアプリを作成
  • エラーを経験して学ぶ:エラーメッセージをしっかり読んで原因を特定する

アウトプットする

  • 個人プロジェクトを作る:興味のあるサービスを実装
  • 学んだことをブログに書く:説明できるレベルで理解が深まる
  • GitHubにコードを公開:ポートフォリオとして蓄積する