give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

RubyConf 2018で初英語LTしてきました 〜登壇の準備から当日話した英文まで全部公開します!〜

はじめに

以前もこのブログでお伝えしましたが、僕は2018年11月にロサンゼルス(LA)で開催されたRubyConf 2018に参加しました。

上記のエントリにも書いたとおり、僕は2日目に開催されたLT(ライトニングトーク)大会に参加して発表してきました。
LTではあるものの、これは僕にとって初めての英語の登壇でした。

このエントリでは、発表内容の詳細や発表に至るまでの準備、英語で発表するときのポイントなど、もしみなさんが英語で発表することになった際に役立つ情報をまとめてみます。

f:id:JunichiIto:20181217052625j:plain
RubyConf 2018でLT中の僕(Photo by Kazumi Karbowski)

LTに参加しようと思ったきっかけ

RubyConf 2018への参加費用は僕が勤めているソニックガーデンに補助してもらいました。
そのときに会社のメンバーから「じゃあ、来年はRubyConfに登壇することが補助の条件ね」と冗談半分(いや、全部本気?)で言われました。

ただし、「来年のRubyConfでは登壇者になってね」と、なかなかハードルの高い条件を付けられております(ひー😂)。

RubyConf 2018に行ってきます 〜初めての海外カンファレンス参加&海外一人旅に向けた準備について〜 - give IT a try

この話をブログに書いたところ、Rubyコミッタの笹田さんから「LTに出てみたらどう?」と提案されました。

最初は「えー、そんなの無理無理!!」と思ったんですが、RubyConfが近づくにつれ「アメリカに行く機会なんてそんなにないし、LTは現地で申し込めるみたいだし、いっちょ清水の舞台から飛び降りてみるか」と考えるようになりました。

LAに到着してから準備を開始

さて、なんとなく「LTをやってみよう」とは思っていたものの、10月〜11月はかなり多忙でまったく何も準備できないまま飛行機に飛び乗りました。
以下に登壇までの準備作業を書いていきますが、この準備はどれもLAに着いてから始めたものです。

過去の動画を見てLTの雰囲気を確認

RubyConfは毎年、すべての発表が動画としてYouTubeにアップされています。
LT大会の動画もYouTubeにアップされているので、まずこの動画をチェックしてどんな内容がLTとして発表されているのかをチェックしました。

RubyConf 2017: Lightning Talks - YouTube

この動画を見る限り結構「何を話しても自由」という印象で、中にはまったくRubyと関係ない話をしている人もいました。
なので、僕も自由にテーマを決めて問題なさそう、という確信を得ました。

登壇テーマは日本の講演内容を英語に焼き直すことに決定

英語で発表するのはいろいろハードルが高いので、ゼロからテーマを考えるよりも、過去に日本語で発表した内容を英語に直す方が簡単そうです。
また、コードがたくさん登場する発表の方が伝わりやすそうですし、LTだったら多少笑いが取れる話の方が向いてるかな〜とも思ったりしました。

そんなふうに考えた結果、今回は今年1月にRuby関西で発表した「プロを目指す人のための例外処理(再)入門 」という話がピッタリかも?と判断し、このスライドの内容をLT向けに短く再編集することにしました。


再び過去のRubyConfの動画をチェック

それからもう一度、過去のRubyConfの動画をチェックしました。
ただし今回はLT以外の動画も含めて視聴しました。

RubyConf 2017 - YouTube

目的は英語っぽい言い回しや、発表のスタイルを研究するためです。
また、日本人の発表も視聴して、日本人とネイティブの英語の話し方の違いみたいなものもチェックしてみました。

スライドを作成

インプットとして必要な情報はだいたい収集したので、次はアウトプットです。
今回は前述の日本語スライドをベースにして、英語版のスライドを作っていきました。

僕は普段スライドのテキストは少なめにして、口で話す内容を多めにする、というスタイルを取っているのですが、英語版では日本語版よりもテキストを多めに入れました。
これは発表当日に頭が真っ白になっても、スライドの内容を口に出して読めば何とか前に進めるようにするためです。
また、僕の英語の発音が悪くても、現地の人はスライドをみれば内容がわかる、という効果も狙っています。

(英語版のスライドはのちほどお見せします)

口に出して何度も練習する

スライドができたら次は練習です。
これは英語も日本語も同じですね。

