6年前はプログラマーだった戦略コンサルのリハビリ。React書いたことない
僕とプログラミングの馴れ初め。
日々、これ精進と言わんばかりに、最近リハビリコーディングをしているTakです。2か月くらい前からポチポチとjinbaflowのランドページをいじっては、ちょっと変えてを繰り返していたいのですが、最近の生成AIの能力は本当に驚かされる。昔、大学1年の時図書館に通い詰めてコーディングの本を積み上げ、Panasonicのlet's note にいそいそとコードを作っていたあの頃とはあまりにも違いすぎる。ちなみ、僕が最初に読んだのはブルーバックスのこれならわかるC++。本当に懐かしい。これを見ながら当時は、行列計算が出来るアプリを作って喜んでいた。当時、やや難しい数学の宿題を自作のアプリで解けたときは、かなりドヤっていた。調子に乗って、Facebookに自分が作ったアプリを乗っけていた。あー恥ずかしい。
C++から始まり、HTMLを触り、Pythonをガチ勢となっっていた。Pythonをやり始めたのは、当時AIがはやり始めて、Kaggleコンテストなるものが注目を集め、これは小遣い稼ぎになるのではと思ったのが始まりである。その後、Carnotの松森と大学生ながら一緒にガチの脳波系アプリを作った。
アプリ開発は、本当に昼夜。土日とはず、ずーっとおかしくなるくらいコードを書いた。本当に飽きるほど書いた。当時、インターン先の元インテルCFOだった社長がもったいなすぎると嘆いていたのを横目に、なんやかんやあって、大学を卒業して戦略コンサルになった。
戦略コンサルになったあとは、ちょっとコードに触るがそんなガチではなかった。若手のうちはそれこそ、ものすごい武器になった瞬間も沢山あったが、どんどんシニアになりマネージャーになりその機会はめっきりなくなってしまった。そして今にいたる。
Cursor。これ、人がバカになる。そのくらいすごい
時は流れ、松森と再会し、一緒に何かやろうとなりjinbaflowをつくり始める。彼が先にいろいろ作ってくれていたので、後からコードに触り始めた私は、一つ気づく。
Reactってなんだw。こんなものはなかったぞ。というかPythonですら、記法が変わってないか….あ、今はちゃんと型をしていするのが主流なんだ。昔よく、一度作った変数が途中から型が変わって、マジ大変だったもんな…(それは、一重に僕が適当な構造で作っていたからだけど)
Pythonならまだしも、Reactについては本当にお手上げである。今更本を広げて読む気力もない。HTMLのような要素がありながらも全く構成が分からない。なんなんだ。これは…。それでもホームページは、直したい。
そこで、僕に渡されたツールが、Cursorである。
例えば、個々の色は紫にして、お願いとかいうと色を変えてくれる。
びっくりする。説明しているNoteは他に沢山あるだろうから、知らないかたは是非見てほしい。
一番やばいのは、コード一行一行に話しかけられることである。もともと、コードの素養は一応はあるため、多分ここら辺で、この図を扱ってるんだろうなーということは分かったりする。
でも、その記法は全く分からない。でも、Curusorは Ctr+K を押すとなんとなんとコードに対してチャットが出来る。神だ(注:宗教的な意味合いではなく強調としての神)
でも、万能ではない。驚くような量のコードを生成してくれるときと、スタックし、何も生み出せないときもある。ここら辺は、弊社のML博士の松森(注:この”博士”は、本当に機械学習で博士課程を修了しているため学者としての”博士”である)に解説させるとよくわかるが、いろいろコード生成もムズイことがある。例えば、”自分語り”(つまりは、解説をしながらコードを書くという行為)が出来ていない可能性がある。ユーザーの指示が曖昧過ぎる。周りのコードの制約が大きすぎる。などなど。
そんな気付いたのは。ChatGPTに聞こう!これは、一見、同じじゃねと思うかもしれない。ただ、これで解決することが多々あるのである。
例えば、下のYoutubeの動画を縦方向に埋め込むこと、youtube リンクを、教えてカーソルに作ることを依頼して、すごくへんてなことになる。ヘンテコ写真を撮り忘れたので、言葉いうと。すげーちっちゃいし、なんか動画の挿入の仕方もクソださい。ひと様には絶対に出せない。そこで1時間ほど、カーソルに色んな指示を出してみたがだめだった。
ChatGPTやっぱ。すごい。専門アプリを超える瞬間がある。
そこで、ChatGPTにほぼ同じことをお願いしてみる。そしたら一発で動くコードが返ってきた。なぜだろう。特にこの現象が起こりやすいのは以下の条件下だと思われる。(あとで松森に聞いてみよう)
改変するコードが長すぎる場合、特に新しい機能・塊をがっつり挿入する場合。
「GPTだけで考えるソリューション」ではうまくいかないので、外で自分で、調べてきた結果をヒントで渡す場合。
この条件下で、パフォーマンスが生まれてしまうのは、
Cursor側では、基本方針として、「既存コードのどこを改変するのがよいか、Userからの指示を受けて考え、コードを生成する」という基本動作が入っているからだと思う。いつか、Cursorの開発チームと話せたら聞いてみたい。
これによりに、モデルは、コードを生成しろというだけのシンプルよりも正確に、どこを修正すべきかは計算できるが、一方では、スクラッチで書いているときの方がうまくいくケースの場合はChatGPTの方がうまくいく。
これはすごく、コンサルタントとして直面した、複雑なファイナンスモデルを改変するときに、結局初めから作り直したほうが、圧倒的にキレイに仕上がるという現象にすごく似ている。
僕らのツールにもこれは重要な示唆を出している。
詰まってしまったら。頭を切り替えて、「Fresh eye」で作り直すという行為をさせるというオプションを出したほうがいい。
そんなことで作ったランドページぜひ訪れてください