短期間で新技術を学ぶ技術

47
2016-10-12 エンジニアMEETUP 大仲 能史 a.k.a. @onk 短期間で新技術を学ぶ技術

Upload: takafumi-onaka

Post on 13-Apr-2017

13.623 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: 短期間で新技術を学ぶ技術

2016-10-12 エンジニアMEETUP

大仲能史 a.k.a. @onk

短期間で新技術を学ぶ技術

Page 2: 短期間で新技術を学ぶ技術

自己紹介

大仲能史 a.k.a. @onk

1982年12月18日生 33歳

ドリコム 10年目 (中途入社 2社目)

大学中退→ 派遣→ エージェント経由転職

趣味:問題解決とコードレビュー

肩書:スペシャリスト (アプリケーションエンジニア)

フロントエンドからインフラまで

Page 3: 短期間で新技術を学ぶ技術

今日の話

Page 4: 短期間で新技術を学ぶ技術

短期間で新技術を学ぶ技術

難易度:「まずはここから」級

TechnologyではなくTechniqueの話をします

Page 5: 短期間で新技術を学ぶ技術

アジェンダ

自己紹介

Technique 1

Technique 2

Technique 3

Technique 4

Technique 5

まとめ

Page 6: 短期間で新技術を学ぶ技術

自己紹介

Page 7: 短期間で新技術を学ぶ技術

自己紹介(再)

大仲能史 a.k.a. @onk

1982年12月18日生 33歳

ドリコム 10年目 (中途入社 2社目)

大学中退→ 派遣→ エージェント経由転職

趣味:問題解決とコードレビュー

肩書:スペシャリスト (アプリケーションエンジニア)

フロントエンドからインフラまで

Page 8: 短期間で新技術を学ぶ技術

やってきた技術

高校・大学

いわゆる「ホームページ」から入った

HTML,CSS

レンタルサーバでCGI改造

Perl,PHP,JavaScript

住んでいた板

Web制作,Windows,ソフトウェア

フリーソフトを漁ったり,スタイルシートを書いたり

Page 9: 短期間で新技術を学ぶ技術

やってきた技術

前職インフラ時代

サーバは数百台単位でキッティング・ラッキング

その他よろず相談ごとみたいな感じ

年間契約を結んで,何かあれば出動

触ったこともないmacOS Serverのセットアップ作業が振ってきたときは肝を冷やした

自宅環境: 自作PC,MSCS,LFS

取得資格: MCP,LPIC,CCNA,CCNP

Page 10: 短期間で新技術を学ぶ技術

やってきた技術

前職プログラマ時代

数か月ごとに別のプロジェクト,別のフレームワーク

外の仕事がないときは新技術の習得と内製フレームワークの拡充,新商材の企画

ASP(VBScript),Java(Struts,Seasar2),PHP(オレオレ,mojavi),C#.Net

Oracle,PostgreSQL,MySQL,SQL Server

Page 11: 短期間で新技術を学ぶ技術

やってきた技術

ドリコム

セールスエンジニアリング

JavaEE,Ruby(Rails),Android Java,Obj-C

Pull Requestベース開発

クラウド

数十万DAU

チームリーダー

スクラム,大規模スクラム

Page 12: 短期間で新技術を学ぶ技術

短期間で新技術を学ぶ技術

自己紹介

Technique 1

Technique 2

Technique 3

Technique 4

Technique 5

まとめ

Page 13: 短期間で新技術を学ぶ技術

Technique 1

Page 14: 短期間で新技術を学ぶ技術

本を3冊読む

Page 15: 短期間で新技術を学ぶ技術

本を3冊読む

なぜ3冊?

右も左も分からない中で,まず基準を作るため

複数の本に書かれていたらおそらく正しい

どんな本を読むべき?

網羅性の高いもの

1週間でわかる~的な

ドットインストール等の動画でも可

Page 16: 短期間で新技術を学ぶ技術

本を3冊読む

言語に準備されてるときはまずそれを

vimtutor,Railsチュートリアル,A Tour of Go

要所を学べるように意識して準備している

読むべき本が分からない場合,Amazonのカートに適当に数冊放り込むとサジェストされる

Page 17: 短期間で新技術を学ぶ技術

短期間で新技術を学ぶ技術

自己紹介

本を3冊読む

Technique 2

Technique 3

Technique 4

Technique 5

まとめ

Page 18: 短期間で新技術を学ぶ技術

Technique 2

Page 19: 短期間で新技術を学ぶ技術

写経

Page 20: 短期間で新技術を学ぶ技術

写経

文法を体に覚えこませる

制御構造,クラス宣言,文字/文字列の操作,Enumerableの操作,IOの操作,ライブラリの使い方,テストの書き方

理想の世界じゃない現実を知る

どんな技術でもどこかに泥臭い作業が発生する

Page 21: 短期間で新技術を学ぶ技術

写経

静的解析ツールを有効にした状態で書くのがオススメ

RuboCop,FindBugs,IDE (IntelliJ IDEA),Coverity

静的解析SaaSでもいい

CodeClimate,Scrutinizer

変な書き方をしていたら訂正してくれる補助輪として使う

Page 22: 短期間で新技術を学ぶ技術

写経

「とりあえずコレを作る」定番を持つと便利

画像管理

ファイル操作,再帰,システムコマンドを使うことになる

スクレイピング・マッシュアップ

HTTP,HTML/JSON,エラー処理,非同期処理,テストでstub必須

Page 23: 短期間で新技術を学ぶ技術

写経

言語処理100本ノック

http://www.cl.ecei.tohoku.ac.jp/nlp100/