特にLTは5分間という制限時間があるので、オーバーしないように気を付けなければいけません。
日本語に比べるとしゃべるスピードはさすがに遅くなってしまうので、かなり内容を削らないと5分に収まりませんでした。

また、英語っぽい抑揚の付け方も意識してみました。
日本人が英語を話すと、平坦でボソボソしたしゃべり方になりがちなので、できるだけ大きな声で、なおかつオーバーなくらい抑揚を付けて話す練習をしていました。

また、今回はちょっと無理でしたが、できればネイティブの友人にも聞いてもらってフィードバックをもらうのが理想的ですね。

LTに(急いで)申し込む

LAに来てから慌てて準備したものの、だいたい準備が整ったので、いよいよLTの申込みです。
聞くところによると、毎年LT大会はあっという間に定員が埋まってしまうみたいです。

申込みは2日目の基調講演が終わった後に、受付付近にあるボードに自分の名前を書き込む方式です。そして、早く名前を書き込んだ人から順に発表していきます。

LT大会の全体の時間は1時間半で、ボードに名前を書き込んでいても1時間半経ったところで打ち切られます。
何人ぐらい発表できるのか受付の人に聞いたところ、「そうねー、全部で20人ぐらいじゃないかなー」と言っていました。

せっかく準備したのに発表できずに帰るのは残念すぎるので、基調講演が終わった直後に受付へダッシュしました。
結構急いで駆けつけたつもりだったんですが、僕は14番目でした。

f:id:JunichiIto:20181216083507j:plain

僕はなんとか間に合いましたが、秒速さんとkoicさんは出遅れてしまったようで(28番目と29番目)、お二人の出番が回ってきませんでした・・・。(残念😣)

ちなみに当日、最後の出番が回ってきた人は18番目の方でした。(僕も危なかった!)

こんなふうに英語で話しました

というわけで、こちらが今回作成した英語のスライドです。

実際どんな内容をしゃべったのか、以下で英語と日本語訳をスライドとともにご紹介します。


f:id:JunichiIto:20181216070149j:plain
Hi everybody. My name is Junichi. I'm from Japan. Are you enjoying RubyConf? Good, me too! Today I am going to talk about unhappy exception handling. But this is my first English speech, so it will be a big challenge for me. But I give it a try.

こんにちは、みなさん。僕の名前は淳一です。日本から来ました。みなさん、RubyConfを楽しんでますか?おお、いいですね。僕も楽しんでます!さて、今日は「アンハッピーな例外処理」についてお話しします。しかし、英語で発表するのは今回が初めてです。なので、これは僕にとって大きなチャレンジになりますが、がんばってやってみます。


f:id:JunichiIto:20181216070155j:plain
Let's begin. Now, I talk about the basic syntax of exception handling in Ruby. Probably, all of you understand the syntax -- begin, rescue and end. Okay?

では本題に入りましょう。まず、Rubyにおける例外処理の基本的な構文についてお話しします。おそらくここにいるみなさんは全員この構文を理解していると思います。beginとrescueとendです。大丈夫ですね?


f:id:JunichiIto:20181216070201j:plain
It is very simple, but some programmers misuse exception handling. They misunderstand "If exception happens, use `rescue`. That's okay." They begin writing `rescue` everywhere -- rescue, rescue, rescue... And they believe "My program is now relialble." Is it okay? --- No!

この構文は非常にシンプルです。しかし、プログラマの中には誤った方法で例外処理を使う人もいます。彼らはこんなふうに誤解しています。「もし例外が起こったら、`rescue`を使えばいい。それで大丈夫。」そして、あちこちに`rescue`を書き始めます。rescue、rescue、rescue・・・。これでいいんですかね?ダメですよね。


f:id:JunichiIto:20181216070206j:plain
But, some years ago...

ですが、何年か前に・・・


f:id:JunichiIto:20181216070211j:plain
I had a trouble at a previous job. I joined a previous company as an in-house software engineer. I became the maintainer of an existing in-house web application. It was a good boy because it had been running perfectly for years. One day, I had an opportunity to talk with one of the users. He showed me his regular operation, and I was watching it. He clicked the save button, then I saw a dialog "System error minus one." "Oh, what? What's this?" He said "We see it very often. So we're clicking the save button again and again, click! click! click!"

