僕が最初にperlを学んだ方法 #perlbeginners

35
僕が最初に Perlを学んだ方法 尾形 鉄次 (OGATA Tetsuji) Twitter: @xtetsuji 2013/7/23 PerlBeginners#9 基調講演

Upload: tetsuji-ogata

Post on 10-Jun-2015

1.327 views

Category:

Technology


2 download

DESCRIPTION

2013/07/25行われた PerlBeginners#9 にてトークした基調講演のスライドです。

TRANSCRIPT

Page 1: 僕が最初にPerlを学んだ方法 #perlbeginners

僕が最初にPerlを学んだ方法

尾形 鉄次 (OGATA Tetsuji)

Twitter: @xtetsuji2013/7/23 PerlBeginners#9 基調講演

Page 2: 僕が最初にPerlを学んだ方法 #perlbeginners

自己紹介

• 尾形 鉄次 (OGATA Tetsuji)

• Twitter: @xtetsuji

• Blog: http://post.tetsuji.jp/

• Perl歴は2003年から断続的に10年ほど

Page 3: 僕が最初にPerlを学んだ方法 #perlbeginners

今回コードの話はほぼしません

Page 4: 僕が最初にPerlを学んだ方法 #perlbeginners

タイトルについて

• 「僕が最初にPerlを学んだ方法」

• これだけだと、ただの僕の昔話になるので、その話題をしつつも、皆さんが今「最初にPerlを学ぶには」どうすればいいか、考えてみようと思います

Page 5: 僕が最初にPerlを学んだ方法 #perlbeginners

歴史と文化

• 本トークでは主にPerlの歴史や勉強法をメインに語りますが、個々の具体例にあまり踏み込まず、抽象的にPerlの文化に触れています

• 具体的な文化の話は他のトークに期待

Page 6: 僕が最初にPerlを学んだ方法 #perlbeginners

Perlとの出会いまでを振り返ってみる

Page 7: 僕が最初にPerlを学んだ方法 #perlbeginners

Perlとの出会い以前• 子供の頃はただのテレビゲームっ子

• 高校時代にMSX BASICが分からず

• 大学時代はWindowsからLinuxまで触ったけど、プログラミングは頭のいい人が書くものだと思って避けていた

Page 8: 僕が最初にPerlを学んだ方法 #perlbeginners

社会人になる• 学生時代に得たサーバ管理のスキルで食いつなごうと思って適当に入社する

• 先輩のスキルが高すぎて自分のサーバ管理スキルを使ってもらえなかった

• 雑用係になる

Page 9: 僕が最初にPerlを学んだ方法 #perlbeginners

雑用いろいろ

• 情シス的なこと

• 社内サーバの簡単な保守運用作業

• 商用サーバのログ監視や各種処理

Page 10: 僕が最初にPerlを学んだ方法 #perlbeginners

Perlとの出会い• 2003年に入社した今の会社の商用環境の大部分はPerlを採用していた

• 先輩開発者はみんなPerlを使っていた

• 高度なログ処理をシェルスクリプトの知識だけでできなくなったので、Perlを使ってみることにした

Page 11: 僕が最初にPerlを学んだ方法 #perlbeginners

Perlを選んだ理由•テキスト処理が得意

• 当時既にRubyやPHP等はあったけど、困ったときに先輩に質問できる環境

• 当時情報も多くて、インタプリターがどこにでもあった

Page 12: 僕が最初にPerlを学んだ方法 #perlbeginners

ログ処理から始める

#!/usr/bin/perl

use strict;use warnings;

while(<>) { print if /keyword/;}

最初はなんとか書いて動かしてみる

Page 13: 僕が最初にPerlを学んだ方法 #perlbeginners

ログ処理から始める#!/usr/bin/perl

use strict;use warnings;

my $count = 0;

while(<>) { $count++ if /keyword/;}

print "keyword count: $sum\n";

少しずつ成長させる

Page 14: 僕が最初にPerlを学んだ方法 #perlbeginners

最初のPerl勉強法• 習うより慣れろのアプローチ

• 当時ログ処理という「題材」があった

• 細部の不明な部分は「そう書くもの」として、後で理解出来るだろうと理解の後回しをした → 結構重要

Page 15: 僕が最初にPerlを学んだ方法 #perlbeginners

書籍を読もう

• 古い・間違っているネット情報も多い

• 真贋が分かるまで経験が必要

• 定評のある良書をまずは頑張って読む

• 書籍だと体系的な知識が身につく

Page 16: 僕が最初にPerlを学んだ方法 #perlbeginners

例えば

初めてのPerl(オライリー・ジャパン)

Page 17: 僕が最初にPerlを学んだ方法 #perlbeginners

最近だと

Perl徹底入門(Web+DB Press Plus) (技術評論社)

Page 18: 僕が最初にPerlを学んだ方法 #perlbeginners

