memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

本:100日チャレンジ 毎日連続100本アプリを作ったら人生が変わった

Xは使わないので知るキッカケがありませんでした。

今日たまたま何か調べ物をしてたときに出てきて面白そうと思いましてポチりました。

電車に乗ってたときにスマホで見つけてポチろうとしたらスマホでは購入するのが大変なんですね。。。間違ってPlay Book版を買ってしまいキャンセルを申請しました💦 まだキャンセルされていませんが。。。できたらいいなぁ。

スマホでWebページにアクセスして何とかKindle版を買い直しました。ほんと、Apple税じゃないAndroid税は何とかして欲しいです。。。前はKindleアプリから買えたから便利だったのになぁ。

帰ってきて風呂・夕食を済ませてから読み始めました。後半30%くらいは飛ばしながら読みましたが1時間くらいで読み終えたと思います。

実は読む前はちょっとモヤモヤしてたんですね。。。ChatGPTにたくさんアプリ作らせたっていう話か。。。プロンプトを入れればそれっぽく完成できるはずだよな。。。と。

でも考えてみれば自分でChatGPTを使ってコードを完成させた経験はなかったので、そもそもこの考えも穿(うが)った考えだったと思います。すいません🙇

面白かったです。小学生ですね。。。すいません。

文系学部の元学生さんが著者です。

授業中に遊びでChatGPTにオセロゲームを作ってと頼んで作ったところを先生に見つかり、それがキッカケでその先生と出会い、さらに色々あってChatGPTに教えてもらいながら100日で100個のゲームを完成させるまでをご自身で振り返った話が書かれていました。

この元学生さんが自己分析しているのですが、真面目ではなくできるだけレポートも労力をかけずに作りたいし、楽をするため努力を惜しまない、という感じの学生さんだったそうです。

個人的には、もう、この時点でエンジニア向きの性格だと思います。単調な仕事を延々とできる人が便利なものを作りたいと発想するはずがありませんから。

著者が動機は不純!?ながらも「ChatGPTに質問しながら主体的?に学んでいく」姿が具体的に述べられています。

ゲームをたくさん作っていく過程で、最初はChatGPTに頼りっきりだったけど、一日のほとんどの時間をアプリ作りに費やしていたため、もっと楽に成果を出したいという欲求が自然と生まれて、コードを再利用することに目が向き、コードの中身を読むようになり、クラスを学び、クラス間の関係を整理するためUMLを知り、自分で手書きしたり、デザインパターンを知るまで行きついていました😲

うちの学科であれば授業や演習で普通にやっていることですが文系学部では習う機会はたぶんないのかもしれません。カリキュラムにもよるでしょうけど。自分の内から生じた欲求に駆動される形で学ぶと、その知識が必要とされる文脈もその効果もよく理解できるでしょう。普通であれば、学校で基礎を学んだあと会社で何個か案件をこなしていくうちに数年かけて体感していく、誰もが通る道だと思います。それをたった100日(でも一日の作業時間は10時間以上とか。。。)でChatGPTと一緒に学んだわけです。

個人的に授業で「一人ひとりの横について教えられたら挫折せずにもう少し興味をもって学ばせることができるんだろうな〜」と思ったことが何度もありました。TAをいくら増やしたところで個別教室は実現できません。でも、ChatGPTを使えばできるんですね。。。この方が証明しちゃいました👏 アプリを100個作り終える頃にはChatGPTへの依存度もかなり下がったとご自身が振り返っていました。

この学習方式は彼女だからできたのか、一般的なものかはわかりません。そこまで本書では分析されていません。

ただ、人間であれば「怠けたい」「楽したい」という欲求は誰しもが持っていると思います。その欲求を源として駆動する仕掛けを実装できれば真似ができるかもしれません。

授業といえば受け身の姿勢が問題です。どうやったら学生を前のめりにさせられるか?はすべての教員が抱える課題です。主体的になればどんな環境でも学べるはずなんです。主体性、つまり学ぶ動機はどうやって作ればいいのか。難しいのです。。。これは学校に限った話ではないですね。会社でも同じだと思います。

この方は規模は小さいですが案件を100個経験した猛者とも言えるかも知れません。アプリを企画し制作しリリースする。毎回、最初から最後まで経験したというのはとても重要でポイントだと思います。

最初は完成させたけど内部はわからなかった。でもだんだんと霧が晴れていくように見えてくる。門前の小僧の話です。著者は別の言葉を引用していましたが忘れました。似たような意味だったと思います。

このアプローチのポイントは以下の2点と思います。

  • 毎回アプリの完成させたこと
  • アプリ開発を100回繰り返したこと

短期間に繰り返すことにより、前のプロジェクトの記憶が残っているうちに次の経験をするので振り返りの時間を持たなくても自然と知見が蓄積されていったのではないかと想像します。もしかすると、この方法をやれば万人がプログラミング技術を身につけられる かも知れません。

プログラミングを学ぶ唯一の方法はないと言われています。プログラミング科目のドロップアウト率の高さは世界共通の問題です。そしてまだ誰も銀の弾丸を手にしていません。僕が知る限りは、です。あったら教えて欲しいです。

以下、Kindle本から面白いと思ったフレーズをコピペして閉じたいと思います。著者の生の声が聞こえてきてとても興味深いです。プログラミング教育に関わる教員は読むべきかと思います。

以前、JavaScriptを学ぼうとして市販の技術書を手に取ったが、コードをただ写すだけの作業に飽きてしまい、数時間で挫折したことを思い出す。集中力が続かない私にとって、「写経」は拷問のようだった。(p. 36)

→ 拷問ですからね。。。

