Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CTOが語る、これからのソフトウェアエンジニアに必要なことと鍛え方 / GEEK-SAI-2022-SPRING

CTOが語る、これからのソフトウェアエンジニアに必要なことと鍛え方 / GEEK-SAI-2022-SPRING

技育祭 2022 春の登壇資料です。
https://talent.supporterz.jp/geeksai/2022spring/

CARTA Engineering

March 18, 2022
Tweet

More Decks by CARTA Engineering

Other Decks in Technology

Transcript

  1. CTOが語る、
    これからのソフトウェアエンジニアに
    必要なことと鍛え方
    2022年3月18日
    技育祭 2022 春

    View Slide

  2. 自己紹介
    データエンジニアリング
    ウェブ技術が好きです
    本も書きました(いずれも共著)
    鈴木健太 すずけん
    経歴
    2012年 VOYAGE GROUP新卒入社
    2018年 fluct(子会社) 取締役CTO
    2022年〜 CARTA HD 執行役員CTO
    ポッドキャスト「 https://ajito.fm 」
    得意なこと
    このへんにいます
    Twitter: @suzu_v

    View Slide

  3. 今日の発表のコンセプト
    「技」術を「育」てる祭り、技育祭。
    自分もこれまで、多くの人のお世話になって、自分の技術を伸ばしてきました。
    社会にも少しばかり、プロダクトを出してきました。
    これまでの自分のキャリアを振り返りつつ、
    将来プロのエンジニアになるみなさんに、
    あるいは将来のキャリアに迷っているみなさんに、
    なにか将来へのヒントに1つでもなるようにと思い、
    僕のこれまでの経験を拾い上げてエッセンスを抽出してみました。
    ぜひ、楽しんでいってください。

    View Slide

  4. 感想・質問も気軽にお寄せください!
    スクリーンショット📷のツイートももちろんOKです。
    ハッシュタグ #技育祭 #ホールB
    (時間があまれば)ツイートを拾いつつ、
    Q&A時間をとるのでぜひ質問をなげてみてください!
    発表中のツイート
    👌
    お知らせ💡
    スライドはあとで公開するのでメモしなくて大丈夫です📝👌

    View Slide

  5. いきなりですが、まとめです
    解決する力
    問題に会う力
    おもしろい問題を
    見つける
    できる範囲が
    広がる

    View Slide

  6. OB訪問だと思って気楽にきいてください !
    副題
    北海道の片田舎から
    東京にでてきてかれこれ
    15年くらい経った
    わたしとエンジニアリング

    View Slide

  7. アジェンダ
    1: これまでのキャリア: 学生編
    北海道から出てきてエンジニアになった流れ
    初めてのプログラミング、研究、インターン、スタートアップ
    2: これまでのキャリア: 社会人編
    ソフトウェアエンジニアリングの面白さ
    プログラミングとソフトウェアエンジニアリングの違い
    3: 「必要なこと」と「鍛え方」
    10年前の自分に伝えるならなにか
    じゃあこれからどうしていけばいいだろうか

    View Slide

  8. アジェンダ
    1: これまでのキャリア: 学生編
    北海道から出てきてエンジニアになった流れ
    初めてのプログラミング、研究、インターン、スタートアップ
    2: これまでのキャリア: 社会人編
    ソフトウェアエンジニアリングの面白さ
    プログラミングとソフトウェアエンジニアリングの違い
    3: 「必要なこと」と「鍛え方」
    10年前の自分に伝えるならなにか
    じゃあこれからどうしていけばいいだろうか

    View Slide

  9. 北海道に行ったことある人?
    【十勝平野】
    https://ja.wikipedia.org/wiki/%E5%8D%81%E5%8B%9
    D%E5%B9%B3%E9%87%8E

    View Slide

  10. 北海道に行ったことある人?
    【十勝平野】
    https://ja.wikipedia.org/wiki/%E5%8D%81%E5%8B%9
    D%E5%B9%B3%E9%87%8E

    View Slide

  11. 十勝について
    ● 食料自給率1100%
    ● とても広い平野
    https://tokachibare.jp/about_tokachi/

    View Slide

  12. プログラマになるまで編: 大学入学
    2006年、大学から東京にでてきた
    最初は建築方面に興味があって理工学部へ
    もともと職業エンジニアになるつもりは全くなかった
    大学1年時の授業でプログラムを書く課題がでたので、初めて書いてみた
    ちょっとだけ、プログラミングの基礎力をつけた
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  13. 初めてのプログラムを書いていた頃の問題
    n番目の三角数を求めてください。
    三角数 - Wikipedia より
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide


  14. https://twitter.com/katzchang/status/1503243138013761538

    View Slide

  15. 授業のプログラムと、実世界のシステムはどうも遠そう
    ?
    そもそもどう作ったらいいかの想像すらつかない・・
    授業のプログラム 実世界のシステム
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  16. 情報工学、ではなくちょっと変化球で管理工学科を選ぶ
    https://www.st.keio.ac.jp/departments/faculty/ae.html
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  17. 突然のプログラマ実践編❶: 事務バイトのはずがプログラムを書くことに
    2008年〜 先輩から紹介してもらい、特許法律事務所で事務バイトをはじめた
    いわゆる業務システムとの出会い
    最初は事務バイトで入ったが結局プログラマとしてバイトしていた
    プログラムを書いてお金をはじめて稼いだ
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  18. 突然のプログラマ実践編❷: 事務バイトのはずがプログラムを書くことに
    ● 周りにエンジニアはだれもいない環境だった
    ● 自分で事務作業をしてみると、面倒なところがわかってきた
    ● まわりの事務の方々に「何に困ってますか?」をひたすらランチや雑談
    で聞いた
    ● すると細かい作業に手間がかかっており、目視での確認も多く必要なこ
    とがわかった
    ● 「エクセルにあるデータをそのままブラウザに反映すればいい」と気づ
    いた
    ● 調べてみると、どうやらVBAというのを使えばできるということがわ
    かった
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  19. 少しだけ、実世界の問題を解くことができた
    問題に会い、解決する力がちょっと上がった
    自分にも解けそうな
    小さな問題
    小さな小さな課題を解く
    実世界のシステム
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  20. ちょっとだけ、課題を解決することができた
    解決する力
    問題に会う力
    おもしろい問題を
    見つける
    できる範囲が
    広がる

    View Slide

  21. 次にチャレンジしたかったこと: Web
    どう作れば?
    小さな小さな課題を解く
    実世界のシステム
    Web
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  22. Webを構成する要素
    Web
    URL
    HTTP
    HTML
    シンプルで強力なのは、ユーザーとしてなんとなくイメージしていた
    Tim Berners-Lee
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  23. 研究: Linked Open Dataとの出会い
    https://ja.wikipedia.org/wiki/Linked_Open_Data
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  24. 2010年: もっとウェブのことを知りたいと思い、研究へ
    山口研究室へ
    人工知能・オントロジー工学・セマンティックWebの世界へ
    データを結びつけた形で公開することをLinked Open Dataと呼んでおり、
    ちょうど大学院生のころに提唱され始めた
    とりあえずそこに会計データを乗っけると面白いのでは、ということで
    XBRLという会計用XMLフォーマットをRDFに変換したりしていた
    大学図書館でひたすらプログラミングの本を借りてサンプルを写経したり
    動かしたりした
    研究をしていくと、ウェブ歴史的な背景を数多く学ぶ機会になった
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  25. 研究をしたけど、やっぱりまだ作れるイメージがわかなかった
    どう作れば・・?
    Webの理論
    実世界で動いている
    Webサービス
    Web
    URL
    HTTP
    HTML
    ?
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  26. プロの世界がわからないのでインターンにいってみた
    2010年: インターンTreasureに参加した
    当時ECナビ(その後VOYAGE GROUP、現CARTA HD)
    学生が20-30人くらい3週間集まって開発するインターン
    PHPによるAPI実装、テスト駆動開発、セキュリティ、データモデリングな
    どについて学んだ
    現場のエンジニアの方々は「持続可能なアプリケーション」をつくっている
    のだなあ・・ということを知った
    「修羅の世界に飛び込むか・・」という気持ちでいったらみんな技術談義を
    楽しんでいて、自分も自然体で楽しめた
    なにより自分にとって、ウェブはなくてはならないものであり、この世界に
    携わりたいと思いはじめた
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  27. インターンにいったら、ちょっとイメージが湧いた
    画面設計してDBモデリングして、API設計して画面ごとのURLも決めて、
    認証認可を組み込んで、あとは実装すればだいたいできそう😃
    Webの理論
    とりあえず動く
    Webサービス
    Web
    URL
    HTTP
    HTML
    2006
    2011
    2010
    2015
    2012
    2008
    󰤠

    View Slide

  28. アルバイト、研究、インターンを通じて、
    少しだけ「解決する力」がついてきた
    解決する力
    問題に会う力
    おもしろい問題を
    見つける
    できる範囲が
    広がる

    View Slide

  29. でもやっぱり、実世界で動くものはもうちょっと遠い気がした
    「実世界」の課題を発見できていない・・?
    Webの理論
    実世界の
    Webサービス
    Web
    URL
    HTTP
    HTML
    ?
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  30. スタートアップを始めてみた
    2006
    2011
    2010
    2015
    2012
    2008 2011年2月 修士1年のとき、Trippieceという旅行サービスの立ち上げ
    大学院で研究をしつつ開発
    きっかけは同じくECナビ(当時)にインターンに来ていた @ishidaian から、
    「人を誘って旅行に行けるサービスをつくるエンジニアを探してる」
    と言われたこと。
    なんとなく、作れそうな気がしたので参加してみることにした。
    あと、直感的に楽しそうだな〜と思った😃

    View Slide

  31. 実世界は想像よりも難しい
    ● かっこよく作った画面に全然ユーザがこない
    ● 「アルファリリースしました!」と告知しても一覧ページだけ見られた
    だけでユーザが帰っていく
    ● ユーザに旅行プランを作成してもらえるようにしていたけど、ネタのよ
    うなプランしか投稿してもらえない
    ● 旅行のプランが投稿されるだろうと思ったけど、「カフェいきましょ
    う」のような投稿が増えてしまったりする
    結局、デザインからすべて作り直すのを2回やった。
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  32. スタートアップで世の中に踏み込んでみて、
    天然の問題のおもしろさに気がついた
    解決する力
    問題に会う力
    おもしろい問題を
    見つける
    できる範囲が
    広がる

    View Slide

  33. 【これまでのキャリア】意識的に、自分のコンフォートゾーンから飛び出していく
    目的ある練習の4つのポイント
    ● はっきりと定義された具体的目標がある
    ● 集中して行う
    ● フィードバックが不可欠
    ● コンフォートゾーンから飛び出すことが必要
    “30年間同じ曲を同じやり方で繰り返し弾き続けてきたアマ
    チュアピアニストは、たしかに1万時間分の練習を積んだかも
    しれないが、30年前と比べてまったく上達していないはずだ”

    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  34. 【これまでのキャリア】気づけばコンフォートゾーンの外側へ
    気づけば社会のなかでプログラムを書いていた
    うっすらと「お金を稼ぐ + プログラムを書く」はつながっていった
    給料のため?役立つから?でも役立つものを作らないと稼げないよな、とは
    漠然とこのころから思っていた
    なんとなくウェブに触れていた経験が自然とそうさせていた
    パソコンに向かっている時間が3度の飯より好き・・なんだけど、
    人と出会うことで、知らない課題に会わせてもらった
    「エンジニアとして」人に会うことが増えた
    出会いが自分をコンフォートゾーンの外側につれていってくれた
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  35. 【これまでのキャリア】なんとなく、実世界のイメージがついてきた
    自分にも解けそうな
    小さな問題
    実世界で動く
    Webサービス
    実世界の問題に出会って、ちょっとだけ解決することができた
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  36. 学生編まとめ
    少しずついろんな問題に出会い、つながっていき、少しずつ解決する力をつけた
    解決する力
    問題に会う力
    おもしろい問題を
    見つける
    できる範囲が
    広がる

    View Slide

  37. 【これまでのキャリア】でも、きっともっとソフトウェアエンジニアリングの世界は広い
    実世界で動く
    Webサービス
    実世界で動く、大きくて
    複雑なWebサービス
    ?
    まだまだ遠い世界の話のような気がする・・
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  38. アジェンダ
    1: これまでのキャリア: 学生編
    北海道から出てきてエンジニアになった流れ
    初めてのプログラミング、研究、インターン、スタートアップ
    2: これまでのキャリア: 社会人編
    ソフトウェアエンジニアリングの面白さ
    プログラミングとソフトウェアエンジニアリングの違い
    3: 「必要なこと」と「鍛え方」
    10年前の自分に伝えるならなにか
    じゃあこれからどうしていけばいいだろうか

    View Slide

  39. 【これまでのキャリア】入社
    2012年、
    VOYAGE GROUP
    (現: CARTA HOLDINGS)
    に入社
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  40. 【これまでのキャリア】2012年当時作りたかったもの❶
    どんなにデータをいれても遅れなく集計される
    クエリするとすぐ返ってくる
    世界中のサイトで使われているはずなのになぜか無料
    規模もさることながら、そもそもどうつくっているかの見当も当時
    はつかなかった
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  41. 【これまでのキャリア】2012年当時作りたかったもの❷
    すごくたくさんの
    Webサイト
    検索とかを
    いい感じにする
    API
    データを収集する
    なんらかのAPI
    きっとすごい速い
    最強の
    データベース
    2012年当時の自分なりにGoogle Analyticsのアーキテクチャを妄想
    その後、サービスを見るたびにアーキテクチャを妄想するのが習慣に
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  42. 【これまでのキャリア】「実世界のもっと大きなサービス」をやりたくてウェブ広告業界へ
    2006
    2011
    2010
    2015
    2012
    2008
    スタートアップの立ち上げを通じて、ウェブサービスをつくるというのは
    体験できた(と思っていた)
    せっかくだし、もっと大きなサービスを作りたい
    複数のサイトをまたがって動くものというのは技術的にも面白そう
    1サイトじゃ経験できない難しさを味わえそうな予感
    「ウェブ広告」の仕組みが近いのでは?と思い、ウェブ広告畑へ

    View Slide

  43. 【これまでのキャリア】2012年当時作りたかったもの❸
    2012年当時の自分なりに広告システムのアーキテクチャを妄想
    きっと似ているに違いない・・!(という思い込み)
    すごく
    たくさんの
    Webサイト
    データを
    収集する
    なんらかの
    API
    なんらかの
    広告在庫
    いい感じに
    広告を選ぶ
    API
    なんらかの
    広告が
    表示される
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  44. 【これまでのキャリア】2012年: fluctに配属
    せっかく会社に入るならでかいデータさわりたいと思い入った
    メディア向け広告事業をやっている子会社であるfluctへ
    @s_kozawa さんに誘われた
    6台しかない実験用Hadoopクラスタ、夜な夜な暴走するMongoDB、
    スループットの足りないPHP製APIサーバ、fluentdでのログ転送と向
    き合う
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  45. 【これまでのキャリア】2012-2013年: 行動ログ解析 + セグメントする基盤をつくる
    新規事業の立ち上げへ
    ● 行動ログを集めて分析して返す仕
    組み(DMP)をつくった
    ● エンジニア3-4人くらいのチーム
    ● AWSでのデータ処理(EMR、
    DynamoDBまわり)をごりごり触
    る機会になった
    https://www.slideshare.net/suzuken/dmp-30079817
    DMPの仕組み
    データを扱う基礎力があがった
    広告システムを初めて作ることで、お金の流れと経済性に興味がわき始めた
    しかしその後事業撤退へ・・
    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  46. クラウドインフラで、データをいい感じにする力がちょっとついた
    問題に会う力
    おもしろい問題を
    見つける
    できる範囲が
    広がる
    解決する力
    問題に会う力
    おもしろい問題を
    見つける
    できる範囲が
    広がる

    View Slide

  47. 【これまでのキャリア】次のチャレンジはなにをしよう?と考えた
    コードの規模
    売上
    スタートアップ 桃源郷?
    撤退しよう 順当に成長した

    View Slide

  48. 【これまでのキャリア】当時の頭の中: 雑にコード規模と売上を分解してみる
    コードの規模
    売上
    スタートアップ
    撤退しよう 順当に成長した
    桃源郷?
    これは大変そう・・
    DMPでやった
    スタートアップもやった
    どこにある・・?
    こっちは
    やったことがない

    View Slide

  49. 【これまでのキャリア】2015年: fluct SSP開発へ
    2006
    2008
    2010
    2011
    2012
    2013
    2015
    SSP
    当時、リリースから5年、事業的にもぐいぐい伸びているfluctのメインプロダ
    クト。エンジニアは15人くらい。いままで一番大きな開発チーム。
    昔書かれたコードが多く、意図がわからないものも。そもそも仕組み自体が
    複雑で、理解もたいへん。
    こんなにでかいコードベースに対処できるのか?という不安➞またコン
    フォートゾーンから飛び出すことに

    View Slide

  50. 【これまでのキャリア】1日に何億回もオークションを開催する
    2006
    2008
    2010
    2011
    2012
    2013
    2015
    トラフィックの正体から考えるアドテクの面白さ - CARTA TECH BLOG より

    View Slide

  51. 【これまでのキャリア】意識的に、自分のコンフォートゾーンから飛び出していく
    目的ある練習の4つのポイント
    ● はっきりと定義された具体的目標がある
    ● 集中して行う
    ● フィードバックが不可欠
    ● コンフォートゾーンから飛び出すことが必要
    “30年間同じ曲を同じやり方で繰り返し弾き続けてきたアマ
    チュアピアニストは、たしかに1万時間分の練習を積んだかも
    しれないが、30年前と比べてまったく上達していないはずだ”

    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  52. 【これまでのキャリア】たくさんの難しさ。でも超えられなくはなさそう。
    事業ドメインが複雑でわからない
    最初は、なにが課題でなにが課題ではないのかもわからない
    ヒアリングしていくと、実はチームのエンジニアも同じ状況だということがわかった
    コードの規模が大きい。「なぜ」こう書かれているのかがわからない
    でも、これまでにつけた「解決する力」があるから、なんとかなりそうな気がしてきていた
    1つ機能を追加するにも、その裏にまたわからない機能がでてくる
    1つをこなすのに、たくさんのコードを検証しないといけない
    でも1つ1つ読み解いていけば、小さな問題が見えて、また自分に解法をあたえてくれる
    大きくて
    よくわからない
    問題
    小さい問題
    小さい問題
    小さい問題

    View Slide

  53. 【これまでのキャリア】レガシーコードと向き合う
    https://speakerdeck.com/suzuken/phpcon2017

    View Slide

  54. 【これまでのキャリア】内部品質をあげると、機能改善もしやすくなっていった
    様々な手段を使って徹底的に分解し、問題を1つ1つ解いていった。
    ● 無駄な例外を消して例外を構造化する
    ● 徐々に型を付けていく
    ● ひたすらデッドコードを消す
    ● ペアプログラミングで知識を伝搬する
    その結果、読みやすく・テストしやすく・変更しやすくなった。
    大きくて
    よくわからない
    コードベース
    ちょっと
    読みやすい
    コードベース
    安全に
    書き換えやすい
    コードベース

    View Slide

  55. 問題を小さくし、少しずつ解決していった
    解決する力
    問題に会う力
    おもしろい問題を
    見つける
    できる範囲が
    広がる
    少しずつパッチをあてて、
    コードベースに詳しく。
    視野が広がっていく。
    解ける大きさの問題に分割。
    1つずつ解いていく。

    View Slide

  56. 【これまでのキャリア】入社前に思い描いていたこと(再掲)
    2006
    2008
    2010
    2011
    2012
    2013
    2015
    実世界で動く
    Webサービス
    実世界で動く、大きくて
    複雑なWebサービス
    ?
    まだまだ基礎も足りない気がする・・
    あと課題もまだわかってない気がする・・

    View Slide

  57. 【これまでのキャリア】実際はこう
    たくさん失敗して、たくさんコードを書いて、
    たくさん学んで、ようやく改善につながっていった
    実世界で動く
    小さな小さな
    Webサービス 実世界で動く
    大きくて複雑な
    価値を与え続ける
    Webサービス

    View Slide

  58. エンジニア
    リング
    【これまでのキャリア】ちょっとずつ分かってきたこと
    利用される価値
    プロダクト=資産
    質への投資
    お金になる価値
    プロダクトが大きくなると、使う人も開発す
    る人も増える
    長くプロダクトの「質」を保つことは難しい
    「質」を保つためのエンジニアリングは、
    将来に価値を与える
    「質」に投資すればプロダクトは「資産」に
    なり、長期的に価値を生み出す
    使われ続けるサービスになるには、プロダク
    トが変化し続ける必要がある
    気づけば「ソフトウェアエンジニアリング」
    に出会っていた

    View Slide

  59. ソフトウェアエンジニアリングと
    プログラミングの違いって
    なんだろう?

    View Slide

  60. 再掲: 初めてのプログラムを書いていた頃の問題
    n番目の三角数を求めてください。
    三角数 - Wikipedia より

    View Slide

  61. 「ソフトウェアエンジニアリング」と「プログラミング」の違い
    プログラミングとソフトウェアエンジニアリングの決定的な違いは3
    つある。
    時間、スケール、そして作用しているトレードオフだ。ソフトウェ
    アエンジニアリングのプロジェクトにおいてエンジニアは、時間の
    経過と、結果的に出てくる変更の必要性に、より配慮しなければな
    らない。ソフトウェアエンジニアリング組織内では、生産するソフ
    トウェアと、ソフトウェアを生産する組織、それら両方のスケール
    と効率に関してより配慮しなければならない。最後に、ソフトウェ
    アエンジニアとして我々は、時間と発展に対する不正確な見積もり
    に多くの場合基づき、比較的大きな利害の関係する結果を伴う、よ
    り複雑な決定の実行を求められる。

    View Slide

  62. 社会を意識するように👀
    問題に会う力
    プログラムをたくさん書く中で、
    「何をつくるか」「どんな価値を生み出すか」の興味がどんどん湧いてきた。
    携わっている広告事業についてあらためて俯瞰して眺めてみた。
    ウェブ広告は、「Profit Stream」とも呼ばれる。
    バナーを貼るとなぜお金が生み出されるのか?
    経済性を生み出し、コンテンツの支えとなる構造である。
    電車内の広告をみて裏のシステムを想像する
    そこにもプロダクトがあり、経済性があり、解決している人たちがいる。

    View Slide

  63. 社会から、人から、好奇心から、問題は広げられる
    まだ知らない
    外の世界
    解決する力
    問題に会う力
    おもしろい問題を
    見つける
    できる範囲が
    広がる

    View Slide

  64. ソフトウェアと経済性: たくさん使われるコードを書く
    広告システムだと1回書いたコードが
    毎日数億回利用されたりする
    きっと今日も誰かが自分の書いたコー
    ドを通り抜けていく
    たくさん使われるコードは必然的にお
    金が集まり、人が集まり、コードベー
    スが磨かれていく
    使われないコードは放置されていく
    利用される
    プロダクト
    質への投資
    お金
    経済合理性と
    コードメンテナンス
    使われるプロダクト
    には、投資する理由
    が生まれる
    利用されない

    放置

    View Slide

  65. アジェンダ
    1: これまでのキャリア: 学生編
    北海道から出てきてエンジニアになった流れ
    初めてのプログラミング、研究、インターン、スタートアップ
    2: これまでのキャリア: 社会人編
    ソフトウェアエンジニアリングの面白さ
    プログラミングとソフトウェアエンジニアリングの違い
    3: 「必要なこと」と「鍛え方」
    10年前の自分に伝えるならなにか
    じゃあこれからどうしていけばいいだろうか

    View Slide

  66. 解決する力
    問題に会う力
    おもしろい問題を
    見つける
    できる範囲が
    広がる
    必要な2つの力

    View Slide

  67. 最初は小さく、プログラムを書き始める
    n番目の三角数を求めてください。
    三角数 - Wikipedia より

    View Slide

  68. 授業のプログラムと、実世界のシステムは遠い
    どう作れば?
    ?
    授業のプログラム 実世界のシステム

    View Slide

  69. 実世界で動く
    小さな小さな
    Webサービス
    実際の問題は、もっと複雑で、大変で、とてもおもしろい!
    実世界で動く
    大きくて複雑な
    価値を与え続ける
    Webサービス
    たくさん失敗して、たくさんコードを書いて、
    たくさん学んで、ようやく改善につながっていった

    View Slide

  70. 意識的に、自分のコンフォートゾーンから飛び出していく
    目的ある練習の4つのポイント
    ● はっきりと定義された具体的目標がある
    ● 集中して行う
    ● フィードバックが不可欠
    ● コンフォートゾーンから飛び出すことが必要
    “30年間同じ曲を同じやり方で繰り返し弾き続けてきたアマ
    チュアピアニストは、たしかに1万時間分の練習を積んだかも
    しれないが、30年前と比べてまったく上達していないはずだ”

    2006
    2011
    2010
    2015
    2012
    2008

    View Slide

  71. 少しずつ、自分の力を伸ばしていくと、より大きな問題を解けるようになる
    解決する力
    問題に会う力
    おもしろい問題を
    見つける
    できる範囲が
    広がる
    新たについた力をつかって、
    また新しい問題と出会う。
    コンフォートゾーンを超えて
    やってみる。

    View Slide

  72. 「鍛え方」というより「楽しみ方」: もっと実世界の複雑さを楽しもう
    ● 実際に使われる世界は、予測が難しい
    ● 予測が難しいほうが、面白い
    ● 「ソフトウェアエンジニアリング」は実世界の難しさを手元に
    たぐり寄せ、制御し、時間の積分をつかって解く技術
    ● 「プログラミング」する力は解ける問題の幅を広げてくれる
    ● あれこれ考えるのもいいけど「やってみる」力をプログラミン
    グは与えてくれる
    やってみると、続けてみると、きっともっと面白い

    View Slide