Upload
takeshi-akutsu
View
908
Download
0
Embed Size (px)
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
最後に
学ぶこと自体を楽しむ