logologo
ChatGPTでプログラマーの生産性がアップする?活用方法を紹介
thumb_chatgptprogrammer_01

ChatGPTでプログラマーの生産性がアップする?活用方法を紹介

アンドエンジニア編集部
2024.09.20
この記事でわかること
ChatGPTとは、OpenAIが開発する自然言語型のAIチャットシステムを指す
2024年7月18日にリリースされたGPT-4o miniは、回答速度の高さやコストの低さが特徴的
エンジニアの作業をサポートすることが可能であり、生産性向上につながる

ChatGPTはプログラマーの生産性アップに有効?

img_chatgptprogrammer_01

ChatGPTの登場によって多くの業務がサポートされるようになり、生産性アップを実感した人や企業は多いのではないでしょうか。ChatGPTは言語の翻訳やデータ整理、プログラムコードの作成など、プロンプト次第でできることは多種多様です。

そんなChatGPTはITエンジニア、特に多くのコードを作成しなければならないプログラマー達にとってはどういった存在になるのでしょうか。昨今のプログラマーがChatGPTを扱うことで生産性アップにつなげられるのか気になります。

ここでは、ChatGPTがプログラマーに与える影響について、近年危惧されている「プログラマーの将来がなくなる」「失業するのではないか」というプログラマー不要説にフォーカスしました。

ChatGPTとは

ChatGPTとは、OpenAIが開発する自然言語型のAIチャットシステムです。自然言語に対応しますので、英語でも日本語でも言語から判断し適切な返答を返してくれます。つまり日本語で質問すると、適切な返答が日本語で返ってくる優れものです。

また、2024年7月18日、最新版のGPT-4o miniがリリースされました。GPT-4o miniはGPT-4と近い性能があり、尚かつAPI料金はGPT-4oの約1/30で利用できます。現在では提供が終了したGPT-3.5と置き換わっています。

【参考】:OpenAI 【参考】:OpenAI: Introducing ChatGPT 【参考】:ChatGPT — Release Notes 【参考】:GPT-4o mini: advancing cost-efficient intelligence | OpenAI

ChatGPTとは?今話題のAIチャットボットの概要や仕組みを解説!

ChatGPTの登場でプログラマー不要説が出てきている

ChatGPTはプログラマーがコードチェックに利用したり、コード作成のサポートで利用したり、あらゆる局面で活用されています。ChatGPTの進化は日々進んでおり、続々と最新のGPTモデルがリリースされ続けています。

現在は2022年11月に登場した時よりも精度が格段にアップしており、より多くのニーズに応えられるようになっています。プログラミングにおいては、精度の高さから「プログラマー不要説」が出てきているほどです。

確かに簡単なコードであればChatGPTで瞬時に作成できるためプログラマーという職種が必要ないように感じますが、実際のシステム開発の現場においてはそれを全肯定するのは難しいでしょう。

理由としては、システム開発においてはコーディングスキルはもちろん、論理的思考や問題解決能力、システム設計のスキルも重要であり、現状これらを全てAIで補うのは困難です。

システム完成までにはさまざまなトラブルが勃発し、柔軟な対応力も求められるため、プログラマーがChatGPTを活用するのは、あくまでも生産性アップを目指すためのサポート目的の域を出ないでしょう。

ChatGPTでできることは? 何ができるか、できないことも併せ全12編を解説

ChatGPTの活用方法が多様化

img_chatgptkatsuyou_02

ChatGPTは、2023年3月にGPT-4を発表してから関連サービスの発表が相次いでいます。GPTのAIエンジンのみならず、ChatGPTプラグインやChatGPT APIなど多数の発表がされています。詳細は以降で解説していきます。

【参考】:OpenAI

OpenAIのGPT-4とは?ChatGPTの進化版について解説!

GPTsを活用する

2023年11月6日にChatGPTをカスタマイズできる機能である「GPTs」が公開されました。ノーコードでオリジナルのChatGPTを作成でき、数十分程度でプロトタイプが完成します。ジャンルは幅広く、カスタマーサポートや教育、エンターテイメントなど、さまざまな用途に応用できます。

【参考】:Introducing GPTs | OpenAI

GPTsを作成するには有料のChatGPT Plusに加入が必須ですが、カスタマイズされたGPTsが提供されているGPT Storeは無料ユーザでも活用できます。「GPTs」とは、カスタマイズされたGPTsとGPT Storeの両方の意味を指します。

【参考】:Introducing the GPT Store | OpenAI

GPT Storeとは?概要やGPTsの検索・作成・公開方法を解説
ChatGPT Plusとは?無料版との違いや最新モデルも解説

