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

60
Hello Engineer World! 新新新新新新新 1 新 2014/05/18 Acroquest Technology 株株株株 株株 株株 Copyright © Acroquest Technology Co., Ltd. All rights reserved. JJUG CCC 2014 Spring #ccc_r56

description

 

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

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

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

2014/05/18Acroquest Technology 株式会社

白井 智子

Copyright © Acroquest Technology Co., Ltd. All rights reserved.

JJUG CCC 2014 Spring#ccc_r56

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

自己紹介名前:白井智子所属: Acroquest Technology Co., Ltd.Twitter :  @white_lucFacebook :

https://www.facebook.com/satoko.shiroi

趣味:デザイン、写真、   音楽 ( 鑑賞、演奏 )

Copyright © Acroquest Technology Co., Ltd. All rights reserved.2

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

学生時代

1. 筑波大学大学院メディアデザイン系のリケジョ→大学 4 年から、可視化の研究を始めた。

2. 研究発表のため、フランスの学会にも参加!3. プログラミングはあまり勉強していなかった。

→ 研究のために少し Java を触った程度。

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 3

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 4

?!

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 5

?!?!

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

学生時代

1. プログラミング?① 動くと面白いのだけど・・・

正直、苦手だった。② ソースコードを書いて動いたけど、

実は、何やっているのかよく分からん。

2. Java の知識はほとんどなかった。① とりあえず動けば良いと思って、

開発していた。(よくある学生のレベル !? )

Copyright © Acroquest Technology Co., Ltd. All rights reserved.

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved.7

そんな私がプログラミングを

好きになった、 1 年間

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 8

今日は新人の一年を通して自分が感じたことをありのままに、お話します

Java と新人研修と私

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

コンテンツ

Java と新人研修と私①.入社前の私から見た Java②.新人研修にて

③.プロジェクトに入って

④.1 年を振り返る

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 9

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved.

① 入社前の私から 見た Java

10

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

1. Java って学ぶべきものが多過ぎ !?

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 11

標準の機能であっても・・・

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

1. Java って学ぶべきものが多過ぎ !?

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 12

OSS もたくさんあって・・・

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

1. Java って学ぶべきものが多過ぎ !?

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 13

システム全体を考えれば、それ以外にも・・・

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

14

一体、何を学べばいいの !?

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

2. これから Java を学習する人が直面する問題

Copyright © Acroquest Technology Co., Ltd. All rights reserved.15

1. 「 Hello World! 」は実装できるけど、実際のシステム開発で「 System.out.println 」とか実装したら、怒られるでしょ。( 本で紹介される Java と実際に扱う Java は違う )

2. 以前から学習している人は積み上げになるが、Java は歴史が長い分、これから Java を学習する人にとっては覚えることが多い。

3. 何かの機能や処理を実現するにしても、その選択肢が多すぎて、どれが適切なのか判断つかない。

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved.

なんか、いろいろ勉強しないとやばそう…

16

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved.

と、考えているうちに入社して、新人研修スタート!

17

2013/04 2014/03

今ここ

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved.

② 新人研修にて

18

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

1. 新人研修のイメージ

1. とりあえず、コード書ければいいんじゃない?(まだ、そんなに書けないけど…)

2. Java なら、やっぱりオブジェクト指向?

3. 設計って、何するの?これまでもやっていないけど、必要なの?

4. 流行りのアジャイル開発とかやるんでしょ?

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 19

2013 年 4 月

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved.

やっぱり Java を使うなら、オブジェクト指向ぐらい分かっていないとダメですか?

以前に少し勉強したけど、結局はよく分からなかった

犬も猫も哺乳類で…「人」はクラスで、

「 A さん」はインスタンス…

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 21

虎の穴研修

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

2. 実際に行った新人技術研修の内容

1. 原則 2 ヶ月間の研修① 早く終わった人から修了可能② 終わらなかったら…

2. 複数の Java プログラミング課題① 設計/実装/テストを一通り行う② 課題は個人ワークとして進める

3. スケジュール・進捗管理も実施① デイリー・ミーティング② データ測定・分析・報告

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 22

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

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

成果発表

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

1. 新人の 1 日のスケジュール

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 24

2. 実際に行った新人技術研修の内容9:00 掃除

9:30 始業・朝ミーティング

9:45技術研修10:30

11:0011:30 ランチ・プロ研12:0012:30 レビュー13:00 技術研修13:30 ビジネス研修14:0014:30 技術研修15:00 コーヒーブレイク15:15 レビュー16:00

