短期間で新技術を学ぶ技術
TRANSCRIPT
2016-10-12 エンジニアMEETUP
大仲能史 a.k.a. @onk
短期間で新技術を学ぶ技術
自己紹介
大仲能史 a.k.a. @onk
1982年12月18日生 33歳
ドリコム 10年目 (中途入社 2社目)
大学中退→ 派遣→ エージェント経由転職
趣味:問題解決とコードレビュー
肩書:スペシャリスト (アプリケーションエンジニア)
フロントエンドからインフラまで
今日の話
短期間で新技術を学ぶ技術
難易度:「まずはここから」級
TechnologyではなくTechniqueの話をします
アジェンダ
自己紹介
Technique 1
Technique 2
Technique 3
Technique 4
Technique 5
まとめ
自己紹介
自己紹介(再)
大仲能史 a.k.a. @onk
1982年12月18日生 33歳
ドリコム 10年目 (中途入社 2社目)
大学中退→ 派遣→ エージェント経由転職
趣味:問題解決とコードレビュー
肩書:スペシャリスト (アプリケーションエンジニア)
フロントエンドからインフラまで
やってきた技術
高校・大学
いわゆる「ホームページ」から入った
HTML,CSS
レンタルサーバでCGI改造
Perl,PHP,JavaScript
住んでいた板
Web制作,Windows,ソフトウェア
フリーソフトを漁ったり,スタイルシートを書いたり
やってきた技術
前職インフラ時代
サーバは数百台単位でキッティング・ラッキング
その他よろず相談ごとみたいな感じ
年間契約を結んで,何かあれば出動
触ったこともないmacOS Serverのセットアップ作業が振ってきたときは肝を冷やした
自宅環境: 自作PC,MSCS,LFS
取得資格: MCP,LPIC,CCNA,CCNP
やってきた技術
前職プログラマ時代
数か月ごとに別のプロジェクト,別のフレームワーク
外の仕事がないときは新技術の習得と内製フレームワークの拡充,新商材の企画
ASP(VBScript),Java(Struts,Seasar2),PHP(オレオレ,mojavi),C#.Net
Oracle,PostgreSQL,MySQL,SQL Server
やってきた技術
ドリコム
セールスエンジニアリング
JavaEE,Ruby(Rails),Android Java,Obj-C
Pull Requestベース開発
クラウド
数十万DAU
チームリーダー
スクラム,大規模スクラム
短期間で新技術を学ぶ技術
自己紹介
Technique 1
Technique 2
Technique 3
Technique 4
Technique 5
まとめ
Technique 1
本を3冊読む
本を3冊読む
なぜ3冊?
右も左も分からない中で,まず基準を作るため
複数の本に書かれていたらおそらく正しい
どんな本を読むべき?
網羅性の高いもの
1週間でわかる~的な
ドットインストール等の動画でも可
本を3冊読む
言語に準備されてるときはまずそれを
vimtutor,Railsチュートリアル,A Tour of Go
要所を学べるように意識して準備している
読むべき本が分からない場合,Amazonのカートに適当に数冊放り込むとサジェストされる
短期間で新技術を学ぶ技術
自己紹介
本を3冊読む
Technique 2
Technique 3
Technique 4
Technique 5
まとめ
Technique 2
写経
写経
文法を体に覚えこませる
制御構造,クラス宣言,文字/文字列の操作,Enumerableの操作,IOの操作,ライブラリの使い方,テストの書き方
理想の世界じゃない現実を知る
どんな技術でもどこかに泥臭い作業が発生する
写経
静的解析ツールを有効にした状態で書くのがオススメ
RuboCop,FindBugs,IDE (IntelliJ IDEA),Coverity
静的解析SaaSでもいい
CodeClimate,Scrutinizer
変な書き方をしていたら訂正してくれる補助輪として使う
写経
「とりあえずコレを作る」定番を持つと便利
画像管理
ファイル操作,再帰,システムコマンドを使うことになる
スクレイピング・マッシュアップ
HTTP,HTML/JSON,エラー処理,非同期処理,テストでstub必須
写経
言語処理100本ノック
http://www.cl.ecei.tohoku.ac.jp/nlp100/
言語処理や統計,機械学習のやり方が分かる
第1章,第3章をまず書こう
Project Euler
https://projecteuler.net/
数学の問題を頭の体操として
短期間で新技術を学ぶ技術
自己紹介
本を3冊読む
写経
Technique 3
Technique 4
Technique 5
まとめ
Technique 3
Feedを購読
Feedを購読
はてブ,Qiita,Stack Overflow等をタグで購読
RSSは過去の技術じゃない
眺めているうちに感覚が身に付く
IDEの使い方
定番ライブラリが何かとその使い方
初心者がハマりがちな罠
最新アップデートでハマる罠
etc…
Feedを購読
ノイズは慣れろ(超重要)
最悪今日はこの一言だけ覚えて帰ってください
自分の中にインデックスを作るのが目的
何ができるのか
難しいのは何か
どんなエラーが起きる場合があるのか
短期間で新技術を学ぶ技術
自己紹介
本を3冊読む
写経
Feedを購読
Technique 4
Technique 5
まとめ
Technique 4
コミュニティに参加する
コミュニティに参加する
「同じ問題意識を持った人」の集まり
自分なりの答えの後押しをしてくれる
フレームワークのバージョンアップ作業をどこまで雑に行って良いものなのか
最近~のエラーに悩んで,こんな解決法になったんだけど合ってる?
技術的負債を返済したいが上司決裁が下りない
データ分析基盤をこんな構成で作ってみたんだけど何か見落としている点は無いだろうか?
コミュニティに参加する
まずはコミュニティの一員になる
相手が信用できるのかを見極める
自分が信用される程度の情報を出す
勉強会に参加する,質問する,発表する
feed読んでたら半分以上知ってる話になるので聞くより話すのが重要
コミュニティに参加する
最初の会話の糸口に良さそうな便利ワード
最近始めたんだけど~~で困ってて
絶対にこれやっとけって設定的なのありますか?
~するための鉄板構成が分かんなくて
解決したがりの人たちが教えてくれる
質問の内容が成長していたら継続的に教えてくれる
成長が止まっていたら見切られる
短期間で新技術を学ぶ技術
自己紹介
本を3冊読む
写経
Feedを購読
コミュニティに参加する
Technique 5
まとめ
Technique 5
Twitterを有効活用
Twitterを有効活用
ノイズは馴れろ(2回目)
Followする対象
勉強会の講師,Qiitaに正しい情報を書く人
フォローするとリフォローされるので,あとは適当にfavしたりリプしたりしてると仲良くなれる
たまに叫びが聞こえるのが良いですね。バージョンアップすると壊れる系の奴とか。
Twitterを有効活用
作ってきたリスト
rubyist,phper,pythonista,frontend,dba,android/ios,socialgame,data-analyst
consumer-game
ゲーム業界(狭義)っぽい人を follow してスマホゲームがどう見えてるかを比べてる
meguro
恵比寿・目黒・五反田付近の人。会話しておくとリアルで会いやすいのでシナジーが生まれる
短期間で新技術を学ぶ技術
自己紹介
本を3冊読む
写経
Feedを購読
コミュニティに参加する
Twitterを有効活用
まとめ
まとめ
守破離
まとまったインプットを入れて自分の中で基準を持つ
静的解析ツールによる矯正ギブスを上手に使う
守破離
手を動かしまくる
「本の通りじゃ上手くいかない」が発生するのでどうにかする
どうにかする方法はググれば 9 割落ちてる
Feed,勉強会,Twitter等,最新の動向を知れる状況を作る
試して「自分の基準」に取り込む
守破離
気づくとみんなの知見を取り込んだの「自分の基準」は外で発表できる域に達している
「こっちの方が良さそう」と自分で決めることに恐れがなくなる
5つの技術
本を3冊読む
写経
Feedを購読
コミュニティに参加する
Twitterを有効活用
おまけ
「離」までたどり着くのに1技術3年はかかる
5,000時間でいっぱし,10,000時間で一流
プログラマ35歳定年説を信じると,あと4本ぐらいしか残弾が無い
おまけ
僕は以下の要素に振った
Infra,Ruby on Rails,Web Frontend,Android/iOS
webアプリ or 非ゲーム系アプリを一人で作って運用できるスキルセット
自身のスキルポートフォリオを考えておくと良い