Subscribed unsubscribe Subscribe Subscribe

Ruby on Railsのビシバシはぁはぁ日記

シンガポールのスタートアップで働くソフトウェアエンジニアの悪戦苦闘ブログ

人種差別も宗教問題も独特のユーモアと鋭い視点で表現したエッセイ「No Land's Man」

書評 海外移住 英語

実際の英会話において実用的に「使える本」に出会った。アメリカのテレビで活躍するコメディアンAasif Mandvi 氏のNo Land's Man。

No Land's Man

No Land's Man

著者のアシブ氏はインドのムンバイにムスリムの家庭で産まれ、少年期にイギリスへ移住し、十代にはアメリカのフロリダへ移住。またその後はニューヨークへ移り舞台俳優からキャリアをスタートさせて、テレビでも活躍するにいたった人物。
その生い立ちから多様なバックグラウンドを持ったこの人の独特のユーモアが軽快でとても面白いエッセイ集に仕上がっている。

人種差別や宗教の話題は重たいが、だからといって誰も口を塞いでまったく話題にも出さない訳ではない。特にシンガポールのような多国籍国家においては日常にありえる出来事なので、よく話題にもなる。
基本的に強烈な人種差別主義者になんて出会うことは無いし、あからさまに差別的な発言をする奴も居ない。ほとんどの人は「人種差別はあってはならない」と考える常識人ばかりだ。ところがだ。そんな常識人の心の中にもどこかで宗教や人種に対して気づかないうちに偏見の種を持っていたりする。
そんな微妙な心の持ちようを英語で表現する手段は私には無かった。しかしこの「No Land's Man」でアシブ氏が面白く語ることで「こういう風に表現すればいいのか」と感じた。それはプロのコメディアンでありかつアシブ氏にしかできない語り方だが「人種差別の話題なんてどう英語で言えばいいんだ?」となっている私からすればとても参考になった。
なによりそんな勉強モードで構えなくても、普通に読んでいても「プッ!」と笑ってしまうぐらいに面白い。

この本のプロモーションビデオがあるので、それを観れば本の雰囲気がつかめる。

www.youtube.com

ビデオの日本語訳(意訳)

f:id:tango_ruby:20160824003926p:plain:W400

アシブ(左)がドアをノックするとジャック(右)が出てくる。
アシブ「入っていい?」
ジャック「ああ、入れよ。ラップサンドあるよ。食う?」
アシブ「ありがと。でも今はいいよ。」
f:id:tango_ruby:20160824005121p:plain:W400
アシブ「本を書いたんだよ。この本の宣伝に協力してくれるか?」
ジャック「なに書いた?」
アシブ「自伝的なもんだな。知ってるとおり、オレはインドに生まれて、イギリスで育って、またアメリカにわたって。今こうしてるけど、ルーツはインド人でムスリムで。」
ジャック「え?え?今なんて言った?」
アシブ「オレはムスリムの家庭で、、、」
ジャック「ムスリム!イスラム教か!」
アシブ「ああ(引きぎみ)」
ジャック「じゃあ断食中か?!!」
アシブ「いや断食はしないよ」
ジャック「あー!!断食中のイスラム教徒にラップサンドなんか勧めちまったよオレ!」
アシブ「いやいいよ。そういうんじゃないし」
ジャック「なんてバカなんだオレ!!」
f:id:tango_ruby:20160824005422p:plain:W400
ジャック「お祈りするか?!」
アシブ「お祈り?」
ジャック「分かってる。俺たちは全ての宗教を尊重するし、偏見なんて持ってないからな!お祈りだな!」
アシブ「いや、お祈りしないよ」
ジャック「イスラム教だっらお祈りが重要だろ!お祈りするよな!!」
いきなり立って、入り口のドアへ行く
アシブ「おい、なにすんだよ?」
f:id:tango_ruby:20160824005911p:plain:W400
ジャック「みんな!アシブはイスラム教徒で今からお祈りが必要なんだ!!騒ぐんじゃねーぞ!!」
アシブ「やめてくれよ!」
 
-

f:id:tango_ruby:20160824010117p:plain
ワト(右)「この本に『昔マイケル・ジャクソンのものまねしてた』って書いてあったな」
アシブ(左)「ああ、そう。高校時代にな」
ワト「人種差別だろ」
アシブ「え?」
ワト「それ人種差別だ。なんでアフリカ系アメリカ人でもないお前がマイケル・ジャクソンのものまねなんてやってんだよ。バカにしてんのか」
アシブ「いやいや、あのマイケル・ジャクソンだぜ。ただのものまねだろ」
ワト「例えばオレがインド人のものまねをしてだな」
f:id:tango_ruby:20160824010941p:plain
どこからかターバンを出して、変なインド訛りでインド人のものまねをはじめる。

ワト「どうだった、これ?」
アシブ「差別的だな」
ワト「だろ」
アシブ「この本の宣伝は、、、」
ワト「しねーよ」
 
