英語をロクに喋れないプログラマ、AI・MLに支援され、海外登壇でライブコーディングしたら絶賛された ～Elixirで世界進出のススメ～

この記事は、[Elixir Advent Calendar 2021](https://qiita.com/advent-calendar/2021/elixir)の19日目です
昨日は @ohr486 さんの「iex inside」でした

---

[piacere](https://twitter.com/piacere_ex) です、ご覧いただいてありがとございます :bow:

# さて私は海外登壇の3週間前まで英語が喋れなかったが…

今年10月、プログラミング言語「Elixir」の海外MeetUpである[「ElixirConf US 2021」](https://www.elixirconf.com/)で、海外勢を目の前に、会員制サイトをわずか20分で作るライブコーディングをブッ込んできました … 下記の画像をクリックしたらYouTubeで視聴できます
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/58380848-fc2e-e8a3-2816-91710f70b6bb.png)](https://www.youtube.com/watch?v=t5TT0-mI2O4)

登壇が決まったときは、凄まじい興奮と同時に、「ヤバい、本当に喋ることになってしもた … 英語ぜんぜんだけど、どーしよ？」って不安だらけでした
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/7a2146d0-4a88-dc15-3c90-0b7dc4646d8b.png)

しかし蓋を開いてみれば、VSCodeを使ったWebプロジェクト作成／認証機能カスタマイズをする手順を堂々とライブコーディング解説し、プレッシャーは一切感じず、むしろ楽しんで披露しました
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/5fb1a67d-bcf1-46c8-d695-58ba7e3186af.png)](https://www.youtube.com/watch?v=t5TT0-mI2O4)

これには、多くの海外勢からも、

- <b>「Love this!」</b>
- <b>「This live coding is pretty amazing」</b>
- <b>「Rocket speed」</b>
- <b>「Love it. Thanks!」</b>
- <b>「Great energy in this one, thank you」</b>
- <b>「awesome!!!」</b>

といった暖かい絶賛をたくさんもらいました

他にも、日本のElixirコミュニティの盛り上がりを共有しつつ、日本には、Elixirコミュニティが26箇所（現在は28箇所）もあり、毎月21件の勉強会が定期開催されていることもアピールしました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/04d75d08-71a1-f55f-971e-05645c6f5caf.png)
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/0ff173e0-39f6-a8a8-3a73-d8cc66408782.png)](https://www.youtube.com/watch?v=t5TT0-mI2O4)

そうそう、自己紹介では、地味に先端メタバースである「NeosVR」と自身のアバターもチラ見せしました
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/277b157d-cfe1-44a6-04df-06d239b127e2.png)](https://www.youtube.com/watch?v=t5TT0-mI2O4)

JavaScript一切不要のサーバサイドでリアルタイムフロントを書ける「LiveView」とtailwind componentsを組み合わせたり、Pythonで言うJupyterNotebookのElixir版「Livebook」でのAI・ML開発を行う新コミュニティ「LiveView JP」の発足も発表し、これは世界的に見ても日本が先行するケースでは無いかと思います
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/8b585249-6c1e-d43c-c83f-695c43b6c27e.png)](https://www.youtube.com/watch?v=t5TT0-mI2O4)

こんなアグレッシブな内容を果敢にもブッ込んできた訳ですが、実は私、英語の発音はまるでなっていない … というのが9月末の状態でした

実際にYouTubeを見てもらうと意外に思われるかも知れませんが、今まで渡航した中で、マトモに話が通じた経験はあまり無く、専門用語主体の会話か、お互い母国語のGoogle翻訳を開いてないと会話が成立しないような惨憺たる状況です

そんな私が、たった3週間で海外登壇デビューするまでに漕ぎ着けたかコツのようなものをシェアしたいと思います

なお登壇本編の技術的な内容は、下記YouTubeを見ていただくか、下記にコラム化済み（というか、これらコラムを登壇化したというのが本来の流れ）のものをご覧ください

<b>ElixirConf 2021 - Masakazu Mori - Live Coding in 20 Minutes of a Membership Site by Phoenix and phx_gen_auth</b>

https://www.youtube.com/watch?v=t5TT0-mI2O4

<b>[①Elixirユーザ認証ライブラリ「phx_gen_auth」の本番向け改造点：ユーザ登録時等のメール通知追加、メール本文のカスタマイズ](https://qiita.com/piacerex/items/35dc7ee8129b9a1deb9d)</b>
|> <b>[②バリデーションのカスタマイズ](https://qiita.com/piacerex/items/5f11e33db748830c7636)</b>
|> <b>[③ページヘッダーの変更](https://qiita.com/piacerex/items/58c878efd81920c8aa22)</b>
|> <b>[④ログインページの変更](https://qiita.com/piacerex/items/5be752bdb9b18b1e6e6c)</b>
|> <b>[⑤コントローラ内／テンプレート内のメッセージのカスタマイズ](https://qiita.com/piacerex/items/6d6963e18463eb920971)</b>

英語バージョンもあります　※実はこの英語バージョン、記事も、ブログシステムも、登壇当日に突貫工で作りました :stuck_out_tongue_closed_eyes:

<b>[1. Customization of phx_gen_auth for production - Email sending settings and customization](https://piacere.gigalixirapp.com/blogs/1)</b>
|> <b>[2. Changing validation](https://piacere.gigalixirapp.com/blogs/2)</b>
|> <b>[3. Header re-design](https://piacere.gigalixirapp.com/blogs/3)</b>
|> <b>[4. Login page re-design](https://piacere.gigalixirapp.com/blogs/4)</b>
|> <b>[5. Changing messages scattered in templates and controllers](https://piacere.gigalixirapp.com/blogs/5)</b>
|> <b>[6. Enabling Temporary registration](https://piacere.gigalixirapp.com/blogs/6)</b>

# コツ①：人間を介さず英語発音を検証できる環境を整えた

一昔前であれば、「駅前留学」みたいな、実際の外国人とのマンツーマンレッスンみたいな形で英会話をトレーニングする風潮がありましたが、ぶっちゃけアレは効率がとても悪いと感じていました

発音も中途半端になりがちだし、会話の組み立てもやはり中途半端になりがち

また現代でも、モダンな英会話スクールがありますが、私は3週間で結果を出さなければならなかったので、そんな悠長なこともやってられない

他にも、英語が得意な友達に付き合ってもらって、逐一チェックするとかもありますが、辛抱強く、かつ短期間で結果にコミットしてくれるような、そんなライ●ップみたいな人なんて、いる訳無ェ

…となれば、人間を介さずに、機械的に英語発音を検証できるシステムが重要となります

そこで役立つのが、Google Docの「音声入力」です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/70060fb9-e8eb-f39c-30c4-062d59726fb9.png)

このメニューを選択すると、音声入力IFが出てくるので、ここで言語を「English (United States)」にします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/f9572bc7-3dcd-4518-1bf4-8f1a95ce9f5e.png)

そして、音声入力IFをクリックし、マイクで喋れば、ナント自分の喋りが、英語として解釈されるではあーりませんかッ！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/e201b191-99cf-27ac-2074-17347e785b08.png)

もう、コレで誰に気兼ねするでも無く、延々と発音チェックできる環境が手に入った訳です … AI・ML時代の恩恵ですね

まぁ必要なものがあるとすれば、このツールは、かなり厳しくチェックしてくるんで、そこに心が折れないこと（続けてれば、いつかはイイ感じになることを信じること）でしょうか

# コツ②：発音の先生も、人間を頼りにせずに調達した

正しい発音を調達するのも、やはり人間相手では、遠慮も出るし、自分の思ったように徹底できない … となれば、発音の先生も、人間を頼りにせずにどうにかするのが得策です

そこで役に立つのが、Google翻訳です

Google翻訳には、打ち込んだ英語を喋ってくれる機能があるので、コレを使って、喋り方をひたすらマネするというのが王道です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/d46d00b1-e731-9fc5-4a83-76c35cb921c8.png)

これの良いところは、上記コツ①のGoogle Docも、同じGoogle製なので、Google翻訳の喋りに忠実になりさえすれば、Google Docの認識率は、確実に上昇する点です

これが、人間相手だったり、異なるツールチェーンであれば、通じたり、通じなかったりのバラツキが出て、ストレスフルな訳ですが、もうただただGoogle翻訳の発音を猿真似すれば100点が取れる訳で、モチベーションダウンしにくいのがグッドです

こうしたAI・MLのパワーを使いこなすことが、今の時代、とても大事な活動だと感じます

# コツ③：喋りを収録し、英語が得意な人のレビュー受けた

ある程度までは、この2つのコツで高められるのですが、どうしても上手くいかないのが「リエゾン」であったり、スムースな喋りの実現です

元々、日本人の頭の構造には、このリエゾンがインプットされていないため、幾ら猿真似をしても、なんだか上手くいかず、辿々しい感じが取れない

ここでやっと人間の登場です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/096510a3-1285-97a9-108f-7683ecc98548.png)

まず、対面リアルタイムで望むのは、止めましょう … そのやり方は、相手にも、自分にも、負荷が高い上に、再現性も乏しくなり、後追いでチェックが困難になります

ですので、自分の喋りを収録し、それを聞いてもらうようにします

すると、相手からの指摘に対し、自分の発音を、自分で収録を聞いて、どこがおかしかったのか後追いでチェックできるようになりますし、指摘されたことに不明点があれば、ピンポイントで確認もできます … コレで非常に効率の良いレビューが可能となります

実際、私も3回目のレビューまでは、リエゾンやイントネーションが本当に酷く、指摘の嵐でしたが、4回目には、細かいアクセントやイントネーションを調整する程度になってきて、教えてくれた方も、私の成長を喜んでくれました

# コツ④：最初はアメリカの野球中継者の派手さで始め、徐々にナチュラル化した

英語のトークは、ぶっちゃけ「ノリの良さ」が大事だと思ってます … これは日本語にはなかなか無い特性で、もう「そういうもんだ」と割り切って、演じるのが吉です

まず最初は、

「Oh O-tani san, It's showtime!」

くらいの派手な「アメリカの野球中継者」並のノリノリな感じでOKです :laughing:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/7236dfb1-33a5-9877-b3c1-3b72f39b7638.png)

それを、登壇全編のリハーサルでかまします

何回か繰り返すと、段々とエンジンが温まってきて、日本人の自分には無かった何かが目覚めてきます

それは何と言うか、

<b><font color="#9020ff"><h3>「やれば、できるんじゃね？」</h3></font></b>

みたいな、根拠の無い自信のようなモノです

しかし、これこそがメチャクチャ大事で、きっと日本人は、どこか遠慮ガチで、自分の主張することに自信が無い … だから通じない … そういうものなんだと思うのです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/f1013445-866a-6366-c2f3-400fae4e5958.png)

レビューを投げる相手に「ウザい」と思われる位の勢いで、威勢良く喋り続ければ、段々と自分の喋りにパワーが乗ってきます

その状態まで辿り着いた後に、ナチュラルな喋りへとチューニングしていけば良いのです

最初からキレイにやろうだなんて、初心者は絶対に思っちゃいけません

結果を得るのに、手段など選んでる場合じゃ無いのです … どんなプロセスを辿ろうが「勝利した者が正義」なのです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/703cc26a-284e-1055-30ed-bb567b1ad08c.png)

# コツ⑤：海外コミュニティに参加して、海外スピーカーの喋りを聞いた

ある程度、トレーニングとリハーサルを積んで、Google Docも安定して聞き取りしてくれるようになった頃、トロントのElixirコミュニティ（下記）が、ElixirConf US 2021登壇候補者で集まって本番開催前のリハーサルをするというのを聞き、そのイベントに参加しました

https://www.meetup.com/ja-JP/TorontoElixir/

ここで他の方が喋っているのを聴いて、何となく何を喋っているのかが分かってきたら、わりかし成功です

と言うのも、自分の発音やリエゾン、アクセント、イントネーションを意識して直すサイクルを積んでいると、他の方の英語も、以前より遥かに解釈できるようになっているのです

つまり、英語を解釈する能力は、

<b><font color="blue"><h3>自分が発音に関する知識をいかに持っているかに大きく依存する</h3></font></b>

ということなのです

逆に言えば、喋るのが苦手な人は、聴き取りも苦手になりやすい … ということだったのです

これが今回、私が最も体感したノウハウでした

ちなみに、ここで交流したトロントのElixirコミュニティオーガナイザであるAndyは、日本のElixirコミュニティを、彼のElixirConf US 2021登壇内で紹介してくれました … なんて嬉しいサプライズ :laughing:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/9e6d4126-9b3e-74a4-3536-cd84ac197194.png)

# 1つだけ注意点：喋れるけど、教えてくれない人の意見は聴いてはいけない

こうしたプロセスにより、英語をロクに喋れないプログラマでも、海外登壇デビューできるだけの能力を向上されることが可能となります

ただし、1つだけ注意点があり、

<b><font color="red"><h3>英語を喋れるけど、教えてくれない人の意見は聴いてはいけない</h3></font></b>

というものです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/f8cb86b4-624c-240a-d4df-9f9fa19b719e.png)

上記のコツ④でも述べた通り、英語を喋れるようになるプロセスには、「自信」が大きく関係しています

また、最初から上手くやろうだなんてのは、初心者が絶対に思っちゃいけない筆頭です

英語を喋れるけど、教えてくれない人は、ここにダメージを入れてきます

たとえば、成長過程の初期にあるあなたであっても、「なんか発音イマイチだね」みたいな感じで、ダメ出しやマサカリを投げてくるのです

しかも、それを「親切」と称してやってきます

絶対に、こういう人の意見は、聴いてはいけません … その方が、どんなに英語が得意で、海外登壇経験豊富であっても、その方のアドバイスは、一切役に立たないので、完全に無視しましょう

それよりも、英語が多少苦手でも、海外登壇経験豊富で無くても、応援してくれる方や、レビューや発音チェックにちゃんと付き合ってくれる方の言うことを聴くようにしましょう

# 日本のElixirコミュニティは、海外登壇にトライする人をサポートしてくれる

さて、ここまでは、英語を喋るためのコツについて解説してきましたが、海外登壇にトライする機会は、どのように得れば良いのでしょう？

また、1人で海外登壇に乗り込んでいくのは、とても勇気がいることなので、できればそのハードルを下げたいと思うのが人情です

日本のElixirコミュニティは、海外登壇にトライする人をサポートしてくれる仕組みがあり、一緒にトライする仲間もそこに集まったりするので、こうした機会を得て、ハードルを下げるには、かなりグッドだと思います

実際、私も今回、小倉Elixirコミュニティ「kokura.ex」が、ElixirConf US 2021に向けて、CFP（Call For Proposal：登壇内容を自己申告し、抽選に通ると登壇できる仕組みのこと）の申請のやり方から、CFP内容の英語化のサポート、海外主催者とのコミュニケーションの支援など、手厚くフォローいただいたことで、英語が喋れないけど「やってみたい」という気持ちが盛り上がりました（しかも、それらは全て無料です）

https://fukuokaex.connpass.com/event/216224/

また、この場に集まった、私以外の3名のチャレンジャーと一緒に前へと進めたことで、「1人じゃ無い」という心強さも感じました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/baa07782-92af-74a1-550b-33fa945407c6.png)

この場をお借りして、kokura.exの稀有なる貢献と、ご一緒してくれた3名の仲間に、多大なる感謝を申し上げたいと思います、ありがとう :bow:

なお国内Elixirコミュニティに、どんなものがあるかをpiyopiyo.ex／エリジョ（Elixir女子部）のnakoさん（@kn339264）がまとめてくれているので、Elixirコミュニティがはじめての方は、コチラをご覧になると迷子にならなくて済むと思います

https://speakerdeck.com/elijo/elixirkomiyunitei-falsebu-kifang-guo-nei-onrainbian

また、kokura.exのオーガナイザimaimaさん（@im_miolab）がまとめてくれたElixirConf US 2021参加レポートは、今回の私のコラムよりも、ElixirConfの様子が分かるコラムなので、海外登壇への興味が高まった方は、是非ご覧ください

https://inside.pixiv.blog/2021/10/27/104500

# 最後に：次はあなたの番です

このような感じで、私は、私と共にElixirConf US 2021での登壇にトライした3名の仲間と、初・海外登壇デビューを果たしました

会の終盤では、ElixirConf US 2021オーガナイザであるJim Freezeからも賞賛してもらっちゃいました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/332e0095-5418-fa22-2934-96bed0b7e73a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/315a7f6a-4004-9275-66dd-8fde6654f16f.png)

こうして、私の2年越しの夢である「いつかElixirConfスピーカーとして立ちたい」という夢は叶いました

https://twitter.com/piacere_ex/status/1449357041785393157

そして、次はあなたの番です

私は、Elixirで海外登壇にトライするあなたのことを、トークと技術の両面でサポートしたいと思います … Twitterで気軽にDMください

https://twitter.com/piacere_ex
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/c67c209e-60b2-b111-a13a-2deb3714854a.png)](https://twitter.com/piacere_ex)

来年は、Elixir生誕10周年なので、トライするには丁度良いタイミングで、ここについては、12/25にXmasプレゼント的なコラムを書きます、乞うご期待ッ :wink:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/a441012d-3999-dabb-b13d-015e38f05ae8.png)

明日は @mokichi さんで[「Phoenix LiveViewでGoogle Analyticsを使う」](https://qiita.com/mokichi/items/d5e78d18cda91bbf4825)です

# p.s.このコラムが、面白かったり、役に立ったら…

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/67568d54-6584-ad33-77c7-b3b3afe70287.png) や ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/f5b819ef-d655-ef72-294c-b1a9d2c5b563.png) にて、どうぞ応援よろしくお願いします:bow