skill wednesday

21
Skill Wednesday 内内内内内内内内内内内内内内

Upload: nagao-kazuma

Post on 14-Jan-2017

773 views

Category:

Self Improvement


1 download

TRANSCRIPT

Page 1: Skill wednesday

Skill Wednesday内定者アルバイトで学んだこと

Page 2: Skill wednesday

自己紹介

名前: 長尾 和真

年齢: 22 歳 ( 1993年生まれ)

出身: 愛知県 岡崎市

専攻: 人口学 (学部は経済 )

趣味: ポケモン ぷよぷよ 麻雀

Page 3: Skill wednesday

プログラミング歴

大学 1 年夏 java の勉強を始める (javaを選んだのはなんとなく)

大学 2 年冬 やっと javaの入門書を終える

大学 3 年春 2 冊の本をやりこむ (下の 2冊 ) プログラミングコンテストに若干はまる ポケモンの廃人用のダメージ計算機を作る (java, javascript,GAE) Ruby に手を出す => 身につかず 大学 3 年冬 ハッカソンを通して CyberAgent内定

大学 4 年秋 CyberZで内定者アルバイトを始める

=>マーケット分析 (クローリング・スクレイピング )

Page 4: Skill wednesday

本題

内定者アルバイトで学んだこと

Page 5: Skill wednesday

主に以下の 3つ

・開発と学習

・チーム開発について

Page 6: Skill wednesday

開発と学習

大学生活での開発経験はほぼなし

プログラミングはプロコンの問題や技術書 (?)の問題に対してコードを書くことを通して身につけてきた

=> 無意識的に自分の中で「総じてプログラミングとは全て自分で実装するものである」という前提ができていた。

しかし・・・・

Page 7: Skill wednesday

世界はある程度最適化されている

Github のユーザ数 970 万 (2015年 6月 )

Qiita のユーザ数 7.5 万 (2015年 5月 )

=>どこかの誰かが必ず同じようなことをしているはず!!

ライブラリのレポジトリ、『〜〜をやってみた』『〜〜ではまった』という記事 etc….

長尾『開発とは効率よくプロダクトを完成させることなのか。』

Page 8: Skill wednesday

開発と学習

ならば、自分でがっつりコードを書いたり読んだりすることはせずに、ライブラリなどの情報検索だけすればよいのか?

=>情報以上のことができなければいけないことがいつか来るのでは??あるいは応用を利かせなければ突破できない課題に直面する時がくるのでは?

=> 学習の重要性

Page 9: Skill wednesday

学習

【応用するスキルをつける】

1 選択肢を増やす

各ライブラリ・フレームワークの仕組みを理解し、利点や難点を把握する

2 ソースコードから応用する力をつける

各ライブラリのソースコードを読んで機能を追加したり、自分で新たに実装できるだけの実力をつける

Page 10: Skill wednesday

開発と学習

【開発】

・情報をまず集め、使い方や簡単な仕組みを理解する・実際に使える程度に学習する・既にあるコードを利用して実装する

【学習】

・仕組みをきちんと理解する・ソースコードを読んでみる・自分で実装してみる

=> 開発に重点を置きつつも、学習をきちんとしていく

=エンジニアとして成長できる (気がする)

Page 11: Skill wednesday

チーム開発

・内定者アルバイトをするまでチーム開発の経験は皆無

=> CyberZで初めてチームの開発を行った

重要だと感じたこと

・コードを共有するという意識 ( 読まれる + 読む )

・自分の役割と立ち位置の把握

Page 12: Skill wednesday

コードを読む力と書く力

【良いコードを書く力をつける】

『リーダブルコード』『良いコードを書く技術』

=> 変数名、スコープ、型、パッケージなどを意識して書く。

【コードを読む力をつける】

プログラムを書く時の常識を身につける。(普通はこうするということがわかっていればコードの全体像が把握しやすくなる、はず)

常識から外れた部分を察知して目的を推し量る(普通はこうするのにそうなっていないのはこういう目的があるからだ、的な)

Page 13: Skill wednesday

自分の役割と立ち位置の把握

【役割の把握】

自分は何をするべきか、または何をすることを期待されているかを明確にする

最終的な目的を意識する

【立ち位置の把握】

自分の行動は誰に影響するのか、あるいは誰から影響されるのか

Page 14: Skill wednesday

まとめ

・開発と学習の区別と実践

・コードを読む力と書く力を身に付ける

・チーム開発では自分の役割と立ち位置をきちんと把握する

Page 15: Skill wednesday

あれ・・・・・

なんか当たり前のこといってね・・・?

Page 16: Skill wednesday

当たり前が実践できていない悲劇

【曖昧な「べき論」を実践できないパターン】

パターン 1:具体的な行動への意識がない

=> 行動の意味と目的をはっきりと意識する

パターン 2:行動への意識があるが優先度が他の人と異なっていた

=> 優先順位をきちんとすり合わせる

Page 17: Skill wednesday

まとめ 2

自分自身行動を冷静に分析し、理想の行動ができるように心がける!

Page 18: Skill wednesday

あれ・・・・・

なんか当たり前のこといっ (ry

Page 19: Skill wednesday

まとめ 3

『成長するということは頭の中の認識と自信の行動が結びつくことである』

問題が次々と見つかっていくということはまだまだ改善の余地があるということなので、客観的な評価や内省によって認識と行動の乖離をいかに把握し、行動に移すか、ということこそが重要だと思いました ( 小並感 )。

Page 20: Skill wednesday

『世界で闘うプログラミング力を鍛える 150問 ~トップ IT 企業のプログラマになるための本 ~ 』 著者:     Gayle Laakmann McDowell   翻訳・監修: 秋葉 拓哉・岩田 陽一 出版社:   マイナビ

『世界最強最速アルゴリズマー養成講座』 著者: 高橋 直大 出版社: ソフトバンククリエイティブ

文献

Page 21: Skill wednesday

おわり