Loading...

プログラマが知るべき、たったひとつの大事なことがら

和田 卓人 (a.k.a id:t-wada or @t_wada)

Press key to advance.

Slides controls, press:

  • and to move around.
  • Ctrl/Command and + or - to zoom in and out if slides don’t fit.
  • T to change the theme.
  • H to toggle syntax highlight.

もう一度だけ話します

自己紹介

  • 名前 : 和田 卓人(わだ たくと)
  • ブログ : id:t-wada
  • Twitter : @t_wada
  • github / facebook : twada
  • タワーズ・クエスト株式会社 取締役社長

./../../images/TQ_LOGO_SMALL.png

プログラマが知るべき97のこと

プログラマが知るべ 97 のこ

#97prog_ja

でも、お題としては悩ましい

でっち上げた概略

プログラマが知るべきことは、いったいいくつあるのでしょうか?プログラミングは一生続けられる深みを持っていますし、プログラマは極めることのできる職業の一つです。このセッションでは、書籍『プログラマが知るべき97のこと』を監修する際に 学んだこと考えたこと や、 これまでの実体験 を交えながら、プロのプログラマとしての 心得、勉強法、大事だと考えていること などについてお話させていただきたいと思います。

「自分」の話をすればよい

(独断)きのこ本で一番大事なきのこ

きのこ18: 学びつづける姿勢(1)

./../../images/013_Clint_Shank.jpg

  • 書籍、雑誌、ブログ、Twitter、各種のWebサイト、ML、ニュースグループを読む
  • 本当に身につけたい技術は、コードを自ら書き、手を動かして学ぶ
  • 常に自分よりレベルの高い人と仕事をするようにする
  • レベルの高い人がどうしても周囲にいないようなら、転職を考えた方がよい
  • 自分の「良き師」になり得る人をネット上で探す
  • 自分の利用しているフレームワークやライブラリに対する知識を深める
  • バグや問題について深く理解するよう努める

きのこ18: 学びつづける姿勢(2)

./../../images/013_Clint_Shank.jpg

  • 自分が学びたいことを人に教えたり、話したりする
  • 勉強会を自ら立ち上げるか、地元のユーザグループなどがあればそれに参加する
  • カンファレンスに積極的に参加する
  • 通勤時間が長い場合は、ポッドキャスティングを利用して学ぶ
  • 静的分析ツールを実行する
  • 『達人プログラマー−システム開発の職人から名匠への道』を読む
  • 新しく学ぶのは、必ずしもコンピュータ関連技術でなくても構わない
  • 学校に通う

なぜ私がここにいるのか

これまでの道程を話します

今日話す三つのこと

  • 読む : read
  • 書く : write
  • 話す : talk

今日話す三つのこと

  • 読む : read

  • 書く : write

  • 話す : talk

よろしくお願いします

チェックポイント: 原メソッド

  • 残り時間は? (36,39)
  • 一度会場を見回す
  • マイク
  • 喉の調子は
  • 情熱

今日話す三つのこと

  • 読む : read

  • 書く : write

  • 話す : talk

1996/07/22

コンピュータとの出会い

やってみせる

2000年 : OO厨をこじらせる