技術研修16:3017:0017:3018:00 夕方ミーティング18:30 研修終了・退社

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

3. 研修でのポイント

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 25

①プログラミングを知る

②仕事でプログラミングをするということ

③進捗管理(セルフマネジメント)

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

3-1. プログラミングを知る

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 26

① オブジェクト指向の前に、理解しておくべき、プログラミングの基礎

プログラムの処理はどうやって成り立つの?• クラスとか、スコープ( public/protected/private )

とか、最初は分からなくても良い。

• どのようなプログラムも、「順次処理」「繰り返し」「分岐」が基本の処理となる。

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

3-1. プログラミングを知る

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 27

② 処理(ロジック)と合わせて、基本的なデータ構造を理解

データをどのように扱うのか?• 変数/配列 < リスト/マップ < オブジェクト

• コレクションフレームワークは、整理して理解すると、確かに便利だと思った。

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

3-1. プログラミングを知る

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 28

③ いままで理解した処理やデータ構造のことを、オブジェクト指向に繋げて理解する

プログラムを整理して、分かりやすくする• 処理や機能の役割を考え、まとめたり、分けたりする

 →メソッドやクラスが何かを考える。 →役割や責務で整理。名前の付け方重要。

• レイヤー化やコンポーネント分割 →クラスのまとまり(パッケージ)を考える。

• インタフェース/継承/委譲 →プログラムを整理する技術(と単純に考えた)。 →初めから理解するのは難しいが、既にあるプログラムを  整理するために使うと、理解しやすい。

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

3-2. 仕事でプログラミングをするということ

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 29

① 設計をする

② 実装する

③ テストをする

一通りの工程を学ぶ

④ レビューをする(してもらう)

研修中、繰り返し実施

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

3-2. 仕事でプログラミングをするということ

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 30

① ちゃんと設計をする• 設計をする ≠ 設計書を書く

• 実現しようとしているものを整理して考える

• 一度設計したら終わりではなく、練り直す

楽にプログラムを作れるようになる! →シンプルな構造にすることで、実装がしやすい →バグも減り、拡張やメンテナンスもしやすくなる

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

3-2. 仕事でプログラミングをするということ

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 31

② テストを習慣付ける• JUnit を使って、こまめにテストをする

•仕様に基づいたテストケースを作成する

• 面倒くさがって、まとめてテストしない

自分が開発したプログラムの品質を高める! →自分が開発したものに対する手ごたえを得る →エンジニアとして、開発したものに責任を持つ

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 32

③ほぼ毎日、レビューを実施

3-2. 仕事でプログラミングをするということ

• 1回 30 分~ 1 時間•対面でレビュー• 自分の成果物を説明し、それに対してコメントをもらう

• 設計/実装/テストの各工程で実施

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 33

③ほぼ毎日、レビューを実施

3-2. 仕事でプログラミングをするということ

• こまめにレビューをすることで、方向性のズレや誤りを、早めに是正することができた

•経験ある先輩社員の考え方を学ぶことができた

• Java の標準 API や OSS ライブラリを教えてもらい、使い所を覚えていけた

成長が加速

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

3-3. 進捗管理(セルフマネジメント)

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 34

デイリー・ミーティング① 朝に作業確認

② 夕方に進捗報告

③ 問題があれば、早期に改善

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

3-3. 進捗管理(セルフマネジメント)

新人最初の状態① 予定時間内に作業が終わらない

(予定した時間の 3~ 5倍かかる)② 「あと少しで終わります!」が続く

(で終らない)

自分の状況を正しく把握する③ 作業の実績を計測④ 規模、時間、問題の数

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 35

問題に気付き、改善する!

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

4. 研修で目指していたこと

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 36

①本質を理解することで、 10 年先でも活躍する

②職業プログラマではなく、プロとしてのプログラマ

③どうしたら良いか、自分から考えられる

研修で目指していたこと

「成長し続けるエンジニア」

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 37

2013/04 2014/03

今ここ

(なんとなく)できる

エンジニアへ!

2013/06

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved.

③プロジェクトに 入って

38

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

1. プロジェクトへの配属

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 39

Storm を利用したビッグデータ処理のビジュアルなモニタリングシステムの開発

• Storm• HBase• SpringMVC• JavaScript• Backborn.js• SVG• HTML5

新しいものだらけで

分からないことだらけ

なんですが!

Storm

Backborn.js

SpringMVCHBase

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

2. 最初は大変でしたよ

1. 環境構築するだけでも大変① 仮想環境を用いて、複数サーバを構築② 環境設定とか、良く分からないし…③ そもそも、 Storm とか HBase とか、新人には

