AIでweb制作する時代にコーディング知識が必要な理由

Gemini Generated Image bl1qgabl1qgabl1q

最近ではAIを使ってコードを書く方法はすっかり当たり前になりました。

私自身も日常的に使っていますしその恩恵は計り知れません。

最近、スレッズやXではAIに一瞬でコーディングしてもらった、もうコーダーはいらないという人もいます。

先日は同業者とAIが書くコーディングについて盛り上がりました。

共通の認識となったのはコーディングを理解している人とそうでない人のAIコーディングには差が出る。

コーディングは書くものでは無くなるが知識として持っているかどうかに仕事の差が出てくるということでした。

AIを使っていても出来てくる成果物に差が出てきてそれがその人の評価に変わっていくことになる。

その差はどこにあるのか。

AIが書いたコードは動くが正しいとは限らない

すべての出発点はここにあります。

AIに指示を出せば数秒でコードが返ってきて、ブラウザで開くとちゃんと表示される。

コードが読めない人にとってはそれが完成です。

しかし、動いているコードの中にはしばしばこういうものが埋まっています。

  • 見出しがすべてdivタグで作られていて、検索エンジンにも読み上げソフトにも見出しとして伝わらない
  • 三階層で済むはずのdivが、七階層にまで積み重なっている
  • 同じ意味のクラス名が、少しずつ名前を変えていくつも共存している
  • 詰まったAIが最後の手段として書いたimportantが、あちこちに散らばっている
  • 画像に幅と高さの指定がなく、読み込みのたびにレイアウトがガタつく
  • 学習データに含まれていた古い書き方が、そのまま混ざっている

これらはすべて、画面上は問題なく表示されます。

だからこそ厄介なのです。

コードが読めなければ、そこに問題があること自体に永遠に気づけません。

気づけないものは直せません。

そして直せないものは良くなりません。

指示の精度がそのまま成果物の精度になる

AIは曖昧な指示には曖昧に答えます。

これはAIの性能の問題ではなく、

言葉の問題です。

たとえば「もっと綺麗にしてください」と伝えたとします。

AIは何かしら変更してくれますがそれがこちらの意図と一致する確率は高くありません。

返ってきたものを見て違うなと思い、また指示を出す。

これを何度も繰り返すことになります。

一方で、余白を8の倍数で統一して、行間を170%にと伝えられる人がいます。

この場合一回で意図した通りのものが返ってきます。

スマホで崩れますという報告と、768ピクセル以下でカラムを一列にして画像はトリミングして収めてください、という指示。

動きをつけてくださいという要望と、画面に入ったタイミングで下から少し上がりながらフェードインさせてくださいという要望。

返ってくるものの質はまったく違います。

専門用語はAIとの間の共通語彙です。

語彙を持っている人ほどAIから多くを引き出せます。

この往復回数の差がそのまま制作時間の差になっていきます。

最後の一割で進めるか詰むかが決まる

ここが最大の分かれ道です。

AIは9割を驚くほどの速さで作ってくれます。

問題は残りの1割です。

どうしても解決しない不具合、なぜかずれるレイアウト、原因の分からないエラー。

制作の現場ではここに突き当たります。

コードが読めない人がこの場面でできることは、エラーの文言を貼り付けて直してください、と伝えることだけです。

するとAIは原因ではなく症状に対処します。

ずれている分だけマイナスの余白を足す。

それで別の場所がずれる。

また直す。

また別の場所が崩れる。

これはAIスパイラルです。

コードは少しずつ汚れていきます。

見た目だけなら繰り返せばなんとなく収めることはできるでしょう。

これにプログラムが絡むとさらに厄介なことが起こってきます。

プログラムのゴミは他の動きに影響することがあります。

エラーの部分だけを修正するので詰まっていきます。

AIは初めから指示しなければ構造から見ようとしません。

そして詰まりきったらどうなるのか。

いよいよダメなループを検知するとAIは勝手に全てを書き換えることが起きることがあります。

そうなると今までの細かい修正は水の泡に。

動いていた部分まで作り変えられ、どこがどう変わったのか分からないまま状態が悪化したり、気になってなおしたはずの部分がまた・・・なんてことになることも。

バージョン管理をしていなければ戻る場所すらありません。

コードが読める人はこの場面で違う行動を取ります。

エラーの文言から見当をつけて該当の一行を自分で直し先に進みます。

数十分の差ではありません。

