Opt Technologies Magazine

オプトテクノロジーズ 公式Webマガジン

イベントレポート「第二回プログラミング教育について話し合う会」

alt

2022年7月1日に開催された「第二回プログラミング教育について話し合う会」の模様をレポートします。

あいさつ

Clojurian 1lagénorhynque (a.k.a. カマイルカ 🐬)です。

チーフアーキテクト室という技術マネジメント推進部門のリーダーとして、開発組織Opt Technologiesのシステム開発運用力を高めるべく日々試行錯誤しています。

connpassグループOpt Technologies/オプトテクノロジーズの運営メンバーのひとりでもあり、関数型プログラミングやプログラミング学習/教育といったテーマにとても興味があります。

本記事では、先日開催された「第二回プログラミング教育について話し合う会」の内容を私lagénorhynqueの視点から簡単にご紹介します。

「プログラミング教育について話し合う会」とは

近年のプログラミング教育、プログラミング学習に対する注目の高まりやプログラミング専門職に限らない実践の広がりを受けて、まだまだ十分体系化されるに至らないプログラミングの教育に関する私たち自身の経験を共有し合い、知見を見つけ出そうというコンセプトで始めたイベント企画です。

第1回の好評により 2、正式にシリーズ企画化しました。

本記事でご紹介する第2回ではサブテーマを「新卒教育」と定め、企業に入社したばかりのITエンジニアに対する専門的な教育プログラムをいかに設計し実施するか、各社の実践例などが集まりました。

発表枠

新卒採用・育成を通じて、プロダクト人材が育つカルチャーを作りたいお話

by @guvalif

Chatwork株式会社は今年で創業18年となるのですが、新卒採用自体は2019年から本格的に始めました。まさにこの2・3年間が、新卒育成に向き合う初めての期間となっています。

本発表では、新卒採用から新卒育成までの一貫した枠組み作りを通じて、いかにプロダクト人材が育つカルチャーを作れるかに関して、考察してみたいと思います。


■ アウトライン

  • プロダクト開発を習得するためのコンテンツ設計
  • 講師の役割とレベルデザインの考え方
  • 継続的にプロダクト人材が育つカルチャー作り

カマイルカのメモ 3
  • Chatwork CTO室の高瀬さん
    • フロントエンドエンジニア
  • 観察から始める
    • 状況、背景の把握
  • Chatwork新卒人材のレベル感
    • 何らかのプログラミング言語とアプリ開発の経験がある
    • インターンシップ/実務の経験はあったりなかったり
    • インターンシップを経由した選考/採用が多い
  • 学習のレベル、習得のロードマップ
    • 原体験(入社前に獲得済み)
    • 基礎知識の習得
    • 応用知識の習得
    • 知識の分解・再構成
    • 知識伝達
  • サマーインターンシップ
  • 技術研修
    • 講義型研修
      • QA
      • アジャイル/スクラム
      • セキュリティ
    • 演習型研修
      • チーム開発
      • セキュリティのeラーニング
  • 知識習得 -> 経験学習
    • cf. OJTによる経験学習
  • 講師の役割
    • コンテンツプロバイダー: 先生っぽい側面
    • 観察者: スクラムマスターっぽい側面
  • コンテンツの満足度と理解度のマトリックス
    • 知識習得のレベリングを重視
    • 満足度を高く、理解度をほどほどに
      • 理解の余白を作る
      • 経験学習により理解度も高まる
  • 理解度100%のコンテンツを用意するのは難しいが、50%を目指すと自由度が確保できる
  • 内製 or 外部調達
    • 内製することで既存社員の学習レベルを高められる: 知識の分解・再構築、知識伝達
      • 学びの循環を形成

Chatwork社でのエンジニア新卒研修の設計思想、こだわりのポイントを伺うことができました。

研修の講師は先生でありスクラムマスターでもある、という表現が印象的でした。

受講者の理解度の追求はほどほどに満足度を高めようという方針にもとても共感がありました。

ヌーラボではじめての新卒技術者研修の紹介と振り返り

by @hiramako

ヌーラボで新卒入社の技術者を迎えるにあたり、前例のないところで準備して実施した新卒向け技術者研修の概要と、実施してみた感想などを紹介いたします。

