コンテンツにスキップ

新人エンジニアが知っておくべきこと

新人エンジニアとして現場に入る前に押さえておきたい知識を、ソフトスキルソフトウェア開発仕事の進め方 の3つの観点から整理する。


1. ソフトスキル編

技術力と同等かそれ以上に、現場で求められるのがソフトスキル。 研修では技術を学べても、ソフトスキルは意識しないと伸びない

1-1. コミュニケーション

スキル 具体例
傾聴 相手の話を最後まで聞く。途中で遮らない
言語化力 「なんかバグってます」→「〇〇画面で△△をクリックすると500エラーが出ます」
非同期コミュニケーション Slack/Teams等で、相手の時間を奪わずに情報を伝える
対面の力 テキストで伝わりにくいことは直接話す。印象に残る度合いが格段に違う

1-2. 質問力

エンジニアにとって質問力は最強のスキル。ベテランでも分からないことは日常的にある。

質問テンプレート:

1. 聞きたいことの一行まとめ
2. 起きている問題(エラーメッセージ / スクリーンショット)
3. 関連するコード
4. 自分で試したこと
5. 自分なりの原因予想

15分ルール: - 最初の15分は自分で調べる(公式ドキュメント、エラーメッセージでググる等) - 15分経っても解決しなければ質問する - 「自分で調べた」証拠があると、相手も答えやすい

1-3. フィードバックの受け方

  • コードレビューの指摘はコードへの指摘であり、人格否定ではない
  • 「なぜそう指摘されたのか」を理解し、次に活かす
  • 分からなければ「なぜですか?」と素直に聞く

1-4. 継続的な学習

IT業界の変化スピード

2020: コンテナ・Kubernetes が主流に
2022: GitHub Copilot 登場
2023: ChatGPT/LLM ブーム
2024: AIエージェント・RAG が台頭
2025: AIコーディングツールの標準化
2026: ← いまここ。次は何が来る?

→ 学び続けないと、あっという間に置いていかれる
  • 技術ブログ(Zenn, Qiita, dev.to)を定期的に読む
  • 勉強会・カンファレンスに参加する
  • 個人プロジェクトで手を動かす

2. ソフトウェア開発編

2-1. バージョン管理(Git)

これだけは覚える Git コマンド:

git clone <url>          # リポジトリを取得
git checkout -b feature  # ブランチを作成して切り替え
git add <file>           # 変更をステージング
git commit -m "message"  # コミット
git push origin feature  # リモートにプッシュ
git pull                 # 最新を取得
git log --oneline        # 履歴確認

ブランチ戦略(GitHub Flow):

main ─────────────────────────────────
  │                        ↑
  └── feature/login ──→ PR ──→ merge
    ここで開発
- main は常にデプロイ可能な状態 - 機能ごとにブランチを切る - Pull Request(PR)を出してレビューを受ける - レビューOKでマージ

2-2. コードレビュー

レビューを受ける側のコツ: - PRの説明をしっかり書く(何を・なぜ変更したか) - 差分は小さく保つ(目安: 200-400行以内) - セルフレビューしてから出す

レビューする側の心得: - 「なぜダメか」ではなく「こうするとより良い」と伝える - 重要度を明示する(Must / Should / Nit) - 良いコードには褒めのコメントを

2-3. 開発手法

手法 特徴 向いている場面
ウォーターフォール 計画→設計→実装→テスト→リリースの順に進む 要件が明確で変更が少ない案件
アジャイル(スクラム) 1-4週間のスプリントで小さく繰り返す 要件が変わりやすいWebサービス等
カンバン タスクを可視化し、WIP制限で流れを管理 保守・運用チーム

スクラムの基本サイクル:

┌─────────────────────────────────────┐
│           スプリント(1-4週間)        │
│                                     │
│  計画 → 開発 → レビュー → 振り返り    │
│                                     │
│  デイリースクラム(毎日15分):         │
│  ・昨日やったこと                     │
│  ・今日やること                       │
│  ・困っていること                     │
└─────────────────────────────────────┘
         ↓ 繰り返し ↓

2-4. テスト

テストピラミッド

        /  E2E  \        ← 少なく(遅い・壊れやすい)
       /  結合テスト \
      / ユニットテスト  \   ← 多く(速い・安定)
     ─────────────────
  • ユニットテスト: 関数・メソッド単位のテスト
  • 結合テスト: 複数のコンポーネントを組み合わせたテスト
  • E2Eテスト: ユーザー操作をシミュレーションするテスト

