Copyright © Acroquest Technology Co., Ltd. All rights reserved.
自己紹介
名前:白井智子
所属:Acroquest Technology
Co., Ltd.
Twitter:
@white_luc
Facebook:
https://www.facebook.com/
satoko.shiroi
趣味:デザイン、写真、
音楽(鑑賞、演奏)
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
2
学生時代
1. 筑波大学大学院メディアデザイン系のリケジョ
→大学4年から、可視化の研究を始めた。
2. 研究発表のため、フランスの学会にも参加!
3. プログラミングはあまり勉強していなかった。
→ 研究のために少しJavaを触った程度。
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
3
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
4
?!
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
5
?!?!
学生時代
1. プログラミング?
① 動くと面白いのだけど・・・
正直、苦手だった。
② ソースコードを書いて動いたけど、
実は、何やっているのか
よく分からん。
2. Javaの知識はほとんどなかった。
① とりあえず動けば良いと思って、
開発していた。
(よくある学生のレベル!?)
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
7
そんな私が
プログラミングを
好きになった、1年間
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
8
今日は
新人の一年を通して
自分が感じたことを
ありのままに、お話します
Javaと新人研修と私
コンテンツ
Javaと新人研修と私
① 入社前の私から見たJava
② 新人研修にて
③ プロジェクトに入って
④ 1年を振り返る
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
9
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
①入社前の私から
見たJava
10
1. Javaって学ぶべきものが多過ぎ!?
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
11
標準の機能であっても・・・
1. Javaって学ぶべきものが多過ぎ!?
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
12
OSSもたくさんあって・・・
1. Javaって学ぶべきものが多過ぎ!?
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
13
システム全体を考えれば、それ以外にも・・・
14
一体、何を
学べばいいの!?
2. これからJavaを学習する人が直面する問題
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
15
1. 「Hello World!」は実装できるけど、
実際のシステム開発で「System.out.println」
とか実装したら、怒られるでしょ。
(本で紹介されるJavaと実際に扱うJavaは違う)
2. 以前から学習している人は積み上げになるが、
Javaは歴史が長い分、これからJavaを学習する
人にとっては覚えることが多い。
3. 何かの機能や処理を実現するにしても、
その選択肢が多すぎて、
どれが適切なのか判断つかない。
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
なんか、
いろいろ勉強しないと
やばそう…
16
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
と、考えているうちに
入社して、
新人研修スタート!
17
2013/04 2014/03
今ここ
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
②新人研修にて
18
1. 新人研修のイメージ
1. とりあえず、
コード書ければいいんじゃない?
(まだ、そんなに書けないけど…)
2. Javaなら、やっぱりオブジェクト指向?
3. 設計って、何するの?
これまでもやっていないけど、必要なの?
4. 流行りのアジャイル開発とかやるんでしょ?
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
19
2013年4月
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
やっぱりJavaを使うなら、
オブジェクト指向ぐらい
分かっていないとダメですか?
以前に少し勉強
したけど、結局は
よく分からなかった
犬も猫も哺乳類で…
「人」はクラスで、
「Aさん」は
インスタンス…
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
21
虎の穴研修
2. 実際に行った新人技術研修の内容
1. 原則2ヶ月間の研修
① 早く終わった人から修了可能
② 終わらなかったら…
2. 複数のJavaプログラミング課題
① 設計/実装/テストを一通り行う
② 課題は個人ワークとして進める
3. スケジュール・進捗管理も実施
① デイリー・ミーティング
② データ測定・分析・報告
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
22
2. 実際に行った新人技術研修の内容
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
23
4月
1W 2W 3W 4W
5月
1W 2W 3W 4W
課題①
PSP研修
課題②
コンソー
ル
アプリ
課題③
Android
アプリ
①-1
③Androidアプリ
②コンソールアプリ
①-2 ①-3
成果発表
1. 新人の1日のスケジュール
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
24
2. 実際に行った新人技術研修の内容
9:00 掃除
9:30
始業・朝ミーティン
グ
9:45
技術研修10:30
11:00
11:30
ランチ・プロ研
12:00
12:30 レビュー
13:00 技術研修
13:30
ビジネス研修
14:00
14:30 技術研修
15:00 コーヒーブレイク
15:15 レビュー
16:00
技術研修
16:30
17:00
17:30
18:00 夕方ミーティング
18:30 研修終了・退社
3. 研修でのポイント
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
25
①プログラミングを知る
②仕事でプログラミングをするということ
③進捗管理(セルフマネジメント)
3-1. プログラミングを知る
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
26
① オブジェクト指向の前に、理解しておくべき、
プログラミングの基礎
プログラムの処理はどうやって成り立つの?
• クラスとか、スコープ(public/protected/private)
とか、最初は分からなくても良い。
• どのようなプログラムも、
「順次処理」「繰り返し」「分岐」
が基本の処理となる。
3-1. プログラミングを知る
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
27
② 処理(ロジック)と合わせて、
基本的なデータ構造を理解
データをどのように扱うのか?
• 変数/配列 < リスト/マップ < オブジェクト
• コレクションフレームワークは、整理して理解すると、
確かに便利だと思った。
3-1. プログラミングを知る
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
28
③ いままで理解した処理やデータ構造のことを、
オブジェクト指向に繋げて理解する
プログラムを整理して、分かりやすくする
• 処理や機能の役割を考え、まとめたり、分けたりする
→メソッドやクラスが何かを考える。
→役割や責務で整理。名前の付け方重要。
• レイヤー化やコンポーネント分割
→クラスのまとまり(パッケージ)を考える。
• インタフェース/継承/委譲
→プログラムを整理する技術(と単純に考えた)。
→初めから理解するのは難しいが、既にあるプログラムを
整理するために使うと、理解しやすい。
3-2. 仕事でプログラミングをするということ
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
29
① 設計をする
② 実装する
③ テストをする
一通りの工程を学ぶ
④ レビューをする
(してもらう)
+
研修中、
繰り返し実施
3-2. 仕事でプログラミングをするということ
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
30
①ちゃんと設計をする
• 設計をする ≠ 設計書を書く
• 実現しようとしているものを整理して考える
• 一度設計したら終わりではなく、練り直す
楽にプログラムを作れるようになる!
→シンプルな構造にすることで、実装がしや
すい
→バグも減り、拡張やメンテナンスもしやす
3-2. 仕事でプログラミングをするということ
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
31
②テストを習慣付ける
• JUnitを使って、こまめにテストをする
• 仕様に基づいたテストケースを作成する
• 面倒くさがって、まとめてテストしない
自分が開発したプログラムの品質を高める!
→自分が開発したものに対する手ごたえを得る
→エンジニアとして、開発したものに責任を持つ
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
32
③ほぼ毎日、レビューを実施
3-2. 仕事でプログラミングをするということ
• 1回 30分~1時間
• 対面でレビュー
• 自分の成果物を説明
し、それに対して
コメントをもらう
• 設計/実装/テストの
各工程で実施
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
33
③ほぼ毎日、レビューを実施
3-2. 仕事でプログラミングをするということ
• こまめにレビューをすることで、方向性のズレや
誤りを、早めに是正することができた
• 経験ある先輩社員の考え方を学ぶことができた
• Javaの標準APIやOSSライブラリを教えてもらい、
使い所を覚えていけた
成長が加速
3-3. 進捗管理(セルフマネジメント)
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
34
デイリー・ミーティング
① 朝に作業確認
② 夕方に進捗報告
③ 問題があれば、早期に改善
3-3. 進捗管理(セルフマネジメント)
新人最初の状態
① 予定時間内に作業が終わらない
(予定した時間の3~5倍かかる)
② 「あと少しで終わります!」が続く
(で終らない)
自分の状況を正しく把握する
① 作業の実績を計測
② 規模、時間、問題の数
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
35
問題に気付き、改善する!
4. 研修で目指していたこと
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
36
①本質を理解することで、10年先でも活躍する
②職業プログラマではなく、プロとしてのプロ
グラマ
③どうしたら良いか、自分から考えられる
研修で目指していたこと
「成長し続けるエンジニア」
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
37
2013/04 2014/03
今ここ
(なんとなく)
できる
エンジニアへ!
2013/06
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
③プロジェクトに
入って
38
1. プロジェクトへの配属
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
39
Stormを利用したビッグデータ処理の
ビジュアルなモニタリングシステムの開発
• Storm
• HBase
• SpringMVC
• JavaScript
• Backborn.js
• SVG
• HTML5
新しいもの
だらけで
分からない
ことだらけ
なんですが!
2. 最初は大変でしたよ
1. 環境構築するだけでも大変
① 仮想環境を用いて、複数サーバを構築
② 環境設定とか、良く分からないし…
③ そもそも、StormとかHBaseとか、新人には
無理ありますよ。
2. 開発言語も複数使う必要あり
① Javaがメインの言語だけど、画面を開発するのに、
JavaScript(HTML5やSVGの扱い含む)も多く利用する
② クライアントサイドMVC?
サーバ側もクライアント側もMVCって、何それ?
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
40
先輩含めて、3人での開発でしたけど、
自分にとっては、難易度高過ぎ
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
41
でも、
やっていて
楽しくなってきた!
2. なぜ、楽しくなったのか?
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
42
動いた! ではなく…
2. なぜ、楽しくなったのか?
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
43
1. 研修で学んだことが繋がった。
① 実現したいことを具体化するために、
設計して整理
② 処理の基本は変わらない、その組合せ
③ 知らないOSSとかでも、調べつつ、動かすことが
できるようになった
2. 自分が好きな可視化の分野で
かたちになるモノが
開発できた!
※ 後日談
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
44
後から、上司に聞いた話では…
可視化や画面系の技術が好きだ、
ということを知っていたから、
その興味を活かせる仕事が良い、
と思ってアサインしたんだよ。
君ならやってくれると信じていた
よ!
自分の興味に合った仕事を選んで
くれてたなんて、上司やるじゃん!
上司
※実物は、写真とは多少異なる
場合があります。
3. 最初のプロジェクトでの成果
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
45
JavaでのWebアプリケーションの開発が
できるようになった!
Java以外のことも、たくさん勉強する
必要があったけど、画面があるのは、
やはり分かりやすくていいですよね!
実際の開発業務を通して
さらに技術的な興味範囲も広がった
4. はじめての夏
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
46
自社で主催の『ATN(Advanced Tech Night)』
という社外勉強会で、スピーカをやらせてもらっ
た。
基本的な可視化の手法と、可視化のための
JavaScriptライブラリである『D3.js 』
について紹介!
2013年8月
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
…ん?
Javaに関係ないって!?
47
4. はじめての夏
1. プロジェクトの中で、
可視化の話をしていたら、
先輩から勧められて、スピーカーをやることに。
2. 「いつかは自分も…」とは思っていたけど、
入社して半年も経たない内に
やることになるとは!?
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
48
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
49
2013/04 2014/03
今ここ
たくさんの
チャレンジをして
モチベーションも
アップ!!
2013/06 2013/08
5. その後
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
50
① モニタリングシステムの開発 ~シーズン2 ~
(2013年9月~2013年11月)
② SpringMVCを利用したWebシステムの
プロトタイプ開発
(2013年12月~2014年3月)
③ RESTベースのメッセージングシステムの開発
(2014年4月~現在)
Web系システムを中心に開発を担当
最初はOSSとかも良く分からなかったけど
(それなりに)使えるようになってきた!?
得意分野を作ることが大事
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
④1年を振り返る
51
1. 1年間の状況
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
52
新人研修
2013/04 0406 08 10 12 2014/02
ビッグデータ処理の
モニタリングシステム
SpringMVCを利用
したプロトタイプ
• プログラミングの基本
• JavaAPI
• OSSのライブラリ
• 進捗管理
• Webアプリの開発
• JavaScirpt/HTML5
• OSSのWeb
フレームワークの活用
プログラミン
グ
わからない
好きじゃない
プログラミング
が好きになった
開発が楽しく
なってきた
何となく
分かってきた
気がする
PJ配属 ATN発表
2. 自分自身を振り返ってみて
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
53
Before
2. 自分自身を振り返ってみて
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
54
After
2. 自分自身を振り返ってみて
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
55
入社前と比べると、プログラミングに対する
考えもスキルも、大きく変わった。
開発が楽しくなった!
① プログラミングに対する苦手意識がなくなった
• 基本の考え方が分かると、大きなシステムでも怖くない。
② Javaは、覚えることが多過ぎると思っていたけど、
自分の興味分野から広げていけた
• 全部覚えなくて良い。
• 知らないことは、分かっている人にどんどん聞こう。
• 勉強会に参加することで、刺激も受けた。
3. 自分が勉強した内容
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
56
研修やプロジェクト以外に、
こんな本を読んで勉強しました
(新人の皆さんの参考になれば)
4. 先輩からのサポート
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
57
先輩のレビューに感謝!
ただ、先輩から教えてもらって、
理解したことも多くありました
① レビューで、自分の成果物を積極的に見てもらう
• 先輩ならば、どのようなクラス構成を考えるのか?
• 自分が知らないAPIやOSSも教えてもらえる。
② レビューを通して、自分の弱点も分かってきた
• なんとなくのイメージ(実は、分かっていない)で実装に
詰まる。
• 設計段階で、自分が作るもののイメージを、上司と一緒に
検討する。
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
まとめ
58
まとめ
1. プログラミングに対する見方が変わった
① 考え方を学ぶことで、分かるように
② 「苦手」→「好き」
③ Javaも、だいぶ、扱えるようになった!(たぶん)
2. チャレンジすることで、成長する
① 新人なんて、分からないことだらけ
チャレンジすることが重要
② 勉強会に参加するのも、楽しい!
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
59
ご清聴ありがとうございまし
た。
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Infrastructures Evolution