自分の特徴を振り返ってみる。私は、手を抜くことに全力を尽くすタイプだ。何かしら作業があれば、いかにして効率的に終わらせるかを考える。そして、興味を持ったことについては、頑張っているという認識がないほどのめり込んでしまう。たとえば、新しいゲームを始めたら、クリアするか、あるいは体力が尽きるまで延々とやり続けてしまう。それはこの企画でも同じで、興味がある限り時間が経つのを忘れてしまう。(p. 83)

→ 上にも書きましたが、こういう感覚のある方は(ソフトウェア)エンジニアに向いていると僕は思います。怠けるために全力を尽くす。その自分のためだけの活動が、いつしか他人のためになっていくのです。

生協の書籍コーナーに入る。そこには『初めての~』『一番やさしい~』といったタイトルの、初心者向けのIT書が並んでいた。  少し懐かしさを感じる。こういう本を何冊も買ったけれど、ほとんど最初の2章くらい読んで、あとは放置。最後はリサイクルショップに持っていくのが常だ。(p. 112)

こういう学習本や参考書はつまらない。読もうとしても、飽きたり眠くなったりして一向に進まず、結局スマホゲームをして1日が終わる。初歩から丁寧に書いてあるのはいいのだけれど、まるで学校の授業のように退屈な長話を聞かされているみたいで、読み進めるのが辛い。だから私は、「基礎」の用語問題をテストに出されても全く点数が取れない。教科書の内容が頭に入っていないから。これはプログラミングだけではなく、他の科目でも同じだ。概念の理解は得意だから、「応用」の問題はできるのだけれど。 (pp. 112-113)

→ 新たな言語やフレームワークの本や動画を見るたびに、いつもこの感覚があります。なぜでしょう?不思議ですね。。。書かれていることがすべてなのだからあとはそれをやればできるっていうのにやりたくないんです。。。ポイントはやはり「受け身」になることが嫌なのかもしれません。学びの本当の姿がこの感覚の先にあるような気がします。学びは主体的であることはもちろん、インタラクティブであるべきと思います。そうやって考えながら学ぶことが本当の学びのような気がします。

毎日、作品作りに約10時間、その際に生じた問題の整理や文書化などに約2時間、合わせて平均12時間をこの企画に吸い取られている。日々の作品作りに追われ、俯瞰的に変化を捉えることは怠っていた。 (p. 166)

→ 10時間もやっていたんだ。。。毎日、それを100日。。。「凄い」の一言。言うは易しです。なぜやり続けられたのか?誰か分析してほしいです。

ちょっと脱線します。

ソフトウェアエンジニアって建築や機械や電気のように物理世界が相手ではないので基礎が無くてもいきなり製品が作れる、変な職業です。

大手SIerがSEやプログラマの求人票に「学部・学科不問」と堂々と書きますからね。。。教員としては少し悲しくなりますが事実です。資格がなくても売り物のソフトウェアを作っても怒られません。医者や看護師や弁護士のように素人がやったら逮捕されることもありません。つくづく変な職業だなと思います。そんな情報という世界が今の世の中の中枢を支えているのです。共通テストに情報が追加されましたし。もっともっと情報系を目指して欲しいなぁと思います。向き不向きはあるとは思いますが。

最後に。

この本を読んだあと、じゃ、これからはChatGPTがあれば大学とかいらなくなるのでは?と思われるかもしれません。

確かにいらなくなるかもしれません。でもですね。この本の著者にキッカケを与えたり、何かがあったときにそっと助言したり見守ったりしていた先生がいました。著者の次の段階が見えた頃合いで次のステージを示したり未来を案内する役をされていました。教員の役割は1から10まで教えるというより、学生が学ぶ横で何かあったら助言する、歩んできた道から進むべき道をそっと示してあげるとかは大人の一人である教員という役割の人間がする仕事なのかな。。。と思いました。図書館の司書のような存在になるのかなぁ?

ChatGPTが環境や人間の状況をセンシングして能動的に意見してくるようになったら、確かに大学も大学教員もいらなくなるのかも知れません。それはまだ先のような気がしますが。

でわ。

■追記

実はこのエントリーは何度も書き直しています。書いては読んでみてこういうことだったのかな?と自問自答している感じです。

1つ改めて思いました。

この本はAI支援による主体的な学びに挑戦しその方法を知らしめることに価値があることを証明したのだ、ということです。

ある意味、パンドラの箱を開けたのではないか、とも思います。

この本ではプログラミングが対象でしたが、AIが扱える他の学び、例えば、語学学習などでも同様に使える再利用可能なプロセスではないかということです。

AIを使って様々な人の活動を支援できることが示されていますが、AIを使ってどうやって学べばよいかはまだまだ具体的な知見が得られていません。

その状況であれば、そうしたチャレンジをすることで、その知見は他者が知りたいという情報になるでしょうし価値ある情報になるということです。

もしかするとこれも5年10年後(今ならもっと短いかもしれない)には当たり前になっている可能性が高いと思います。ChatGPTが進化することでさらに別の角度からのチャレンジが必要となるかもしれません。それはそれでまたチャンスといえると思います。

ここで思い出すのは、スマホが普及しだしたときに空の綺麗な写真を毎日撮影してツイッターに投稿した方の存在です。若い人はたぶん知らないと思いますが。そのときに誰もやっていなかった切り口で挑戦してみたことは、その活動自体が人の興味を惹きつけるでしょうし、それだけ価値ある情報になるということです。

時間的に余裕がある学生さんは(とはいえ最近の学生さんは大人が思うより忙しいですけどね。。。)、自分なりの学びにChatGPTを活用してみて、その活動をどんどん発信して世の中に知らしめて欲しいと思います。