Mais conteúdo relacionado
Semelhante a Hello Engineer World! 新人リケジョの1年 (20)
Hello Engineer World! 新人リケジョの1年
- 8. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
8
今日は
新人の一年を通して
自分が感じたことを
ありのままに、お話します
Javaと新人研修と私
- 15. 2. これからJavaを学習する人が直面する問題
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
15
1. 「Hello World!」は実装できるけど、
実際のシステム開発で「System.out.println」
とか実装したら、怒られるでしょ。
(本で紹介されるJavaと実際に扱うJavaは違う)
2. 以前から学習している人は積み上げになるが、
Javaは歴史が長い分、これからJavaを学習する
人にとっては覚えることが多い。
3. 何かの機能や処理を実現するにしても、
その選択肢が多すぎて、
どれが適切なのか判断つかない。
- 17. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
と、考えているうちに
入社して、
新人研修スタート!
17
2013/04 2014/03
今ここ
- 20. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
やっぱりJavaを使うなら、
オブジェクト指向ぐらい
分かっていないとダメですか?
以前に少し勉強
したけど、結局は
よく分からなかった
犬も猫も哺乳類で…
「人」はクラスで、
「Aさん」は
インスタンス…
- 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
③ いままで理解した処理やデータ構造のことを、
オブジェクト指向に繋げて理解する
プログラムを整理して、分かりやすくする
• 処理や機能の役割を考え、まとめたり、分けたりする
→メソッドやクラスが何かを考える。
→役割や責務で整理。名前の付け方重要。
• レイヤー化やコンポーネント分割
→クラスのまとまり(パッケージ)を考える。
• インタフェース/継承/委譲
→プログラムを整理する技術(と単純に考えた)。
→初めから理解するのは難しいが、既にあるプログラムを
整理するために使うと、理解しやすい。
- 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 © Acroquest Technology Co., Ltd. All rights reserved.
32
③ほぼ毎日、レビューを実施
3-2. 仕事でプログラミングをするということ
• 1回 30分~1時間
• 対面でレビュー
• 自分の成果物を説明
し、それに対して
コメントをもらう
• 設計/実装/テストの
各工程で実施
- 33. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
33
③ほぼ毎日、レビューを実施
3-2. 仕事でプログラミングをするということ
• こまめにレビューをすることで、方向性のズレや
誤りを、早めに是正することができた
• 経験ある先輩社員の考え方を学ぶことができた
• Javaの標準APIやOSSライブラリを教えてもらい、
使い所を覚えていけた
成長が加速
- 36. 4. 研修で目指していたこと
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
36
①本質を理解することで、10年先でも活躍する
②職業プログラマではなく、プロとしてのプロ
グラマ
③どうしたら良いか、自分から考えられる
研修で目指していたこと
「成長し続けるエンジニア」
- 37. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
37
2013/04 2014/03
今ここ
(なんとなく)
できる
エンジニアへ!
2013/06
- 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人での開発でしたけど、
自分にとっては、難易度高過ぎ
- 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月
- 49. Copyright © Acroquest Technology 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とかも良く分からなかったけど
(それなりに)使えるようになってきた!?
得意分野を作ることが大事
- 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発表
- 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も教えてもらえる。
② レビューを通して、自分の弱点も分かってきた
• なんとなくのイメージ(実は、分かっていない)で実装に
詰まる。
• 設計段階で、自分が作るもののイメージを、上司と一緒に
検討する。