Hello Engineer World! 新人リケジョの1年

  • 1.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved.
  • 2.
  • 3.
    学生時代 1. 筑波大学大学院メディアデザイン系のリケジョ →大学4年から、可視化の研究を始めた。 2. 研究発表のため、フランスの学会にも参加! 3.プログラミングはあまり勉強していなかった。 → 研究のために少しJavaを触った程度。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 3
  • 4.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 4 ?!
  • 5.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 5 ?!?!
  • 6.
    学生時代 1. プログラミング? ① 動くと面白いのだけど・・・ 正直、苦手だった。 ②ソースコードを書いて動いたけど、 実は、何やっているのか よく分からん。 2. Javaの知識はほとんどなかった。 ① とりあえず動けば良いと思って、 開発していた。 (よくある学生のレベル!?) Copyright © Acroquest Technology Co., Ltd. All rights reserved.
  • 7.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 7 そんな私が プログラミングを 好きになった、1年間
  • 8.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 8 今日は 新人の一年を通して 自分が感じたことを ありのままに、お話します Javaと新人研修と私
  • 9.
    コンテンツ Javaと新人研修と私 ① 入社前の私から見たJava ② 新人研修にて ③プロジェクトに入って ④ 1年を振り返る Copyright © Acroquest Technology Co., Ltd. All rights reserved. 9
  • 10.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. ①入社前の私から 見たJava 10
  • 11.
    1. Javaって学ぶべきものが多過ぎ!? Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 11 標準の機能であっても・・・
  • 12.
    1. Javaって学ぶべきものが多過ぎ!? Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 12 OSSもたくさんあって・・・
  • 13.
    1. Javaって学ぶべきものが多過ぎ!? Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 13 システム全体を考えれば、それ以外にも・・・
  • 14.
  • 15.
    2. これからJavaを学習する人が直面する問題 Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 15 1. 「Hello World!」は実装できるけど、 実際のシステム開発で「System.out.println」 とか実装したら、怒られるでしょ。 (本で紹介されるJavaと実際に扱うJavaは違う) 2. 以前から学習している人は積み上げになるが、 Javaは歴史が長い分、これからJavaを学習する 人にとっては覚えることが多い。 3. 何かの機能や処理を実現するにしても、 その選択肢が多すぎて、 どれが適切なのか判断つかない。
  • 16.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. なんか、 いろいろ勉強しないと やばそう… 16
  • 17.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. と、考えているうちに 入社して、 新人研修スタート! 17 2013/04 2014/03 今ここ
  • 18.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. ②新人研修にて 18
  • 19.
    1. 新人研修のイメージ 1. とりあえず、 コード書ければいいんじゃない? (まだ、そんなに書けないけど…) 2.Javaなら、やっぱりオブジェクト指向? 3. 設計って、何するの? これまでもやっていないけど、必要なの? 4. 流行りのアジャイル開発とかやるんでしょ? Copyright © Acroquest Technology Co., Ltd. All rights reserved. 19 2013年4月
  • 20.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. やっぱりJavaを使うなら、 オブジェクト指向ぐらい 分かっていないとダメですか? 以前に少し勉強 したけど、結局は よく分からなかった 犬も猫も哺乳類で… 「人」はクラスで、 「Aさん」は インスタンス…
  • 21.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 21 虎の穴研修
  • 22.
    2. 実際に行った新人技術研修の内容 1. 原則2ヶ月間の研修 ①早く終わった人から修了可能 ② 終わらなかったら… 2. 複数のJavaプログラミング課題 ① 設計/実装/テストを一通り行う ② 課題は個人ワークとして進める 3. スケジュール・進捗管理も実施 ① デイリー・ミーティング ② データ測定・分析・報告 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 22
  • 23.
    2. 実際に行った新人技術研修の内容 Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 23 4月 1W 2W 3W 4W 5月 1W 2W 3W 4W 課題① PSP研修 課題② コンソー ル アプリ 課題③ Android アプリ ①-1 ③Androidアプリ ②コンソールアプリ ①-2 ①-3 成果発表
  • 24.
    1. 新人の1日のスケジュール Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 24 2. 実際に行った新人技術研修の内容 9:00 掃除 9:30 始業・朝ミーティン グ 9:45 技術研修10:30 11:00 11:30 ランチ・プロ研 12:00 12:30 レビュー 13:00 技術研修 13:30 ビジネス研修 14:00 14:30 技術研修 15:00 コーヒーブレイク 15:15 レビュー 16:00 技術研修 16:30 17:00 17:30 18:00 夕方ミーティング 18:30 研修終了・退社
  • 25.
    3. 研修でのポイント Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 25 ①プログラミングを知る ②仕事でプログラミングをするということ ③進捗管理(セルフマネジメント)
  • 26.
    3-1. プログラミングを知る Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 26 ① オブジェクト指向の前に、理解しておくべき、 プログラミングの基礎 プログラムの処理はどうやって成り立つの? • クラスとか、スコープ(public/protected/private) とか、最初は分からなくても良い。 • どのようなプログラムも、 「順次処理」「繰り返し」「分岐」 が基本の処理となる。
  • 27.
    3-1. プログラミングを知る Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 27 ② 処理(ロジック)と合わせて、 基本的なデータ構造を理解 データをどのように扱うのか? • 変数/配列 < リスト/マップ < オブジェクト • コレクションフレームワークは、整理して理解すると、 確かに便利だと思った。
  • 28.
    3-1. プログラミングを知る Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 28 ③ いままで理解した処理やデータ構造のことを、 オブジェクト指向に繋げて理解する プログラムを整理して、分かりやすくする • 処理や機能の役割を考え、まとめたり、分けたりする →メソッドやクラスが何かを考える。 →役割や責務で整理。名前の付け方重要。 • レイヤー化やコンポーネント分割 →クラスのまとまり(パッケージ)を考える。 • インタフェース/継承/委譲 →プログラムを整理する技術(と単純に考えた)。 →初めから理解するのは難しいが、既にあるプログラムを 整理するために使うと、理解しやすい。
  • 29.
    3-2. 仕事でプログラミングをするということ Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 29 ① 設計をする ② 実装する ③ テストをする 一通りの工程を学ぶ ④ レビューをする (してもらう) + 研修中、 繰り返し実施
  • 30.
    3-2. 仕事でプログラミングをするということ Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 30 ①ちゃんと設計をする • 設計をする ≠ 設計書を書く • 実現しようとしているものを整理して考える • 一度設計したら終わりではなく、練り直す 楽にプログラムを作れるようになる! →シンプルな構造にすることで、実装がしや すい →バグも減り、拡張やメンテナンスもしやす
  • 31.
    3-2. 仕事でプログラミングをするということ Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 31 ②テストを習慣付ける • JUnitを使って、こまめにテストをする • 仕様に基づいたテストケースを作成する • 面倒くさがって、まとめてテストしない 自分が開発したプログラムの品質を高める! →自分が開発したものに対する手ごたえを得る →エンジニアとして、開発したものに責任を持つ
  • 32.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 32 ③ほぼ毎日、レビューを実施 3-2. 仕事でプログラミングをするということ • 1回 30分~1時間 • 対面でレビュー • 自分の成果物を説明 し、それに対して コメントをもらう • 設計/実装/テストの 各工程で実施
  • 33.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 33 ③ほぼ毎日、レビューを実施 3-2. 仕事でプログラミングをするということ • こまめにレビューをすることで、方向性のズレや 誤りを、早めに是正することができた • 経験ある先輩社員の考え方を学ぶことができた • Javaの標準APIやOSSライブラリを教えてもらい、 使い所を覚えていけた 成長が加速
  • 34.
    3-3. 進捗管理(セルフマネジメント) Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 34 デイリー・ミーティング ① 朝に作業確認 ② 夕方に進捗報告 ③ 問題があれば、早期に改善
  • 35.
    3-3. 進捗管理(セルフマネジメント) 新人最初の状態 ① 予定時間内に作業が終わらない (予定した時間の3~5倍かかる) ②「あと少しで終わります!」が続く (で終らない) 自分の状況を正しく把握する ① 作業の実績を計測 ② 規模、時間、問題の数 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 35 問題に気付き、改善する!
  • 36.
    4. 研修で目指していたこと Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 36 ①本質を理解することで、10年先でも活躍する ②職業プログラマではなく、プロとしてのプロ グラマ ③どうしたら良いか、自分から考えられる 研修で目指していたこと 「成長し続けるエンジニア」
  • 37.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 37 2013/04 2014/03 今ここ (なんとなく) できる エンジニアへ! 2013/06
  • 38.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. ③プロジェクトに 入って 38
  • 39.
    1. プロジェクトへの配属 Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 39 Stormを利用したビッグデータ処理の ビジュアルなモニタリングシステムの開発 • Storm • HBase • SpringMVC • JavaScript • Backborn.js • SVG • HTML5 新しいもの だらけで 分からない ことだらけ なんですが!
  • 40.
    2. 最初は大変でしたよ 1. 環境構築するだけでも大変 ①仮想環境を用いて、複数サーバを構築 ② 環境設定とか、良く分からないし… ③ そもそも、StormとかHBaseとか、新人には 無理ありますよ。 2. 開発言語も複数使う必要あり ① Javaがメインの言語だけど、画面を開発するのに、 JavaScript(HTML5やSVGの扱い含む)も多く利用する ② クライアントサイドMVC? サーバ側もクライアント側もMVCって、何それ? Copyright © Acroquest Technology Co., Ltd. All rights reserved. 40 先輩含めて、3人での開発でしたけど、 自分にとっては、難易度高過ぎ
  • 41.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 41 でも、 やっていて 楽しくなってきた!
  • 42.
    2. なぜ、楽しくなったのか? Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 42 動いた! ではなく…
  • 43.
    2. なぜ、楽しくなったのか? Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 43 1. 研修で学んだことが繋がった。 ① 実現したいことを具体化するために、 設計して整理 ② 処理の基本は変わらない、その組合せ ③ 知らないOSSとかでも、調べつつ、動かすことが できるようになった 2. 自分が好きな可視化の分野で かたちになるモノが 開発できた!
  • 44.
    ※ 後日談 Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 44 後から、上司に聞いた話では… 可視化や画面系の技術が好きだ、 ということを知っていたから、 その興味を活かせる仕事が良い、 と思ってアサインしたんだよ。 君ならやってくれると信じていた よ! 自分の興味に合った仕事を選んで くれてたなんて、上司やるじゃん! 上司 ※実物は、写真とは多少異なる 場合があります。
  • 45.
    3. 最初のプロジェクトでの成果 Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 45 JavaでのWebアプリケーションの開発が できるようになった! Java以外のことも、たくさん勉強する 必要があったけど、画面があるのは、 やはり分かりやすくていいですよね! 実際の開発業務を通して さらに技術的な興味範囲も広がった
  • 46.
    4. はじめての夏 Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 46 自社で主催の『ATN(Advanced Tech Night)』 という社外勉強会で、スピーカをやらせてもらっ た。 基本的な可視化の手法と、可視化のための JavaScriptライブラリである『D3.js 』 について紹介! 2013年8月
  • 47.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. …ん? Javaに関係ないって!? 47
  • 48.
    4. はじめての夏 1. プロジェクトの中で、 可視化の話をしていたら、 先輩から勧められて、スピーカーをやることに。 2.「いつかは自分も…」とは思っていたけど、 入社して半年も経たない内に やることになるとは!? Copyright © Acroquest Technology Co., Ltd. All rights reserved. 48
  • 49.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 49 2013/04 2014/03 今ここ たくさんの チャレンジをして モチベーションも アップ!! 2013/06 2013/08
  • 50.
    5. その後 Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 50 ① モニタリングシステムの開発 ~シーズン2 ~ (2013年9月~2013年11月) ② SpringMVCを利用したWebシステムの プロトタイプ開発 (2013年12月~2014年3月) ③ RESTベースのメッセージングシステムの開発 (2014年4月~現在) Web系システムを中心に開発を担当 最初はOSSとかも良く分からなかったけど (それなりに)使えるようになってきた!? 得意分野を作ることが大事
  • 51.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. ④1年を振り返る 51
  • 52.
    1. 1年間の状況 Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 52 新人研修 2013/04 0406 08 10 12 2014/02 ビッグデータ処理の モニタリングシステム SpringMVCを利用 したプロトタイプ • プログラミングの基本 • JavaAPI • OSSのライブラリ • 進捗管理 • Webアプリの開発 • JavaScirpt/HTML5 • OSSのWeb フレームワークの活用 プログラミン グ わからない 好きじゃない プログラミング が好きになった 開発が楽しく なってきた 何となく 分かってきた 気がする PJ配属 ATN発表
  • 53.
    2. 自分自身を振り返ってみて Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 53 Before
  • 54.
    2. 自分自身を振り返ってみて Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 54 After
  • 55.
    2. 自分自身を振り返ってみて Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 55 入社前と比べると、プログラミングに対する 考えもスキルも、大きく変わった。 開発が楽しくなった! ① プログラミングに対する苦手意識がなくなった • 基本の考え方が分かると、大きなシステムでも怖くない。 ② Javaは、覚えることが多過ぎると思っていたけど、 自分の興味分野から広げていけた • 全部覚えなくて良い。 • 知らないことは、分かっている人にどんどん聞こう。 • 勉強会に参加することで、刺激も受けた。
  • 56.
    3. 自分が勉強した内容 Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 56 研修やプロジェクト以外に、 こんな本を読んで勉強しました (新人の皆さんの参考になれば)
  • 57.
    4. 先輩からのサポート Copyright ©Acroquest Technology Co., Ltd. All rights reserved. 57 先輩のレビューに感謝! ただ、先輩から教えてもらって、 理解したことも多くありました ① レビューで、自分の成果物を積極的に見てもらう • 先輩ならば、どのようなクラス構成を考えるのか? • 自分が知らないAPIやOSSも教えてもらえる。 ② レビューを通して、自分の弱点も分かってきた • なんとなくのイメージ(実は、分かっていない)で実装に 詰まる。 • 設計段階で、自分が作るもののイメージを、上司と一緒に 検討する。
  • 58.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. まとめ 58
  • 59.
    まとめ 1. プログラミングに対する見方が変わった ① 考え方を学ぶことで、分かるように ②「苦手」→「好き」 ③ Javaも、だいぶ、扱えるようになった!(たぶん) 2. チャレンジすることで、成長する ① 新人なんて、分からないことだらけ チャレンジすることが重要 ② 勉強会に参加するのも、楽しい! Copyright © Acroquest Technology Co., Ltd. All rights reserved. 59
  • 60.
    ご清聴ありがとうございまし た。 Copyright © AcroquestTechnology Co., Ltd. All rights reserved. Infrastructures Evolution