見出し画像

AI時代だからこそ学びたい。~これからはじめるプログラミング~


AI時代だからプログラミングは不要?

これまでアプリ開発

こんにちは。カズマです。
色々な方がこのトピックについて議論されていますが、僕なりの意見を発表したく、この記事を書いています。
※少し長くなったので、時間のある時にゆっくり読んでください。
忙しい人は『AI×動画教材でプログラミングを爆速マスター』の項目だけでも読んでみてください。

僕は大学生のころからプログラミング(当時はC++言語)を勉強し始めて、就職したのは医療系でしたが、ご縁があって大学院でもプログラミングを使って研究していました。

いままでは本やWebサイトをみながらコードを打ち込んでプログラムを書いてきました。
うまくいかないこともたくさんあったけど、楽しみながら開発してきました。

ところが、AI全盛期な今日この日ごろ、プログラミングや開発のシーンは大きく変化しました

次はAI時代の開発についてお話します。

AI時代の開発

AI時代のアプリ開発・プログラミングのシーンはどう変わってきたのでしょうか。
早速見ていきます。

例えば、初心者向けによいとよく言われているpythonですが、ChatGPTに
pythonに入門したい。最初は何からすればいい?』こう質問します。
すると☟の画像のように教えてくれます。

ChatGPTで生成されるPythonチュートリアル

これってめちゃくちゃ凄いことで、本を読んだり、サイトで検索していたことがAIに聞くという簡単なことで解決できるようになったわけです。

ただ、気を付けないといけないのが、AIは基本的にはWeb上のコンテンツやテキストを読み取って学習しているので、専門的すぎたりニッチなことを聞くと嘘をつかれることがあります

とはいえ、AIの普及で多くのことが自動化され、コンテンツ制作が爆速で可能になったのも事実です。

AIで作るアプリケーション

以下はChatGPTと一緒に作ったデスクトップアプリです。
ボタンを押すとカウントが増えていくという簡素なものですが、ものの5分で出来てしまいました。

ChatGPTと一緒に作ったデスクトップアプリ

また、別のサイトですが、https://v0.dev/  というサイトでは、このようにUI(ユーザーインターフェース)を生成できます。

v0.devで作ったUI

このように、生成AIを使えば自分で一切コードを書かなくても動くアプリが開発できるわけですね。

じゃあもう自分で勉強する必要ないじゃん
と思いますか?

僕はそんなことはないと考えています。
今からその理由をお話します。

これからはじめるプログラミング

プログラミングを学ぶのか

前述の通り現代ではAIを使えばプログラミング勉強したことがなくても簡単に、かつ、美しいUIのアプリケーションができるようになりました。

しかしながら、やっぱり現状は人間が打ち込んだ内容(プロンプト)に対してAIが返答を作っているだけなんですよね。

なにが言いたいかというと、あたなが知らない概念やロジックはやっぱり質問のしようがないし、AIから情報を引きだすことができないということ。

AIで何か作りたい、この場合はアプリとします。アプリの中身はコードで出来ています。つまり、コードやプログラミングの仕組みを理解していた方がより洗練された情報が返ってくるはずです。

だからこそ、『プログラミングは勉強すべき!』というふうに僕は考えています。

でも、AIは使わずにひたすら本で調べて一文字一文字手打ちでやった方がいい!とは思っていません。

その理由は、次の項目でお話します。

AIで入門するプログラミング

冒頭でお話した通り、僕が勉強し始めたころは当然AI(ChatGPT)なんかないので、エラーはしょっちゅう出るし、解決方法も何時間も調べてやっと判明するとかそんな状況でした。

でも、今はAIがあるので、コードを書いていて詰まった時にAIにエラー内容を渡せば何回か質問をやり取りするうちに解決できることが多いです。

つまり、何時間もかけて調べていた内容が数十秒~数分程度で解決するわけです。
これって凄くないですか?

例えば、以下のような使い方も出来ます。

ChatGPTで生成されるFastAPIチュートリアル

これはpythonのライブラリの一つであるFastAPIのチュートリアルを作ってもらったときの会話です。(※ライブラリがなんのことが分からない方はご自身で調べてもらうか、僕のXまでお問い合わせ頂いたら個別で返答します。)

なんと、『FastAPIでスキーマ駆動開発を進めるためのチュートリアルを作ってください。』という質問だけで、☟のようにテキストでまとめてくれるんですね!


1. スキーマ駆動開発(Schema-Driven Development, SDD)とは?

スキーマ駆動開発(SDD)は、まず データのスキーマ(構造)を設計し、それを元にAPIの実装を進める手法です。

メリット:

  • APIの仕様が明確になる

  • バリデーションが統一される

  • 型安全な開発が可能

FastAPIでは Pydantic と async-graphql を活用してスキーマ駆動開発を進めることができます。


2. 必要なライブラリのインストール

まず、FastAPIとGraphQLの関連ライブラリをインストールします。

pip install fastapi[all] async-asgi-tools strawberry-graphql uvicorn

