Stylez Advent Calendar 2018 の 3日目です。
株式会社スタイルズで代表をしている梶原です。Advent Calendarをやるそうなので、普段考えている若い人の教育のことを書いてみます。
※以前、「javaプログラマー向け学習のための本(新人から5年めくらいまで)を考えてみた」という記事を書いたときは、一般的な話だったのですが、今回はスタイルズのSI部門で開発者向けにやっている(加えてこれからやろうと考えている)教育のことを書きます。
#第一回目:2年目までの24ヶ月の過ごし方
※2,3回に分けて書くつもりなのですが、今回は、入社してから24ヶ月目までの教育としてやっていることを書いています。
とりあえずスケジュールを統一するために、新卒採用の人を前提としています。新卒ではないが経験量がその誤差の範囲であればスケジュール調整しながら、同じの流れに組み込まれます。
まず教育の目的なのですが、スタイルズが(一風変わったことをやっていますが)基本はSIerで、仕事的にはJavaによるWeb系技術でのシステム開発が6-7割を占めるのでそちらが中心になります。
##1. 2年目までの大きな目標
- Java(+Spring Framework)でプログラムが書けるようになること
- Webシステムがどのように動いているかが理解できること
- 良いコードを書くという意識を持てるようにすること
- フロントエンドのことも何となく分かること
- (AWSを中心に)インフラがわかること
という感じですね。その中で以下の資格取得を義務付けています。合格すると、それぞれちょっとした奨励金(お祝い金)が出ます。
- Java SE 8 Silver
- HTML5プロフェッショナル レベル1
- LPICレベル1(またはそれ相当)
##2. 入社直後の研修(4/1から2週間)
スタイルズは、銀行系シンクタンクのビジネス研修コースを会社単位で契約していて、無料で何回でも社外研修が受けられます。入社直後の研修(4/1から2週間)としては、(たぶんどこの会社でも同じようなものだと思いますが)いわゆる新卒研修を受けてもらっています。今年の例だと
- 新人社員研修 はじめの一歩
- ホウレンソウと仕事の進め方
- 自律型人材の考え方と行動
- ロジカルコミュニケーション&文章術
ということで、それぞれが一日コースだったそうです。
それと、パソコンを使った「キーボードに慣れる」自習をしてもらったりしています。これは、このあとに続く社外でのプログラミング研修に備えてのものです。この部分は2週間しかないのであっという間です。
##3. 社外でのプログラミング研修(4/1中旬から2ヶ月間)
本当は社内でプログラミングの研修をできればよいのですが、100人ちょっとという規模だとなかなか専任講師を社内でアサインしたり、研修内容までをちゃんと準備することができません。なのでここから2ヶ月間は社外の研修コースでプログラミングの学習をしてもらいます。
(どこまで書いていいいのかわからないのですが。。。まあ多少は宣伝にもなるから良いかな。。。)
今年は、株式会社カサレアルさんの「Javaプログラマー向けの入社時技術研修」を採用させてもらいますた。来年4月の新人研修でもお願いする予定です。一応リンクを貼りますが、今年と来年が全く同じ内容とは限らないので、以下の内容も変更があるかもしれません。
研修内容としては
(1)クライアントサイドはReact、サーバーサイドはSpring Boot(Java)を利用したWebアプリケーション開発
(2)GitLab、GitLab Runner、JUnit、Maven、Docker等のツールを使って一連の開発手順を経験
(3)ハンズオン形式で概要を学んだ後、新入社員同士ペアを組み、段階的にいくつもの課題にチャレンジ
ということで、毎週、金曜日の研修終了後に会社に戻って困ったことがないかとかのヒアリングとかをします。
カサレアルさんのこの研修サービス自体が今年から始まったもので、昨年まではもっとオールドスタイルのJava研修を受けてもらっていましたが、この研修を紹介されて、やはり出来る限り最新の技術を利用できる実践的な研修を受けてもらうべきだと考えて、こちらに切り替えました。
#(配属後の教育の進め方)
①1-3ヶ月くらいのスパンでテーマを変えた技術教育
- Java基礎教育
- Java資格取得
- Spring Frameworkの実践
- Webアーキテクチャーの(超)基礎教育
- 良いコードについて
- HTML5&CSS3の学習
- HTML5資格取得
- Linuxの基礎教育
- Linuxの資格
というテーマで教育が進みます。新人4-5人に対して、メンター(先輩)が数人ついてくれています。
2週間に一回、メンターと新人が集まって進行具合を確かめて、わからないところを教えたり、スケジュールを修正したりします。
質問とかのコミュニケーションはSlackでやっています。
##② 自由参加の教育
- AWS
- KubernetesやDocker
- Git
というテーマで月に一回の自由参加の勉強会があります。これについては、別の記事で書きます。
##③ ビジネススキル教育
前に書いたビジネススキルの社外研修(半日コース)
- ロジカルシンキング
- ストレス管理
- 話す技術
といったテーマのビジネス研修に毎月一回程度、参加してもらいます。
#3. 1-3ヶ月くらいのスパンでテーマを変えた技術教育
##①Javaの基礎
progate Javaコースを中心に、以下の副読本を参考に、Javaの基礎を再確認していきます。
### スッキリわかるJava入門 第2版
### スッキリわかる Java入門 実践編 第2版
### スッキリわかる サーブレット&JSP入門
最後の「スッキリわかる サーブレット&JSP入門」はかなりさらっとすませます。
progate を使い始めたのは今年からで、メンターの人たちで色々工夫しているようです。
##②Javaの資格取得
Java Silver取得に向けて各自黒本で勉強して資格を取得します。
https://www.amazon.co.jp/dp/4844339931/
##③Spring Frameworkの実践
### Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
この本を参考にしながら、実際に、開発するテーマを自分たちで決めて、プログラムを開発しながら勉強していきます。昨年だと、ビルドツール、テンプレートエンジン、O/Rマッパーとかは色々選んで試してみたりしたそうです。
なかなかこれが難物で数ヶ月かかります。最後に部門内で発表会をしたりします。
##④Webアーキテクチャーの(超)基礎教育
読書会形式ですが、この本はWeb開発の歴史をCGIあたりから解説したものです。ベテランの人達はWebが発展して来た過程を身をもって体験しているからよいのですが、今の若い人は、最初のプロジェクトがSPAだったりするので、歴史を学んでもらうという観点でやっています。
### 「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか
##⑤良いコードについて
これも読書会形式です。「良いコード」をなぜ書く必要があるのか。「良いコード」とはどんなものか?を知ってもらうためにはとても大切なことだと思っています。
### リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック
##⑥HTML5&CSS3の学習
HTML5&CSS3についてテーマというか宿題を出しながら進めているようです。ベテランのサーバーサイドの人たちは全然こここ教育を受けてなかったりするので、このあたりの講師は会社でフロントエンドをやっている人たちに担当してもらっています。
##⑦HTML5資格取得
HTML5プロフェッショナル認定試験のレベル1に合格してもらっています。
##⑧Linuxの基礎教育
### 新しいLinuxの教科書
あたりを副読本としてLinuxの基礎的な教育です。
書籍の内容はこんな感じ。
- CHAPTER01 Linuxを使ってみよう
- CHAPTER02 シェルって何だろう?
- CHAPTER03 シェルの便利な機能
- CHAPTER04 ファイルとディレクトリ
- CHAPTER05 ファイル操作の基本
- CHAPTER06 探す、調べる
- CHAPTER07 テキストエディタ
- CHAPTER08 bashの設定
- CHAPTER09 ファイルパーミッションとスーパーユーザ
- CHAPTER10 プロセスとジョブ
- CHAPTER11 標準入出力とパイプライン
- CHAPTER12 テキスト処理
- CHAPTER13 正規表現
- CHAPTER14 高度なテキスト処理
- CHAPTER15 シェルスクリプトを書こう
- CHAPTER16 シェルスクリプトの基礎知識
- CHAPTER17 シェルスクリプトを活用しよう
- CHAPTER18 アーカイブと圧縮
- CHAPTER19 バージョン管理システム
- CHAPTER20 ソフトウェアパッケージ
##⑨Linuxの資格取得
LinuxのLPIC レベル1に相当する資格の取得です。今はLinuCでもOKとしています。
#(ここまででもう丸2年経過。。。)
1年目の夏頃に現場に配属になってプロジェクトに参加しながらも、これだけのことをやりつつ、24ヶ月も経過してまだ初級教育しか済んでいないという。。。。(教育をうけるほうも教育するほうも)エンジニアってホント大変ですね。次回はここまでの教育とは別にやっている「AWSやコンテナの勉強会」のことを書こうかな。。。。