僕が最初にperlを学んだ方法 #perlbeginners
DESCRIPTION
2013/07/25行われた PerlBeginners#9 にてトークした基調講演のスライドです。TRANSCRIPT
僕が最初にPerlを学んだ方法
尾形 鉄次 (OGATA Tetsuji)
Twitter: @xtetsuji2013/7/23 PerlBeginners#9 基調講演
自己紹介
• 尾形 鉄次 (OGATA Tetsuji)
• Twitter: @xtetsuji
• Blog: http://post.tetsuji.jp/
• Perl歴は2003年から断続的に10年ほど
今回コードの話はほぼしません
タイトルについて
• 「僕が最初にPerlを学んだ方法」
• これだけだと、ただの僕の昔話になるので、その話題をしつつも、皆さんが今「最初にPerlを学ぶには」どうすればいいか、考えてみようと思います
歴史と文化
• 本トークでは主にPerlの歴史や勉強法をメインに語りますが、個々の具体例にあまり踏み込まず、抽象的にPerlの文化に触れています
• 具体的な文化の話は他のトークに期待
Perlとの出会いまでを振り返ってみる
Perlとの出会い以前• 子供の頃はただのテレビゲームっ子
• 高校時代にMSX BASICが分からず
• 大学時代はWindowsからLinuxまで触ったけど、プログラミングは頭のいい人が書くものだと思って避けていた
社会人になる• 学生時代に得たサーバ管理のスキルで食いつなごうと思って適当に入社する
• 先輩のスキルが高すぎて自分のサーバ管理スキルを使ってもらえなかった
• 雑用係になる
雑用いろいろ
• 情シス的なこと
• 社内サーバの簡単な保守運用作業
• 商用サーバのログ監視や各種処理
Perlとの出会い• 2003年に入社した今の会社の商用環境の大部分はPerlを採用していた
• 先輩開発者はみんなPerlを使っていた
• 高度なログ処理をシェルスクリプトの知識だけでできなくなったので、Perlを使ってみることにした
Perlを選んだ理由•テキスト処理が得意
• 当時既にRubyやPHP等はあったけど、困ったときに先輩に質問できる環境
• 当時情報も多くて、インタプリターがどこにでもあった
ログ処理から始める
#!/usr/bin/perl
use strict;use warnings;
while(<>) { print if /keyword/;}
最初はなんとか書いて動かしてみる
ログ処理から始める#!/usr/bin/perl
use strict;use warnings;
my $count = 0;
while(<>) { $count++ if /keyword/;}
print "keyword count: $sum\n";
少しずつ成長させる
最初のPerl勉強法• 習うより慣れろのアプローチ
• 当時ログ処理という「題材」があった
• 細部の不明な部分は「そう書くもの」として、後で理解出来るだろうと理解の後回しをした → 結構重要
書籍を読もう
• 古い・間違っているネット情報も多い
• 真贋が分かるまで経験が必要
• 定評のある良書をまずは頑張って読む
• 書籍だと体系的な知識が身につく
例えば
初めてのPerl(オライリー・ジャパン)
最近だと
Perl徹底入門(Web+DB Press Plus) (技術評論社)
学ぶ時に必要なもの
• 好奇心や好きという気持ち
• 信頼できて分かりやすい書籍等の情報
• 共に同じ言語を愛でる仲間
• アウトプットする心
僕のその後
• 2004年頃からウェブアプリを書く
• 2006年頃から後輩に教える立場になる
• 2007年から毎年YAPC::Asia Tokyoに通う
• 2011年にHokkaido.pmにて人生初トーク
• 2012年にYAPC::Asiaの大舞台で初トーク
今の初学者のPerl勉強法は?
言語を選ぶ段階
• 好きになれそうな言語
• 周囲に頼れる人がいる言語
• 業務ややりたい事に必要な言語
みなさんPerlは好きですか?
もしくは好きになれそうですか?
Perlは好きになれる?• Perlは歴史が深く、「古いPerl」から「新しいPerl」まで様々 → 多様な文化
• 今の他言語から見ても「新しいPerl」は洗練されていて、しかも学習しやすい
• Perlを勉強するならまず「新しいPerl」を勉強しよう
周囲に頼れる人はいる?• 学校や会社でPerlを採用している場合は最初の環境として有利
• 仲間がいなければこのPerlBeginnersの場で仲間を作りませんか? → 懇親会!
• 「Perl入学式」等最近活発な初学者向け勉強会も積極的に活用しましょう
Perlは必要ですか?• 好き嫌いは別として業務でPerlが必要
• 嫌いであれば好きになれるといいな
• Perlの不得意な領域では別のプログラム言語が必要になることもある
• 最初のプログラムをPerlで学習も良い
覚える事を選別する• 長かったPerl5.8時代の真っ只中だった
2003年当時も「色々なPerl」があった
• jperl、Perl4、Perl5.0.x、Perl5.6、…
• 「その時の最新」を使いながら必要に応じて「昔」の流儀や文化を勉強すれば良いのは、どの時代も同じはず
他の言語をベースにPerlを勉強する場合
• 既にプログラムの素養があれば、Perlの流儀や文化を覚えて郷に入るのが近道
• Perl仲間を増やす→Perlはコミュニティ
• 各種勉強会、 YAPC、CPAN、等々…
•他の言語の良い物をPerlに持ち込もう
アウトプット大事• インプット=書籍やネットでの学習も大事だけど、アウトプットも大事
• 理解したことを他の人に教える
• ブログを書いたりトークをする
•アウトプットをすると、インプットが増える法則
外へ出てみよう• 地方.pm等の勉強会やYAPC::Asiaなどに参加してみる → 今日もそうですね
• 聴くだけでなく、仲間を増やしたり、自分の意見や疑問質問をぶつけてみる
• 人との交流は次の日以降の糧になる
今後のPerlイベント• Perl入学式 (in大阪 8/10、in東京8/25) #3
• Hokkaido.pm (札幌 8/31)
• YAPC::Asia Tokyo 2013 (9/19~21)
• 次回のPerlBeginnersは9月開催予定?
• その他にも地方.pmも定期的に開催
Perlを学ぶ絶好の機会• 初学者向け勉強会の充実
• 学びやすいツール群の充実
• YAPC::Asia Tokyoに参加してかつてない刺激を受けるのは絶対に良い体験
• 「ぼっち」の心配のある人、今日ここで仲間を作りましょう!
Perlは言語であってコミュニティである
何かを始めるのに遅すぎる事はない
TIMTOWTDIやり方はいくらでもある
ご清聴ありがとうございました