言語処理や統計,機械学習のやり方が分かる

第1章,第3章をまず書こう

Project Euler

https://projecteuler.net/

数学の問題を頭の体操として

Page 24: 短期間で新技術を学ぶ技術

短期間で新技術を学ぶ技術

自己紹介

本を3冊読む

写経

Technique 3

Technique 4

Technique 5

まとめ

Page 25: 短期間で新技術を学ぶ技術

Technique 3

Page 26: 短期間で新技術を学ぶ技術

Feedを購読

Page 27: 短期間で新技術を学ぶ技術

Feedを購読

はてブ,Qiita,Stack Overflow等をタグで購読

RSSは過去の技術じゃない

眺めているうちに感覚が身に付く

IDEの使い方

定番ライブラリが何かとその使い方

初心者がハマりがちな罠

最新アップデートでハマる罠

etc…

Page 28: 短期間で新技術を学ぶ技術

Feedを購読

ノイズは慣れろ(超重要)

最悪今日はこの一言だけ覚えて帰ってください

自分の中にインデックスを作るのが目的

何ができるのか

難しいのは何か

どんなエラーが起きる場合があるのか

Page 29: 短期間で新技術を学ぶ技術

短期間で新技術を学ぶ技術

自己紹介

本を3冊読む

写経

Feedを購読

Technique 4

Technique 5

まとめ

Page 30: 短期間で新技術を学ぶ技術

Technique 4

Page 31: 短期間で新技術を学ぶ技術

コミュニティに参加する

Page 32: 短期間で新技術を学ぶ技術

コミュニティに参加する

「同じ問題意識を持った人」の集まり

自分なりの答えの後押しをしてくれる

フレームワークのバージョンアップ作業をどこまで雑に行って良いものなのか

最近~のエラーに悩んで,こんな解決法になったんだけど合ってる?

技術的負債を返済したいが上司決裁が下りない

データ分析基盤をこんな構成で作ってみたんだけど何か見落としている点は無いだろうか?

Page 33: 短期間で新技術を学ぶ技術

コミュニティに参加する

まずはコミュニティの一員になる

相手が信用できるのかを見極める

自分が信用される程度の情報を出す

勉強会に参加する,質問する,発表する

feed読んでたら半分以上知ってる話になるので聞くより話すのが重要

Page 34: 短期間で新技術を学ぶ技術

コミュニティに参加する

最初の会話の糸口に良さそうな便利ワード

最近始めたんだけど~~で困ってて

絶対にこれやっとけって設定的なのありますか?

~するための鉄板構成が分かんなくて

解決したがりの人たちが教えてくれる

質問の内容が成長していたら継続的に教えてくれる

成長が止まっていたら見切られる

Page 35: 短期間で新技術を学ぶ技術

短期間で新技術を学ぶ技術

自己紹介

本を3冊読む

写経

Feedを購読

コミュニティに参加する

Technique 5

まとめ

Page 36: 短期間で新技術を学ぶ技術

Technique 5

Page 37: 短期間で新技術を学ぶ技術

Twitterを有効活用

Page 38: 短期間で新技術を学ぶ技術

Twitterを有効活用

ノイズは馴れろ(2回目)

Followする対象

勉強会の講師,Qiitaに正しい情報を書く人

フォローするとリフォローされるので,あとは適当にfavしたりリプしたりしてると仲良くなれる

たまに叫びが聞こえるのが良いですね。バージョンアップすると壊れる系の奴とか。

Page 39: 短期間で新技術を学ぶ技術

Twitterを有効活用

作ってきたリスト

rubyist,phper,pythonista,frontend,dba,android/ios,socialgame,data-analyst

consumer-game

ゲーム業界(狭義)っぽい人を follow してスマホゲームがどう見えてるかを比べてる

meguro

恵比寿・目黒・五反田付近の人。会話しておくとリアルで会いやすいのでシナジーが生まれる

Page 40: 短期間で新技術を学ぶ技術

短期間で新技術を学ぶ技術

自己紹介

本を3冊読む

写経

Feedを購読

コミュニティに参加する

Twitterを有効活用

まとめ

Page 41: 短期間で新技術を学ぶ技術

まとめ

Page 42: 短期間で新技術を学ぶ技術

守破離

まとまったインプットを入れて自分の中で基準を持つ

静的解析ツールによる矯正ギブスを上手に使う

Page 43: 短期間で新技術を学ぶ技術

守破離

手を動かしまくる

「本の通りじゃ上手くいかない」が発生するのでどうにかする

どうにかする方法はググれば 9 割落ちてる

Feed,勉強会,Twitter等,最新の動向を知れる状況を作る

試して「自分の基準」に取り込む

Page 44: 短期間で新技術を学ぶ技術

守破離

気づくとみんなの知見を取り込んだの「自分の基準」は外で発表できる域に達している

「こっちの方が良さそう」と自分で決めることに恐れがなくなる

Page 45: 短期間で新技術を学ぶ技術

5つの技術

本を3冊読む

写経

Feedを購読

コミュニティに参加する

Twitterを有効活用

Page 46: 短期間で新技術を学ぶ技術

おまけ

「離」までたどり着くのに1技術3年はかかる

5,000時間でいっぱし,10,000時間で一流

プログラマ35歳定年説を信じると,あと4本ぐらいしか残弾が無い

Page 47: 短期間で新技術を学ぶ技術

おまけ

僕は以下の要素に振った

Infra,Ruby on Rails,Web Frontend,Android/iOS

webアプリ or 非ゲーム系アプリを一人で作って運用できるスキルセット

自身のスキルポートフォリオを考えておくと良い