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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

  • 2,783 views
Published

 

Published in Career
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,783
On SlideShare
0
From Embeds
0
Number of Embeds
11

Actions

Shares
Downloads
25
Comments
0
Likes
7

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

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