カマイルカのメモ
  • 平山さん
    • QAエンジニア
    • Cacoo開発運用からQAへ(社内初のQA担当)
  • 2021年に数年ぶりに新卒採用を再開
    • 新卒向け技術研修の担当部門/ポジションもノウハウもない中でQAの仕事のひとつとして研修を実施することに
  • 教育は「品質保証」(quality assurance; QA)の一環である
  • ある程度のWebアプリ開発知識のある情報系専門学校出身者(1名)
    • そのような人を想定したレベル感の研修を設計
  • 週3〜4コマ(すべて研修にはしない)、2ヶ月(4〜5月)
  • 内容: ソフトウェア開発の関する知識を広く
  • 目標: 開発現場でチームとコミュニケーションできるだけの知識を身につける
  • 主なカリキュラム
    • 開発プロセス関連
      • テスト、DevOps、プロダクト運用の流れ
    • Webブラウザの概要
      • ブラウザの仕組みからWebアプリ開発に必要な知識を学ぶ
      • 個別に話題をカバーすることも考えたがブラウザを軸に学ぶ形式に
    • 人間中心設計
    • OWASP
    • テクニカルライティング
  • 受講ルール
    • 間違いは遠慮なく指摘しよう(大歓迎)
    • 誰でも参加可能
  • 他社事例や書籍も参考に
  • 講師としての学びも多い
  • ワークショップ形式の講義を増やしたい
    • 退屈せず楽しい

ヌーラボ社でのエンジニア新卒研修再開にあたっての取り組みの紹介です。

教育は品質保証(QA)の一環、確かにそのように位置付けることができるかもしれません。

開発現場でチームとコミュニケーションできる状態を目指すというのはゴールとして重要な観点だと感じました。

プログラミングを「教える」のではなく、「学ばせる」

by @nobkz

数年間小学生、中学生にプログラミング教育に携わってきましたが、その経験を踏まえて、考えてきたこと、今大切にしていることを、お話しできたらとおもいます。今回は新卒教育でも参考になるような内容になればと思います。

プログラミング教育では、先生は「どのように上手く教えるか?」となりがちですが、その視点では、教育者と学習者の間の言語が共有されておらず、学習者は置いてけぼりになりやすいです。そうではなく、私はいかに「学ばせるか」が重要のように思います。このあたりを詳しくお話し致します。

カマイルカのメモ
  • 「説明の地図」
  • 小中学生のプログラミング教育
  • テックパーク
    • 学校の放課後に遊びとしてプログラミングなどに触れられるように
    • コンテンツ設計
      • UX
      • プログラミング教育
      • アフタースクール
  • UX
    • 時間軸の中でどこを大事にするか
    • 累積的体験を重視
      • 研修直後ではなくその後数年
      • 子どもにとっては「子ども時代」
  • プログラミング教育
    • 構築主義(作ることで学ぶ)
      • 構成主義から発展
    • cf. 教示主義、構成主義
  • アフタースクール
    • プライベートの時間、自分の時間
    • 学校での抑圧からの解放
    • 模範ではなくダメ人間を演じる
  • 「教える」のではない
    • 自分で考えてもらう
    • 一方、教える側の知識をコピーするモデル
      • 学習者は受動的
      • 外界からやってくる知識と内的に生まれる知識
    • プログラミングは個人の内面からの構成
    • ありがちな失敗: 詰め込みすぎる、思考の手段を伝えてしまう
      • 学習者はそれぞれにコンテキストがある
  • 内面の構築の時間を最大限にする
    • 説明の時間を短く
    • 資料/教材への丸投げは避ける
    • 答えを探す課題も避ける
    • ありがちな失敗: 正しいか間違っているかを言ってしまう
      • 学習者が自分で納得する
    • ほったらかしにする時間を十分に確保する
      • 詰め込みは整理、吸収の時間を奪うことになる

教育とはどのようなプロセスなのかという根本的なテーマに立ち返り、学習者に「学ばせる」ための考え方のヒントになるような発表でした。

学びとは内面に知識のモデルを構築することであり、「教える」のではなく「学ばせる」(言い換えれば「学び」に導く)。

それぞれの学習者に向き合い、その人の力を引き出していくことが大切そうだと再認識しました。

「エンジニア新卒研修ができるまで」の話

by @take2webservice

現在進行形で行なっている2022年度のエンジニア新卒研修の設計をどのように行なったかという話と現時点での反省点をお伝えできればと考えています。

カマイルカのメモ
  • フリーランスのサーバサイドエンジニア
  • 5月から進行中の研修
  • どのように計画してきたか
  • スマートフォン向けモバイルゲーム開発企業
    • Web + Unity
  • 新卒エンジニア8名以下
  • 新卒採用は数年ぶり
  • 全7ヶ月の3ヶ月目
    • Python学習(PyQ)
    • Python, Reactによるゲーム開発
    • プログラミング/サーバサイドの知識
  • 前年10月にキックオフ
    • 7ヶ月の準備期間
    • 10月
      • 学習項目の合意形成、スケジュール策定、担当者/メンターアサイン
    • 現場とのギャップを埋めるための要素のマインドマップ
    • 終了時点でどうなっていてほしいか
  • Pythonの採用
    • PyQの利用実績から
  • 研修期間の学習項目の洗い出し
    • マインドマップから肉付け
    • ハードスキルとソフトスキル
    • 経験から得られるもの: 習慣化できるもの、経験として残るもの
  • マインドマップ(約120項目)から優先度付け
    • 習得深度、自習の難易度、今後の役立ち度合い、個人的にやりたい度合い
  • 現段階の反省点
    • 技術だけでない研修
      • ハードスキル以外(マインド、行動)
    • 講座の頻度
      • 情報への接触頻度を上げるために小分けにする案も