私は前職であるトラブルに遭遇しました。私は社内ソフトウェアエンジニアとして前の会社に入社しました。私はとあるWebアプリケーションのメンテナンス担当者になりました。そのシステムはとってもよい子でした。なぜなら何年にもわたって完璧に稼働していたからです。ある日、ユーザーの一人と話をする機会がありました。彼は私に普段の運用方法を見せてくれました。そして私はそれを見ていました。彼は保存ボタンをクリックしました。すると、こんなダイアログが表示されました---"システムエラー: -1" 「ん?何ですかこれは?」彼はこんなふうに答えました。「これねえ、しょっちゅう出てくるんですよ。だから、こうやって繰り返し保存ボタンをクリックするんです。カチカチカチカチカチッ!!」


f:id:JunichiIto:20181216070215j:plain
Oh, really??

げえっ、マジで!?


f:id:JunichiIto:20181216070220j:plain
The code was like this. Actually, it was not Rails. That was ASP.NET in C#, but the basic idea is not different. They are the same. I remember that was an update logic, and it had an unnecessary rescue clause. This is the unhappy exception handling. It just displayed an error code, so it neither notified nor logged. We never noticed even if an error occurred. Unfortunately, the users had a bad procedure, "If you get this error, keep on retry." No! Do not retry, please call us. After the investigation, we found the root cause -- it was dead lock. Dead lock was involved so frequently due to a bad table design. Have you ever seen a table without any primary keys? --- No? Okay.

そのコードはこんなふうになってました。実際にはRailsではなく、C#で書かれたASP.NETでした。ですが、基本的な考え方は変わりません。どちらも同じです。あれはたしか更新ロジックだったと思います。あのロジックには不要なrescue節が入っていました。これが「アンハッピーな例外処理」です。この例外処理は単にエラーコードを表示するだけなので、通知も来ず、ログも残されません。ですから、エラーが起きてもまったく気づけません。不運なことに、ユーザーはこんなイケてない手順書を作っていました。「もしこのエラーが起こったら、再試行を繰り返すこと。」いやいや、再試行しないで!お願いだから僕たちに連絡してください。調査の結果、この問題の根本原因がわかりました。デッドロックです。ひどいテーブル設計のせいでデッドロックが頻発していたのです。みなさんは主キーが全くないテーブルを見たことがありますか?---ない?ですよね。


f:id:JunichiIto:20181216070225j:plain
Anyway, this is the conclusion. What can we learn from this story? First, the misuse of exception handling leads to terrible consequences. Second, what you can do and what you should do or you shouldn't do are different. Third, if you don't have confidence in exception handlings, please do not use `rescue` so casually. Delegate exception handlings to frameworks. For example, Rails can display 500 page or save logs. Please consider asking mentors for help about your code design. Let's do happy exception handling!

というわけで、まとめます。私たちはこの話から何を学べるのでしょうか?まず一つ目。間違った例外処理はとんでもない結果を招きます。二つ目。「できること」と「すべきこと(またはすべきでないこと)」は違います。三つ目。例外処理の書き方に自信がないなら、`resuce`を気軽に使わないでください。例外処理はフレームワークにお任せしてください。たとえば、Railsは500エラーページを表示したり、ログを残したりしてくれます。メンターをつかまえてコードの設計について相談することを検討してください。みなさん、「ハッピーな例外処理」を書きましょう!


f:id:JunichiIto:20181216070230j:plain
Finally, let me introduce myself. My name is Junichi. You can call me Jun. I'm working as a software engineer at a Japanese company called SonicGarden. And I'm mainly developing Rails applications. I have Twitter and GitHub accounts.

最後に、僕の自己紹介をさせてください。僕の名前は淳一です。Junと呼んでもらって構いません。ソニックガーデンという日本の会社でソフトウェアエンジニアとして働いています。主にRailsアプリケーションを開発しています。TwitterとGitHubのアカウントもあります。


f:id:JunichiIto:20181216070235j:plain
I have some personal works. I translated an ebook called Everyday Rails Testing with RSpec. Do you know this book? Great, I translated it.

個人的にやっている仕事もいくつかあります。僕は「Everyday Rails - RSpecによるRailsテスト入門」という電子書籍を翻訳しました。みなさん、この本は知っていますか?すばらしい。この本を翻訳したんです。


f:id:JunichiIto:20181216070239j:plain
And I wrote a book called Introduction to Ruby Programming for Future Professionals last year. The key concept is "Learn Ruby before Rails." Matz kindly wrote the foreword message for this book. I'm looking for an English publisher, so if you know anyone, please introduce him or her to me.

