nikkie-ftnextの日記

イベントレポートや読書メモを発信

イベントレポート | 独学プログラマーとして成功するには、何が必要か? #独学プログラマー #独プロ

はじめに

いつも心は虹色に! nikkieです。
ひと月ほど前ですが、独学プログラマーの著者トークイベントに参加してきました。
このブログは、7/11のstapyのLTと連動しています。

イベントの概要

6/18に池袋のジュンク堂で開かれたトークイベントです。
訳者清水川さんブログ: Cory来日イベント!『独学プログラマー』 1万5000部突破!! — 清水川Web
「独学プログラマーとして成功するには、何が必要か?」と題して、本の中を振り返りながらトークが進んでいきました。

イベントメモ

感想や補足情報は脚注として入れています。
長くなっていますので、興味のある箇所をご確認ください

日本でたいへん売れているとのこと(紙で1万部以上)→コーリーさん来日が実現
司会は編集の田島さん(日経BP)

成功するには?
日々成長、モチベーションを保つには?、その先に成功

読み切ることを狙って書かれた

登壇者紹介

コーリーさん

  • カリフォルニア州ベニスにいる SnapChat本社がある(ベンチャータウン)
  • 水曜日に京都へ 初来日 日本でよかった点: Food メイドカフェ(すでに2回行った)
  • 政治学科卒業
  • 就職できず、プログラミングを独学で勉強(興味はもともとあった)
  • ブログ、本、コースを駆使
  • 本を書くことで他の人(プログラマになりたい人たち)を手伝う、自分の学んだことの体系化
  • 本のゴール: プロのプログラマへのロードマップを提供

  • 清水川さん: 高校からプログラミング Python15年(2003年~) PythonBootCamp

  • 新木さん: Web開発 大学の研究でプログラミングを始めた 今回通訳1

    • 文系 -> 理転(カナダの大学)
  • なぜ黒い表紙?

    • デザイン会社に発注。芸術センスがないのでおまかせした
  • 日本語版を見て

    • much better than my cover Instagramアカウントで使っている
  • 何カ国で?

    • 6 languages: 日英のほか、ポーランド語、ロシア語、韓国、中国
  • 清水川さん率直な感想

    • 本をレビューして出版するかどうか判断するという話が来た
    • 教えるという立場で面白そうと思った
    • Pythonのインストールから始める本は多い 似た本でなければいいな -> プログラミングだけでなく、心構え・取り組み方
    • 「人生の中でプログラミングを使ってどう取り組んでいくのか」
    • 2001 Pythonプログラミング作法 に似た本
  • 新木さんJoinの経緯

    • ちょっと助けになるかな

まとめ: いい本があり、見極めていただき、訳していただいた

コーリーさんは今何をしているか

  • Self-Taught Media(出版社)を創業
    • 独プロが最初の製品
    • 次が50のビデオからなるオンラインコースを作成中(独プロがもと)
      • 視覚的に見せたいものがたくさんあったため
  • 独学のための本やコースを用意していきたい

  • 独学へのこだわり

    • 自分の苦労をもとに体系化して共有したい
    • オンラインコミュニティ FBコミュニティ 45000人 活発 サポートしていきたい(是非参加してね)
  • 独学であったとしても支援してもらえるコミュニティは大事か(清水川さんへ)

    • OSSのコミュニティ コードを使ってもらって嬉しい、褒めてもらえば嬉しい、フィードバックもらっても嬉しい
    • まず公開する(共有する) 互いのベネフィットを高める
    • Q&Aサイトや勉強会に行って教えてもらう オンラインとオフラインを使い分けてコミュニティを使っていくといいのでは

なぜプログラミングなのか、なぜPythonなのか

  • ソフトウェアエンジニアは魅力的
    • 給料がよい、楽しい、挑戦的
    • 仕事をしていて退屈を感じたことはない
  • ソフトウェアエンジニアになりたくなくてもプログラミングを学ぶのは大事
    • プログラミングを学ぶことで考えていることを明確にできる
    • 退屈な仕事を自動化できる
  • Python

    • 読みやすく理解しやすい 入門者にオススメ
    • 作ったGuideさん プログラムは書くことよりも読まれることのほうが多い
      • Pythonは読みやすさに力を入れている
  • 執筆するにあたってPythonにすることは明確。自分の道の共有なので、一番使ってきた言語を

日本におけるPythonの状況: 清水川さん

  • 流行っている
    • 2003年はPythonの技術書を探すのが大変だった
    • 今乗っかると勉強しやすい
  • Pythonはオールラウンド (JavaRubyもオールラウンド)
    • Webサーバ、機械学習、テキスト処理、IoT
    • Pythonが苦手な分野は別の言語になる