現在進行中のエンジニア新卒研修の準備期間からここまでの取り組みのご紹介でした。

学習項目をマインドマップで整理し、評価観点を決めて優先度付けするという具体的な進め方は弊社でも早速参考にしたくなりました。

ソフトスキルの習得をいかに効果的に支援するか、我々にとっても切実なテーマです。

LT枠

リモート教育の難しさ

by @kmizu

カマイルカのメモ
  • リモート教育は難しい
    • 対面で教えられない
      • 進捗状況を確認しづらい
      • 対面では同じ空間で一覧できる
      • 詰まっているかどうかも分かりにくい
    • オフラインだと「空間」がある
      • 受講者も同じ空間にいることができた
      • オンラインでの環境
        • Webカメラ
        • Slack
          • コードの貼り付け
          • 口頭で伝えにくい情報を伝えられる
          • リアクション機能
        • 画面共有
          • 座学
          • 画面キャプチャできる
          • 受講側にもメリットがありそう
          • 実習で難しい
            • 目視確認、目デバッグ
        • コード共有
          • Live Share (VS Code), Code With Me (IntelliJ)
          • とても便利
    • 信頼関係の醸成が難しい
      • 対面よりも難易度が高い
      • 距離感がつかみづらい
      • 雑談が発生しづらい

リモート環境で教育に取り組む困難とその中での工夫に関するLTでした。

近年の企業の現場で直面することが多い課題であり、私も弊社での過去2年のエンジニア新卒研修を思い出して共感することばかりでした。

オンラインコミュニケーション主体で人と人との関係をどのように深めていけるだろうかという極めて現代的なテーマにも関わりますね。

新卒と中途の若い人の教育に同時に関わって考えたこと

by @tockri

自分のチームに社会人3年目の若い人を中途採用で受け入れていろんなことを教え込みながら、先に弊社の平山が発表した新卒教育にも少しだけ参加させてもらいました。両者の共通点や違い、あらためてプログラミングを教えるのって難しいなあと思った話をさせてもらいます。

カマイルカのメモ
  • ヌーラボ 藤田さん
  • 新卒と経験の浅い中途の人に同じコンテンツは使えるか
    • 流用しないことにした
  • 推進力と重力からの脱出
    • 推進力と阻害要因
    • 新卒と中途の特徴の違いに注目

新卒採用のエンジニアと経験の浅い中途採用のエンジニアとで教育のしかたは同じでよいだろうか、というテーマのLTです。

学習を推進する要素、阻害する要素が新卒と中途とでは異なるところに注目し、それぞれに合う学習コンテンツを提供できると良さそうだというアイディアが提示されていました。

レベル感が近いように見えて異なるところを見落とさず、ふさわしいアプローチを採ろうとする姿勢が素晴らしいなぁと感じました。

おわりに

私もOpt Technologiesのエンジニア新卒研修プロジェクトの運営や講師を長らく担当してきたので、今回のイベントは(主催者のひとりですが)個人的にも大いに楽しみました。

職業エンジニアとして教育のプロフェッショナルではない中で、プログラミング/ソフトウェア開発という専門技術やプログラマ/エンジニアとしての働き方の基本をどのように学んでもらい、開発チームに迎え入れていくか、経験を踏まえた意見を交わす良い機会になりました。

弊社でも来年春に受け入れ予定の新卒エンジニア向けに研修プログラムを準備し始めることになるので、このイベントで共有し合った議論をきっかけにさらなる実践につなげることができそうです。

「プログラミング教育について話し合う会」企画としては、プログラミング教育の指導者側だけでなく学習者の立場で指導を受けたり独学したりする中での知見共有にも次回以降で注目してみると面白いかもしれないと考えています。

プログラミング教育/学習というテーマについて、引き続きぜひ語り合いましょう!


Opt Technologiesでは、所属組織の枠を超えて自由に交流できるイベントを企画運営しソフトウェア開発コミュニティを盛り上げていくことに興味のある方を歓迎しています。

カジュアル面談も可能ですので、下記リンク先よりお気軽にご応募ください。


  1. Clojureプログラマはたいてい"Clojurian"または"Clojurist"と呼ばれます。

  2. 幅広い層の多くの方々にご参加いただき、本編終了後にはオンライン懇親会会場Gatherでも長時間にわたって会話が盛り上がり、気づけば深夜を超えて早朝になるほどでした。

  3. 私lagénorhynqueが発表時に書き取ったメモであり、発表者自身の言葉そのままではなく私の解釈による表現や補足が含まれている可能性があります(以下同様)。