正しいプログラミング言語の覚え方
TRANSCRIPT
![Page 1: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/1.jpg)
正しい プログラミング言語
の覚え方2015/10/24
PyLadies 一周年記念パーティー 加藤公一
@hamukazu
![Page 2: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/2.jpg)
自己紹介加藤公一(きみかず)
シルバーエッグ・テクノロジー(株)チーフサイエンティスト
レコメンデーションエンジンの中の人、機械学習アルゴリズム等の設計
博士(情報理工学) 数学とコンピュータサイエンスの人
Python歴、機械学習歴:ともに3年
Twitter: @hamukazu
趣味:筋トレ 得意な種目:スクワット
![Page 4: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/4.jpg)
自分はどのようにPythonを学んだか
![Page 6: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/6.jpg)
理由当時、爆安だった
(この値段での販売は終了しています)
![Page 7: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/7.jpg)
次にやったこと• コード書く(つまり仕事)
• Python本体のソースコード読む
• NumPyとSciPy覚える
• PyCon APAC 2013出席
半年やるとかなりわかった気がしてくる
![Page 8: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/8.jpg)
ソースを読んだ動機• リストの操作を多用する仕事
• リストの連結、要素の挿入・削除のコストってどうなの?
計算量オーダー知りたいよね。
だってサイエンティストだもの♡
→ドキュメントに書いてない
→しょうがないからソースコードを読む
![Page 9: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/9.jpg)
その次にやったこと
ブログ書いた
![Page 10: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/10.jpg)
すると…
![Page 11: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/11.jpg)
ありがたいご指摘を受けるマ サ カ リ
![Page 12: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/12.jpg)
まとめ プログラミング言語を学ぶには• オライリー本を読む(できれば原著で)
• コードを書く
• 言語本体のソースコードを読む
• ブログを書く(発信する)
• マサカリを受ける
![Page 13: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/13.jpg)
すいません、これは 「すでにプログラミングをできる人が新しいプログラミング言語を身につけるには」
という話でした。
![Page 14: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/14.jpg)
さてここから本題
![Page 15: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/15.jpg)
プログラミング初心者にとってのプログラミング言語の覚え方
![Page 16: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/16.jpg)
経験に照らし合わせよう
![Page 17: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/17.jpg)
最初にプログラミング覚えたのはいつだっただろうか…
![Page 18: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/18.jpg)
あれは今から30年以上前 小学校3年の時
![Page 20: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/20.jpg)
当時のパソコンの遊び方パソコン雑誌を買う
→ 掲載しているゲームのソースコードを入力する
→ 動かす
→ 楽しい
(もちろんコピペなんてできません)
![Page 21: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/21.jpg)
当時の教科書
撮影協力:東京理科大学近代科学資料館
![Page 22: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/22.jpg)
そしてこんな記事
![Page 23: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/23.jpg)
自分流プログラミング写経のすすめ
• とりあえずコードを見ながら同じコードをタイピングする
• コピペとは大きく違う
• 最初は意味がわからないが、段々自然に意味を意識する
• 入力後実行してもどうせ動かない。
• かならずタイピングミス
• むしろここからが勝負
• デバッグのときこそ論理的思考力が大事
• 問題の切り分け・再現性・分析
![Page 24: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/24.jpg)
ちなみに当時の時代背景
• パソコンが家にあるのはマニア
• プログラミングができるのは、ヤバい人
• 近寄っちゃいけない
• そして連続幼女誘拐殺人事件→オタクバッシング
![Page 25: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/25.jpg)
まとめ
• プログラミング写経大事
• 迫害に耐える強い心大事
• エディタはEmacs
![Page 26: 正しいプログラミング言語の覚え方](https://reader035.vdocuments.net/reader035/viewer/2022081604/587790511a28ab0f778b5047/html5/thumbnails/26.jpg)
以上 ただの自分語り&おっさんホイホイ
でした