独学プログラマーになるために必要な要素

  • プログラミングの書き方
  • プログラミングパラダイム(=考え方) オブジェクト指向(絶対に学ぶべき)
  • プログラミングツール 正規表現コマンドライン
  • コンピュータサイエンス データ構造 <- デザインパターンはここに入る

  • 広い分野に渡る内容構成にしたのはなぜ?

    • 自分の経験から情報が散らばっていた(ちょっとずつしかない)のはフラストレーション
      • プログラミングの話だけで、学び方や今後どうするかは書かれていない
  • 就職の仕方、働き方を第5部に盛り込んだ理由は?

    • 自分が仕事をしているときに困ったことをまとめ、次の人が困らないように2
    • 詐欺師症候群(自分の実力を常に疑ってしまう) 外から見てもしっかりできている。本人は学び足りないと感じている(スタンフォードの友人の話)
  • 一冊の本にこれだけまとまっている点について(清水川さん)

    • どのパートも1冊の本として存在する
    • プログラミングに興味のある人に複数の分野を示す入り口となる
      • 別の本に進む入り口としても読める

コーリーさんおすすめの本

  • 達人プログラマー3 (日本語では新装版が出たばかり)
    • 一番オススメしたい
    • スキルだけを上げるだけでなく、いろいろな話を包括的に書いている
    • こういうふるまいの人が達人というエッセイ集(清水川さん)
  • 下記2つは読んでみて楽しかった
  • 退屈なことはPythonにやらせよう4
    • プログラミングで自動化すると便利という本。仕事で使うためにPythonを覚えよう(清水川さん)
  • Think Python: コンピュータサイエンティストのように考えてみよう5 (PDF)
  • プログラミングの本ではないが、プログラミングのスキルを高める本(2冊)
  • 才能を伸ばすシンプルな本 The Talent Code6
    • 才能は生まれつきではないことを教えてくれる本
    • やりたいことがあればそれを習得できることを教えてくれる
  • 習得への情熱 チェスから武術へ7
    • チェスの天才がどうやって学びができているかを体系的に教えている
    • 学びについて学べる

独学プログラマーのメリットとデメリット

  • メリット
    • 自分自身で方向性を決めて学習という姿勢を強化できる
      • 自分で学ぶ姿勢は働いていれば必ず役に立つ
    • 大学へ行く費用が高い(アメリカでは特に顕著)
      • 400-500万のローンを抱えるのが社会問題化
      • 大学では不必要なコースがある。独学は必要なものを自分で考えることで短縮できる(効率がいい)
  • デメリット
    • 就職でデメリットになりうるか
      • 一般的な会社の就職基準: 4年制大学の学位 -> アメリカでは変わってきた
      • 学位を持っているかどうかで面接に進めるか決まるところはある。大きい会社に行きたいなら必要(大学を出ているかという観点)BeProud社は今プログラムを書けるのかを見る(清水川さん)
      • (-> 本の中の面接のハックにもつながる)

独学プログラマーとして成功するには Summary

  • 一番の秘訣: 自分で何らかのプロジェクトに関わること
    • ゲームやWebなどやりたいことをプログラミングで達成していった「可能な限り多くのプロジェクト」
    • やりたいと思っているプロジェクトを遂行する
    • Always work on project

さらに4つオススメ8

  • メンターを見つける やっていることにアドバイスをくれる
  • コードレビュー コードにアドバイスをもらう
  • GitHubで興味のあるプロジェクトのコードを読む fully understand 人のいいところを盗みまくる
  • ペアプロ more-experienced いいものを人からもらう

追加

  • 複数の言語を同時に学ばない。初学者は一つに絞る(一つの基礎を固める)

質疑

  • 上級者にも進められる本か?訳者は学びがあったか

    • 基本的には入門者向けの本 グループには小学校4年生もいる
    • (清水川さん)文法以外のところ。徹底的にやりきる。先の一つの言語をやりきる。面談をやりきる。やろうと思ったことにフォーカスするのは有用
    • 読み切れることが大事。難しいところにこだわらずに
  • 初学者が中級者になったと感じるポイントは?9

    • 興味を持ったもの、面白いものと思ったものを自分だけで作れる
    • 人に教えることができた時。うまく説明ができる。(清水川さん)

感想

あっという間の時間でした。独学のモチベーションが高まるお話ばかりでした。
いただいたサインです。コーリーさんの好きな言葉だそうで、独学の身には力強いです。

https://raw.githubusercontent.com/ftnext/2018_LTslides/develop/stapy_July_self_taught/assets/self-taught-sign.jpg

今回のイベントの参加者・関係者の皆さま、どうもありがとうございました。

以下、脚注として入れた感想/参考情報です。


  1. 新木さんの通訳が今回のイベントの肝だったと思います。通訳ありがとうございました。お疲れさまでした。

  2. この姿勢がすばらしいと思いますし、自分もそうありたいなと思います。

  3. 新装版 達人プログラマー 職人から名匠への道

  4. 退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング英語 公開版

  5. Think Python 2nd Edition (PDF)日本語版 初版訳?

  6. The Talent Code: Greatness Isn’t Born. It’s Grown. Here’s How. (2009)、邦訳: 才能を伸ばすシンプルな本

  7. 習得への情熱―チェスから武術へ―:上達するための、僕の意識的学習法

  8. コーリーさんは先に「ブログ、本、コースを駆使」して独学したと言っていましたが、人(コミュニティ)の力も活用している印象です。

  9. この質問の答えが聞けたのはすごくよかったです。質問者の方、ありがとうございました。