最近話題になっているChatGPTとは、OpenAIが開発した人工知能の一つです。自然言語処理技術を応用し、人間との会話のように文章を生成することができます。ChatGPTで出来ることは色々とありますが、今回はプログラミング初心者の方がChatGPTを用いて行える勉強法について解説を行います。
ChatGPTとは?
ChatGPTとはOpenAIが2022年11月に公開した人工知能型チャットボットです。
OpenAIのアカウントを取得することで基本無料で利用することができ、その他に月額20ドルのサブスクリプションプランである「ChatGPT Plus」も用意されています。有料プランでは「ピーク時でも優先的にアクセスが可能」であったり「レスポンス時間の短縮」「新機能の先行利用」などの特徴があります。
人工知能と聞くと一般的に「難しそう」や「扱えなさそう」というイメージが持たれますが、ChatGPTの大きな特徴として自然言語処理を用いている点が挙げられます。そのため、疑問点などを対話形式でChatGPTに投げかける事で回答を得ることができます。
ChatGPTを使った勉強方法
ChatGPTを使う事で必要な情報の検索や文書の翻訳、小説などの文章作成まで行えます。
例えば、「なぜ空は青く見えるのですか?」と聞くと「太陽光が大気中を通る際に、空気分子によって散乱されるためです」といった回答を得られます。ChatGPTを使うことでインターネット上にある膨大な情報の中から必要な情報をピンポイントで得ることもできるため、プログラミングの学習を行う上で強い味方となってくれます。今回はChatGPTを用いて行えるプログラミングの学習方法を3つご紹介します。
基礎知識の学習
プログラミングの勉強を行う上で初学者の方はまず「どのような言語があるのか」「その言語を用いると何が作れるのか」「基本的なコードはどのようなものか」といった初歩的な部分から学習が始まると思います。プログラミングを行う上で情報の検索力は非常に重要であるため、自身で必要な情報を集める必要がありますが、今回はChatGPTに手助けを行ってもらいながら進めてみます。
1. プログラミング言語の種類とは?
まずはどのようなプログラミング言語があるのかを聞いたところ、以下の10個のプログラミング言語を教えてもらえました。
項目 | 内容 |
---|---|
C言語 | システムプログラミングや組み込みシステムなどに広く使われる、初期のプログラミング言語の一つです。 |
Java | オブジェクト指向プログラミング言語で、Webアプリケーションやモバイルアプリケーション、ビッグデータ処理、ゲーム開発などに使用されます。 |
Python | 簡潔で読みやすいコードが書けることで有名なスクリプト言語で、機械学習やデータサイエンス、Web開発、自動化スクリプトなどに使われます。 |
JavaScript | ウェブ開発に必須のクライアントサイドスクリプト言語で、ブラウザでの動的な動作を実現するために使用されます。 |
Ruby | 簡潔で自然な文法が特徴のスクリプト言語で、Webアプリケーション開発やテスト自動化などに使用されます。 |
PHP | サーバーサイドスクリプト言語で、Webアプリケーション開発に広く使用されます。 |
Swift | Appleが開発したオブジェクト指向プログラミング言語で、iOSアプリケーションやMacアプリケーションの開発に使用されます。 |
Kotlin | Java言語に代わるAndroidアプリケーション開発に適した、オブジェクト指向プログラミング言語です。 |
C# | Microsoftが開発したオブジェクト指向プログラミング言語で、Windowsアプリケーションやゲーム開発、Webアプリケーション開発などに使用されます。 |
Go | Googleが開発したコンパイル型のプログラミング言語で、並行処理に強く、Webサーバーやマイクロサービスなどの開発に適しています。 |
2. 人気のあるプログラミング言語は?
10個のプログラミング言語を教えてもらえたので、ここから人気のあるプログラミング言語を3つに絞ってもらいました。
項目 | 内容 |
---|---|
Python | 機械学習やデータサイエンス、Web開発、自動化スクリプトなどに使われる汎用的なスクリプト言語で、簡潔で読みやすいコードが書けることが特徴です。 |
Java | オブジェクト指向プログラミング言語で、Webアプリケーションやモバイルアプリケーション、ビッグデータ処理、ゲーム開発などに使用されます。 |
JavaScript | ウェブ開発に必須のクライアントサイドスクリプト言語で、ブラウザでの動的な動作を実現するために使用されます。また、Node.jsを用いることでサーバーサイドでの開発にも利用されます。 |
3. Pythonの概念
先ほど教えてもらった3つの言語からPythonを選択し、Pythonの概念について聞いてみたところ以下の返答がありました。
項目 | 内容 |
---|---|
変数 | プログラムで使用するデータを一時的に格納するための入れ物です。変数名を指定し、その中に値を代入することができます。 |
条件分岐 | プログラムが特定の条件を満たしている場合に、処理を実行するための構文です。if文やelif文、else文を使って、プログラムの流れを制御することができます。 |
ループ | 同じ処理を繰り返し実行するための構文です。forループやwhileループを使って、リストの中身を処理するなど、同じ処理を何度も実行することができます。 |
関数 | 再利用可能な処理をまとめたもので、引数を受け取って何らかの処理を実行し、結果を返すことができます。また、関数内で定義された変数はローカル変数として扱われます。 |
オブジェクト指向プログラミング | プログラムを構成する要素をオブジェクトとして扱い、それらのオブジェクト同士が相互作用することでプログラムを実現するプログラミングパラダイムです。Pythonはオブジェクト指向プログラミングに完全に対応しており、クラスやオブジェクトを作成して、継承やポリモーフィズムなどの機能を使ってプログラムを実装することができます。 |
ライブラリ | プログラムの開発を支援するためのコードの集合体です。Pythonには多くのライブラリがあり、例えばNumPyやPandasなどのデータ処理ライブラリ、MatplotlibやSeabornなどの可視化ライブラリ、DjangoやFlaskなどのWebフレームワークなどがあります。これらのライブラリを使うことで、プログラムの開発が容易になります。 |
4. 基本的なコードの学習
Pythonの基本的なコード、書き方を聞いた結果が以下です。
- print文
意味:括弧内の文字列や変数の値を出力します。
print("Hello, World!")
- 変数の代入
意味:変数に値を代入します。
x = 10
y = "apple"
もちろんChatGPTのみではプログラミングの学習を行うことは難しいですが、プログラミングについての基本や疑問点について質問を行うことで学習の補助を行うことができます。
アイデアの発想
実際に何かを作ってみたいと思った際になかなかアイデアが思い浮かばないこともあると思います。
そんな時にChatGPTに質問を行うことでいくつかの候補を得ることができます。以下は実際にChatGPTにアイデアを求めた結果になります。
- 乱数を使ったおみくじプログラム
- ユーザーからの入力に応じて、簡単な計算を行うプログラム(たとえば、BMIを計算するプログラムなど)
- ユーザーが入力した文字列を逆さまにするプログラム
- ユーザーが入力した整数が奇数か偶数かを判定するプログラム
- 簡単な石取りゲームのプログラム
- ランダムな文字列を生成するプログラム
- 1から10までのランダムな整数を当てるゲームのプログラム
- カウントダウンタイマーのプログラム
- ある程度長い文章を入力すると、その文章に含まれる単語の出現頻度を数えて表示するプログラム
- じゃんけんゲームのプログラム
コードの作成
ChatGPTではコードの作成をしてもらうことも可能です。
実際に先ほどアイデアの発想で教えてもらった乱数を使ったおみくじプログラムのコードを作成してもらいました。以下がChatGPTの返答です。
import random
fortune = random.randint(1, 5)
if fortune == 1:
print("大吉です!")
elif fortune == 2:
print("中吉です!")
elif fortune == 3:
print("小吉です!")
elif fortune == 4:
print("吉です!")
else:
print("凶です・・・")
実際に作ってみる
先ほど教わったコードを実際に動かしてみます。
動作確認
問題なく動いていることがわかりました。
ChatGPTのメリット・デメリット
ここまでChatGPTを用いてさまざまなやりとりを行ってきましたが、ChatGPTにはメリットだけでなく、デメリットも存在します。
ChatGPTの主なメリット・デメリットとして以下の点が挙げられます。
メリット
ChatGPTは高い自然言語処理能力を持っているため、自然な対話形式で利用することができます。
そのため専門知識などが必要なく、どなたでも無料で使用することができます。また、過去の会話内容を覚えているため、間違った回答や文脈を指摘すると以後は修正された返答を得ることができます。活用法は多岐に渡り、検索や翻訳、文章作成やプログラミングなどアイデア次第で無限に広がりる点がメリットして挙げられます。
デメリット
ChatGPTには高い自然言語処理能力がありますが、まだまだ正確性に欠ける部分があります。そのため最大のメリットでもある自然な対話形式でのやり取りから、あたかも事実であるかのように情報を提示されるため、エビデンス確認はしっかりと行いましょう。
まとめ
今回はChatGPTを用いたプログラミングの学習方法について解説を行いました。
利用にはOpneAIのアカウントが必要となり、無料で作成を行えます。ChatGPTでは自然言語処理が用いられているため、専門知識や技術が必要なく、誰でも対話形式で利用することができます。インターネット上にある膨大なデータから必要な情報をピンポイントで収集したり、文章作成や翻訳などアイデア次第で使用用途は多岐に渡ります。プログラミング初学者ではChatGPTを上手く活用することで学習スピードの向上を行ったり、ライフスケジュールや学習内容を共有することで効率のよい学習スケジュールを組んでもらうこともできます。
ただし、情報の正確性に欠けるため使用する際はエビデンス確認を怠ってはならない点や、社外秘の情報や個人情報など扱う情報に注意が必要です。まだまだ課題点の多いChatGPTではありますが、活用法によっては作業効率の向上などメリットも大きいため、仕様を正しく理解し活用を行いましょう。
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2023.06.26
メリット・デメリットの両面から見るChatGPTおすすめプラグイン
ChatGPTのプラグインとは、機能拡張のための追加ツールのことです。プラグインは簡単にインストールとアンインストールができ、自分の好みに合わせてカスタマイズできます。
- AI
2023.12.31
生成AI ジャンル別まとめ
この記事では、生成系AIを使うにあたって知っておきたい「特徴」や「使い方」を解説しているので、ぜひ参考にしてください。
- AI
2023.03.30
ChatGPTがGoogleの牙城に与える影響について
今回は、そんなChat GPTについて解説していきます。使い方に加え、活用法や将来性についても紹介しています。Chat GPTに興味のある方は必見ですよ。
- AI