それから「プロを目指す人のためのRuby入門」という本を去年書きました。キーコンセプトは「Railsをやる前に、Rubyを知ろう」です。ありがたいことにMatzさんが「本書の刊行に寄せて」のメッセージを書いてくれました。現在英語版の出版社を募集中です。もし関係者の方をご存じでしたら、その方を僕に紹介してください。


f:id:JunichiIto:20181216070245j:plain
Anyway, that's all. I hope you enjoyed my talk. Thank you very much! See you.

さてさて、これで僕の発表はおしまいです。みなさんに楽しんでもらえたなら幸いです。どうもありがとうございました!またお会いしましょう。

参考: 使えそうな英語の言い回し

今回の発表では以下のような言い回しが含まれています。
こういった言い回しは今回の発表に限らず、他の発表でも使えそうなので参考にしてみてください。

Today I am going to talk about 〜.
今日は〜についてお話しします。
Let's begin.
それでは本題に入ります。/ では始めましょう。
Anyway
というわけで / それはさておき / とにかく
First, 〜. Second, 〜. Finally, 〜.
最初に〜。2番目に〜。最後に〜。
A called B
BというA / 例: a company called SonicGarden(ソニックガーデンという会社)
動画はこちら

今年もRubyConfの全発表はYouTubeにアップされています。
すなわち、僕のLTもアップされているということです!

自分で見返すのは少し恥ずかしいのですが、英語の登壇を考えている方の参考になるかもしれないので紹介しておきます。
僕の発表は00:55:49頃から始まります。


RubyConf 2018 - Lightning Talks

完璧な英語ではありませんが、できるだけ抑揚を付けたり声色を変えたりして、平坦でボソボソしたしゃべり方にならないように心がけたつもりです。いかがでしょうか?

発表の反応

前述の通り、今回の発表は少し笑いを取ろうとしていました(爆笑ではなく、あくまで少しです)。
英語で話してうまく伝わるかどうか不安でしたが、まあまあウケたんじゃないかと思います。

また何人かの現地のエンジニアさんから「面白かったよ」「初めてには見えなかった」といった感想をいただきました。(やった!)

LTの真の目的(?)「プロを目指す人のためのRuby入門」の英語版を出すという野望

今回の発表では、最後に「プロを目指す人のためのRuby入門の英語版を出したいので、誰か関係者を紹介して!」とお願いを入れました。
ダメもとのお願いだったんですが、現地エンジニアさんの中に1人、「知り合いがいるからちょっと聞いてみてあげる」と言ってきてくれた人がいて、ビックリしました。
ただ、その知り合いの方の会社ではIT関係の技術書は取り扱っていなかったみたいで、結局話を進めることはできませんでした。残念〜。(でも話をしてくれたのはありがたい!)

ちなみに、「プロを目指す人のためのRuby入門」は本気で英語版を出したいと思っているので、英語版の著者ページも作っています!

Introduction to Ruby Programming for Future Professionals
f:id:JunichiIto:20181216091834p:plain

まとめ

というわけで、このエントリではRubyConf 2018で初めて英語でLTした話をいろいろ書いてみました。

登壇する前は英語で発表なんて自分にできるのか!?と不安に思っていましたが、実際にやってみると意外となんとかなりました。
もちろん、日本語で発表の準備をするよりも時間はかかりますが、時間さえかければLTでない普通の発表でもなんとかなるんじゃないかという気がしてきました。
(ただし、質疑応答の時間にネイティブの人から早口で質問されたりしたら、ちょっとテンパるかもしれませんが・・・)

みなさんももし、僕と同じように英語で発表する機会がやってきたら、今回のエントリを参考にしてもらえると幸いです😃

あわせて読みたい

RubyConf 2018全体の参加レポートはこちらのエントリにまとめてあります。

「伊藤さんはいったいどんな英語の勉強をしてきたの?」「僕は英語が苦手なんだけど、どんな勉強をしたらいいの?」という方は、こちらのエントリを読んでみてください。

英語っぽい抑揚の付け方(緩急の付け方や声色の高低、強弱など)については、こちらの動画が参考になるかもしれません。
(ジョーク動画として作られていますが、英語の勉強教材としてはなかなか良いですw)

ウィル・スティーヴン 「頭良さそうにTED風プレゼンをする方法」

