skill wednesday
TRANSCRIPT
Skill Wednesday内定者アルバイトで学んだこと
自己紹介
名前: 長尾 和真
年齢: 22 歳 ( 1993年生まれ)
出身: 愛知県 岡崎市
専攻: 人口学 (学部は経済 )
趣味: ポケモン ぷよぷよ 麻雀
プログラミング歴
大学 1 年夏 java の勉強を始める (javaを選んだのはなんとなく)
大学 2 年冬 やっと javaの入門書を終える
大学 3 年春 2 冊の本をやりこむ (下の 2冊 ) プログラミングコンテストに若干はまる ポケモンの廃人用のダメージ計算機を作る (java, javascript,GAE) Ruby に手を出す => 身につかず 大学 3 年冬 ハッカソンを通して CyberAgent内定
大学 4 年秋 CyberZで内定者アルバイトを始める
=>マーケット分析 (クローリング・スクレイピング )
本題
内定者アルバイトで学んだこと
主に以下の 3つ
・開発と学習
・チーム開発について
開発と学習
大学生活での開発経験はほぼなし
プログラミングはプロコンの問題や技術書 (?)の問題に対してコードを書くことを通して身につけてきた
=> 無意識的に自分の中で「総じてプログラミングとは全て自分で実装するものである」という前提ができていた。
しかし・・・・
世界はある程度最適化されている
Github のユーザ数 970 万 (2015年 6月 )
Qiita のユーザ数 7.5 万 (2015年 5月 )
=>どこかの誰かが必ず同じようなことをしているはず!!
ライブラリのレポジトリ、『〜〜をやってみた』『〜〜ではまった』という記事 etc….
長尾『開発とは効率よくプロダクトを完成させることなのか。』
開発と学習
ならば、自分でがっつりコードを書いたり読んだりすることはせずに、ライブラリなどの情報検索だけすればよいのか?
=>情報以上のことができなければいけないことがいつか来るのでは??あるいは応用を利かせなければ突破できない課題に直面する時がくるのでは?
=> 学習の重要性
学習
【応用するスキルをつける】
1 選択肢を増やす
各ライブラリ・フレームワークの仕組みを理解し、利点や難点を把握する
2 ソースコードから応用する力をつける
各ライブラリのソースコードを読んで機能を追加したり、自分で新たに実装できるだけの実力をつける
開発と学習
【開発】
・情報をまず集め、使い方や簡単な仕組みを理解する・実際に使える程度に学習する・既にあるコードを利用して実装する
【学習】
・仕組みをきちんと理解する・ソースコードを読んでみる・自分で実装してみる
=> 開発に重点を置きつつも、学習をきちんとしていく
=エンジニアとして成長できる (気がする)
チーム開発
・内定者アルバイトをするまでチーム開発の経験は皆無
=> CyberZで初めてチームの開発を行った
重要だと感じたこと
・コードを共有するという意識 ( 読まれる + 読む )
・自分の役割と立ち位置の把握
コードを読む力と書く力
【良いコードを書く力をつける】
『リーダブルコード』『良いコードを書く技術』
=> 変数名、スコープ、型、パッケージなどを意識して書く。
【コードを読む力をつける】
プログラムを書く時の常識を身につける。(普通はこうするということがわかっていればコードの全体像が把握しやすくなる、はず)
常識から外れた部分を察知して目的を推し量る(普通はこうするのにそうなっていないのはこういう目的があるからだ、的な)
自分の役割と立ち位置の把握
【役割の把握】
自分は何をするべきか、または何をすることを期待されているかを明確にする
最終的な目的を意識する
【立ち位置の把握】
自分の行動は誰に影響するのか、あるいは誰から影響されるのか
まとめ
・開発と学習の区別と実践
・コードを読む力と書く力を身に付ける
・チーム開発では自分の役割と立ち位置をきちんと把握する
あれ・・・・・
なんか当たり前のこといってね・・・?
当たり前が実践できていない悲劇
【曖昧な「べき論」を実践できないパターン】
パターン 1:具体的な行動への意識がない
=> 行動の意味と目的をはっきりと意識する
パターン 2:行動への意識があるが優先度が他の人と異なっていた
=> 優先順位をきちんとすり合わせる
まとめ 2
自分自身行動を冷静に分析し、理想の行動ができるように心がける!
あれ・・・・・
なんか当たり前のこといっ (ry
まとめ 3
『成長するということは頭の中の認識と自信の行動が結びつくことである』
問題が次々と見つかっていくということはまだまだ改善の余地があるということなので、客観的な評価や内省によって認識と行動の乖離をいかに把握し、行動に移すか、ということこそが重要だと思いました ( 小並感 )。
『世界で闘うプログラミング力を鍛える 150問 ~トップ IT 企業のプログラマになるための本 ~ 』 著者: Gayle Laakmann McDowell 翻訳・監修: 秋葉 拓哉・岩田 陽一 出版社: マイナビ
『世界最強最速アルゴリズマー養成講座』 著者: 高橋 直大 出版社: ソフトバンククリエイティブ
文献
おわり