生成AI時代でも、プログラミングの『最初の一歩』は重い

PUBLISHED 開発 #プログラミング学習

生成AIによってプログラミングのハードルは大きく下がりましたが、「何から始めればよいのか」という最初の一歩は今でも重いと感じます。私自身、Progateや書籍で学びながら挫折しかけましたが、一度Webサービスを最後まで公開した経験、解決すべき具体的な課題、そして生成AIの存在によって状況が変わりました。今回は、非エンジニアの私が実務で使えるツールを作れるようになるまでの過程をご紹介します。

プログラミングが生成AIによってかなり取り組みやすくなったというのは、間違いないと思います。特に、エラーが生じたときや、「こういうことをやりたいけれど、どのようにコードを書けばよいのか分からない」というとき、あるいは単純な構文エラーを検出するときなど、生成AIによって初心者にとってのハードルが劇的に下がったのは事実だと思います。ただ一方で、最初の一歩のハードルというか、「何から始めればよいのか」という取っ掛かりの重さは、今でもやはりあるのではないかと思います。

今回は、その最初の一歩をどのように乗り越えればよいのか、というところを一緒に考えていきたいと思います。そもそも、私はどうやってその一歩を乗り越えることができたのか。生成AIがタイミングよく登場したという幸運もありましたが、自分がどのように最初の壁を乗り越えていったのかを共有することで、何か先生方のヒントになればと思います。

結論を申し上げると、私は本やWebサービス、Progateなどを使っていろいろと学習し、一度は挫折しそうになった時期がありました。その後、

  • 有料のオンライン講座を受講し、「最初のWebサービスを作って公開する」という一連の流れを体験できたこと

  • 自分自身に直近で解決しなければならない課題があったこと

  • 生成AIがあったこと

これらの3つが、私が最初の壁を乗り越えることができたきっかけ、あるいは要因だったのではないかと、今は考えています。

なぜ最初の一歩が重いのか

では、なぜ生成AIがここまで普及した今でも、最初の一歩は重いのでしょうか。

生成AIの登場以前に比べれば、もちろん圧倒的にハードルは下がっています。それでも、プログラミングやWebサービスという分野には、膨大な情報があり、身につけるべきスキルも非常に多くあります。最初にこれらを学ぼうとすると、例えば本屋さんを見ていただいても分かると思いますが、プログラミングやパソコン関係の本のコーナーはものすごく広く、場合によっては医学書のコーナーに匹敵するくらいの規模で置かれているところもあります。これを見て、少し圧倒されてしまう先生も多いのではないかと思います。

もちろん入門書もたくさんありますが、最初はどこから手をつければよいのか分かりません。そもそも、どの本を買えばよいのかも分かりません。プログラミング言語ごとに書籍の棚が分かれていますが、どの言語から始めればよいのかということさえ、最初はさっぱり分からないと思います。さらに、使用する言語を選ぶことだけでなく、インターネット上に公開するのであればセキュリティやサーバーの知識、データを扱うのであればデータベースの知識なども必要になってきます。それぞれについて入門書は確かにあるのですが、結局どこから手をつければよいのか、私自身も最初はさっぱり分かりませんでした。

どうやってその最初の一歩を乗り越えたか

では、私自身がどうやってその最初の一歩を乗り越えたのか、というところについてお話ししていきます。数年前のことですので、本当にいろいろなことを試しながら乗り越えてきたのですが、プロフィールや他の記事でも少し書いたように、最初はProgateという有名な初心者向けのプログラミング学習サービスから始めました。そこでHTMLやCSS、PHPなどの基礎知識を頑張って習得しようとしました。

確かに知識は多少なりとも増えましたし、そこで習得したことは後々役に立ちました。ただ、その当時は「これが一体どう役に立つのか」「この学習を続けた先に、本当に実務で自分の役に立つものを作れるようになるのか」ということが、まったく見えませんでした。Progateだけではなく、本屋さんでさまざまな本も買い、頑張って学習しました。それでも、多少の基礎知識は得られたものの、「自分で何かを作れる」というレベルには本当に遠く及ばない状況でした。

さらに厄介なのは、HTMLやCSSの知識を習得したとしても、データベースやサーバーにデータをアップする方法、セキュリティなどは、また別の知識として必要になることです。それらを一連の流れとして包括的に教えてくれる本は、少なくとも私が探した範囲ではなかなか見つかりませんでした。そのため、断片的な知識は少しずつ増えていくものの、それを実務で使えるレベルまで持っていくところには大きなギャップがありました。例えばWebサイトであれば、オリジナルのサイトを実際に作り、インターネット上に公開し、セキュリティにも配慮しながら、その後のメンテナンスまで行う。そこまでたどり着くには、本当にものすごく大きな壁があるように感じました。

正直なところ、いろいろと頑張ってみたものの途中で途方に暮れてしまい、「もうプログラミングはやめようか」「ここまで勉強しても自分にはあまり意味がないのではないか」と思っていた時期もありました。

有料の講座を受講したことが、一つのターニングポイント

