SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
僕が最初に
Perlを学んだ方法
尾形 鉄次 (OGATA Tetsuji)
Twitter: @xtetsuji
2013/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: $sumn";
少しずつ成長させる
最初の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
やり方はいくらでもある
ご清聴
ありがとうございました

Weitere ähnliche Inhalte

Andere mochten auch

プロセスの永続化でコスト削減 #perlbeginners
プロセスの永続化でコスト削減 #perlbeginnersプロセスの永続化でコスト削減 #perlbeginners
プロセスの永続化でコスト削減 #perlbeginners鉄次 尾形
 
Perlで生きる10年
Perlで生きる10年Perlで生きる10年
Perlで生きる10年鉄次 尾形
 
日本全国ぶらりPerl旅
日本全国ぶらりPerl旅日本全国ぶらりPerl旅
日本全国ぶらりPerl旅鉄次 尾形
 
スケジュールに意志を込める〜納期と品質、立ちはだかる優先度。 その時君は何をすべきか。〜
スケジュールに意志を込める〜納期と品質、立ちはだかる優先度。 その時君は何をすべきか。〜スケジュールに意志を込める〜納期と品質、立ちはだかる優先度。 その時君は何をすべきか。〜
スケジュールに意志を込める〜納期と品質、立ちはだかる優先度。 その時君は何をすべきか。〜Syun Fuji
 
情報収集について
情報収集について 情報収集について
情報収集について Mamiko Tsuda
 
YAPC::KANSAI 2017 LT
YAPC::KANSAI 2017 LTYAPC::KANSAI 2017 LT
YAPC::KANSAI 2017 LTmaka2donzoko
 
イベント駆動とノンブロッキング #hokkaidopm
イベント駆動とノンブロッキング #hokkaidopmイベント駆動とノンブロッキング #hokkaidopm
イベント駆動とノンブロッキング #hokkaidopm鉄次 尾形
 
First step of Performance Tuning
First step of Performance TuningFirst step of Performance Tuning
First step of Performance Tuningrisou
 
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜鉄次 尾形
 
2017年春のPerl
2017年春のPerl2017年春のPerl
2017年春のPerlcharsbar
 

Andere mochten auch (10)

プロセスの永続化でコスト削減 #perlbeginners
プロセスの永続化でコスト削減 #perlbeginnersプロセスの永続化でコスト削減 #perlbeginners
プロセスの永続化でコスト削減 #perlbeginners
 
Perlで生きる10年
Perlで生きる10年Perlで生きる10年
Perlで生きる10年
 
日本全国ぶらりPerl旅
日本全国ぶらりPerl旅日本全国ぶらりPerl旅
日本全国ぶらりPerl旅
 
スケジュールに意志を込める〜納期と品質、立ちはだかる優先度。 その時君は何をすべきか。〜
スケジュールに意志を込める〜納期と品質、立ちはだかる優先度。 その時君は何をすべきか。〜スケジュールに意志を込める〜納期と品質、立ちはだかる優先度。 その時君は何をすべきか。〜
スケジュールに意志を込める〜納期と品質、立ちはだかる優先度。 その時君は何をすべきか。〜
 
情報収集について
情報収集について 情報収集について
情報収集について
 
YAPC::KANSAI 2017 LT
YAPC::KANSAI 2017 LTYAPC::KANSAI 2017 LT
YAPC::KANSAI 2017 LT
 
イベント駆動とノンブロッキング #hokkaidopm
イベント駆動とノンブロッキング #hokkaidopmイベント駆動とノンブロッキング #hokkaidopm
イベント駆動とノンブロッキング #hokkaidopm
 
First step of Performance Tuning
First step of Performance TuningFirst step of Performance Tuning
First step of Performance Tuning
 
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜
 
2017年春のPerl
2017年春のPerl2017年春のPerl
2017年春のPerl
 

Mehr von 鉄次 尾形

Perl入学式 2018年度の報告
Perl入学式 2018年度の報告Perl入学式 2018年度の報告
Perl入学式 2018年度の報告鉄次 尾形
 
【公開版】AWS基礎 for 新卒エンジニア
【公開版】AWS基礎 for 新卒エンジニア【公開版】AWS基礎 for 新卒エンジニア
【公開版】AWS基礎 for 新卒エンジニア鉄次 尾形
 
俺のこだわりデスクのその後
俺のこだわりデスクのその後俺のこだわりデスクのその後
俺のこだわりデスクのその後鉄次 尾形
 
WordPress 運用を支える Perl
WordPress 運用を支える PerlWordPress 運用を支える Perl
WordPress 運用を支える Perl鉄次 尾形
 
障害対応とその防止策
障害対応とその防止策障害対応とその防止策
障害対応とその防止策鉄次 尾形
 
働きやすい社内を目指す!二酸化炭素計測ツール
働きやすい社内を目指す!二酸化炭素計測ツール働きやすい社内を目指す!二酸化炭素計測ツール
働きやすい社内を目指す!二酸化炭素計測ツール鉄次 尾形
 
コードの動的生成のお話
コードの動的生成のお話コードの動的生成のお話
コードの動的生成のお話鉄次 尾形
 
三角関数の加法定理はなぜ難しいのか
三角関数の加法定理はなぜ難しいのか三角関数の加法定理はなぜ難しいのか
三角関数の加法定理はなぜ難しいのか鉄次 尾形
 
穏やかにファイルを削除する続き
穏やかにファイルを削除する続き穏やかにファイルを削除する続き
穏やかにファイルを削除する続き鉄次 尾形
 
穏やかにファイルを削除する
穏やかにファイルを削除する穏やかにファイルを削除する
穏やかにファイルを削除する鉄次 尾形
 
