私は今、ChatGPTでプログラミング学習をしています。
Javascript、HTML、CSSを学習しています。
1.ChatGPTとペアプログラミング
ペアプログラミングとは、2人でプログラムを開発することです。ベテランとビギナーが組むこともあります。1人がコードを書いて、もう1人がアドバイザーとして支援をするスタイルもあります。
私はこれをChatGPTをアドバイザーに設定して、独学で疑似的にペアプログラミングをしています。そして、私自身が頭で考えてコードを書けるようになるために、あえて答えを直接出してもらわずに、ヒントを出してもらうようにしています。
次の画像のテキストは、私が最近使ったプロンプトです。あえて「答えを出さないで、ヒントになるサイトのURLを教えてください」と指示しました。
指示通りに、解答はダイレクトに出力されず、URLを返してくれました。
2.プロンプトエンジニア??
ITエンジニアの職種には、
- フロントエンジニア
- バックエンドエンジニア
- インフラエンジニア
などがあります。
初心者から仕事としてプログラミングをする場合には、インフラエンジニアはかなり難易度が高いという話をyoutubeや対面で各所で聞いたので、私は今のところフロントエンジニアかバックエンドエンジニアのスキルを高めることを方針にしています。
ChatGPTが現れてからは、指示入力する日本語テキストの方を試行錯誤して、コード自体はコピー&ペーストする人が増えているという話も聞きました。
私自身もプログラミング学習には課金したChatGPT4oを使っているので、似た傾向はあります。そこで、プロンプトを試行錯誤することだけでは身に付かない能力を自覚しておくことがとても大事なことだと考えています。
3.ChatGPTプログラミングで身に付かない能力
私は次に挙げる能力は、ChatGPTを使ったプログラミングでは身につかないと考えています。
- 直観力:エラーの当たりを付ける能力
- ロジカルシンキング(論理的思考力):論理的に考える能力
- ラテラルシンキング(水平思考):1領域の問題解決方法を、他の領域の問題解決の方法として活用すること
- ネガティブケイパビリティ:相容れない考え方や、モヤモヤした感覚を持ち続ける耐性や包容力
- 発信力(プレゼン力):問題解決方法に責任を持ち、スタンスをとること
- 期待値コントロール:プログラムが「どのように評価されるのか」に関わる人間の先入観をコントロールすること
- ファシリテーション:関係者の動きをスムースに円滑にするスキル
- 交渉力(営業力):上司・同僚・部下・顧客を相手に対して、納期や期待値を交渉すること
この中でも、利害関係を調整するファシリテーションスキルは人間が行うニーズが残り続けるスキルだと考えています。
4.相手を納得させる力
コードを書くプログラミング技術の魅力は、「複雑なプロセスをワンクリックに置き換えられること」だと感じています。
それをITのハードスキルと呼ぶなら、「この人の言うことなら信頼ができる」と相手に感じてもらう説得力を発揮するソフトスキルも、同じぐらい必要だと考えています。
- やるじゃん
- 動きが良い
- さすが!
- 速いね!
- 使いやすい
- 便利!
こうした反応を頂けるエネルギーを、タスクを行うプロセスのどこかで感じさせることが必須だと思っています。