そこで、「このままではどうしても埒が明かない」と思い、インターネット上で講師に質問できるオンライン講座である「SENSE SHARE」を受講することにしました。こちらはプログラミング初心者向けに、環境構築を含めた最初の一歩をサポートしてくれる講座で、途中でつまずいた場合には、プロのエンジニアの方から遠隔で個別に指導を受けることができました。「これなら途中で詰まっても、最後までやり通せるのではないか」と考え、もうこれに賭けてみようという気持ちでした。私は、これでうまくいかなければプログラミングはやめようと思っていました。「これでダメなら、もうダメだろう」という、最後の賭けのような気持ちで受講しました。

ここで、学習がかなり進みました。今まで断片的に学んできたことが、少しずつ有機的につながっていったように思います。この講座では、とりあえず荒削りであっても、Webサイトを作り、サーバー上に公開するところまで持っていく。そのために必要なツールを揃え、環境を準備するところまで一緒に進めてくれるものでした。そこで自分なりに環境を構築したり、サーバーを整えたりしながら、なんとか最初のサービスを公開するところまでたどり着くことができました。最初に作ったものは、今振り返ればものすごく粗削りなものでしたが、それでも実際に公開するところまでいけた。ここが、私にとって一つの大きなターニングポイントだったと思います。

内容は粗削りで、非常に初歩的なものであったとしても、とにかく世の中に公開するところまで持っていく。一つの完成した形にまで持っていく。この経験が重要だったのだと思います。例えば、少し話はそれますが、音楽制作であれば、完成度は低くても、とりあえず一曲を最後まで作り切るということに近いのではないかと思います。

余談になりますが、私は以前、DTMというパソコンを使った音楽制作にも興味を持ち、少し触ってみたことがあります。ただ、これもできることや習得するべきことが非常に多く、断片的な知識はいろいろと得られたものの、結局、一曲を最後まで作り切るところまでたどり着くことができずに終わってしまいました。

一方で、プログラミングについては、この講座を通して、多少荒削りでも最後までやり通すことができました。それによって少し自信がつき、「こういう流れでやればいいのか」「このくらいの知識があれば、一応公開するところまでは持っていけるのか」という全体像が見えるようになりました。そこまで到達できたことは、かなり大きかったのだと思います。

ただ、この段階でもまだ壁はかなり厚く、この後すぐに何でも自由に作れるようになったわけではありませんでした。

最初の一歩を乗り越えられれば、あとは生成AIがかなり助けてくれる

一つのサイトをなんとか公開するところまでたどり着けたのはよかったのですが、結局、自分が作りたいものを自由に作れるかというと、まだ全くそのレベルではありませんでした。

しかしここに生成AIが入ってきたことで、一気に状況が変わりました。生成AIと相談しながらであれば、少しずつではありますが、自分が作りたいものを実際に作れるようになってきたのです。それまでは、「一つのものをなんとか最後まで作って公開する」というところ自体が大きな壁でした。しかし、一度サイトを最後まで作り切る経験ができると、その後は極端に言えば、そこに肉付けしていく作業とも考えられます。自分がやりたいことや作りたい機能を、少しずつ追加していけばよいわけです。

もちろん、本来であればその「肉付け」の部分もハードルは非常に高いと思います。ただ、ここを生成AIが強力に補助してくれることによって、以前よりもかなり実現しやすくなっています。今の生成AIの大きな価値は、まさにこの部分にあるのではないかと思います。

音楽に例えるのであれば、最初にとにかく一曲を最後まで作り切るところを経験してしまえば、その後はジャズでもロックでもアニメソングでも、別のジャンルに挑戦したり、最初に作った曲をブラッシュアップしたりすることができます。もちろん新たに学ぶことはありますが、現在は生成AIの補助によって、そのハードルはかなり下がっています。少なくとも、「やりたい」という気持ちがあれば、以前よりもはるかに挑戦しやすい環境になっていると思います。

逆に言えば、いくらやる気があっても、その最初の一歩を乗り越えられるかどうかが非常に重要です。最初に一つのものを最後まで作り切り、全体の流れを一度経験できるかどうか。そこが、プログラミングを続けられるかどうかを分ける大きなポイントの一つなのではないかと思います。

課題が追い風になった

私は、最初の一歩については講師の先生のサポートによって、なんとか乗り越えることができました。ただ、そこまでいったとしても、自分自身に直近で困っていることや「これを作りたい」というものがなければ、その先でまた止まっていたのではないかと思います。

私の場合は、ちょうどクリニックで困っていることがありました。例えば、病名チェッカーを作らなければ、高額な査定を受ける可能性があるという、かなり切迫した課題がありました。そのため、なんとかして自分で作らなければならない状況になったのですが、結果的にはこれがよかったのだと思います。

本当に目の前に迫っている課題を解決するためには、なりふり構っていられません。普段であれば少しためらっていたかもしれない生成AIも、最初はよく分からないまま、とにかくどんどん使ってみました。そして実際にやってみると、意外とできてしまうこともあります。