最近のメールまわりのお仕事のお話
最近のメールまわりのお仕事のお話最近のメールまわりのお仕事のお話
最近のメールまわりのお仕事のお話鉄次 尾形
 
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム   Gx#20再帰、漸化式、差分方程式とアルゴリズム   Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20鉄次 尾形
 
超小規模環境のMySQL #mysqlcasual
超小規模環境のMySQL #mysqlcasual超小規模環境のMySQL #mysqlcasual
超小規模環境のMySQL #mysqlcasual鉄次 尾形
 
mod_perlプログラマーがYAPCで語るレガシー開発論
mod_perlプログラマーがYAPCで語るレガシー開発論mod_perlプログラマーがYAPCで語るレガシー開発論
mod_perlプログラマーがYAPCで語るレガシー開発論鉄次 尾形
 
東京近郊のPerlコミュニティのご紹介 #lcs2015
東京近郊のPerlコミュニティのご紹介 #lcs2015東京近郊のPerlコミュニティのご紹介 #lcs2015
東京近郊のPerlコミュニティのご紹介 #lcs2015鉄次 尾形
 
4月16日だからFoursquare 位置情報とライフログ
4月16日だからFoursquare 位置情報とライフログ4月16日だからFoursquare 位置情報とライフログ
4月16日だからFoursquare 位置情報とライフログ鉄次 尾形
 
設定ファイルに使われそうなデータ形式
設定ファイルに使われそうなデータ形式設定ファイルに使われそうなデータ形式
設定ファイルに使われそうなデータ形式鉄次 尾形
 
ライフログ、時系列メモ
ライフログ、時系列メモライフログ、時系列メモ
ライフログ、時系列メモ鉄次 尾形
 
今に伝えるメールの技術 #yapcasia #yapcasiareject
今に伝えるメールの技術 #yapcasia #yapcasiareject今に伝えるメールの技術 #yapcasia #yapcasiareject
今に伝えるメールの技術 #yapcasia #yapcasiareject鉄次 尾形
 

Mehr von 鉄次 尾形 (20)

Perl入学式 2018年度の報告
Perl入学式 2018年度の報告Perl入学式 2018年度の報告
Perl入学式 2018年度の報告
 
【公開版】AWS基礎 for 新卒エンジニア
【公開版】AWS基礎 for 新卒エンジニア【公開版】AWS基礎 for 新卒エンジニア
【公開版】AWS基礎 for 新卒エンジニア
 
俺のこだわりデスクのその後
俺のこだわりデスクのその後俺のこだわりデスクのその後
俺のこだわりデスクのその後
 
Hokkaido.pmと7年
Hokkaido.pmと7年Hokkaido.pmと7年
Hokkaido.pmと7年
 
WordPress 運用を支える Perl
WordPress 運用を支える PerlWordPress 運用を支える Perl
WordPress 運用を支える Perl
 
障害対応とその防止策
障害対応とその防止策障害対応とその防止策
障害対応とその防止策
 
働きやすい社内を目指す!二酸化炭素計測ツール
働きやすい社内を目指す!二酸化炭素計測ツール働きやすい社内を目指す!二酸化炭素計測ツール
働きやすい社内を目指す!二酸化炭素計測ツール
 
コードの動的生成のお話
コードの動的生成のお話コードの動的生成のお話
コードの動的生成のお話
 
三角関数の加法定理はなぜ難しいのか
三角関数の加法定理はなぜ難しいのか三角関数の加法定理はなぜ難しいのか
三角関数の加法定理はなぜ難しいのか
 
穏やかにファイルを削除する続き
穏やかにファイルを削除する続き穏やかにファイルを削除する続き
穏やかにファイルを削除する続き
 
穏やかにファイルを削除する
穏やかにファイルを削除する穏やかにファイルを削除する
穏やかにファイルを削除する
 
最近のメールまわりのお仕事のお話
最近のメールまわりのお仕事のお話最近のメールまわりのお仕事のお話
最近のメールまわりのお仕事のお話
 
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム   Gx#20再帰、漸化式、差分方程式とアルゴリズム   Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20
 
超小規模環境のMySQL #mysqlcasual
超小規模環境のMySQL #mysqlcasual超小規模環境のMySQL #mysqlcasual
超小規模環境のMySQL #mysqlcasual
 
mod_perlプログラマーがYAPCで語るレガシー開発論
mod_perlプログラマーがYAPCで語るレガシー開発論mod_perlプログラマーがYAPCで語るレガシー開発論
mod_perlプログラマーがYAPCで語るレガシー開発論
 
東京近郊のPerlコミュニティのご紹介 #lcs2015
東京近郊のPerlコミュニティのご紹介 #lcs2015東京近郊のPerlコミュニティのご紹介 #lcs2015
東京近郊のPerlコミュニティのご紹介 #lcs2015
 
4月16日だからFoursquare 位置情報とライフログ
4月16日だからFoursquare 位置情報とライフログ4月16日だからFoursquare 位置情報とライフログ
4月16日だからFoursquare 位置情報とライフログ
 
設定ファイルに使われそうなデータ形式
設定ファイルに使われそうなデータ形式設定ファイルに使われそうなデータ形式
設定ファイルに使われそうなデータ形式
 
ライフログ、時系列メモ
ライフログ、時系列メモライフログ、時系列メモ
ライフログ、時系列メモ
 
今に伝えるメールの技術 #yapcasia #yapcasiareject
今に伝えるメールの技術 #yapcasia #yapcasiareject今に伝えるメールの技術 #yapcasia #yapcasiareject
今に伝えるメールの技術 #yapcasia #yapcasiareject
 

Kürzlich hochgeladen

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Kürzlich hochgeladen (9)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

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