あと、僕は普段「ジリアン・マイケルズ」のDVDを見ながらトレーニングしているので、発音や抑揚の付け方はこのDVDに出てくるジリアン先生のしゃべり方にも影響を受けています。
別にこのDVDである必要はありませんが、海外の映画やドラマなどを普段から見ておくと、いざというときの登壇や英会話に役立つかもしれません。

ジリアン・マイケルズの30日間集中ダイエット [DVD]

ジリアン・マイケルズの30日間集中ダイエット [DVD]

おまけ

e-ネットキャラバンの講師認定講習会を受講して思ったこと

はじめに

このエントリは『どんな「情報モラル/リテラシー」啓発をしたい・聞きたい? Advent Calendar 2018』の11日目の投稿です。昨日、10日目の記事は id:riz-nishibata さんの『時短で楽しく美味しい「合わせ調味料」のような「情報処理演習」でありたい。』でした。

さて、このアドベントカレンダーでは情報モラル教育の講師を実際にされている方の投稿が多いですが、僕自身はWebプログラマではあるものの、情報モラル教育の講師ではありません。

しかし、情報モラル教育には非常に興味を持っています。
なぜなら、(この界隈の方はすでにご存じかもしれませんが)以前、息子が通う中学校で開催された情報モラル教育講演会の内容に(悪い意味での)強い衝撃を受けたからです。

blog.jnito.com

それ以来、「情報モラル教育を学校任せにしてはいけない。保護者として未来を担う子どもたちに、より適切な情報モラル教育を受けさせるにはどうすれば良いだろうか」ということを考えたりしています。

その一環として、少し前になりますが、2018年8月に大阪で開催された「e-ネットキャラバン講師認定講習会」を受講してきました。
このエントリでは講習会の様子や、講習会を受けて感じたことをあれこれ書いてみようと思います。

参考: <e-ネットキャラバン>公式WEBサイト

講習会の申込みについて

「e-ネットキャラバン講師認定講習会」は僕が知る限り、開催予定がネット等に公開されていません。
僕は知り合いの id:hanazukin さんから開催予定を教えてもらい、メールで申し込みました。

講習会を受講すると、講師向けのメルマガに講習会の開催予定が掲載されるので、そこで予定を把握できるます。
しかし、講師のツテがない人は開催予定を知る手段がないので(事務局に問い合わせるぐらいか?)、もう少しオープンにしてもいいんじゃないかと思います。

講習会の概要

僕が受講した講習会は全部で3時間ありました。
そのうちの2時間半はマルチメディア振興センターの専任講師による、講座ガイダンスと模擬講座です。
このガイダンスと講座では、専任講師の方がスライドを使いながら、講座の内容やポイントを詳しく説明してくれます。

この講習会は基本的に座学を受講すればおしまいです。試験等はありません。
講習会を受講すれば、誰でも認定講師の肩書きがもらえます。

受講する側としては話を聞くだけで肩書きがもらえるので、ありがたいと言えばありがたいのですが、基本的に座学の受講しかないので、僕自身を含めて「認定講師」となった人の講師スキルは、千差万別になりそうな予感がしました。
(講師専用ページにアクセスすると各種資料をダウンロードしたり、講演内容について事務局に相談したりはできますが、それでも講師の質は本人の工夫や努力に強く依存しそうな気がします)

e-ネットキャラバンで使用するカリキュラムについて

e-ネットキャラバンで使用するカリキュラム(主にスライド)は、浅く広く、情報モラルに関する様々なトピックをカバーしています。
また、僕が以前出席した中学校の情報モラル教育講演会のように、思わず眉をひそめるような内容もありませんでした。

よく言えば、非常にバランスが取れたカリキュラムだと言えます。
その一方で、悪く言うなら「無難すぎる」印象もあります。

とはいえ、元は総務省が母体となっている団体なので、無難なカリキュラムになってしまうのは致し方がないところかな、とも思います。
(むしろ思ったよりも頑張っていると言えるのかも?)

講習会の参加者層について

僕が参加した大阪の講習会ではおそらく200人ぐらいの人が受講者として出席していました。
僕は勝手に「たぶん10人ぐらい、多くても20人ぐらいじゃないか」と予想していたので、予想以上にたくさんの人が受講していることにビックリしました。

受講している人の性別や年代は様々です。
OL風の若い女性の方もいましたし、もうすぐ還暦?と思うような白髪の男性も見かけました。

