S05 t1 midorikawa

Preview:

Citation preview

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

2

※ 注意

この発表は感想です

3

もくじ

自己紹介

これまでの勉強の流れ

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

INPUT

OUTPUT

まとめ

4

自己紹介

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

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

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

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

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

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

Python歴 : 3ヶ月弱

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

5

初期スキル

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

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

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

6

現状のスキル

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

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

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

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

7

もくじ

これまでの勉強の流れ

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

INPUT

OUTPUT

自己紹介

まとめ

8

環境

OS : Ubuntu 15.04

Python:Python3.4

IDE : Pycharm-Community-4.5.3

9

これまでの学習の流れ

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

基本的な構文

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

ネットワーク機器

Linux+

ラズパイ電子工作

webアプリ

問題集

10

Pythonを使ってみた感想

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

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

11

もくじ

これまでの勉強の流れ

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

INPUT

OUTPUT

自己紹介

まとめ

12

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

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

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

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

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

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

13

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

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

Ipythonでコードを試してみる

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

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

14

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

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

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

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

15

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

INPUTとOUTPUTのバランスが大切

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

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

16

もくじ

自己紹介

これまでの勉強の流れ

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

INPUT

OUTPUT

まとめ

自己紹介

17

Python勉強録 〜INPUT編〜

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

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

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

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

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

時間がかかる

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

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

18

INPUT : 勉強会に出席する

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

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

良かった

22

INPUT : 何からはじめよう?

Pythonスタートブック

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

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

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

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

良かった

ものたりない

23

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

みんなのPython 第3版

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

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

● Python3に完全対応

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

良かった

ものたりない

24

Pycharm、virtualenvとか

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

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

25

コマンドが理解不能

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

26

INPUT : Linuxコマンド

新しいLinuxの教科書

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

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

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

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

良かった

ものたりない

27

Webアプリ作ってみたい!

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

28

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

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

29

INPUT : Webアプリの基礎

みんなのPython Webアプリ編

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

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

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

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

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

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

良かった

ものたりない

30

もくじ

これまでの勉強の流れ

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

INPUT

OUTPUT

自己紹介

まとめ

Python勉強録 〜OUTPUT編〜

問題集 : Pythonに慣れる

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

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

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

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

32

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

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

33

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

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

● 30問ほどの問題集

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

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

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

CodeKataとは

CodeKata

良かった

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

34

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

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

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

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

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

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

35

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

36

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

Raspberry Pi × 電子工作

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

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

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

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

● いろいろ作りたくなる

良かった

37

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

自分の業務を自動化する

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

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

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

作ったもの

良かった

38

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

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

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

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

39

もくじ

これまでの勉強の流れ

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

INPUT

OUTPUT

まとめ

自己紹介

40

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

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

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

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

●Raspberry Piの電子工作教室

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

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

41

これからやりたいこと

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

●サーバー構築

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

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

42

最後に

学ぶこと自体を楽しむ