無理ありますよ。

2. 開発言語も複数使う必要あり① Java がメインの言語だけど、画面を開発するのに、

JavaScript ( HTML5 や SVG の扱い含む)も多く利用する② クライアントサイド MVC ?

サーバ側もクライアント側も MVC って、何それ?

Copyright © Acroquest Technology Co., Ltd. All rights reserved.40

先輩含めて、 3 人での開発でしたけど、自分にとっては、難易度高過ぎ

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 41

でも、やっていて

楽しくなってきた!

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

2. なぜ、楽しくなったのか?

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 42

動いた! ではなく…

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

2. なぜ、楽しくなったのか?

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 43

1. 研修で学んだことが繋がった。① 実現したいことを具体化するために、

設計して整理② 処理の基本は変わらない、その組合せ③ 知らない OSS とかでも、調べつつ、動かすこと

ができるようになった

2. 自分が好きな可視化の分野でかたちになるモノが開発できた!

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

※ 後日談

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 44

後から、上司に聞いた話では…可視化や画面系の技術が好きだ、ということを知っていたから、その興味を活かせる仕事が良い、と思ってアサインしたんだよ。

君ならやってくれると信じていたよ!

自分の興味に合った仕事を選んでくれてたなんて、上司やるじゃん!

上司※実物は、写真とは多少異なる

場合があります。

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

3. 最初のプロジェクトでの成果

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 45

Java での Web アプリケーションの開発ができるようになった!

Java 以外のことも、たくさん勉強する必要があったけど、画面があるのは、やはり分かりやすくていいですよね!

実際の開発業務を通してさらに技術的な興味範囲も広がった

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

4. はじめての夏

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 46

自社で主催の『 ATN ( Advanced Tech Night )』という社外勉強会で、スピーカをやらせてもらった。

基本的な可視化の手法と、可視化のためのJavaScript ライブラリである『 D3.js 』について紹介!

2013 年 8 月

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved.

… ん?Java に関係ないって !?

47

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

4. はじめての夏

1. プロジェクトの中で、可視化の話をしていたら、先輩から勧められて、スピーカーをやることに。

2. 「いつかは自分も…」とは思っていたけど、入社して半年も経たない内にやることになるとは !?

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 48

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 49

2013/04 2014/03

今ここ

たくさんのチャレンジをしてモチベーションも

アップ !!

2013/06 2013/08

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

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 とかも良く分からなかったけど(それなりに)使えるようになってきた !?

得意分野を作ることが大事

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved.

④1 年を振り返る

51

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

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 発表

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

2. 自分自身を振り返ってみて

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 53

Before

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

2. 自分自身を振り返ってみて

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 54

After

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

2. 自分自身を振り返ってみて

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 55

入社前と比べると、プログラミングに対する考えもスキルも、大きく変わった。

開発が楽しくなった!

① プログラミングに対する苦手意識がなくなった• 基本の考え方が分かると、大きなシステムでも怖くない。

② Java は、覚えることが多過ぎると思っていたけど、自分の興味分野から広げていけた• 全部覚えなくて良い。• 知らないことは、分かっている人にどんどん聞こう。• 勉強会に参加することで、刺激も受けた。

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

3. 自分が勉強した内容

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 56

研修やプロジェクト以外に、こんな本を読んで勉強しました(新人の皆さんの参考になれば)

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

4. 先輩からのサポート

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 57

先輩のレビューに感謝!

ただ、先輩から教えてもらって、理解したことも多くありました

① レビューで、自分の成果物を積極的に見てもらう• 先輩ならば、どのようなクラス構成を考えるのか?• 自分が知らない API や OSS も教えてもらえる。

② レビューを通して、自分の弱点も分かってきた• なんとなくのイメージ(実は、分かっていない)で実装に詰まる。

• 設計段階で、自分が作るもののイメージを、上司と一緒に検討する。

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

Copyright © Acroquest Technology Co., Ltd. All rights reserved.

まとめ

58

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

まとめ

1. プログラミングに対する見方が変わった① 考え方を学ぶことで、分かるように② 「苦手」→「好き」③ Java も、だいぶ、扱えるようになった!(たぶ

ん)

2. チャレンジすることで、成長する① 新人なんて、分からないことだらけチャレンジすることが重要

② 勉強会に参加するのも、楽しい!

Copyright © Acroquest Technology Co., Ltd. All rights reserved. 59

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

ご清聴ありがとうございました。

Copyright © Acroquest Technology Co., Ltd. All rights reserved.

Infrastructures Evolution