OpenAI APIを活用する

これまでOpenAIは、「ChatGPT API」を用いることでプログラミング言語やそのアプリケーションから起動することができるとしてきました。

近年のOpenAIは画像生成が可能なDALL-E3や、音声をテキストに変換できるWhisperなど、さまざまなサービスを続々とリリースさせたことにより、ChatGPT APIとあわせた「OpenAI API」に統合しました。

OpenAI APIを利用するにあたっては、選択するモデルによって料金が異なります。また、モデルによってはアップデートの関係で価格帯がいくつかに分かれているケースがあるため、詳細は以下の公式リンクから確認しましょう。

【参考】:Pricing | OpenAI

ChatGPTのAPIとは?概要や使い方を分かりやすく図解
ChatGPT APIの料金を抑える方法とは?活用方法も解説
ChatGPTとWhisperの違いは?料金や使い方も解説

OpenAI APIで利用できるモデル

ここでは、前述したOpenAI APIで利用できるモデルを一覧で紹介します。(2024年8月時点)

img_chatgptprogrammer_03
【図】:OpenAI APIで利用できるモデル

ChatGPTでプログラミングを始める方法

img_chatgptprogrammer_04

ChatGPTが公開されてから多くの話題に上がっています。ここでは、ChatGPTの実際の活用方法を考えていきます。特に、エンジニアの方が業務で使用する際にどのような観点で活用できるのか、エンジニア視点で解説していきます。

ChatGPTをプログラミング学習に活用しよう!方法やコツを解説

ChatGPTを利用するには

ChatGPTを利用するには、公式サイトでアカウントを作成し、チャットシステムにログインして利用します。

最新版のGPT-4o miniおよびGPT-4oは無料でも利用できますが、利用回数に制限が設けられています。GPT-4oを制限なく利用するには、月額20USドルのChatGPT Plusに登録する必要があります。Plusでは、GPT-4oやGPT-4など利用に合わせてGPTモデルを選択できます。

img_chatgptprogrammer_05
【図】: PC版ChatGPT
ChatGPTの始め方とは?有料サービスやスマホでの利用法も解説
ChatGPTの使い方とは?実際に使用するまでの流れを解説!

ChatGPTでプログラミングを行うコツ

ChatGPTでプログラミングを行うには、以下のようなコツを抑えることでより正確なコードを作成しやすくなります。

◼︎プロンプトは簡潔で具体的に プログラミングのコードを作成するには、具体的なプロンプトの入力が必須です。また、より正確な回答を得るためにもプロンプトはわかりやすく簡潔にまとめるのがベストです。プロンプトが長すぎると処理に時間がかかり、欲しい結果が得られない可能性が高まります。

◼︎段階的にやりとりを行う プログラミングにおいて、1度のプロンプトで完璧な回答を得るのは難しい場合があります。いくつかのフェーズに分けたり、大まかなタスクを達成してから細部を詰めたりすると、誤りを大きく減らせるでしょう。

◼︎関連する情報も提供する

内容が複雑化しそうな場合は、関連情報を提供するのがおすすめです。使用しているプログラミングツールや開発環境、使用したいライブラリ、前提条件、さらに具体例や参照したいデータなどを必要に応じて提示しましょう。

ChatGPTのプロンプトとは?回答精度を高めるための秘訣を解説

【エンジニア向け】ChatGPTの活用方法

img_chatgptprogrammer_06

ここからChatGPTを、エンジニアの業務へどのように活用できるか検討していきます。さらに、実際にChatGPTとチャットを行い、その返答の妥当性もチェックします。主にITエンジニアの職務の利用ケースを想定し、いくつかの実例をまとめてみました。

ドキュメントの和訳や英訳

ドキュメントの和訳や英訳は、エンジニアの仕事で重要なウェイトを占めています。技術用語や解説は欧米から発信されることも多く、英語のコミュニケーションは重要です。

ここでは、特定のホームページの文章を英語から日本語に訳す場面を想定します。一例として、ChatGPTのホームページの説明文を英語から日本語にしてもらいます。

最初に日本語で「次の文章を日本語にしてください。」とプロンプトを入力します。ChatGPTからは以下のような返答がきました。

img_chatgptprogrammer_07
【図】:「次の文章を日本語にしてください。」に対する返答

翻訳の材料として、ここではChatGPT公式サイトの文面を貼り付けてみます。

「Introducing ChatGPT We’ve trained a model called ChatGPT which interacts in a conversational way. The dialogue format makes it possible for ChatGPT to answer followup questions, admit its mistakes, challenge incorrect premises, and reject inappropriate requests.」