学ぶ時に必要なもの

• 好奇心や好きという気持ち

• 信頼できて分かりやすい書籍等の情報

• 共に同じ言語を愛でる仲間

• アウトプットする心

Page 19: 僕が最初にPerlを学んだ方法 #perlbeginners

僕のその後

• 2004年頃からウェブアプリを書く

• 2006年頃から後輩に教える立場になる

• 2007年から毎年YAPC::Asia Tokyoに通う

• 2011年にHokkaido.pmにて人生初トーク

• 2012年にYAPC::Asiaの大舞台で初トーク

Page 20: 僕が最初にPerlを学んだ方法 #perlbeginners

今の初学者のPerl勉強法は?

Page 21: 僕が最初にPerlを学んだ方法 #perlbeginners

言語を選ぶ段階

• 好きになれそうな言語

• 周囲に頼れる人がいる言語

• 業務ややりたい事に必要な言語

Page 22: 僕が最初にPerlを学んだ方法 #perlbeginners

みなさんPerlは好きですか?

もしくは好きになれそうですか?

Page 23: 僕が最初にPerlを学んだ方法 #perlbeginners

Perlは好きになれる?• Perlは歴史が深く、「古いPerl」から「新しいPerl」まで様々 → 多様な文化

• 今の他言語から見ても「新しいPerl」は洗練されていて、しかも学習しやすい

• Perlを勉強するならまず「新しいPerl」を勉強しよう

Page 24: 僕が最初にPerlを学んだ方法 #perlbeginners

周囲に頼れる人はいる?• 学校や会社でPerlを採用している場合は最初の環境として有利

• 仲間がいなければこのPerlBeginnersの場で仲間を作りませんか? → 懇親会!

• 「Perl入学式」等最近活発な初学者向け勉強会も積極的に活用しましょう

Page 25: 僕が最初にPerlを学んだ方法 #perlbeginners

Perlは必要ですか?• 好き嫌いは別として業務でPerlが必要

• 嫌いであれば好きになれるといいな

• Perlの不得意な領域では別のプログラム言語が必要になることもある

• 最初のプログラムをPerlで学習も良い

Page 26: 僕が最初にPerlを学んだ方法 #perlbeginners

覚える事を選別する• 長かったPerl5.8時代の真っ只中だった

2003年当時も「色々なPerl」があった

• jperl、Perl4、Perl5.0.x、Perl5.6、…

• 「その時の最新」を使いながら必要に応じて「昔」の流儀や文化を勉強すれば良いのは、どの時代も同じはず

Page 27: 僕が最初にPerlを学んだ方法 #perlbeginners

他の言語をベースにPerlを勉強する場合

• 既にプログラムの素養があれば、Perlの流儀や文化を覚えて郷に入るのが近道

• Perl仲間を増やす→Perlはコミュニティ

• 各種勉強会、 YAPC、CPAN、等々…

•他の言語の良い物をPerlに持ち込もう

Page 28: 僕が最初にPerlを学んだ方法 #perlbeginners

アウトプット大事• インプット=書籍やネットでの学習も大事だけど、アウトプットも大事

• 理解したことを他の人に教える

• ブログを書いたりトークをする

•アウトプットをすると、インプットが増える法則

Page 29: 僕が最初にPerlを学んだ方法 #perlbeginners

外へ出てみよう• 地方.pm等の勉強会やYAPC::Asiaなどに参加してみる → 今日もそうですね

• 聴くだけでなく、仲間を増やしたり、自分の意見や疑問質問をぶつけてみる

• 人との交流は次の日以降の糧になる

Page 30: 僕が最初にPerlを学んだ方法 #perlbeginners

今後のPerlイベント• Perl入学式 (in大阪 8/10、in東京8/25) #3

• Hokkaido.pm (札幌 8/31)

• YAPC::Asia Tokyo 2013 (9/19~21)

• 次回のPerlBeginnersは9月開催予定?

• その他にも地方.pmも定期的に開催

Page 31: 僕が最初にPerlを学んだ方法 #perlbeginners

Perlを学ぶ絶好の機会• 初学者向け勉強会の充実

• 学びやすいツール群の充実

• YAPC::Asia Tokyoに参加してかつてない刺激を受けるのは絶対に良い体験

• 「ぼっち」の心配のある人、今日ここで仲間を作りましょう!

Page 32: 僕が最初にPerlを学んだ方法 #perlbeginners

Perlは言語であってコミュニティである

Page 33: 僕が最初にPerlを学んだ方法 #perlbeginners

何かを始めるのに遅すぎる事はない

Page 34: 僕が最初にPerlを学んだ方法 #perlbeginners

TIMTOWTDIやり方はいくらでもある

Page 35: 僕が最初にPerlを学んだ方法 #perlbeginners

ご清聴ありがとうございました