エンジニアとしてこの先生きのこるために t_wada さんの講演を聞いてきた。 BIT VALLEY -INSIDE- Vol.10 #bvinside

エンジニアとしてこの先生きのこるために t_wada さんの講演を聞いてきました。

togetterスライド と併せて読んでいただくことで、当日に参加できなかった人もキャッチアップできると思います。

概要

渋谷界隈にオフィスを構える企業による合同勉強会のコミュニティ、BIT VALLEY -INSIDE-。
第10回は和田 卓人(@t_wada) さんの講演「エンジニアとしてこの先生きのこるために」

イベントページ : BIT VALLEY -INSIDE- Vol.10 : ATND

ハッシュタグ : #bvinside

togetter : #bvinside BIT VALLEY -INSIDE- Vol.10エンジニアとしてこの先生きのこるために - Togetter

形式: セミナー形式

講演内容について

年に何度かプログラマを目指している方向けにキャリアや勉強の話しをしていて、毎回ブラッシュアップしている内容。
スライドを見たことあるも人いるかも。

直近だと4月にリクルートテクノロジーズさんで講演したスライドがアップされています。

前後半の2部構成になっています。

前半 学び方を学ぶ

前半のベースとなる内容は以下の2冊

どちらの書籍も同じようなテーマで書かれています。 学び続けて知識をつけていきましょうと。

技術はどんどん入れ替わっていくので、学び続けないと競争力が落ちてしまう。 但し、年を取るほど可処分時間が少なくなるので、効率的に学ぶ必要がある

そのため「技術の学び方を学ぶ」必要がある

※ 達人プログラマー について補足

1. 四半期毎に技術書を読む

  • どこから読んでいけばよいのか問題
    • ある書籍を読んだら、その書籍が参照している書籍を読んでいく
    • 同じ著者で読んでいく
  • 時系列を意識して読む
    • 例えば、エリック・エヴァンスのドメイン駆動設計(原著)は2003年に発行
      • それ以降に出た考え方は含まれない
      • 古い本は引き算して読む必要がある
  • 長期記憶に定着させるように読む
    • 何度も出し入れする

2. 手を動かして学ぶ

  • まずやる(好きかどうか気にしない) -> できる -> 好きになる
    • むしろ好きじゃないほうが客観的に選択できて良い
  • デールの円錐
    • 学習の定着効率を意識する
  • 写経
    • 今日も写経をやってきた
    • 昔は本を開いてやってたけど、最近は電子書籍があるのでそれでも良い

3. 毎年少なくとも1つの言語を学習する

  • 仕事でメインで使うため、最初の数年はできる
    • 最近のシステムだと
      • JSから逃げられない
      • Pythonから逃げられない
      • SQLから逃げられない
  • 言語転職はジャンジャンやっちゃって良いと思っている
  • その後は、業務で使わないので難しくなる
    • 挫折しないために、だんだんにじり寄る(軸を1つだけずらす)
  • 仕事で使う以外の言語を学ぶことで良いことがある
    • 副作用が少ない言語を学ぶと、自分が普段書いている言語でも副作用が少ない書き方をするようになる
  • 他のやり方として、業界のトレンドをチェック
  • 英語からは逃げられない
    • 話せる必要はない
    • 書ける必要もそこまでない
    • 読める必要はある
      • 道具を使っても良い
    • 英語の情報に苦手意識なくアクセスできるだけで大分変わってくる

4. 身の回りをプログラミング対象にする

  • 言語を学んでも使わずに終わると身につかない
  • エゴイスティックなプログラミングでよい

5. アウトプットを行う

  • アプロプットはプライベート(友達、同僚)でもよい
  • 量は質に転化する
    • ろくろ教室の実験
      • 質の高いものがでたのは、量のみを評価したグループから
      • 質のみを評価したグループは
        • 構えてしまう
        • 時間かけてしまう
  • ツイッターは埋めれてしまうので、ストック型メディアがよい
    • ブログを書きましょう。Qiitaでもよい
      • 長文を書きましょう
  • クソエントリ問題に対する解決策
    • Jenkinsの作者 かわぐちさんの言葉
      • 情報発信、blog, 発表, 公開などは、数学の(未解決問題の)証明ではなく、料理のようなもの
        • 数学の証明は最初の一人目が偉い(総取り)、だけど料理は違う
    • 技術の情報発信は情報鮮度がついて回る
      • 第一人者が過去に発信した情報、と第三者が最近発信した情報だと、必ずしも第一人者の情報に価値があるわけではない
    • 環境をつくるだけでもそのまま動くものはない
      • エラーメッセージを省略せず全部貼り付けて、どういうところでつまずいて、どう考えてどう解決して動いたかまで書いていると、その情報は価値がある
  • 技術系同人誌の台頭により技術書の業界に光が指した
    • 技術系同人誌どんどん増えるとよい。書きましょう
  • LTも良い
    • 成功も失敗も許容できる心理的安全性が高い場所で発信する
  • ライブコーディングはハイリスクハイリターン
    • 失敗を許容する5分間のライブコーディングとかあったらよき

後半 現役プログラマでいるために

1. 毎日コードを書く

  • 今日からで良いので始めてください
  • 住む場所を工夫する
    • 始発駅の近くに住むと電車に座れる可能性をコントロールできる
      • 座れるとコードが書ける
  • 意図的にオフライン時間をつくる
    • 新幹線/飛行機のような締切がある時に作業が進む人が多い

2. 年下から学ぶ

  • 過剰適応とタコツボ化
    • 技術は定期的に淘汰される
      • 技術もアンラーニングが必要
      • 技術も分断投資しましょう
  • 使う道具を定期的に変える(エディタも)

    Emacs 20年でVScode にチャレンジするも戻ってしまっていた。
    VScodeを本気で使ってきた人とペアプロすることでVScodeの知見を得た
    ペアプロはアンラーニングのチャンス

3. 過去から未来を知る

  • 技術は振り子
    • 動的と静的、分散コンピューティングと集中コンピューティングなど
    • 実は振り子ではなく螺旋。徐々に進化している
      • 分散だと、EJB、マイクロサービス
    • 詳しくは技術選定の審美眼。を見て
  • T字型ではなく複数の柱を持ちましょう
    • 15年に1回くらいT字の柱が折れる
      • 離れたところに柱を立てる
        • フロントエンドだけじゃなくUNIXまわり触れておく。みたいに

4. 人のつくる渦を見る

5. 大事なことに集中する

  • 子供ができたりして諦めなきゃいけないことが、いろいろ出てくる
  • エッセンシャル思考が良かった