15
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【未経験エンジニアの告白】「エラーが出ないと不安」先輩に言われた「エラーホリック」から卒業した話

Last updated at Posted at 2025-10-24

はじめに

こんにちは、エンジニア4年目の嶋田です。

1年目のある日、私はいつものように実装を進めていました。

$ php artisan serve
# よし、動いた...あれ、でも一発でエラー出なかったな

私:「先輩、エラー出ないんですけど、これで本当に合ってますか?」

先輩:「え、エラーホリックになってない?笑」

その瞬間、自分の異常な状態に気づきました。

私はエラーを解決することで成長を実感していたので、エラーが出ないと「何も学べていない」「本当に正しいのか不安」 と感じていたのです。

  • 「エラーが出て、それを直せたら成長した証拠」
  • 「エラーが出ないと、逆に不安...本当に動いてるの?」
  • 「1回でエラーが出ないコードって、何も学んでないってこと?」

今思えば完全に依存症でした。「エラー解決 = 仕事をした証」 という価値観に囚われていたんです。

今回は、私が「エラーホリック」から卒業するまでの4年間の思考の変化を、正直に告白します。

もしあなたが「エラーを解決することに達成感を感じすぎている」なら、この記事がきっと役に立つはずです!

目次

  1. 「エラーホリック」とは?私がハマっていた思考の罠
  2. なぜエラーが出ないと不安になるのか?
  3. エラーホリックを治した3つの「思考シフト」
  4. 卒業後の世界:エラーが出ないことに自信を持てるようになった
  5. 最後に

「エラーホリック」とは?私がハマっていた思考の罠

先輩が言った「エラーホリック」とは、エラーを解決することに依存して、エラーが出ない状態を不安に感じる思考パターンのことです。

🚨 1年目の私の思考パターン

パターン1:エラー解決 = 成長の証

// エラーが出た!
$user = User::find($id);
echo $user->name;
// Error: Trying to get property 'name' of non-object

// 調べて修正
if ($user) {
    echo $user->name;
}
// 動いた!

よし今日も成長したエラーを1つ解決できた!」

エラーを解決した数が、自分の成長のバロメーターになっていました。

パターン2:エラーが出ない = 不安

// すんなり書けた
public function index()
{
    $users = User::paginate(20);
    return view('users.index', compact('users'));
}

// 一発で動いた...

あれエラー出ないな...
これで本当に合ってるの?」
何も学べてない気がする...

正解が分からないから、エラーがないことが逆に不安でした。

パターン3:エラーを求めてしまう

// 無意識に複雑な書き方を選んでいた

// シンプルな書き方(でもエラーが出なさそう)
$user = User::find($id);

// わざわざ複雑な書き方(エラーが出そう)
$user = User::where('id', $id)->first();
// ↑ こっちの方が「ちゃんと考えてる感」がある気がする

エラーが出ることで「ちゃんと学んでいる」と思い込んでいました。

なぜこれが問題なのか?

問題点 具体例
成長の基準が間違っている エラーを出さないことの方が価値が高い
本質を見失う 「顧客に価値を届けること」が目的のはず
効率が悪い わざわざエラーを出して時間を浪費
自信が持てない エラーが出ないと不安になる

私は**「エラーを解決した数」で自分の価値を測る、歪んだ価値観**にハマっていました。

なぜエラーが出ないと不安になるのか?

振り返ると、この思考パターンになった原因は明確でした。

原因1:「正解」が分からない

// このコード、合ってるの?間違ってるの?

public function store(Request $request)
{
    $user = new User();
    $user->name = $request->name;
    $user->email = $request->email;
    $user->save();
    
    return redirect()->route('users.index');
}

// エラーは出ない...でも本当にこれでいいの?
// バリデーションは?トランザクションは?例外処理は?
// ↑ 正解が分からないから不安

未経験の私には 「動くこと」と「正しいこと」の違いが分かりませんでした。

だから、エラーがない状態=「正しいかどうか確認できない状態」と感じていたのです。

原因2:成長の実感が欲しい

エラーが出る → 調べる → 解決 → 「成長した!」

エラーが出ない → ...何も学んでない?

未経験エンジニアにとって、エラー解決は最も分かりやすい成長の証です。

  • 昨日できなかったことができるようになった
  • 新しい知識を得た
  • 問題解決能力が上がった

これらが目に見える形で実感できるのが、エラー解決でした。

だから、エラーが出ないと「今日は何も学べていない」と感じてしまっていたんです。

原因3:「エラー = 学びの機会」を勘違い

「エラーから学ぶことが大事」
↓
勘違い
↓
「エラーが出ないと学べない」

確かにエラーから学ぶことは大事です。でも、「エラーを出さないスキル」の方がもっと価値が高いことに気づいていませんでした。

本当の成長 勘違いした成長
エラーを出さずに書ける エラーを解決できる
設計力が上がる デバッグ力が上がる
予測して防げる 起きてから対処できる

エラーホリックを治した3つの「思考シフト」

先輩の指摘をきっかけに、私は価値観を根本から見直しました。

🎓 シフト1:【成長の定義を変える】「エラーを解決した」→「エラーを出さなかった」

一番大きな変化は、何を成長の証とするかを変えたことです。

Before:エラーホリック時代

今日の成果:
- エラーを5個解決した!
- Stack Overflowで3つ解決法を学んだ!
- 「よし、今日も頑張った!」

After:卒業後

今日の成果:
- エラーを出さずに機能を完成させた
- 設計を考えてから書いたら1回で動いた
- 「よし、コードの質が上がった!」

実践:「予防できた数」を数える

// Before:問題が起きてから対処
$user = User::find($id);
echo $user->name;  // エラー発生
// → 修正して解決!やった!

// After:問題を予測して予防
$user = User::find($id);