あとから聞いた話では、企業単位で会社から受講してくるように言われて参加している人が多いそうです。
また、必ずしも講師になるのが目的ではなく、本人が情報モラルについて勉強する目的で参加している人も中にはいるそうです。
たしかに、この講習会を受講すれば、(そんな目的で受講することの是非はさておき)それだけで本人にとって「良い情報モラル教育」になりそうな気はします。

講習会を受けて、実際に講師をするまで

前述の通り、この講習会を受講すればe-ネットキャラバンの認定講師にはなれます。
その後、どのタイミングで実際に講師をするのかという点については、基本的に「事務局からの連絡を待つ」ということになります。

申込みの際に、講師として移動可能な地域を申請するので、これに従って事務局が講演依頼をしてきた団体の地域とマッチングし、うまくマッチした講師に講演依頼の連絡を入れる仕組みになっているそうです。

僕は兵庫県西脇市という田舎町に住んでいるせいか、今のところ講演依頼の連絡は受けていません。
e-ネットキャラバンに講演依頼を申し込む際に、どの講師がいいか指名することはできるそうなので、とりあえず息子が通う中学校の先生には「e-ネットキャラバンの認定講師になったので、ぜひ申し込んでください!」とは伝えておきました。

はてさて、僕の初登板はいったい、いつ、どの学校(どの団体)になるのやら・・・??

講師の報酬と、企業のCSR活動という考え方

e-ネットキャラバンの講師には報酬は一切支払われません。
交通費も支払われません。

e-ネットキャラバンは一般企業のCSR活動(Corporate Social Responsibility、一種の社会貢献活動)として、企業の善意で講師を派遣してもらうことを前提としているようです。
(なので、個人で参加しようとすると、完全自腹のボランティア活動になってしまいます)

その他、情報モラル教育について感じていること

前にも述べたとおり、e-ネットキャラバンのカリキュラムは「普通に良い」ものだと思いますが、無難で地味なところがあります。

一方、僕が息子の通う中学校で聞いてきた「専門業者の情報モラル教育」は非常に派手で、なおかつインパクトがあり、(良くも悪くも)子どもや保護者のウケが良いです。
講師も場数を踏んだ熟練講師なので、話の運び方や子どものハートのつかみ方もビックリするぐらい上手です。
子どもたちが喜ぶ最新ゲームや人気YouTuberの話題も、いち早くキャッチして講演に盛り込んできます。
ですが、聴衆のウケやインパクトを求めるあまり(?)、正しくない情報を話したり、不必要に恐怖を煽ったりするような講演になることがあります。

理想と現実の狭間で自分にできることは何か

理想はもちろん、「話がうまくて子どもや保護者が最後まで飽きず、なおかつ情報モラル教育としても適切で正しい内容になっていること」ですが、そんなことができる講師はおそらく一握りだと思います。

じゃあどうしたらいいの?と聞かれると、僕はこれという回答を持ち合わせていません。
日本全体の情報モラル教育をどうしていけば良いかというテーマは、専門家でない僕にとっては少し大きすぎます。

なので最低限、「自分の身の回りからできること」をちゃんとしようと心がけています。
具体的には、

  • 日常的に自分の子どもたちとスマホやネットの適切な使い方について話合う
  • 情報モラル教育に関して、普段からアンテナを張る
  • 今回のe-ネットキャラバン認定講師のように、情報モラル教育に関して自分ができそうなことをちょっとずつやる
  • 良い講師、悪い講師に関する情報をできるだけ周りの人(=知人や学校)と共有し合う

といった内容です。

少なくとも、「情報モラル教育は全部学校任せ、きっとちゃんと教えてくれるはず」という考え方では、きっと何もうまくいかないことだけは確信しています。

まとめ

というわけで、このエントリではe-ネットキャラバン講師認定講習会を受講して、僕が思ったことをあれこれ書いてみました。

講習会の内容についてはいくつかネガティブな評価が並んでしまいましたが、情報モラル教育を求める学校や団体が日本全国にある以上、「ハイスキルな少数精鋭の講師」ではなく、「平均的なスキルを持った大量の講師」を生み出すための講習会になってしまうことは、ある意味仕方がないことだと考えています。
ですので、e-ネットキャラバンについて初めて知った方も、その点を考慮した上でこのエントリを読んでいただければと思います。