もちろん、分からないことだらけです。ただ、実際に作っていく過程で必要になったことだけを拾って、その都度生成AIに聞けばよいわけです。体系的にもう少し知りたいところが出てきたら、専門書の必要な部分をかいつまんで読むこともありました。

そうやって、最初の一歩を乗り越えた後に、自分自身の課題を解決するために試行錯誤しながら、いくつかのサイトやサービスを作っていきました。すると、いつの間にか、現在持っているような知識が少しずつ身についていた、というのが私の実感です。

現在の私のレベル

それでも、私自身、プログラミングやその周辺知識について多くを理解しているわけではありません。むしろ、分かっているのはほんの一部で、知識として抜けているところもかなりあると思います。

最初の頃は、作ったデータを全部飛ばしてしまうといった失敗も何度もしました。本当にいろいろな失敗を重ねてきましたし、正直なところ、生成AIがなければ今のような開発はほとんどできません。それでも、自分が「こういうものを作りたい」「こういうサービスが欲しい」と思ったとき、私が思いつく程度の比較的シンプルなものであれば、おおむね形にできるレベルにはなりました。生成AIを使えば、どのような言語や技術を使い、生成AIにどのような指示を出せば、自分が狙ったものを形にできそうか、おおむね当たりをつけられるようにはなりました。

具体的には、前回ご紹介したような感染症サーベイランスの情報を見やすく表示するツールや、これまでにもご紹介したことのあるWord Paletteのようなカルテ入力補助ツール、病名をチェックする簡易チェッカー、クリニックの売上データを管理するアナリティクスツールなどです。こうした比較的シンプルなものであれば、現在は自分でもかなり短期間で作れるようになっています。

もちろん、電子カルテを一から構築したり、大量の同時アクセスにも耐えられるような非常に堅牢な予約システムを作ったり、国家レベルのサイバーセキュリティを担当したりといったことは、私には到底できません。ただ、個人で使うものや、特に小規模診療所の業務改善、自分が「こういうものが欲しい」と思ったツールを開発するというレベルであれば、かなり対応できるようになってきました。そして、多くの先生にとっては、この程度のレベルまで到達できれば、ご自身のクリニックの実務に十分応用できるのではないかと思います。私程度の知識であっても、小規模診療所の業務改善にはかなり活用できると実感しています。

私も、もう一度音楽制作に取り組むことにした

このサイトを作ったり、開業医の先生向けにプログラミングや業務効率化について発信したりする中で、自分自身のプログラミング学習や、これまで作ってきたものについて振り返る機会がありました。そうして振り返ってみると、いくつかのターニングポイントがあり、さらに生成AIの急速な発展という偶然も重なったのですが、やはり最初に、荒削りであっても自分でWebサービスを作り、実際に公開するところまでたどり着いたことが大きかったのではないかと思います。

その後、偶然にも自分自身が解決しなければならない課題が出てきました。それを解決するために試行錯誤を繰り返しているうちに、いつの間にか必要な知識が少しずつ増えていき、ある程度のサイトやツールであれば作れるところまで来ました。もちろん、すべてを自分の力だけで作っているわけではありません。

必要な知識を十分に持っているというよりも、生成AIを使いながら、分からないことを調べ、必要なものを形にしていく方法が少しずつ身についてきた、という方が近いのかもしれません。それによって、実際の仕事にも生成AIやプログラミングを活用できるようになってきたのだと思います。

そんなことを考えていたとき、以前途中で諦めてしまった音楽制作ソフトが、ふと目に入りました。そこで、「これまでプログラミング学習で培ってきた試行錯誤の経験を応用すれば、音楽制作ももう一度挑戦すればできるようになるのではないか」と、なぜか思ったのです。それで、また新しく取り組んでみることにしました。

私自身も、また新たな挑戦を始めます。

先生方にも、ぜひ最初の一歩を踏み出していただきたいと思います。おそらく一番重たいのは、その最初の一歩です。ただ、そこを乗り越えることができれば、その先には今まで見えなかった選択肢が一気に広がっていくのではないかと思います。その最初の一歩を乗り越えるために、私自身の経験を通して、これからも何かしらのヒントを提供できればと思っています。


About the author この記事を書いた人:内科診療所の院長

IT企業でもコンサル会社でもなく、診療をしている開業医が、コードの作成から運用まで一人で行っています。取り上げるのは、実際に試して運用しているものだけです。

プロフィール →

Consultation

この記事のような仕組みを、先生の診療所でも。

運営者本人が伺って、電子カルテの自動化や集計ツールを導入し、先生ご自身で直し続けられる状態を目指します。まずは30分の事前オンライン相談から。

内容と料金を見る →
Related entries
  1. 017 開発に最も必要なものはプログラミングの知識ではなく、「この情報が欲しい」という問題意識
  2. 017 クリニックのホームページをWordPressから自前のサイトに移行しました
  3. 017 電子カルテ自動操作ツールTampermonkeyの衝撃
  4. 017 簡易病名チェッカーの開発
開発の記事をすべて見る →
  1. 017 レセプト請求のUKEファイルから情報を取り出す
  2. 017 業務改善が進みすぎて、効率化しすぎて「やることがなくなる」という話」