「invalid syntax」で3時間消えた日 ~プログラミング初心者の苦労話~

住人A
住人A

あー、またエラーが出た!

管理人
管理人

invalid syntaxっていうエラーだろ?

住人A
住人A

なんで分かったの?

管理人
管理人

よく出るエラーだからだ!

プログラミングをやっていると、たまにモニターを割りたくなる時がある。

その代表格がこれだ。

SyntaxError: invalid syntax

初心者の頃、この文字を見た瞬間の絶望感は異常だった。

「いや、何がダメなの?」

というのが正直な感想である。

エラーメッセージは親切そうに表示される。

しかし実際は全然親切ではない。

エラーが出た行を見ても、

「だから何?」

となる。

気が付けば同じコードを10回以上見直している。

そして30分後。

原因が判明する。

カッコが一個足りなかった。

たったそれだけである。

30分が消えた。

人生も少し消えた。


プログラミングを始めて間もない頃。

コードをコピペして実行した。

するとエラー。

何度見ても間違っていない。

検索しても分からない。

ChatGPTに聞いても分からない。

住人A
住人A

そうそう、チャッピーに聞いても分からないときあるある!

1時間後・・・

原因が判明した。

全角スペース。

たった一文字。

見た目ではほぼ分からない。

なのにプログラムは容赦なく停止する。

人間「ほぼ同じだろ」

Pythonとか「違います」

なぜなのか。


住人A
住人A

昨日、プログラムが動いていたのに今日は動かない(´;ω;`)

管理人
管理人

それはよくあるな!

シャットダウンしたら明日は動かない

プログラムを書き始めた人となら誰もが経験する。

昨日動いていた。

間違いなく動いていた。

しかし今日動かない。

何もしていない。

本当に何もしていない。

でも動かない。

そして調査開始。

コードを見直す。

設定を見直す。

ライブラリを確認する。

検索する。

発狂する。

結果。

昨日、自分でコードを変更していた。

しかもコメント付きで。

「ここ修正」

未来の自分への攻撃である。


初心者の頃は思っていた。

住人A
住人A

よし、プログラムが動いたー

住人A
住人A

あっ、でも期待通りの動きをしない

エラーが消えれば勝ちだと。

違った。

エラーが消えてからが本番だった。

実行できる。

でも何も起きない。(エラーが起きないことが最も怖い?)

でも、期待通りの動きはしない(´;ω;`)

ログも出ない。

エラーも出ない。

つまりヒントがゼロ。

プログラムが静かすぎるのである。

静かに壊れている。

一番厄介なパターンだ。

住人A
住人A

(´;ω;`)


住人A
住人A

ちょっと、コードがごちゃごちゃしているから整理しヨット!

勇気を出してリファクタリングした。

コードを綺麗にしようと思った。

変数名を整理した。

不要そうな行を削除した。

結果。

全部動かなくなった。

住民A
住民A

えっ、たった1文字削除しただけで動かなくなった!

なぜか。

削除した行が不要ではなかったからである。(度のコードがどこに繋がっているか分からない!)

それにコメントを消したらコードが動かなくなることだってある!(なぜだ?)

しかも修正前のコードは保存していない。

無事終了(´;ω;`)


(あと参考にしても大体次のエラーが出る)

住人A
住人A

エラー出た、Googleで調べよっと・・・

エラーが出る。

エラーを検索する。

すると記事が出てくる。

期待して開く。

そこにはこう書いてある。

「この問題は非同期処理におけるスコープ管理が原因です」

初心者の私は思った。

「その説明で分かる人はこの記事読まないだろ」

結局さらに検索する。

その記事の意味を理解するための記事を探す。

そしてその記事を理解するための記事を探す。

気が付けばWikipediaの旅とgoogleの検索が始まる。


プログラミングは本当に面倒だ。

invalid syntax。

インデントエラー。

スペルミス。

ライブラリの競合。

謎のバグ。

意味不明な挙動。

数え始めたらキリがない。

それでも続けてしまう。

なぜなら、動いた瞬間が気持ちいいからだ。

思い通りに動いた瞬間ドーパミンが出ているんじゃないか?と思えるほどに気持ちいぃーーーー!

3時間悩んだエラーが解決した時。

初めて作ったツールが動いた時。

思った通りの結果が出た時。

その瞬間だけは全ての苦労を忘れる。

そして数日後。

またinvalid syntaxで苦しむ。

これがプログラミングである。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA



reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

/