【参考】:Introducing ChatGPT | OpenAI

その結果、以下の回答が得られました。日本語訳は概ね妥当だと判断できます。

img_chatgptprogrammer_08
【図】:翻訳結果

念のため、「ありがとうございます。」と感謝を伝えます。日本語での問いかけに対してはきちんと日本語で返答されます。

img_chatgptprogrammer_09
【図】:「ありがとうございます。」に対する返答

エンジニア向けドキュメントはPDF化しているものも多いですが、PDFからテキスト変換することで翻訳ソフトとしても活用することができます。

プログラムコードのレビュー

作成したプログラムのコードは言語仕様に基づいてレビューすることができます。そのため、ChatGPTも時間をかけずにコードレビューを手助けしてくれます。

次の例は、PHPで和暦を西暦に変換するプログラムを作成し、ChatGPTにレビューを依頼したものです。

「次のPHPのプログラムは正常ですか?」として以下のコードと共に送信しました。

<?php
$subject = 'これは平成31年の報告書です';             // '令和 元年'や'令和 XX年'、平成でも処理できます。
$subject = preg_replace('/(元年)/', '1年', $subject);  // 先に'元年'を'1年'に変換します。
$pattern = '/(令和|平成)\s*([0-9]+)年/';              // 和暦の正規表現パターンです。
if (preg_match($pattern, $subject, $matches)) {       // 正規表現のパターンマッチを行います。
    // var_dump($matches); // デバッグ用(必要ならコメントアウトを外す)
    if ($matches[1] == '令和') {                     // 和暦が令和の場合の処理です。
        $year_base = intval($matches[2]) + 2018;     // 令和の場合 2018を追加します。
    } elseif ($matches[1] == '平成') {               // 和暦が平成の場合の処理です。
        $year_base = intval($matches[2]) + 1988;     // 平成の場合 1988を追加します。
    } else {
        // 他の元号が追加された場合のための処理
        echo '不明な元号です: ' . $matches[1];
        exit;
    }
    $year = '西暦' . $year_base . '年';              // 数値から文字列に変換します。
    echo preg_replace($pattern, $year, $subject);    // 和暦を西暦に変換します。
} else {
    echo $subject;                                   // そのまま表示します。
}
?>

ChatGPTは、以下のコメントを返答してくれました。

img_chatgptprogrammer_10
【図】:プログラムコードのレビュー①

上記のように改善点や注意点もピックアップしてくれています。修正後のコードとして、以下が提示されました。

img_chatgptprogrammer_11
【図】:プログラムコードのレビュー②

画像の修正コードは以下のように記述されています。

<?php
$subject = 'これは平成31年の報告書です'; // '令和 元年'や'令和 XX年'、平成でも処理できます。
$subject = preg_replace('/元年/', '1年', $subject); // '元年'を'1年'に変換します。
$pattern = '/(令和|平成)\s*([0-9]+)年/'; // 和暦の正規表現パターンです。

function convertEraToGregorian($era, $year) {
    switch ($era) {
        case '令和':
            return intval($year) + 2018; // 令和の場合 2018を追加します。
        case '平成':
            return intval($year) + 1988; // 平成の場合 1988を追加します。
        default:
            return null; // 他の元号の場合にはnullを返します。
    }
}

if (preg_match($pattern, $subject, $matches)) { // 正規表現のパターンマッチを行います。
    $era = $matches[1];
    $year = $matches[2];
    $year_base = convertEraToGregorian($era, $year); // 和暦から西暦に変換します。

    if ($year_base !== null) {
        $year_string = '西暦' . $year_base . '年'; // 数値から文字列に変換します。
        echo preg_replace($pattern, $year_string, $subject); // 和暦を西暦に変換します。
    } else {
        echo '不明な元号です: ' . $era; // 不明な元号の場合のエラーメッセージ
    }
} else {
    echo $subject; // 正規表現にマッチしない場合、そのまま表示します。
}
?>

具体的な変更点については、以下のように詳細が記載されています。

img_chatgptprogrammer_12
【図】:プログラムコードのレビュー③
ChatGPTでコードレビューができる?やり方や事例・VSCodeとの連携方法も解説

アルゴリズムのコード化

プログラムコードのレビューと同様に、アルゴリズムのコード化も簡単に行ってくれます。

次の例は、1~100までの足し算を行うプログラミングのコードを依頼したものです。「1~100までの足し算を表示する、C言語のコードを教えてください。」とプロンプトを入力します。

次の通り、簡単にコードを生成し返答してくれました。

img_chatgptprogrammer_13
【図】:「1~100までの足し算を表示する、C言語のコード」の回答①

