日経、新卒エンジニア技術研修を初めて実施
新卒で入社し、アプリチームにジョインして 1 年になる。この1年間を振り返ってみると大学を卒業しエンジニアとして働き始め、自分の生きてきた環境が大きく変わる激動の年であった。読者の中には、プログラミングを始めて間もない方からベテランの方まで様々な方がいると思われる。ベテランエンジニアの方もエンジニアになった時の気持ちに思いを馳せてほしい。果たして自分にできるようになるんだろうかと悩み、環境構築で躓き、クラスの概念の理解、迫り来る締め切りと倒せないバグ。様々な壁を乗り越えてだんだん強いエンジニアになっていくのだと思う。思い出してきただろうか。まずは私自身の話をさせてほしい。
私は大学時代デザインと情報を学ぶ学科で Processing や openFrameworks でメディアアートの製作のほか、Arduino でセンサーやデバイスをつなげて電気工作などで遊んでいた。日本経済新聞社を受験して入社と相成ったが、クラスを使うような大規模な開発はしたことがなくクラス?git?ブランチ?という疑問符がいくつも頭に浮かぶ状態だった。
当時の私は、周囲のエンジニアが日本語を話しているはずなのに何言ってるのか本当に理解できなかった。コードを読めなくて工数を見積もれない。調べても読んでもクラスの概念や使い方や git の概念がわからず、挙句の果てにはコンフリクトを出そうもんなら発狂しそうになる。考えてみると結構ストレスフルだった。(スタンフォードのストレスを力に変える教科書がいつの間にか家にあるあたりがお察しであるが)よく 1 年生きてこれたなと思う。
こんな状況でも1年生き延びられたのはエンジニア向け新卒研修とメンターとチームとのおかげである。新卒として研修を受けた側視点から、弊社のエンジニア向け技術研修について紹介する。
弊社では 4 月の入社日から記者職営業職も含めた研修を2週間行う。その研修に加えてエンジニア向けに 5 週間技術研修が行われた。エンジニア向け新卒研修は弊社では今年はじめての取り組みであった。外部講師を呼んで研修のカリキュラムづくりから実施まで行うのではなく、現場で携わっている社員がカリキュラムを作り、それぞれ1日に2時間ほどカリキュラムにそって講義を行う形式だ。目標は実際の配属にあたって最低限のスキルセットを身に着けること、電子版をはじめとする日経のデジタル事業へのドメイン知識を深めること、エンジニアとして今後働いていく上で必要な知識・マインドを身につけることである。
最初の一週目は支給された mac や git のセットアップから始まった。準備が終わり次第ブラウザ上で Python を習得できる web サービス PyQ を用いて Python の基本事項の習得を行う。基本的に個人のレベルに合わせて、個人で進める。わからないところは質問時間を設けることで先輩エンジニアに相談しやすい形式だった。私はエンジニア知識ほぼ0からのスタートだったため、学校のように 1 対全体の講義で教えられるよりは、自分の手で書いて動かして試して習得するのが性にあっていた。
開発未経験者と経験者に同じ課題をやらせるのではなく、自分で知識を補強したいところを選んでプログラミングの研修を進められるのが良かった。自分は Python の基本文法からはじめたのだが、開発経験者の同期は Django を用いた web アプリ開発の演習から始めるなどといった選択肢があった。また個人的な意見ではあるが、個人で進められると精神的にちょっと余裕があるので一緒に研修を受けてる同期と話す機会が1週目に取れてよかったと思う。
2週間目はネイティブアプリの開発研修として、iOS のニュースアプリをハンズオン形式で行った。本番で使用しているのに近い API を用いてアプリを作る体験をした。まずは Swift の基礎を説明した後 StoryBoard を用いてアプリを作っていく。ハンズオンは2日間行い、テーブルビューにニュースを表示させ、タップしたら記事詳細画面が出てくるところまで全員で進捗を合わせる。後の3日間はそれぞれの技術レベルに合わせてアプリの完成度を上げていく形式である。例えば、サムネイルがないときのセルにダミー画像を入れる実装やローディング、難しい課題だと日経 ID を使ったユーザ認証の追加など追加する機能の提案が行われ、好きなものややりたい事から実装し、最終日に制作物の成果発表を行う。
3 週間目は GW のはざまの2日間ではあるがデータ分析の実習を行った。この講義では、1日目はデータ分析に関して日経がお世話になっている外部のデータ分析のアドバイザーに SQL の使い方などを講義してもらう。2日目は日経で扱うデータを用いて個別にテーマを決めてデータビジュアライゼーションを行い、分析できたことを発表をする。
4 週間目5週間目は2名、3名に分かれてチーム開発の演習を行った。テーマは日経の記事を配信するチャットボットと本社 1F のスクリーンに投影するサイネージ向けシステムの開発の2つである。日経の記事を配信するチャットボットは、Slack を用いて日経の朝夕刊の定期配信、人気急上昇ワードの定期配信、登録キーワードの自動配信を行うツールである。
サイネージ向けシステムとは日経本社一階の大画面に表示されるコンテンツのリニューアルを行い、来訪者に最新の電子版のニュースを届けるコンテンツである。どちらのコンテンツも、新人研修で作っただけで終わるのではなく、その後もお客さんや社員に使ってもらえるようなものづくりを体験した。研修が終わると、配属先が発表されそれぞれのチームに向かうことになる。
こうして私はアプリチームに配属された。メンターとボスとチームに恵まれ自分の技術力や知識の向上に力を注げる環境の中でプロダクトの開発に携われることに幸せを感じる。まだまだエンジニアとしては未熟ではあるが、これからも精進していこうと思う。
社会人2年目になる今年は、新卒技術研修の研修担当としてコンセプト決めからカリキュラムを組みあげ、スケジュール管理などの運営を行う側になった。昨年の受講時反省をいかして、よりよい研修や環境づくりを行う。2名、3名のチームに分かれてプロダクトの開発をやってみたい気持ちはあるがエンジニア力低くて・・・という新卒の方でも研修が充実している。是非入社試験を受けてみて頂きたい。
講義一覧
各チームの1日を紹介 | |
---|---|
Github 環境構築 | 鍵登録の仕方 Pull Request の投げ方 |
Web の基本 | URL(名前解決とか) HTTP リクエスト・レスポンス HTML5/JavaScript/CSS |
Django の基本を知る | WAF とは URL-router View の役割 テンプレートエンジン |
Git の基本を知る | バージョン管理する意味 コミットの粒度 コミットツリー merge/rebase/cherry-pick 等 Github flow |
アプリ開発概論 | はじめてのアプリ開発 考慮するべき点 Web との違い |
API について | API とは フォーマット 負荷 REST |
情報収集の仕方 | 日々の情報収集のしかた |
UI/UX | UI/UX/情報設計について |
日経で扱うデータとその可視化 | 記事データ CRM データ ユーザランク/FT 表 ログの見方 kibana の使い方 |
データビジュアライゼーション | ビジュアライゼーション GIS VData の仕事の仕方 D3? |
チームでの開発について | アジャイル開発手法 日経のチーム開発ケーススタディ |
リーン開発・企画の作り方 | 企画の作り方 ユーザからのフィードバックの集め方 |
テスト・CI | |
プロダクトマネジメント | チームづくり KPI 設定 プロダクトのグロース等 |
フロントエンド | - フロントエンド全般 - HTML/CSS - コンポーネント - デザインシステム |
セキュリティ | 代表的な攻撃手法 防御方法等 |
データセンター見学 | |
AWS | インフラの基礎 AWS のサービス紹介 日経で動いている AWS を利用したシステム コンテナ技術(仮想化) |
新聞用語の説明 | |
Web 広告 | - Web 広告の種類 - Web 広告の仕組み - Web 広告用語 - 電子版の広告 |
機械学習・レコメンド |