-
f:id:tango_ruby:20160824012229p:plain
変なイギリス人(左)「Englishってのはオレだろ。あなたじゃないわ。この本はイングリッシュじゃないわ」
アシブ「オレはイギリスで育ってな、、」
変なイギリス人「ホントか。イギリスのどこ?」
アシブ「ブラッドフォード」
変なイギリス人「ブラぁーードフぉーード?そんな場所ないわ」
アシブ「イギリスにある市の名前だ」
変なイギリス人「イギリスのパスポート持ってんのか?」
f:id:tango_ruby:20160824012936p:plain
アシブ「あー持ってるよ、ほら!」
変なイギリス人「フットボールは?」
アシブ「そんなもん今、持ってきてるわけねーだろ」
変なイギリス人「オレは持ってるぞ、ほら」
f:id:tango_ruby:20160824013118p:plain
変なイギリス人「イギリス人なら持ってるはずだ」
アシブ「そんなわけないだろ」
変なイギリス人「イギリスのパイは?」
アシブ「はぁ?」
変なイギリス人「パイだよ。オレは持ってるぞ、ほら」
f:id:tango_ruby:20160824014818p:plain
変なイギリス人「イギリス人ならいつも机の引き出しに入れてるはずだ」
アシブ「もういい!お前、狂ってるわ!!」
 
-
f:id:tango_ruby:20160824013847p:plain
本の「非」協賛者
 
-
という感じで、ビデオでもなんとなくこの本のノリが伝わる。

アシブ氏の書く文章のユーモアのセンスはイギリス的でもアメリカ的でもインドでもないような感じでとっても気に入ってしまった。英語もカンタンで読みやすいのでオススメです。

No Land's Man

No Land's Man

tango-ruby.hatenablog.com

tango-ruby.hatenablog.com

tango-ruby.hatenablog.com

5000件の解答者登録達成!ほとんどのエンジニアには解けるパズル1

Rails Ruby パズル プログラミング 海外転職 転職

ほとんどのエンジニアには解けるが、下位10%のダメなエンジニアにだけ解けないパズル?などというITパズルを作成して、それが解けたら解答者登録できる仕組みにしておいたら、8ヶ月かかってやっと5000件に到達した。

f:id:tango_ruby:20160817175226p:plain

「だからナニ?」と言われてもそれまでの話なんだけど。
作った本人としては5000件も解答の後にコメント登録いただいて、実はとても嬉しい。ただ嬉しい。それだけ。

しょうもないことのように見えて、実はこのような小さな個人プロジェクトが英語圏の転職対策だったりする訳です。

tango-ruby.hatenablog.com

tango-ruby.hatenablog.com

tango-ruby.hatenablog.com

tango-ruby.hatenablog.com

tango-ruby.hatenablog.com


海外転職の面接で英語で聞かれるRubyとRailsの質問事例とそれを会話で対処する方法 - その3

前回のつづき。

【問題3】

What’s the issue with the controller code below? How would you fix it?

class CommentsController < ApplicationController
  def users_comments
    posts = Post.all
    comments = posts.map(&:comments).flatten
    @user_comments = comments.select do |comment|
      comment.author.username == params[:username]
    end
  end
end

これはなにも「このコードをリファクタリングしてくれ」ってことではない。問題の箇所と解決方法を英語で話すだけ。

【解答例3】

This is a classic example of the notorious “n+1” bug. The first line will retrieve all of the Post objects from the database, but then the very next line will make an additional request for each Post to retrieve the corresponding Comment objects. To make matters worse, this code is then making even more database requests in order to retrieve the Author of each Comment.

This can all be avoided by changing the first line in the method to:

posts = Post.includes(comments: [:author]).all

This tells ActiveRecord to retrieve the corresponding Comment and Author records from the database immediately after the initial request for all Posts, thereby reducing the number of database requests to just three.

まー典型的なN+1問題だね(a classic example of the notorious “n+1” bug)、と指摘できれば、それでもうほぼ正解。
解答例として

posts = Post.includes(:comments).all

としても「いや、もう1段階あるんだけど」ぐらいは指摘されるかもしれない。
とにかくN+1問題に対処した経験があって、データベースのパフォーマンスにも気を使える技術レベルですよ、とアピールすることが肝心。
会話の中で「アタシはGemでBulletとか入れて、デバッグしてるんだよね。あれがあったらN+1が見つかりやすいから。あんたの会社ではナニ使ってんの?」とか質問していろいろ聞くべし。そうした会話の中でその会社の現場の様子なども把握できるし、なにより応募者の技術レベルが「それなりに分かってるレベル」であることが証明できる。

次回につづく。

もっと詳しくエンジニア転職のコツとか書いてる本。

tango-ruby.hatenablog.com

tango-ruby.hatenablog.com

tango-ruby.hatenablog.com

tango-ruby.hatenablog.com