Hello Engineer World! 新人リケジョの1年
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 2,472 views

 

Statistics

Views

Total Views
2,472
Views on SlideShare
1,928
Embed Views
544

Actions

Likes
7
Downloads
19
Comments
0

9 Embeds 544

http://statsuo.hatenablog.com 357
http://osyyare.blogspot.jp 104
http://www.acroquest.co.jp 42
http://blog.hatena.ne.jp 15
https://twitter.com 13
http://s.deeeki.com 6
http://osyyare.blogspot.com 5
http://www.google.co.jp 1
http://webcache.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 1. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
  • 2. 自己紹介 名前:白井智子 所属:Acroquest Technology Co., Ltd. Twitter: @white_luc Facebook: https://www.facebook.com/ satoko.shiroi 趣味:デザイン、写真、 音楽(鑑賞、演奏) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 2
  • 3. 学生時代 1. 筑波大学大学院メディアデザイン系のリケジョ →大学4年から、可視化の研究を始めた。 2. 研究発表のため、フランスの学会にも参加! 3. プログラミングはあまり勉強していなかった。 → 研究のために少しJavaを触った程度。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 3
  • 4. Copyright © Acroquest Technology Co., Ltd. All rights reserved. 4 ?!
  • 5. Copyright © Acroquest Technology Co., Ltd. All rights reserved. 5 ?!?!
  • 6. 学生時代 1. プログラミング? ① 動くと面白いのだけど・・・ 正直、苦手だった。 ② ソースコードを書いて動いたけど、 実は、何やっているのか よく分からん。 2. Javaの知識はほとんどなかった。 ① とりあえず動けば良いと思って、 開発していた。 (よくある学生のレベル!?) Copyright © Acroquest Technology Co., Ltd. All rights reserved.
  • 7. Copyright © Acroquest Technology Co., Ltd. All rights reserved. 7 そんな私が プログラミングを 好きになった、1年間
  • 8. Copyright © Acroquest Technology Co., Ltd. All rights reserved. 8 今日は 新人の一年を通して 自分が感じたことを ありのままに、お話します Javaと新人研修と私
  • 9. コンテンツ Javaと新人研修と私 ① 入社前の私から見たJava ② 新人研修にて ③ プロジェクトに入って ④ 1年を振り返る Copyright © Acroquest Technology Co., Ltd. All rights reserved. 9
  • 10. Copyright © Acroquest Technology 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. 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 © Acroquest Technology Co., Ltd. All rights reserved. なんか、 いろいろ勉強しないと やばそう… 16
  • 17. Copyright © Acroquest Technology Co., Ltd. All rights reserved. と、考えているうちに 入社して、 新人研修スタート! 17 2013/04 2014/03 今ここ
  • 18. Copyright © Acroquest Technology 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 © Acroquest Technology Co., Ltd. All rights reserved. やっぱりJavaを使うなら、 オブジェクト指向ぐらい 分かっていないとダメですか? 以前に少し勉強 したけど、結局は よく分からなかった 犬も猫も哺乳類で… 「人」はクラスで、 「Aさん」は インスタンス…
  • 21. Copyright © Acroquest Technology 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 © 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ライブラリを教えてもらい、 使い所を覚えていけた 成長が加速
  • 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 © Acroquest Technology Co., Ltd. All rights reserved. 37 2013/04 2014/03 今ここ (なんとなく) できる エンジニアへ! 2013/06
  • 38. Copyright © Acroquest Technology 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 © Acroquest Technology 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 © Acroquest Technology Co., Ltd. All rights reserved. …ん? Javaに関係ないって!? 47
  • 48. 4. はじめての夏 1. プロジェクトの中で、 可視化の話をしていたら、 先輩から勧められて、スピーカーをやることに。 2. 「いつかは自分も…」とは思っていたけど、 入社して半年も経たない内に やることになるとは!? Copyright © Acroquest Technology Co., Ltd. All rights reserved. 48
  • 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とかも良く分からなかったけど (それなりに)使えるようになってきた!? 得意分野を作ることが大事
  • 51. Copyright © Acroquest Technology 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 © Acroquest Technology Co., Ltd. All rights reserved. まとめ 58
  • 59. まとめ 1. プログラミングに対する見方が変わった ① 考え方を学ぶことで、分かるように ② 「苦手」→「好き」 ③ Javaも、だいぶ、扱えるようになった!(たぶん) 2. チャレンジすることで、成長する ① 新人なんて、分からないことだらけ チャレンジすることが重要 ② 勉強会に参加するのも、楽しい! Copyright © Acroquest Technology Co., Ltd. All rights reserved. 59
  • 60. ご清聴ありがとうございまし た。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. Infrastructures Evolution