39
ゼロから始めた私のPython勉強録

S05 t1 midorikawa

Embed Size (px)

Citation preview

Page 1: S05 t1 midorikawa

ゼロから始めた私のPython勉強録

Page 2: S05 t1 midorikawa

2

※ 注意

この発表は感想です

Page 3: S05 t1 midorikawa

3

もくじ

自己紹介

これまでの勉強の流れ

勉強してきた中で気がついたこと

INPUT

OUTPUT

まとめ

Page 4: S05 t1 midorikawa

4

自己紹介

名前 : 緑川 京太(みどりかわ けいた)

生年月日 : 1990年12月25日 (24歳)

経歴 :● 東京農業大学 応用生物科学部

(乳酸菌の遺伝子いじくってました)

● 大学卒業後すぐに友人と起業→失敗(^^;)

● 今年の7月末に株式会社リーディングエッジ社に入社現在、Pythonエンジニアを育てるという方針の元、Pythonを勉強中

Python歴 : 3ヶ月弱

https://www.facebook.com/keita.midorikawa.35

Page 5: S05 t1 midorikawa

5

初期スキル

Officeソフトが扱えて、HTMLをほんのちょっと知ってる

OSはWindowsしか使ったことがない

プログラミングの経験はゼロ(そもそもPythonを知らなかった)

Page 6: S05 t1 midorikawa

6

現状のスキル

基本的な構文は理解している

CGIで簡単なWebアプリを作ることができる

Linuxの基本的なコマンドは理解している

Yamahaのネットワーク機器を多少触れる

Page 7: S05 t1 midorikawa

7

もくじ

これまでの勉強の流れ

勉強してきた中で気がついたこと

INPUT

OUTPUT

自己紹介

まとめ

Page 8: S05 t1 midorikawa

8

環境

OS : Ubuntu 15.04

Python:Python3.4

IDE : Pycharm-Community-4.5.3

Page 9: S05 t1 midorikawa

9

これまでの学習の流れ

スタート 1ヶ月 2ヶ月 3ヶ月

基本的な構文

業務の関係でPythonから離れる

ネットワーク機器

Linux+

ラズパイ電子工作

webアプリ

問題集

Page 10: S05 t1 midorikawa

10

Pythonを使ってみた感想

シンプルで理解しやすい便利なライブラリが揃ってるできることの幅が広い

2系と3系の乗り換え時期→情報が錯綜してる良質な情報はいつも英語

Page 11: S05 t1 midorikawa

11

もくじ

これまでの勉強の流れ

勉強をしてきた中で気がついたこと

INPUT

OUTPUT

自己紹介

まとめ

Page 12: S05 t1 midorikawa

12

勉強してきた中で気がついたこと

周辺知識を覚えるほうが時間がかかった

Pythonの環境を作るLinuxコマンド

ネットワーク機器のテストツールネットワーク、設定コマンド

Webアプリサーバー、DB、SQL、HTML、JS、フレームワーク

ラズパイ電子工作Linux、電気回路

Page 13: S05 t1 midorikawa

13

勉強してきた中で気がついたこと

わからないときは検討より検証

Ipythonでコードを試してみる

ユニットテストを書いてみる

初心者レベルだと考えてもわからない事のほうが多い

Page 14: S05 t1 midorikawa

14

勉強してきた中で気がついたこと

「知っている」と「使える」は全く別物

頭では理解していても、手が動かない

コードは読めるが、自分では書けない

Page 15: S05 t1 midorikawa

15

勉強してきた中で気がついたこと

INPUTとOUTPUTのバランスが大切

INPUT : 本、勉強会、ネットの情報、人に聞くINPUTが足りないと…・ 新しい知識が入ってこなくなる・ 本や、ネット上の情報が理解できない

OUTPUT : 問題を解く、電子工作、ツールの制作OUTPUTが足りないと…・ 知っているが使えない状態に陥る・ だんだんモチベーションが下がってくる

Page 16: S05 t1 midorikawa

16

もくじ

自己紹介

これまでの勉強の流れ

勉強してきた中で気がついたこと

INPUT

OUTPUT

まとめ

自己紹介

Page 17: S05 t1 midorikawa

17

Python勉強録 〜INPUT編〜

人・勉強会 : 新しい情報や仲間を得る新しい情報、概念的な知識、ノウハウなどを知るには◎

調べてもわからないとき、質問できる人がいると効率がよい

授業形式でない限り、体系的に学ぶのは難しい

本 : 体系的な知識を習得する細かい部分まで自分のペースで学習できる

体系的な知識をつけたいときには◎

時間がかかる

ネット : ピンポイントで調べるピンポイントでわからないことろを調べるのに向いている

古い・間違っている情報も多い

Page 18: S05 t1 midorikawa

18

INPUT : 勉強会に出席する

●仲間や先生ができた● 時間的コストが安い●モチベーションが上がる

※細かいことは自分で勉強!

良かった

Page 19: S05 t1 midorikawa

22

INPUT : 何からはじめよう?

Pythonスタートブック

● 初心者でも1週間あれば読みきれる。

● データ型、メソッド、クラスなどの説明が丁寧。

● Python3でも動くコードが書いてある。

● 経験者にとっては、少々物足りないかも● まだ自分でコードを書けるようにはならない

良かった

ものたりない

Page 20: S05 t1 midorikawa

23

INPUT : もう少し詳しく構文を勉強したい!

みんなのPython 第3版

● 基本構文、標準ライブラリ、GUIなどを幅広くカバー

● 簡易的なリファレンスとしても使える● 図説やサンプルコードが豊富でわかりやすい

● Python3に完全対応

● クラスメソッドや、デコレータとかの説明も欲しかった

良かった

ものたりない

Page 21: S05 t1 midorikawa

24

