ChatGPTがあなたの学習を劇的に変革し、キャリアを飛躍的に向上させる方法を紹介します。パーソナライズされた指導と適応型学習により、新しいスキルをより速く、効率的に習得できます。ChatGPTがあなたのキャリア目標達成にどのように役立つか、今すぐご覧ください。
公開日:2023年4月30日
※動画を再生してから読むのがオススメです。
皆さんこんにちは!ChatGPTが登場し、皆が絶賛しています。
私はChatGPTを、私が最も得意とする学習と教育のために使おうとしました。
では、ChatGPTで新しいプログラミング言語を学び、それをより良く学ぶことができるでしょうか?
そして、ChatGPTで新しい言語を学びたい場合、どのようにするのでしょうか?
プロンプトはどうするのでしょうか?
どのように対話するのでしょうか?
このビデオで見てみましょう。
では、ChatGPTでKotlinを学んでみましょう!ChatGPTでKotlinを学ぶにはどうしたらいいのでしょうか?
ChatGPTに、「ねぇ、Kotlinを教えてよ」と頼んでみましょう。
と言って見ましょう。
もちろん、Kotlinはプログラミング言語であり、簡潔さを追求したモダンなプログラミング言語です。
なるほど、Android用ですね。
Kotlinコンパイラをインストールしたら、Kotlinのコードを書き始めることができます。
以下はその例です。
KotlinでHello worldのプログラムです。
なるほど。
このプログラムでは、funはfunctionの略です。
このプログラムでは、funはfunctionの略です。
そしてmainは、プログラムを実行したときに実行される関数の名前です。
println関数は、文字列を表示するために使用されます。
Kotlinの大きな特徴の1つは、Kotlinを使って数字のリストを作成する例として、非常に簡潔であることです。
このコードでは、valueは値の略で、list of numbersはokで、数字のリストを作成する関数です。
numbers変数には数字のリストオブジェクトが代入され、またサポートされています、なんと、だからこれは多すぎるのです。
だから、だから、これはやりすぎだと言うんだ。
小さなプログラムを見せてもらえますか?
まずミニプログラムを見せて、それを説明してから、簡単な似たようなプログラムを書いてもらって、それが正しいかどうかチェックしてください。
一度に一つの概念だけを紹介し、私をまったくの初心者として扱ってください。
どんなことをするのか見てみよう。
もちろんです。
まずは、変数と基本的な演算を使った簡単なKotlinのプログラムから始めてみましょう。
とてもいい感じです。
num1、10、num2、5、num1+num2、差、積、商と書いてあります。
これは素晴らしいですね。こういったことから始めると、たくさんタイプすることになりますし、たくさんタイプすると、だんだん慣れてきます。
例えば、このプログラムは4つの変数を宣言し、基本的な算術演算子を使ってそれらに値を割り当てます。プラス、マイナス、掛け算、スラッシュ演算子はそれぞれ加算、減算、乗算、除算に使われます。
算術演算の結果をコンソールに表示するために使用します。
では、同じようなプログラムを書いてみてもらいましょう。
今度はこれもプログラムを出してくれています。
これはとてもいい感じです。
長さ8、幅5の長方形の面積とパラメータを計算するプログラムを書いてくださいと書いてあります。
例えば、長方形の面積はその長さを掛けて計算し、それを積と呼びます。また、パラメータは、4つの辺の長さをすべて足すことで計算されます。
なるほど、そうなんですね。
では、プログラムを書かなければなりませんね。
そこで、関数mainを実行します。
この関数は私にプログラムを要求しているのですが、その答えがすでに上から与えられているようなものです。
そこで、「よくできました」と答えましょう。
あなたのプログラムは正しく見えます。
このプログラムを完成させるには、変換結果を表示するためのprint文、つまりprint line文を追加します。
ここに、とても素敵な例があります。
このプログラムでは、面積とパラメータの計算結果を印刷するために、print line文を追加していますが、よくできていますね。
あなたは初めてコーディングプログラムを書くことに成功したのです。
わあ、すごい。
ChatGPTでは、変数と基本的な演算を使った初めてのコーディングプログラムの書き方を教えてくれたんだね。
また何か質問があれば教えてください。
他に何か学びたいことはありますか?
はい。
もう一つ新しい概念を導入し、説明し、例を示し、さらに私に問題を与え、解決するようにします。
これがどうなるか見てみましょう。
わかりました。
と言っているわけですが、えーと、では今回は新しい概念を導入してみましょう。
条件文について説明しましょう。
なるほど。
では、Kotlinの条件文について説明しましょう。
良い試みですが、2番目の文は実際にはas if that's what I was sayingにすべきですね。
でも、as ifは教えてくれなかったけど、それについて質問された。
そういう間違いをしてもいいんです。
ええと、よくできました。
道具を使って問題を解決することに成功したんですね。
コトリンです。
また何か質問があったら言ってね。
はい
そうですね。
もっと勉強したいです。
はい。
私はもっと学びたいのです。
もうひとつ、新しい概念を教えてください。
基本的なことから教えてくれるのがいいですね。
このままでいい。
このままでいい。
この空間を続けていこう。
次は何を教えてくれるのか見てみよう。
というわけで、ちょうどいい感じです。
Kotlinの別の概念に移りましょう。
ループです。
なるほど。
ループはブロックを繰り返すためのものです。
なるほど。
whileループは、特定の条件が真の間、コードのブロックを繰り返し実行するために使用されます。このプログラムでは、変数iに1の値を割り当てます。
なるほど。
forループは、値の範囲に対応するものです。
Kotlinではここが違うんです。
オブジェクトのコレクションに対して、値の範囲を評価するのです。
なるほど。
これは素晴らしいですね。1から5までの範囲でiの値をコンソールに表示するために、このプログラムではforループを使います。
では、今度はあなたが試してみる番です。
次のような問題があります。
ループを使って、最初の10個の正の整数の和を計算するプログラムを書きなさい。
へぇー、そうなんだ。
つまり、この教材は、説明のためのごく基本的なプログラムを、より難しいプログラムとして私に教えてくれたのです。
足し算の方法を教えてくれたわけではありませんが、このプログラムがやっていることは、私たちが以前に学んだことを土台にしています。
以前、足し算のやり方を習いましたが、それをループの中で使えというのです。
では、それを試してみましょう。
できるようになるかどうか、見てみましょう。
よく頑張ったね。
valキーワードで宣言されたsomeは読み出し専用の変数で、新しい値を割り当てることができないので、どのように間違えるか。
したがって、代わりにvalキーワードの何かを宣言する必要がありますし、誰がそれを教えてくれるのでしょうか?
あなたが教えてくれたのですか?
はい、そうです。
それは私に教えてくれましたが、iが1である場所と値が変わる場所では、どこにあるのかと思いますが、テキストでは言及していなかったと思います。
だから間違いがあるんだけど、プログラミングで間違うのはいいんだ、そうやって学んでいくんだ。
だから、これをどう解くか、何か勉強になったよ。
そうですか。
私が正しく解けるようになるまで、もう1問ください。
それでは私が取るように、これが私がプログラミングを学ぶ方法です。新しい言語を学んでいて、もし間違いを犯したら、私が間違いを犯すときには、もう1つ質問を取ります。
ChatGPTは同じような難易度の問題を出してくれるので、このやり方がとても気に入っています。
それで、私はそれがどのように私に教えてくれるのか、また私が使っているプロンプトも経験からくるもので、何かを学ぶ方法が本当に好きです。
では、見てみましょう。
与えられた数値の階乗を計算するプログラムを書きなさい。
なるほど。
ある数の階乗は、1からその数までのすべての正の整数の積である。
例えば、5の階乗は5 4 3 2 1で、これは1 20に等しい。
プログラムを書いたら、ここに投稿してください、それが正しいかどうかチェックします。
わかりました。
試してみよう。
これまた難しいのを出してきましたね。
もし私がプログラミングを教えるのであれば、いろいろなことを教える前にこの問題を出すことはないでしょう。
そして、私が書くところで、もし私が初めてプログラミングを学んでいたら、これはとても難しかっただろうと思います。
私は以前からある言語を知っているので、頭の中でこのロジックを形成する方法を知っているのです。
でも、もし私が、論理の組み立て方を知らなかったとしたら、初心者にこのプログラムをあまり早く渡さないでしょう。
でも、それでいいんです。
よくやった。
あなたのプログラムは柔軟性を持たせるために、5というハードウェアの値を変数に置き換えて、ユーザーが任意の数を入力できるようにすることができます。
そして今、またひとつ新しい概念を独力で教えてくれています。
私はこれが大好きです。
だから、それを読めばいいじゃないか、と言っているのです。
どうやってユーザーから読み取るのですか?
realignして、intに変換する必要があるんです。
そして今私が欲しいのは、realignを見て、それからrealign関数を使ってユーザー入力を読み取り、toint関数を使って整数に変換することです。
その後、whileループを使って数の階乗を計算します。階乗とIを1に初期化し、階乗にIを掛けます。つまり、階乗を1に初期化し、Iを1に初期化し、条件をIが数以下であると設定します。
そして、なぜnot notと書いてあるのかがわかりません。
そこで、こう聞いてみます。
これこそChatGPTが輝くところだと思います、これはすごいです。
というわけで、プログラムを見ても分からないことがいくつかあります。
でも、ChatGPTに「なぜそうなったのか」「なぜこうなったのか」を聞くことができるんです。
だから、それを試してみることにしましょう。
つまり、個人的な、個人的なプログラミングトレーナーがついているようなものですよね?
なぜ、この行でクエスチョンマークを使ったのでしょうか?
つまり、この疑問符演算子を使って、値がnullでない場合にのみ次の関数が呼び出されるように確認するということです。
だから、私も、ああ、これは理解できた、と言えます。
私は理解しています。
というのも、他の多くのプログラミング言語でも、安全な演算子はありますよね?
クエスチョンマークと.演算子は、オプショナル・チェイニング演算子と呼ばれています。
それで今私がしていることは、これはあなたがこれまでに学んだことと今学んでいることをマッチさせてみるという別の学習方法です。そうすれば、あなたはウェブを形成することができます。
そういえば、オプショナル・チェイニングって言うんだっけ。
オプショナル・チェイニングという言葉は、オプショナル・チェイニングとよく似ていて覚えられませんでした。
しかし、ここではセーフ・コール・オペレーターと呼ばれていますね。
つまり、セーフコールオペレーター、オプショナルチェイニング、これらは単なる名前なのです。
もっと練習すれば、思い出すようになりますよ。
でも、もうひとつ理解できなかったことがあります。たとえば、なぜ余計な符号をつけるのか。
なぜ?
ああ、その時だけ使えるんだ、すごいね。
そして、私はこれをTypeScriptで使ったことがあります。
そこで私は、なるほどこれはTypeScriptでも使ったことがあるものだと言います。
というわけで、見せてください。
あ、そうだ。
もしnot-nullアサーション演算子がTypeScriptや他のプログラミング言語でも利用可能であれば、それはnullable変数がnullでないことをコンパイラに伝える便利な方法であり、そしてそれを非null変数として扱いたいと思うでしょう。
もう一度聞きますが、not nullを使わないとどうなるのでしょうか?
ああ、もし私たちがそうしていたら - もし私たちが、もし私たちがそうしていなかったら、もしあなたがnot-nullを言っていなかったら、それはコンパイラエラーを出すことになるでしょう、なぜならKotlinは非常に安全なプログラミング言語だからです。
そうでしょう?
JavaScriptではありません。
Pythonでもない。
だからTypeScriptと似ているんです。
だから、もしそうしていたら、プログラムは違うものになっていたでしょう。
NULLと等しくない数字があった場合、その処理をしなければならない。
そしてその場合、階乗を1として答える必要がありますよね?
1という数字に対する階乗は1であると。
それが非常に重要なんですね。
これは非常に重要なことで、早い段階で正しい方法を教えてくれるのがいいですね。
そしてもうひとつは、あらゆることを深く掘り下げることができる点です。
ですから、私はこのような教育が大好きです。
私がプログラミングを学び始めたとき、このようなものがあればよかったのにと思います。
そして今、私がKotlinを学び始めて、ここで初めてこれを試しているのですが、これが大好きです。なぜなら、これが望むような経験教育だからです。
教育現場が求めるものは、ここにあるようにいくつかあります。
1つは、パーソナルチューターです。
自分のペースに合わせることができ、わからないことは一つひとつ質問することができます。
3つ、最初から始めることができる。
この鼻に聞くこともできます。
これはScotinを知っているだけではありません。
TypeScriptを知っている。
JavaScriptも知っている。
Pythonも知っている。
だから、Pythonでもこれをどう見てきたかを問うことができる。
これを見たことがある言語って何だろう?
だから、私が経験豊富な開発者になったときに、そのウェブを作るのを助けてくれるのです。
だから、私はここから学ぶのが大好きなんです。
と聞くことができます。
これは素晴らしい質問でした。
初心者のうちは、さらにどんな概念を学べばいいのでしょうか?
そして、何が書いてあるか見てみましょう。関数、配列、文字列、クラス、制御フロー、ifやwhen、私たちが学んだifやwhen、while、forなどのいくつかの概念があります。
だから、もし私がこれをやりたければ、キャプテン・アメリカみたいに一日中やってもいいんだ。
一日中やって、戦い続けることができるのです。
でも、チャットで新しいことを学べるなんて、これはすごいことなんです。
私はこれを利用して、いろいろなことを学んでいます。
これを見て、あなたもチャットを使って、あらゆる概念についてもっと学ぶようになるといいですね。
こんなことができるんですね。
あなたのために簡単な修正をしてあげましょう。
どんなことができるのでしょうか?
まず第一に、たくさんのことを教えてくれます。
そして、その質問にも答えてみてください。
そして、一度に1つのコンセプトを紹介することができます。
それで、もうひとつ新しいコンセプトを紹介して、例を見せて、質問をしてみてくださいと。
そうすると、その都度、イエスと答えるんだ。
そして、これは間違っていると言っているところが好きです。
正しくやるべきだ。
それから、因数分解をしたときにも、新しいことを教えてくれました。
これらの要素について質問すると、not null演算子やセーフコール演算子について教えてくれたんです。
このように、たくさんのことを教えてくれるのです。
あなたのニーズに合わせてパーソナライズしてくれるのです。
そうですね。
そして私たちがそれを続けると思うし、私はそれを続けるつもりはありませんが、あなたがそれを続けるなら、私たちはJadgpdからもっと上手に学ぶことができるでしょう。なぜなら、それはまるで自分専用のトレーナーを持っているようなものだからです。
そして、もしあなたが2kgを持ち上げることができれば、それはあなたにとても良いことを教えてくれるでしょう。
今、5kg生きられるか?
そして、もし5kgできれば、とても良いことです。
あなたは今、7.5kgできますか?
と聞かれますが、7.5kgを持ち上げることができなければ、OK、ノープロブレムと言います。
5kgに戻して、筋肉が強くなるようにレップ数を増やしていきましょう。
7.5kgは後でやりましょう。
つまり、パーソナルトレーナーがいるようなものですが、パーソナルトレーナーのそのような理解力はありません。
ですから、この場合、あなた自身がパーソナルトレーナーになる必要がありますが、そのダンベルを渡すことができます。
ダンベルを渡してくれます。
しかし、ダンベルを渡すと、持ち上げるのを手伝ってくれます。
手を動かしてはいけませんよ。
そういうことをすべて教えてくれるのです。
ただ、そこからどう学ぶかを理解する必要があるのです。
このビデオでは、さまざまなフレームワークや言語の学習方法について、もっと紹介したいと思っています。
もしこのビデオが気に入ったら、シェア、購読、いいね、コメントをしてください。