if (!$user) {
    abort(404);  // ← エラーを予防した!
}

echo $user->name;
// → エラーが出ない。これが成長!

「今日はエラーを3個予防できた」と数えるようにしました。

これだけで、エラーが出ないことが「不安」から「達成感」に変わりました。

🎓 シフト2:【正解の見極め方を学ぶ】「エラーがない = 正しい」ではない

「動く」と「正しい」の違いを理解しました。

Before:エラーがないと不安

// エラーは出ないけど...本当にいいの?
public function store(Request $request)
{
    User::create($request->all());
    return redirect()->back();
}
// ↑ 動くけど、バリデーションもないし、例外処理もない

After:チェックリストで確認

// チェックリストで「正しさ」を確認できる
public function store(Request $request)
{
    // ✅ バリデーション
    $validated = $request->validate([
        'name' => 'required|max:255',
        'email' => 'required|email|unique:users',
    ]);
    
    // ✅ 例外処理
    try {
        User::create($validated);
        // ✅ 成功時のフィードバック
        return redirect()->route('users.index')
                        ->with('success', '登録しました');
    } catch (\Exception $e) {
        // ✅ エラー時の対応
        return back()->withInput()
                    ->with('error', '登録に失敗しました');
    }
}

「正しさのチェックリスト」を作って、エラーがなくても確認できるようにしました。

実践:コードレビューチェックリスト

## 自分用チェックリスト

- [ ] バリデーションは入っているか?
- [ ] nullチェックは必要ないか?
- [ ] 例外処理は適切か?
- [ ] ユーザーへのフィードバックはあるか?
- [ ] N+1クエリは発生していないか?

このチェックリストがあれば、エラーが出なくても「正しい」と確信できます。

🎓 シフト3:【学びの源を増やす】エラーだけが学びじゃない

エラー以外からも学べることに気づきました。

Before:エラーしか見ていない

学びの機会:
- エラーが出た → 調べる → 学ぶ

エラーが出ない日:
- 何も学んでない...

After:あらゆることから学ぶ

学びの機会:
1. 先輩のコードレビューから学ぶ
2. 公式ドキュメントを読んで学ぶ
3. 設計を考えることで学ぶ
4. うまく動いた理由を分析して学ぶ
5. エラーが出なかった理由を振り返って学ぶ

実践例:「なぜ動いたか」を考える

// 書いたコード
$users = User::with('posts')->paginate(20);

// エラーが出なかった...でも終わりじゃない!

なぜ1回で動いたんだろう?」
 with()でN+1を防いだから
 paginate()で大量データにも対応したから
 事前に設計を考えたから

これが次に活かせる知識だ!」

エラーが出なかったことも、立派な学びの機会です。

むしろ「なぜエラーが出なかったか」を分析する方が、本質的な成長につながります。

卒業後の世界:エラーが出ないことに自信を持てるようになった

「エラーホリック」を卒業した今、私はエラーが出ないコードに自信を持てるようになりました。

マインドの変化

エラーホリック時代 卒業後
エラーが出たとき 「よし、学べる!」 「予防できなかった。次は防ごう」
エラーが出ないとき 「不安...合ってる?」 「よし、設計が良かった!」
1日の終わり 「今日は何個エラー解決した?」 「今日は何を学んだ?」
自己評価 「エラー解決数」 「コードの質」

開発スタイルの変化

Before:エラー待ち開発

// とりあえず書く
$user = User::find($id);
echo $user->name;

// エラーを待つ...
// ↓
// エラーが出たら対処
// エラーが出なかったら不安

本当にこれでいいのかな...

After:設計駆動開発

// まず考える
// - $idが存在しない可能性 → 404を返す
// - nameがnullの可能性 → デフォルト値
// - 権限チェックも必要かも

// 考えた上で書く
$user = User::findOrFail($id);  // 存在しなければ404
echo $user->name ?? '名前未設定';  // null対策

// エラーが出ない
設計通りだからこれで正しい!」

具体的な変化

変化1:コードレビューが楽しくなった

Before:
「エラー出ませんでしたけど、本当に大丈夫ですか...?」
→ 不安でいっぱい

After:
「チェックリストで確認済みです。レビューお願いします!」
→ 自信を持って依頼

変化2:リファクタリングが怖くなくなった

// Before:触りたくない...
public function calculateTotal($items)
{
    $total = 0;
    foreach ($items as $item) {
        $total += $item->price;
    }
    return $total;
}
// 「動いてるから触らない方が...」

// After:積極的に改善
public function calculateTotal($items)
{
    return $items->sum('price');
}
// 「チェックリストでテストしたから大丈夫!」

変化3:学びの質が変わった

Before:
「今日はエラーを5個解決した!」
→ 表面的な学び

After:
「今日はN+1問題の根本原理を理解した」
→ 本質的な学び

最後に

この記事を最後まで読んでいただき、ありがとうございました!

まとめ:エラーホリック卒業の3ステップ

  1. 成長の定義を変える:「エラーを解決した数」ではなく「エラーを予防できた数」を数える
  2. 正解の基準を持つ:チェックリストで「正しさ」を確認できるようにする
  3. 学びの源を増やす:エラーが出なかったことも、立派な学びの機会

今日からできること

  • 「今日はエラーを何個予防できたか」を数えてみる
  • 自分用のコードチェックリストを作る(最初は3項目でOK)
  • エラーが出なかったとき「なぜ動いたか」を1分考える
  • 先輩のコードレビューで「なぜこの書き方を選んだのか」理由を聞いてみる

なぜそのコードの書き方にしたのか自分で根拠を話せるようになれば最高!

エラーが出ないことは、不安ではなく誇るべき成果です。自信を持ちましょう!

私もまだまだ道の途中です。一緒に成長していきましょう!

15
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?