Pycharm、virtualenvとか

インストールして環境を作りたい!

pipっていうのでパッケージが落とせるらしい!

Page 22: S05 t1 midorikawa

25

コマンドが理解不能

サイトによってコマンドが違ってたりする...

Page 23: S05 t1 midorikawa

26

INPUT : Linuxコマンド

新しいLinuxの教科書

● Linux、シェルとはなにか、という本当の基礎から始まる

● 環境変数、シェル変数、設定ファイルなど、初心者が理解しにくい概念の説明が丁寧

● ひたすらコマンドラインの説明しか載っていない

● サーバー関連の解説はない

良かった

ものたりない

Page 24: S05 t1 midorikawa

27

Webアプリ作ってみたい!

フレームワークのチュートリアルやってみよう!

Page 25: S05 t1 midorikawa

28

SQL? ORM? MVC?テンプレート?スキーマ?

わからない単語が多すぎて死亡...

Page 26: S05 t1 midorikawa

29

INPUT : Webアプリの基礎

みんなのPython Webアプリ編

● Webアプリとは何かという根本的な部分から説明

● DB、ORMなどの必要性がよくわかる

● フレームワークの有用性がよくわかる

● cgiでいろいろ作りながら学習することができる

http://coreblog.org/ats/stuff/minpy_web/● 2系のコードで書いてあるため、読み替えが必要

● 抽象クラスとか、クラスメソッドとかをサラッと使ってくる

良かった

ものたりない

Page 27: S05 t1 midorikawa

30

もくじ

これまでの勉強の流れ

勉強してきた中で気がついたこと

INPUT

OUTPUT

自己紹介

まとめ

Page 28: S05 t1 midorikawa

Python勉強録 〜OUTPUT編〜

問題集 : Pythonに慣れる

基本的なデータ型の使い方に慣れる

クラスやテストの使いどころが分かってくる

電子工作 : 楽しみながら学習するモノが実際にできるのは楽しい!

ツールやアプリ:実際に役に立つものを作る自分が作ったものが役に立つ感動

Page 29: S05 t1 midorikawa

32

本は読んだけど、自分で書ける気しないよ!

作りたいものを作れって言われても...

Page 30: S05 t1 midorikawa

33

OUTPUT : 自分で考えて書けるようになりたい!

Kataとは空手の型の意味。らしい。。。※画像はイメージです

● 30問ほどの問題集

● 基本的な問題から、少しひねったものまで

● 構文やメソッドの使い方を実践的に覚えられる● クラスやユニットテスト、コメントの必要性がよくわかる● 自分のコードをリファインすると新たな発見がある

※アルゴリズム、クラス・関数の設計は自分で考える!

CodeKataとは

CodeKata

良かった

https://github.com/bols-blue/CodeKata

Page 31: S05 t1 midorikawa

34

OUTPUT : 自分で考えて書けるようになりたい!

● FizzBuzz1から順番に数を表示する。その数が3で割り切れるなら"Fizz"、5で割り切れるなら"Buzz"、両方で割り切れるなら"FizzBuzz"と表示する。

● 英語しりとりプログラムあらかじめ用意した「辞書ファイル」に基づいて、ユーザーとしりとりをする対話型プログラムを作成せよ。

● ハノイの塔与えられたn枚の円盤を用いたハノイの塔を再帰的アルゴリズムを用いて解くプログラムを作成せよ。

● シェルピンスキーのギャスケットフラクタル図形の一種、シェルピンスキーのギャスケットを作図せよ。

● 有理化するプログラム√a/√bを有理化せよ。 ただし、1<=a<=100、2<=b<=100、aとbはそれぞれ整数とする。

Page 32: S05 t1 midorikawa

35

モチベーションを保ちたい!

Page 33: S05 t1 midorikawa

36

OUTPUT : 見た目にもインパクトがほしい!

Raspberry Pi × 電子工作

Raspberry Piとは● 学習用に作られた名刺サイズのLinuxマシン

● 電子工作、サーバー、デスクトップいろいろ使える

● 動く・光る = 楽しい! = モチベーションUP

● Linuxコマンドや設定の練習台にも使える

● いろいろ作りたくなる

良かった

Page 34: S05 t1 midorikawa

37

OUTPUT : 実際に業務で役に立つものを作る

自分の業務を自動化する

● 業務が格段に正確かつ高速になった感動● モチベーションが上がる● ドキュメントを残しておくことの大切さを知る(笑)

1. テストを実行し、結果をexcelに出力する

2. 機器にコンフィグを流し込んで、設定を照合する

作ったもの

良かった

Page 35: S05 t1 midorikawa

38

OUTPUT : Webアプリを作ってみる

作ったコードをWebアプリにしてみる

● Webアプリで使用するライブラリなどに慣れることができる

● ブラウザで自分の作ったものが動くことが嬉しい

Page 36: S05 t1 midorikawa

39

もくじ

これまでの勉強の流れ

勉強してきた中で気がついたこと

INPUT

OUTPUT

まとめ

自己紹介

Page 37: S05 t1 midorikawa

40

こんなのあれば良いいなぁ... |ω・`)チラ

●Pythonの開発環境を作るための勉強会

●「Pycharmを使いたおす」みたいな勉強会

●webアプリケーションフレームワークを基礎から解説してくれる本

●Raspberry Piの電子工作教室

●エンジニアのための速読英単語みたいなの

あと最近webアプリの勉強が進まなくて困ってます。。。

Page 38: S05 t1 midorikawa

41

これからやりたいこと

●Webアプリケーションフレームワーク(Pyramid,Django)

●サーバー構築

●英語(documentationをスラスラ読めるぐらいにはなりたい)

●もっと本格的な電子工作

Page 39: S05 t1 midorikawa

42

最後に

学ぶこと自体を楽しむ