画像のコードは以下のように記述されています。

#include <stdio.h>

int main() {
    int sum = 0;  // 合計値を格納する変数
    int i;

    // 1から100までの数を足し合わせる
    for (i = 1; i <= 100; i++) {
        sum += i;
    }

    // 結果を表示
    printf("1から100までの合計は %d です。\n", sum);

    return 0;
}

また、コードの説明として1〜7のポイントに分けて解説しています。

img_chatgptprogrammer_14
【図】:「1~100までの足し算を表示する、C言語のコード」の回答②

もちろん同じ依頼を別のプログラミング言語にも用いることができます。「Java言語の場合はどうなりますか?」と依頼してみました。

img_chatgptprogrammer_15
【図】:「Java言語の場合はどうなりますか?」の回答①

画像のコードは以下のように記述されています。

public class SumExample {
    public static void main(String[] args) {
        int sum = 0; // 合計値を格納する変数

        // 1から100までの数を足し合わせる
        for (int i = 1; i <= 100; i++) {
            sum += i;
        }

        // 結果を表示
        System.out.println("1から100までの合計は " + sum + " です。");
    }
}

上記の通り、コードを返答してくれるとともに、次の解説コメントまで返答してくれました。

img_chatgptprogrammer_16
【図】:「Java言語の場合はどうなりますか?」の回答②

さらに次のように、「C言語のコードにコメントを追加してください。」と、生成したプログラムコードにコメントを追加することも簡単にできます。

img_chatgptprogrammer_17
【図】:「C言語のコードにコメントを追加してください。」の回答①
img_chatgptprogrammer_18
【図】:「C言語のコードにコメントを追加してください。」の回答②

ちょっとした手伝いであれば、苦もなく対応してくれそうです。

新規プロジェクト市場性を把握

市場規模や成長性が不確かな場合においても、総合的な参考意見をもらえます。続いては、以下のようなプロンプトを入力してみます。

「金融業界のITシステムを開発する予定です。ChatGPTのGPT-4はどの程度役立ちますか?」

ChatGPTの返答は、以下の通りです。

img_chatgptprogrammer_19
【図】:「金融業界のITシステムを開発する予定です。ChatGPTのGPT-4はどの程度役立ちますか?」の回答①
img_chatgptprogrammer_20
【図】:「金融業界のITシステムを開発する予定です。ChatGPTのGPT-4はどの程度役立ちますか?」の回答②
img_chatgptprogrammer_21
【図】:「金融業界のITシステムを開発する予定です。ChatGPTのGPT-4はどの程度役立ちますか?」の回答③

内容をうまく要約して回答しており、パッと見ただけで内容を把握しやすくまとめています。また、注意点についても記載されています。

さらに、続けて「AIのITへの利用は今後も成長すると考えますか?」と聞いてみます。ChatGPTの返答は、以下の通りです。

img_chatgptprogrammer_22
【図】:「AIのITへの利用は今後も成長すると考えますか?」の回答①
img_chatgptprogrammer_23
【図】:「AIのITへの利用は今後も成長すると考えますか?」の回答②
img_chatgptprogrammer_24
【図】:「AIのITへの利用は今後も成長すると考えますか?」の回答③

このような内容は、意思決定支援として有効です。エンジニアのロール別にもさらに多様な用途に活用ができると考えられます。回答の正確性については利用者が判断することになりますが、実用領域に近づいていることは間違いないでしょう。

ChatGPTの活用方法は多岐に渡ります

img_chatgptprogrammer_25

ChatGPTは自然言語に対応し、学習内容に基づいて多くの検索結果から要約文を作成したり、より適切な回答をしたりすることができます。エンジニアの観点ではドキュメント作成やプログラミングの生産性向上が期待できます。

このように多くの領域に使用することができますので、是非とも色々な場面で試してみることをおすすめします。

\転職するか迷っていてもOK!/
マイナビエージェントに無料登録して
転職サポートを受ける
ChatGPT(AI)の学習におすすめの本10選!学ぶメリットも解説
RPAとAIの違いを理解し、エンジニアとしてのスキルアップを図ろう
気になる人のXをフォローしよう!
公式LINE
公式YouTube
マイナビITエージェント

編集部オススメコンテンツ

thumb_gptowten_01
ChatGPTの面白い使い方15選!ビジネスや遊び相手になる事例
アンドエンジニア編集部
2024.02.19

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供

カテゴリー

編集部おすすめコンテンツ

アンドエンジニアへの取材依頼、情報提供などはこちらから

logologo
Powered by マイナビ AGENT