採用担当向けSpring Bootハンズオンやってみた!

コイニー採用担当の@_ayapoyochan(以下A)とKさんを対象にしたSpring Bootハンズオン開催しました。(以下A)とKさんを対象にしたSpring Bootハンズオン開催しました。
(ちなみにheyでは人事ではなくExperience Peopleチームと呼んでるので、以下EX)

なぜやろうと思ったのか?

EXが作った募集要項を見てたときの一コマ。

私「"フレームワークはSpring Boot"書かない方がいいかも。Spring Frameworkはフレームワークだけど、Spring Bootはフレームワークじゃないのよね」
A「ええええそうなの!じゃあSpring bootってなに?w」
私「Spring Frameworkでアプリケーションを簡単に作るための仕組み!」
A「バカだからさっぱりわからない:baka:」
私「じゃ採用担当のためのSpring入門ハンズオンやろう!!!!(9割冗談)」
A「それはまじでやってほしい:joy:」「普通に技術のこともっと知りたいし、エンジニアの話聞いたときにあーあれねって思えるようになりたい」
私「まじか!!!!!!!!!!!!!!!!!!!感動で泣きそう」

普段Twitterで、「エンジニアの待遇よくしろ」とか「エンジニアのことわかってくれてない」みたいなツイートを見かけます。個人的にはこの種の発言はあまり好きでなく、エンジニアってそんなに偉いんだっけ?という気持ちになります。

逆に、他職種の方が、「エンジニアが何やってるかわからない」と言ってるのもよく耳にします。
こんなことを日常見聞きしていて、「エンジニアが忙しそうにしてて声かけづらいし、協力してくれるかわからない」と思っているのかもと感じ、逆にこっちから歩み寄ってみました。

どんな内容だったの?

・WebサイトとWebアプリケーションの違い
・WebアプリケーションにはHTMLを返すものとSPAが主にあってねという話(開発者ツールでレスポンスを見せた)
・フロントエンドエンジニア、バックエンドエンジニア、インフラエンジニアってそれぞれどういうことやってるの?
・Spring Bootハンズオン(後ほど詳しく書きます)

講義スタイルだと面白くないので、お酒を飲みながらラフな感じで会話しながらやりました。
話をしていると、EXの2人から質問がめっちゃ出てきました。(一部紹介)

・AngularJSとAngularの違い
・Reduxって何?
・Java8ってバージョンまで書いてくる人は何を伝えたいの?
・AndroidのJavaってサーバーサイドのJavaと同じじゃないの?
・JavaScriptでバックエンドやってましたってどういうこと?
・Java EEって何?
・gitとGitHubの違いって?

理解が難しいかもなと思ったことばかりでしたし、応募者の立場ならこれらを理解している採用担当ってポイント高いなって感じました。

Spring Bootハンズオン

今回使用した技術はこれです。

・Java 11
・Spring Boot 2.1.2.RELEASE
・Spring Data JPA
・Thymeleaf
・H2

ハンズオンの内容は、次の通りです。

・コンソールに"Hello World!"と出力。
・ブラウザに"Hello World!"と出力
・CRUDアプリケーション

2人ともプログラミングは一切やったことありませんでした。CRUDアプリケーションを作るにあたって、どうやってモチベーションあげようとかと考えた結果、@_aya8976の好きなアイドル(坂道とか48)を使ったサンプルにしよう!と閃いてこれができました。
(長濱ねるちゃんも初期データに追加しててという要望あったんですけど、かわいい画像多すぎて決められなくて断念)

一覧

画像1


詳細

画像2

新規登録

画像3

しょっぱなからディレクトリ名を"temlates"とタイポ(正しくはtemplates)してくれたおかげで"template might not exist or might not be accessible by any of the configured Template Resolvers"とエラーログでました。
ログ読んでもらい一緒にデバッグをしました。まず、Controllerから見てみました。「return "list"」となってるし他も特に問題なさそう。次、テンプレートのあるディレクトリを見てもらい、タイポに気づいてもらえました。
予想外でしたが、デバッグの仕方を教えることもできました。修正して、ブラウザに表示されたときに笑顔になったので達成感を味わえたようでした。

プログラミング初学者とか苦手意識をもっている人に教えるときに気をつけていることが主に3つあって今回もこのやり方でやりました。

1つ目は、答えを極力言わないことです。「なるほど、できた!」という感覚のときって頭に残りやすいので、答えに導くような質問をして自分の口から正解を言わせるようにしています。
2つ目に、考えさせる部分と教える部分を明確にすることです。今のレベルでこれを考えさせても絶対に答え出ないなということは、正解を言って解説します。(将来、どこかで聞いたってなればいいなくらい)
3つ目に、仕様を分解させて実装してもらうことです。ユーザ一覧ページの表示の仕様を分解すると、「1.データ無しのページを表示できること。2.DBからちゃんとデータを取得できること。3.取得したデータをページに表示できること。」という感じです。

プログラミングに限った話ではないですけども!

まとめ

「エンジニアはこんな大変なことをやってるんだぜ。ちょっとはわかってくれ」という気持ちではなく、純粋にプログラミングを楽しんでもらって何か別の世界が見えればいいなという気持ちでやりました。
結局、Spring Bootがフレームワークじゃないよという話はできなかったけど、難しくて疲れて達成感があって楽しかったようなのでやってよかったです。
正直、サンプルはすごく初心者向けなので作っていて技術的な学びはなかったけど、EX が抱えている疑問を聞いて解決できたり、人に教える難しさを学べたりしてすごく楽しくて有意義な時間を過ごせました。プログラミングを楽しんでもらう、採用担当とエンジニアの相互理解を深めるの目的をどっちも達成することができました。

エンジニア採用における協力って書類審査したり、面接出たりだけではないと思っています(これらはエンジニアしかできないから当然の話)。特に協力してほしいのは、「社名を知ってもらうためには」とか「どういうメッセージを出したらエンジニアにささるのか」とかの応募に至る前段階の部分だと思っているので、今後も協力していきます。

ただ、今回のハンズオンで1番伝えなきゃいけなかったのは、「Spring Boot」が正しい表記だよということでした...無念。


この記事が気に入ったらサポートをしてみませんか?