最後に、僕のブログの読者さんは情報モラル教育の専門家よりも、僕と同じITエンジニアの方が多いと思います。
僕たちITエンジニアは一般の保護者のみなさんよりもITに関する知識が豊富であることは間違いないので、情報モラル教育に関してできることはたくさんあるはずです。
小さなお子さんがいるパパ・ママITエンジニアのみなさんは「学校任せにしない、積極的に関わる情報モラル教育」を意識していきましょう!

それでは明日以降の『どんな「情報モラル/リテラシー」啓発をしたい・聞きたい? Advent Calendar 2018』もお楽しみに🎄

adventar.org

毎年の恒例行事?Ruby 2.6の新機能まとめ記事を書きました

はじめに

Qiitaに「サンプルコードでわかる!Ruby 2.6の主な新機能と変更点」という記事を書きました。

qiita.com

毎年Rubyは12月25日にアップデートされるので、僕が新機能のまとめ記事を書くのも毎年の恒例行事となりつつあります。
Ruby 2.3、2.4、2.5と書いてきたので、今年で4年目ですね。

毎年まとめ記事を書く理由

もともとは単純に僕が、

新しいRubyでどんな新機能が追加されたのかチェックしたい
 ↓
リリースノートやNEWSページを見て調べないといけない
 ↓
説明やissueを読むだけではピンと来ないので、自分でコードを書いて確認する
 ↓
これってもしかすると、日本全国で同じようなことをやってる人がたくさんいそうだから、僕が記事を書いてまとめればみんなの時間が浮くのでは?

・・・という発想で書き始め、これを毎年続けています。

加えて、チェリー本を「死んだ本」にしたくない、という目的もある

今年も基本的に動機は同じなのですが、去年からは僕が執筆した書籍「プロを目指す人のためのRuby入門」(通称チェリー本)からの変更点を確認する目的が加わっています。

「プロを目指す人のためのRuby入門」はRuby 2.4の仕様に沿って執筆されています。
ですが、そのまま放っておくとRuby側だけがどんどん進化して本の内容が古くなってしまいます。

技術書の場合「内容が古くて使えない」というのは致命的な問題です。
僕は紙の本といえども「死んだ本」にはしたくありません!
というわけで、「プロを目指す人のためのRuby入門」ではRubyがバージョンアップするたびに変更点をチェックして、書籍の内容と大きく変わる部分は本書のサポートページで説明を入れるようにしています。

f:id:JunichiIto:20181210212823p:plain
f:id:JunichiIto:20181210220409p:plain

こういった目的もあって、僕は毎年Rubyの新機能や構文の変更点を細かくチェックするようにしています。
(ちなみに、Ruby 2.6向けのサポートページのアップデートは後日行う予定です)

執筆裏話:新機能のまとめ記事が公開されるまで

Qiitaの記事を見てもらうとわかると思いますが、この記事はかなりのボリュームがあります。
当然のことながら、執筆の時間も結構かかります。

今回はだいたいこんなペースで執筆していました。

  • 12/1、12/2の土日で、コードを書きつつ、新機能の内容をチェック
  • 12/8、12/9の土日で、本文を執筆&仕上げ

合計すると、まるまる4日ぐらいかけてますね。

「コードを書きつつ、新機能の内容をチェック」と簡単に書いていますが、実際は「これはいったいどこがどう変わったのか、さっぱりわからん💧」という変更点もたくさんあったりして、毎年この作業に結構骨が折れます。(ウソ情報やいい加減な話も書けないですしね)

後半戦の本文の執筆では自分自身がわかりにくかったポイント等をできるだけかみ砕き、読者のみなさんがスムーズに理解できるように(つまり、僕みたいに苦労しないように)サンプルコードや説明の仕方をあれこれ推敲します。
文章を書くのは好きなので嫌いな作業ではないのですが、これはこれでとても時間がかかりです。

こんなふうにあれこれ試行錯誤したりしながら、新機能のまとめ記事は毎年みなさんのもとに届けられております🎁

まとめ

というわけでこのエントリでは、Qiitaで公開した「サンプルコードでわかる!Ruby 2.6の主な新機能と変更点」という記事を紹介してみました。

日々Rubyを開発してくれているMatzさんやコミッタのみなさんに感謝しつつ、みなさんが本記事を読んでRuby 2.6をどんどん活用してくれることを願います。
みなさんぜひ読んでねー❤️

qiita.com