プログラマー経営者 列伝 -...
Transcript of プログラマー経営者 列伝 -...
プログラマー経営者列伝日紫喜 光良
東邦大学理学部情報科学科
12018.6.15@土浦第二高等学校
Questions
•1.それぞれの起業にとっての中心的アイデアは何でしょうか?
•2.それぞれの起業家のプログラミング体験はどのようなものだったでしょうか?
•3.それらの中心的アイデアの着想と実現とには、起業家たちのプログラミング体験がどの程度影響していると想像しますか?
•4.皆さんは自分の将来やりたいこととプログラミングとをどのように関係させたいですか?
2
世界的に著名なプログラマー起業家たち
Mark Zuckerberg
1980 1990 2000 2010 2018
Kevin Systrom
Tobias Lutke
Larry Page
1970
1973
1984
1983
1980
1996 PageRank アルゴリズム1998 Google 創業
ラリー・ペイジ
マーク・ザッカーバーグ
ケビン・シストロン
トビアス・ルトケ
2003 Facemashゲーム2004 Facebook 創業
2008X-Pro IIフィルター
2010 Instagram 創業
2004オンラインショップ開発
2006 Shopify 創業
1979
1994
1995?
1986
2005
1992 NCSA Mosaic
1990 WWWインターネット史
1985 FTP
1983 TCP/IP
参考:Bill Gates
1955生 1981 MS-DOS 1990 Windows 3.0
1983 Microsoft Word
参考:Steve Jobs (1955-2011)✝
1984 Macintosh 2007 iPhone2001 iPod
1995 Windows95
3
Larry Pageと初期のGoogle• 1979 (6yo): 「パーソナルコンピュータ」(PC)で遊び始める
• 当時のPCを使うためにはプログラミングは必須。
• 1996 (23yo): Stanford大学のコンピュータ・サイエンスのPh.D(博士)コースに入学• 指導教員はTerry Winograd
• コンピュータに人間をどれだけよく「理解」させられるかを追求(Human Computer Interaction)
• 研究テーマ:World Wide Web (WWW)の数学的構造• 大規模なWebサーチエンジンの開発のために解明が必要だと考えた。• グラフ理論を利用
• 大学の中に全世界のWebページを収集・蓄積するサーバーを構築
• 1996: PageRank アルゴリズム
• 1998(25yo): Sergey BrinとともにGoogleを創業• 2人の投資家から100,000 USドルの投資を得る
4
大規模なサーチエンジン実現のための課題• 大量のWebページを収集すること
• できるだけ網羅的に• できるだけ頻繁に
• Webページを「索引付け」(indexing)すること• 単語→Webページの巨大な表をつくる• 高速に行う必要がある
• 検索質問文(query)から、該当するWebページを高速に取得(retrieve)すること
• 取得したWebページを適切にしかも高速に並べ替えること。• PageRankをはじめとする200あまりの指標をGoogleは使っているらしい。
5
PageRank: Webページの重要性をランク付けするための指標
6
リンク
Webページ
リンクを通じて、WebページのPageRankが集まる→間接的にたくさんのリンクが集まる「上位」のページほど、PageRankが高くなる。
参考:Brin S, Page L. The anatomy of a large-scale hypertextual web search engine. Computer networks and ISDN systems. 1998 Apr 1;30(1-7):107-17.
Mark Zuckerbergと初期のFacebook• 1994(10yo): プログラミングを習う。
• ZuckNet開発:自宅と父親のクリニックとの間のメッセンジャー機能
• 2002(18yo): Harvard College入学。• CourseMatch開発(履修科目選択の参考情報提供)
• 他の学生の選択がわかる• 学習グループをつくることができる
• 2003(19yo): Facemash開発• 顔写真を並べて、どちらが魅力的かを比べさせる• 学生名簿サイトの写真を勝手に利用したのが問題となり懲罰
• 2004(20yo): Facebook創業• Harvard学内限定→アイビー・リーグ限定→一般公開• 投資家による500,000ドルの投資と経営参加
7
8
映画「The Social Network」(2010)のスクリーンショットから
Facemashのイメージ
https://www.firstversions.com/2015/04/facebook.html
このスクリーンショットからわかるように、初期のFacebookには女性を差別する社風があったので、2008年、Facebookに初の女性役員(COO)として入社したシェリル・サンドバーグ(Sheryl Kara Sandberg)は規則でその類の行為を禁止した。
参考:How Sheryl Sandberg Stamped Out Sexism At Facebook
http://www.businessinsider.com/after-joining-facebook-sheryl-sandberg-stamped-out-sexism-in-the-office-2012-6
Kevin Systromと初期のInstagram• 1996頃(~13yo): Doom II(シューティングゲーム)の改造
• 2006 (23yo): Stanford大学卒業(経営科学と工学)• コンピュータサイエンスの講義・実習を履修。プログラミングを独学。
• 起業体験:Craigslist (売買・賃貸仲介サイト)のスタンフォード大専用版
• 2005(22yo): Florence (Italy)(フィレンツエ)で写真の勉強• 2006: インターンシップ・プログラム(Odeo: 後のTwitterとなる会社)
• 2006: Googleに就職• 2008(25yo): 退職
• 2008 (25yo): 別の新会社でチェックインアプリを開発• 時間と場所の共有、写真の投稿、ソーシャルゲーム等の機能
• 2008: 休暇中メキシコで画像フィルターを開発• iPhone4の写真が「かっこよく」見えるように• 後のX-Pro IIフィルターとなる
• 2010 (27yo): Instagram創業• 500,000 USドルの投資を取得
• 2012 (29yo): Facebookが10億 USドルで買収9
10
画像処理ソフトGIMPによるX-Pro II フィルターの再現
https://www.youtube.com/watch?v=qyiNg4yuK7w
1.周辺を暗くする
2.RGB各色のコントラストを強くする
Gimp 2.10: X Pro II-Filter [Instagram] 4K
Tobias Lutkeと初期のShopify• 1986 (6yo): PCを与えられる。
• 1991頃 (~11yo): ゲームのプログラムを書き換えて遊ぶ。
• 1992 (12yo): コンピュータのハードウェアを改造する。
• 1995 (15yo): 職業学校(Carl-Benz-Schule Koblenz)に入学。• コンピュータプログラマーになるため
• 2002 (22yo): ドイツからカナダに移住
• 2004 (24yo): オンラインスノーボードショップを開く• 当時のe-commerceプラットフォームに満足できなかったので、
Ruby on Rails(Webサービスの開発言語。Ruby言語を利用)を使って自分で開発した。
• 2006 (26yo): Shopifyを創業• オンラインショップを誰でも開けるようにするためのプラットフォーム
• 2010 (30yo): オタワで最も急成長のビジネスとして注目11
起業家にプログラミングが必要な理由
•プロダクト制作の進捗管理がし易くなる
•外注中心の開発スタイルでは、コストが掛かり過ぎる
•自ら開発の陣頭に立ってサービスを開発・運営してこそ、成功が近づく。
参考:アイデアだけの起業は自殺行為?起業家がコードを書けるべき3つの理由TECH NOTE 2016.5.11https://tech-camp.in/note/pickup/41/
日本の例:堀江貴文(ライブドア創業者)、山田進太郎(メルカリ)など多数
12
プログラマーから起業家へ• バックエンドBack end(Webサービスを提供しているコンピュータのこと)の機能を提供するための言語を習得する(⇔フロントエンドfront end)• 実際にサービスを提供してみる
• ビギナーとして仕事を経験する• 慈善事業にボランティアとして参加する。• 地元の飲食店や学校のホームページの仕事を請け負う。• 自分を紹介するホームページ(ポートフォリオウェブサイトページportfolio website)を作る、など
• 情熱を傾けるべきテーマを持つ• 共同創業者Co-founderを見つける• サービス開始前に、いくらでも試行する• 財政的セーフティネットを持つ
参考:Martin Ramsin. Learning To Program: From Web Developer To Entrepreneur. 5/Sep/2016https://careerfoundry.com/en/blog/web-development/learning-to-program/
13
プログラミングを学ぶために•オンラインの無料プログラミングチュートリアルを試してみて、プログラミングを好きになれるか試してみる。
•毎日プログラミングを練習する。
•目標を持つ。
•メンターを持つ。
参考:Martin Ramsin. Learn To Code, A Web Developer's Guide. 26/Oct/2016https://www.careerfoundry.com/en/blog/web-development/learn-to-code/
14
プログラミング:何から始める?
• Webアプリ• Webブラウザ(Chromeとか、Safariとか)をユーザーインターフェースとする。
• ブラウザとサーバーとで機能分担をする。• ブラウザ:
• 入力・出力
• ブラウザ画面上への画像、テキスト、ボタンなどの描画
• サーバー:• 記録・検索
• 画面に表示するものの指定
15
Webアプリの作成ステップ(例)
• Webアプリケーションの仕組みを知ろう
•作りたいWebアプリを決めよう(→次スライド)
•開発環境を構築しよう
• PHPとHTMLの連携を学ぼう• サーバー側の言語は他にJava, Perl, Ruby, Python, Node.jsなど
• PHPとMySQL(データベース)の連携を学ぼう
• Webアプリっぽく改良してみよう
•セキュリティを強化しよう
16
参考:初心者がWebアプリを開発する7STEP(「ココカラエンジニア」より)https://se-shine.net/wepapp-7step-launch/
作りたいものの例を真似する
•おみくじ
•じゃんけん
•メモ帳
•掲示板
• SNS, etc
17
検索して例を探す。
大学・学部・学科選択のために
•アプローチ1:できるだけ東京に近い大学の情報系の学科を選ぶ• 千葉県でも可• いろいろな機会が多い
• セミナー、勉強会など
•アプローチ2:実社会の、具体的な問題に興味を持つ→その問題に近い学科に入る→問題解決のためにプログラミングを利用する• プログラミングは自分で勉強する• 実際には、どんな大学でもプログラミングの講義・実習を用意しているはず
18