2-5. セキュリティの基礎

最低限知っておくべき脆弱性(OWASP Top 10より):

脆弱性 概要 対策
SQLインジェクション DBクエリに悪意のあるSQLを注入 プリペアドステートメントを使う
XSS Webページに悪意のあるスクリプトを注入 出力時にエスケープする
CSRF ユーザーに意図しないリクエストを実行させる CSRFトークンを使う
認証の不備 パスワードの平文保存、セッション管理の甘さ ハッシュ化、適切なセッション管理

鉄則: ユーザー入力は信用しない。必ずバリデーション・サニタイズする。


3. 仕事の進め方編

3-1. 報連相(ホウレンソウ)

日本の開発現場では特に重視される。

報告: 結果や進捗を上司・チームに伝える
      「〇〇の実装が完了しました」
      「想定より時間がかかっており、△△が原因です」

連絡: 事実を関係者に共有する
      「明日午後、サーバーメンテナンスがあります」
      「API仕様が変更されました」

相談: 判断に迷ったとき、事前に意見を求める
      「AとBの方法がありますが、どちらが良いでしょうか」
      「この設計で進めて問題ないでしょうか」

ポイント: - 悪い報告ほど早く。問題の隠蔽は小さな問題を大きくする - 相談するときは自分の意見を持ってから行く - 「結論→理由→詳細」の順で伝える(PREP法)

3-2. タスク管理

基本の流れ:

1. タスクを洗い出す(何をやるか)
2. 優先順位をつける(どの順でやるか)
3. 見積もりを出す(どれくらいかかるか)
4. 実行する
5. 進捗を報告する

ツール: - GitHub Issues / Projects - Jira - Trello / Notion

テクニック: | 手法 | 内容 | |------|------| | ポモドーロ | 25分集中 + 5分休憩を繰り返す | | タイムボクシング | 作業に制限時間を設ける(「1時間で調査を終える」) | | GTD | すべてのタスクを外部に書き出し、頭を空にして集中する |

3-3. 見積もり

新人が最も苦手とするスキルの一つ。

見積もりのコツ: - 最初は自分の感覚の2-3倍で見積もる(大抵、楽観的すぎる) - タスクを細かく分解してから見積もる - 不確実な部分は「調査時間」として明示する - 「できます」と安請け合いしない

悪い見積もり: 「3日でできます」
良い見積もり: 「実装に2日、テストに1日、バッファ1日で計4日です。
               ただしAPI仕様の確認が必要で、それ次第で+1日の可能性があります」

3-4. ドキュメンテーション

  • コードコメント: なぜそうしたか(Why)を書く。何をしているか(What)はコードを読めば分かる
  • README: セットアップ手順、使い方を書く
  • PR説明文: 変更の背景と内容を書く
  • 議事録: 決定事項と次のアクションを記録する

3-5. 心構え

┌─────────────────────────────────────────────┐
│  新人エンジニアの成長サイクル                   │
│                                             │
│  知らないことを認める                          │
│       ↓                                     │
│  質問する・調べる                              │
│       ↓                                     │
│  手を動かして試す                              │
│       ↓                                     │
│  失敗する → 原因を分析する                     │
│       ↓                                     │
│  改善する → ナレッジとして記録する               │
│       ↓                                     │
│  次の「知らないこと」に挑む(最初に戻る)         │
└─────────────────────────────────────────────┘
  • 完璧を目指さない: 60%の出来で早くフィードバックをもらう方が、100%を目指して遅れるより良い
  • 分からないは恥ではない: 分からないのに分かったふりをする方が危険
  • 他人のコードを読む: 良いコードの書き方は、良いコードを読むことで身につく
  • 健康管理: 長時間労働は生産性を下げる。睡眠・運動・休息を大切に

まとめ

分野 最重要ポイント
ソフトスキル 質問力・言語化力・フィードバックを受ける姿勢
ソフトウェア開発 Git・コードレビュー・テスト・セキュリティの基礎
仕事の進め方 報連相・タスク分解・見積もり・ドキュメンテーション

共通する最も大切なこと: 学び続ける姿勢と、素直さ。


参考リンク