進めるか、詰むかの差です。

納品するということの意味

ここからは仕事としてweb制作をする方に向けた話になります。

半年後に触れないサイトになる

ホームページは納品して終わりではありません。

半年後に営業時間を変えたい、バナーを一つ追加したいという連絡が必ず来ます。

そのとき、中身を理解していないサイトは触れません。

またAIに投げようとしても当時のやり取りはもう残っていません。

他人が書いたコードを渡された状態と実質的に同じです。

むしろ、自分が発注したはずのコードなのに読めないという分、たちが悪いかもしれません。

AIのせいにはできない

納品した以上責任はすべて制作者にあります。

表示の崩れも、セキュリティの穴も、ライセンスの問題も、AIが書きましたという説明は通用しません。

特に注意したいのは、AIが自発的に外部のサーバーからライブラリを読み込むコードを書いている場合です。

そのライセンスがどうなっているのか。

そのサーバーが来年も動いているのか。

誰も保証してくれません。

頼まれていないことは、AIはやらない

フォームの検証がブラウザ側にしかない。

入力値の無害化がされていない。

接続情報がそのままファイルに書かれている。

AIは頼まれていない安全対策を、自発的には入れてくれません。

何を頼むべきかを知らない人は何も頼めません。

これは知識がないと気づけないという話の、最も深刻な形だと思います。

時間の使い方が、来年の差になる

長い目で見たとき私が一番大きいと感じているのはここです。

AIにすべてを任せた時間からは経験が残りません。

作業は終わりますが自分の中には何も積み上がらないのです。

だから来年も同じ場所で止まります。

一方で返ってきたコードを読みながら使っている人は違います。

なぜこう書くのか自分ならどう書くか、それを毎回考えながら進めています。

この人にとってはAIの出力そのものが教材です。

作れば作るほど上手くなっていきます。

同じ時間を使って片方は複利で伸び、片方は横ばいのまま。

一年目の差はわずかでも、三年経てばもう追いつけない距離になっています。

分かる人はAIをこう使っている

コードが分かる人はAIをコードを書かせる相手だとは考えていません。

実際の使い方はこういう形になります。

  • 叩き台を数秒で出させて、そこから自分の設計に寄せていく
  • 仕様は自分の頭の中にあり、AIには翻訳と手を動かす部分だけを任せる
  • 自分が書いたコードを見てもらい、問題点を指摘させる
  • 触ったことのない技術を、動くサンプルから逆算して理解する
  • 同じ構造の繰り返しや、単純な書き換えを一括で処理させる

設計と判断は人間が持ち、実装をAIに任せる。

この分担は理想的ですが成立するのは、設計と判断ができる人だけです。

判断できない人がこの形を真似るとただの丸投げになります。

AIは増幅器であって代替品ではない

私はAIのことを能力の増幅器だと捉えています。

代替品ではありません。

増幅というのは掛け算ですから元の数字が大きい人ほど結果も大きくなります。

逆に言えば元がゼロに近い人は、どれだけ強力なAIを使ってもゼロに近いままです。

足し算ではないところがこの話の厳しいところだと思います。

そして皮肉なことにこの差はこれから開いていきます。

AIが進化するほど9割を出す速度は上がりますが、最後の一割を判断する部分は人間の側に残り続けるからです。

誰でも作れるようになった世界では作れることは価値になりません。

作れるだけの人は存在する価値は無くなるのです。

それがAIにとって変わられてしまうということです。

そういう意味でのコーダーはいらなくなるかもしれません。

良し悪しが分かることが価値になります。

コードを学ぶ理由はもはや自分ですべてを書くためではないのだと思います。

AIを使い倒すため。

そして、その出力に責任を持つためです。

結局は人が引き受けるということ

私たちガイネットが大切にしているのはご縁マーケティングという考え方です。

目の前の方との関係を積み重ねていくことが結果として仕事につながっていくという考え方が土台になっています。

ホームページを納品するというのはファイルを渡すことではありません。

この先も付き合っていきますという約束をすることです。

半年後の修正も、三年後の相談も引き受けるということです。

その約束をするためには自分が渡したものを、自分が理解している必要があります。

中身の分からないものを渡して、この先もよろしくお願いしますとは私には言えません。

AIはその約束を守るためのとても優秀な道具です。

けれど、約束そのものを代わりに背負ってはくれません。

そこはいつまでも人の仕事なのだと思っています。

page top