厨二故の過ち、失敗

  • 自作固執(オレオレ ORM)
  • 技術固執(一生分 XSL を書いた)
  • 結局体力まかせ
  • テスト大嫌い。そもそも俺の書くコードにバグは無い(キリッ
  • でもバグ、手戻りが多い
  • 完璧主義の呪い

完璧主義の呪い

2002/06/07

まさーるさんに出会う

自動テストとの出会い

「写経」を知る

技術書の「写経」の方法

  1. ローカルで使える SCM を用意
  2. 「ほんたった」などで対象の本を固定
  3. ひたすらサンプルコードを写して実行
  4. 実行するたびにコミット(コミットログにページ番号を含める)
  5. 疑問点があったらコミットログや本に書き込む
  6. 章ごとにタグを打つ

(「技術書の写経の方法」でググると出てきます)

デスマの中でTDDを写す

ひたすら本を読む

僕はまさーるさんと TDD に救われた

四象限モデル

この時代のまとめ(1)

./../../images/013_Clint_Shank.jpg

  • 書籍、雑誌、ブログ 、Twitter、 各種のWebサイト、ML、ニュースグループを読む
  • 本当に身につけたい技術は、コードを自ら書き、手を動かして学ぶ
  • 常に自分よりレベルの高い人と仕事をするようにする
  • レベルの高い人がどうしても周囲にいないようなら、転職を考えた方がよい
  • 自分の「良き師」になり得る人をネット上で探す
  • 自分の利用しているフレームワークやライブラリに対する知識を深める
  • バグや問題について深く理解するよう努める

この時代のまとめ(2)

./../../images/013_Clint_Shank.jpg

  • 自分が学びたいことを人に教えたり、話したりする
  • 勉強会を自ら立ち上げるか、 地元のユーザグループなどがあればそれに参加する
  • カンファレンスに積極的に参加する
  • 通勤時間が長い場合 は、ポッドキャスティングを利用して 学ぶ
  • 静的分析ツールを実行する
  • 『達人プログラマー−システム開発の職人から名匠への道』 を読む
  • 新しく学ぶのは、必ずしもコンピュータ関連技術でなくても構わない
  • 学校に通う

チェックポイント

  • 残り時間は? (19,25)
  • 一度会場を見回す
  • マイク
  • 喉の調子
  • 情熱

今日話す三つのこと

  • 読む : read
  • 2004/07/01
  • 書く : write

  • 話す : talk

「チームかくたに」参加

id:t-wada になった日

全開でやってよし

J02: ロールプレイングゲーム

./../../images/m_seki.png 「帽子」の領域と時間を拡張して、いっそのこと 「理想のプログラマ」を演じてしまう というのはどうでしょう。理想のプログラマを体験するロールプレイングゲームです。

勤務時間中は理想のプログラマのふりをする。それがあなたの仕事なのです。

お仕事中は淡々と理想のプログラマを演じてみましょう。本来の自分を変えるより、ずっと簡単です。迷ったら仕事だと思ってあきらめて演じてください。 だって、仕事でしょ?

54: 見えないものを見えるように

80: 1人より2人

65: バージョン管理システムを有効に使う

79: テストのないソフトウェア開発はあり得ない

51: プロジェクト自身にしゃべらせる

この時代のまとめ(1)

./../../images/013_Clint_Shank.jpg

  • 書籍、雑誌、ブログ 、Twitter、各種のWebサイト、ML、ニュースグループを読む
  • 本当に身につけたい技術は、コードを自ら書き、手を動かして学ぶ
  • 常に自分よりレベルの高い人と仕事をするようにする
  • レベルの高い人がどうしても周囲にいないようなら、転職を考えた方がよい
  • 自分の「良き師」になり得る人をネット上で探す
  • 自分の利用しているフレームワークやライブラリに対する知識を深める
  • バグや問題について深く理解するよう努める

この時代のまとめ(2)

./../../images/013_Clint_Shank.jpg

  • 自分が学びたいことを人に教えたり 、話したりする
  • 勉強会を自ら立ち上げるか、 地元のユーザグループなどがあればそれに参加する
  • カンファレンスに積極的に参加する
  • 通勤時間が長い場合は、ポッドキャスティングを利用して学ぶ
  • 静的分析ツールを実行する
  • 『達人プログラマー−システム開発の職人から名匠への道』 を読む
  • 新しく学ぶのは、必ずしもコンピュータ関連技術でなくても構わない
  • 学校に通う

チェックポイント

  • そんなペースで大丈夫か? (14,18)
  • 情熱を持って話しているか?
  • 深呼吸

今日話す三つのこと

  • 読む : read
  • 2004/07/01
  • 書く : write
  • 2005/04/25
  • 話す : talk

2005/04/25

2005/04/26

「話す」時代へ

テストの再分類

「テスト」という言葉から思い浮かべるものを…

DeveloperTestingCustomerTestingQATesting
開発者顧客(のロール)品質保証担当者(のロール)
開発促進進捗管理品質保証

「誰が、何のために」という視点で再分類する

二つの道がある

TDDのサイクル

  1. テストを書き
  2. そのテストを実行して失敗させ(Red)
  3. 目的のコードを書き
  4. 1で書いたテストを成功させ(Green)
  5. テストが通るままでリファクタリングを行う(Refactor)
  6. 1~5を繰り返す

TDDと黄金の回転

アウトプットするとインプットが増える

インプットは更なるアウトプットへ

WEB+DB PRESS vol.35

gihyo.jpの連載

  • 「動画で解説」和田卓人の"テスト駆動開発"講座
  • http://gihyo.jp/dev/serial/01/tdd
  • 全20回すべて動画付き解説
  • ニコニコ動画でも見れます

./../../images/gihyo-tdd-icon.png

自分の得意分野を作る

チェックポイント

  • 残り時間は? (7,11)
  • 情熱を持って話しているか?
  • 深呼吸
  • 会場を見渡す

One more thing…

三つめの転機

  • 読む : read
  • 2004/07/01
  • 書く : write
  • 2005/04/25
  • 話す : talk
  • 2008/02/14

デブサミ2008登壇

やってみせる

java-ja に出会う

今日話す 3+1 のこと

  • 読む : read
  • 2004/07/01
  • 書く : write
  • 2005/04/25
  • 話す : talk
  • 2008/02/14
  • 渦を作る : influence

現実と立ち向かう術

ペアプロの楽しさ

プロとしてのたしなみ

それを伝えるイベントを作れないか

TDD Boot Camp 東京

TDD Boot Camp 北陸

TDD Boot Camp 名古屋

TDD Boot Camp 札幌

TDD Boot Camp 福岡

渦ができた

今後の TDD Boot Camp

  • 札幌第2回
  • 大阪
  • 横浜(秋頃)
  • (四国)
  • (東京第2回?)

#tddbc

最後に

学びつづけるコツ

  • 身の回りをプログラミングする
  • 毎年新しい言語を学ぶ(達人プログラマ)

若い人から学ぶ

./../../images/dankogai.png

一生プログラマーでいれるかどうかは、言い換えれば年下から学べるか否か。

技術の学びは「らせん」

なぜTDDにこだわるのか

TDDはスキルです

テストやTDDはスキルです。つまり…

  • 才能ではなく、習得可能です
  • 量は質に転化します
  • 写経しましょう!!

渦に入り、渦を作る

次はあなたの番

君の銀河もきっと輝く