strawberry-graphql は FastAPI で GraphQL を扱うためのライブラリです。


3. GraphQL スキーマの定義

まず、GraphQLのスキーマ(データ構造)を設計します。



もうちょっとだけ続くんじゃ

知っておきたいこと

さて、AIでアプリが簡単に作れること、AIの補助があればプログラミングを簡単に始められることが理解できたと思います。

正直AIに聞けば色んなプログラミング言語のチュートリアルを始めることができるでしょう。

しかし、ここで超重要なのが、『AIは嘘を言っている可能性がある』です。

悲しいことに出力されたコードには間違いがあることがあるんですね。
これちょっと深い話なんですが、プログラムにおいてエラーがないことって正しい実装だといえると思いますか

エラーがない≠正しく動く

実はコレ、エラーがない=正しく動くではないんです。
どういうことかというとエラーがないというのは文法上間違ってないよねというだけなんです。

つまり、僕はもちろん人間ですが、
I am a owl.<私はフクロウ>です。
この文章どうですか?
言っていることおかしいですよね?

I am a owl. というのは英語の文法的には合っています
でももちろん僕はフクロウではないです。

プログラミングでエラーがないというのは極端な話、I am a owl.という文章の文法がおかしくないかをチェックしているだけなんですね。

だからこそ、自分の意図した通りにコードが書けているのかをチェックする必要があるわけです。


どうやってチェックするのかというとアプリ開発ではテストという工程があります。
テストを行うことで、

  • 実行時のエラーを未然に防ぐ

  • UIが意図しない変更を受けていないかチェックする

  • 開発効率をあげる

などのメリットがあります。


前置きが長くなってしまいましたが、次は僕が考える超効率のよいプログラミング学習法についてお話します。

AI×動画教材でプログラミングを爆速マスター

なぜ動画がいいのか

テキストを読んでコードを打ち込むのってやっぱり最初は疲れるし、間違えたらどうしたら良いんだろう?動かないんじゃないかな?
という、雑念が入ってしまいがちです。

また、動画って視覚と聴覚で情報が入ってくるから情報密度が高いんですよね。
なので、もし動画があるなら僕は動画も見ながらやっていくのが手っ取り早いと思います。

動画教材ではじめるプログラミング

noteをご覧になっているみなさんならおそらく多くの方がご存じかと思いますが、https://www.udemy.com/ Udemyというサイトを紹介します。

ちなみに、案件ではないです

Udemyでは様々な動画教材を購入できるプラットホームです。
また、無料もありますが、講座はだいたい有料です。
お金かけてるし頑張ろう!という感じで自分にはっぱをかけることも出来ます。
さらに、たまにセールを開催しているので、購入されるときは断然セール中がオススメです。

いくつかオススメの動画を貼っておきますね!


AIの役割

ここで、動画教材を見ながらやるならAIの出番とは?
と思った方もおられるんじゃないでしょうか。

あくまで僕の使い方ですが、

  1. 動画を見てコードを打ち込む

  2. エラーが発生する

  3. エラー内容をAIに聞く

  4. 解決して次に進む

ということが可能になります。
つまり、何時間もかけずとも爆速で学習できるわけですね。

ただ、この方法はデメリットもあります。
自分でエラーを解決する方法が身につかないんですね。

エラーの内容って実はよく読めば解決できる内容だったりするんです。
なので、よく読まずに思考停止してAIに聞けばいいや。はあまりよくないです。
というか生産性が落ちます

自分で考えながら書いていて、エラーもどんどん解決できた方が圧倒的に早いわけですから。
そういう意味ではAIは諸刃の刃かもしれません。

まとめ

AIの進化でプログラミングは不要に思えるかもしれませんが、むしろ基礎知識があるほどAIを活用できるんです。

さらに、動画教材とAIを組み合わせれば効率的に学習可能です。
ですが、最後にしつこいようですが、『AIは嘘をつく可能性があります
AIに頼りすぎず、自分で考える力を養うことが重要です。

また、必ずしも一人で勉強していかないといけないわけじゃありません
誰かを頼って良いんです。
何か聞きたいこと、困ったことがあれば僕のXにDMください。

いつでもご相談受けています。
それでは、またどこかでお会いしましょう。Happy Coding!


あ、フォローもお願いします!(小声)

おまけ

AIによってコードが生成される時代になった今、普通のエンジニアの仕事が減ってしまうリスクは否定できません。
そこでちょっと踏み込んで考えてみたのですが、これから需要の高まるのはアプリケーションの動く環境整備が自在にできるエンジニアではないでしょうか?
これまでもそのような環境の整備・運用が出来る人は重宝されてきたように思いますが、より一層この流れが強くなるのではないかと。

なぜかというと、環境の最適化までは僕の知っている限りではAIが自動的にやってくれないからです。さらに、アプリケーションの運用や監視をAIが自動化するのもなんだかそこまで丸投げいいのか?という感じもします。

以上、蛇足でした。

Thank you, next time

いいなと思ったら応援しよう!