14
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめに

今流行りの、GitHub Copilotですが、どれくらいすごいいものなのか、現在未利用の私が利用することでどう変わるかを測定することで示したいと思います。

手順

①チャットGPTに以下の指示を行う。

rubyでプログラムで作成できる簡単なプログラムの例題をコードサンプルなしで10問表示して

返ってきた回答が以下

  1. 1から10までの整数を順に表示するプログラムを作成してください。
  2. 1から100までの整数のうち、3の倍数のみを表示するプログラムを作成してください。
  3. ユーザーに名前を入力させ、"Hello, [名前]!"と表示するプログラムを作成してください。
  4. ユーザーに2つの整数を入力させ、その和を計算して表示するプログラムを作成してください。
  5. ユーザーに半径を入力させ、円の面積を計算して表示するプログラムを作成してください(πの値は3.14とします)。
  6. 与えられた文字列が回文(前後を逆にしても同じになる)かどうかを判定するプログラムを作成してください。
  7. 1から50までの整数の中で、奇数のみを合計して表示するプログラムを作成してください。
  8. 1から10までの整数を順に表示するプログラムを作成し、ただし5の倍数のときは代わりに"Buzz"と表示してください。
  9. 九九の表(1から9までの数値の掛け算表)を表示するプログラムを作成してください。
  10. ユーザーに数値を入力させ、その数値が素数かどうかを判定するプログラムを作成してください。

②先攻、後攻を決め、以下のプログラム(ruby)で実行し、出た数字に対応する課題をこなす。コードの汚さは無視してとにかく早くコンソール実行して期待した結果が表示されればOKとする。既出の数字が出た場合は再度実行する。

srand Time.now.to_i; rand(1..10);

③3ターン行い、課題に取り組んだ合計時間が短い方が勝利とする。

環境

  • Ruby 3.1.2
  • エディターはVS Codeを利用

1ターン目

先攻:私

課題No.:10
記録:3分35秒
検索回数:2回
検索ワード

  • ruby コンソールから入力
  • ruby 素数かどうかを判定するプログラム

成果物

require 'prime'

puts "数字を入れてください"
number = gets

if Prime.prime?(number.to_i)
  puts "素数です"
else
  puts "素数ではありません"
end

後攻:私 + GitHub Copilot

課題No.:5
記録:50秒
成果物

# パラメータを入力する
print "半径を入力してください: "
radius = gets.to_f

# 円の面積を計算する
area = 3.14 * radius * radius

# 計算結果を表示する
puts "半径 #{radius} の円の面積は #{area} です。"

※自分である程度考えてから提案される補完を利用してコーディングしました。

2ターン目

先攻:私

課題No.:7
記録:1分25秒
成果物

sum = 0
(1..50).each do |i|
  next if i % 2 == 0
  sum += i
end

puts sum

後攻:私 + GitHub Copilot

課題No.:8
記録:1分25秒
同様に操作して
成果物

(1..5).each do |i|
  if i % 5 == 0
    puts "Buzz"
  else
    puts i
  end
end

※自分である程度考えてから提案される補完を利用してコーディングしました。

3ターン目

先攻:私

課題No.:2
記録:45秒
成果物

(1..100).each do |i|
  puts i if i % 3 == 0
end

後攻:私 + GitHub Copilot

課題No.:9
記録:4分30秒
成果物

puts "   1 2 3 4 5 6 7 8 9"
puts "  " + "_" * 20
(1..9).each do |i|
  print "#{i}|"
  (1..9).each do |j|
    print " #{i*j}"
  end 
  puts ""
end

※計算結果の出力自体は1分以内にできたのですが、表のレイアウトを整えることに時間を使ってしまいました。

結果

私:合計5分45秒
私 + GitHub Copilot:合計6分45秒
私の勝利!!!!とても予想外です。
3ターン目に「私」に簡単な問題が回ってきて、「私 + GitHub Copilot」に少し難しい問題が回ってきてアウトプットの レイアウトにこだわって作ろうとしてしまったことが「私 + GitHub Copilot」の敗因でした。

最後に

初めてGitHub Copilotを利用してみましたが、コメントや変数名から何をしたいのかを予想してコードを補完できることに純粋に驚きました。今回はたまたま思うような結果になりませんでしたが、GitHub Copilotに慣れることでより快適にコーディングができるようになると思います。1ヶ月間は無料なのでいろいろ試してみて、手放せなくなりそうなら課金してみたいと思います。

14
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?