ベルリンのITスタートアップで働くジャバ・ザ・ハットリの日記

日本→シンガポール→ベルリンへと流れ着いたソフトウェアエンジニアのブログ

ITエンジニアの海外転職で気にするべきこと、気にしなくていいこと

ITエンジニアが海外転職をする際に気にするべきこと、気にしなくていいことをまとめた。なんか最近やたらとエンジニアに海外転職をすすめている記事が目につく。(このブログも基本そういうスタンスだけど)エンジニアが海外に仕事場を移して、そこでさらに…

動的計画法(Dynamic Programming)をサルでも分かるように説明する - その1(フィボナッチ数列)

「動的計画法(Dynamic Programming、以下DP)をどんな人にも分かるように丁寧に解説する」というこれまで何人もの優秀な方々が挑戦した内容にあえてまた参戦することにした。「動的計画法」とか「Dynamic Programming」でググると山のように解説ページがヒ…

小学3年生向け英語ボキャブラリーテスト【シンガポールの地元校版】

こちらの小学生達は英語のテストをリスニング編、スピーキング編、書き取り編と3部に分けて行う。書き取り編のボキャブラリー選択問題を抜粋した。英語のテストとしてまーまーいいので6問だけ試してみてはいかがでしょうか? 勝手に作ったり改編したのでは…

東京都民と千葉県民の違いなんてシンガポールで説明できるはずもない、という話

以前、ウチの娘が同じクラスのドイツ人の男の子とちょっとしたケンカをしたらしく、先生から電話があった。先生からはその経緯やらその後の解決したことまでの報告を受けたので安心はできていた。まだ小学校低学年だし、深刻ないじめでもないし、気にするま…

転職候補先で仕事内容や条件は素晴らしいのに「なんだか働きたくないなー」な会社があった

2年ぐらい前、シンガポールで転職活動をしていたときに仕事内容がバッチリで条件もそこそこいい求人が見つかった。さっそく応募書類を送って最初の面談が決まって、面談した。その後に「1次面談ありがとう。次回の2次面談の予定が**でして、来てもらえ…

「ITスタートアップで**を考えている奴ってバカじゃね?」と一刀両断されたがバカで結構です、と

こちらのスタートアップ界隈でのランチはだいたい周りの会社なんかにいるエンジニア達4,5人と一緒に食べて話をする。話の内容はいろいろだが、最新技術系の話が多い。 「おい、人工知能でその人にあった好みの料理を作る機械知ってるか?」とか「ドローン…

DJマシュメロのマーケティングが絶妙なのでウェブ系エンジニア目線でその考察を書く

特にEDM(エレクトロニック・ダンス・ミュージック)に造詣が深い訳ではない。しかしDJマシュメロのEDM界におけるマーケティングの素晴らしさを目の当たりにして「これはウェブ系エンジニアがしっかり参考にするべきなのでは」と思ったので書いた。 DJマシュ…

「プログラマが知るべき97のこと」はやたらリピート率の高いキンドル本

「プログラマが知るべき97のこと」の英語版がKindleに入っていて、結構な頻度で読んでいる。エンジニア向けエッセイ集で全てのエッセイが2ページほどに収まっており、スキマ時間に読むのにちょうどいいからだ。各エッセイには97人の熟練エンジニア達がそ…

エンジニアの技術力とプロジェクトのヒット率の悲しい相関性

元同僚のエンジニア達に会っていろいろ話す機会があって、彼らと話すうちにエンジニアの技術力とプロジェクトのヒット率の悲しい相関性について言及するに至った。人材の流動性が高いシンガポールのスタートアップで働いていると、同僚と仲良くなっても自分…

天才プログラマーと自分との実力差をカンタンに測定する方法

天才プログラマーと自分との実力差をカンタンに測定する方法を発見しましたよ、という話。結論から言うと、いろんなところで過去に開催されたプログラミングコンテストの入賞者の結果を見て、その問題を同じ条件で解いてみること。あるウェブサイトに201…

オブジェクト指向設計実践ガイド 「Practical Object-Oriented Design in Ruby」待望の日本語版がついに発売

本ブログで絶賛オススメしていた 「Practical Object-Oriented Design in Ruby」の日本語版がついに発売された。こちらの記事でオススメを書いたのだが、アクセスはたくさんあってもアマゾンのアソシエイトプログラムを通して購入にいたるケースは少なかった…

RubyのEnumeratorとEnumerator::怠惰(Lazy)の使い所とベンチマーク

RubyのEnumeratorとEnumerator::Lazyの使い所とベンチマークをまとめた。使うと意外と便利なのがEnumerator。 Enumeratorの基礎動作 irbを起動して配列のeachの後にブロックを渡さないでおくと、それはそのままEnumeratorオブジェクトにして返される。 ~ $ i…

エンジニアとして優秀な奴が全部持っていって、後は残りカスすら無いという現状を直視する

あらかじめ言っておくと結論はなく、今までの考え方はちょっと間違っていたな、というだけの話。エンジニアの世界にはやたら技術レベルの高い人が居て「こんな人にはかなわない」となることがある。そういう人と真っ向から勝負しても、負けるだけなので私な…

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

実際の英会話において実用的に「使える本」に出会った。アメリカのテレビで活躍するコメディアンAasif Mandvi 氏のNo Land's Man。No Land's Man作者: Aasif Mandvi出版社/メーカー: Chronicle Books LLC発売日: 2014/11/04メディア: Kindle版この商品を含む…

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

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

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

前回のつづき。 その1 その2 その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).fla…

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

前回のつづき。 その1 その2 その3 【問題2】 What will val1 and val2 equal after the code below is executed? Explain your answer. val1 = true and false val2 = true && false もしすぐに答えが分かったとしても「え?なんか同じに見えるなー。こ…

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

エンジニアが海外転職する際に面接で英語で聞かれる基礎質問において、その解答と同じぐらい重要なのが「会話」になる。前回「海外転職の面接の時に英語で聞かれるRubyとRailsの基礎質問を徹底マスターしておく方法」という記事を書いた際に自分で書いておい…

クソコードとは何か?を写真で説明した

「クソコード」と言っても一体なにをもってクソとするのかは難しい。さらにほとんどのコードは一応は動いている。目の前で動いているコードに対して「クソ」と判断するからにはもうちょっと分かりやすい説明があってもいいんじゃないだろうか、と考えたので…

RubyのリファクタリングでNull Objectを使ってコードをスッキリさせる方法

前回、Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法という記事を書いて、いい反響をいただいたので第2弾を書いた。Ben Orenstein氏の講演で話されていた前回のとはまた別のリファクタリング方法。元…

次世代スマフォのあり方を再定義したAmazonのFireタブレット

Amazonの激安Fireタブレットを買ってしばらく経ったのでそのレビューを書いた。仕事がら常に最新のスマフォに触れている。いつもデスクにはiPhone4から最新のiPhone6sまでの歴代機とAndroidがそれぞれのバージョンと主要メーカーのがデバッグ機として置いて…

「ポケモンGO」の世界的大ヒットをとても嬉しく思う海外在住日本人の視点

海外在住の日本人としてポケモンGOの快挙をとてもとても嬉しく思っている。 あらかじめ言っておくと本日時点でシンガポールではまだポケモンGOがリリースされていない。したがって街のどこを見ても誰もポケモンGOをやっている人は居ない。それでもここ数日、…

Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法 - その3

前回からの続き。 Rubyのリファクタリングでオブジェクト指向設計に沿った美しいコードになるまでの方法を書いた。 「イケてない」から「マシ」にするためのリファクタリング 「マシ」から「いいね」にするためのリファクタリング 「いいね」から「スゲーい…

Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法 - その2

前回からの続き。 Rubyのリファクタリングでオブジェクト指向設計に沿った美しいコードになるまでの方法を書いた。 「イケてない」から「マシ」にするためのリファクタリング 「マシ」から「いいね」にするためのリファクタリング 「いいね」から「スゲーい…

Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法 - その1

Rubyのリファクタリングでオブジェクト指向設計に沿った美しいコードになるまでの方法を書いた。元ネタはこちらのBen Orenstein氏のリファクタリングで、そこに私なりの解説とコードを加えた。かなり追加したのでOrenstein氏の原型とはだいぶ違う箇所もある…

英語圏のITスタートアップにおいて日本人であることの唯一のメリットを転職で活かす方法

もうぶっちゃけて言ってしまえば英語圏のITスタートアップで働く場合に日本人であることのメリットなんてほとんど無い。日々の業務で実感できることなんて皆無だ。ほとんどの情報は英語で発信されているし、会議もランチ中の会話も英語。ジリ貧状態の日本市…

はっきり言う。コードレビューが嫌いだ。そしてその理由が分かった

だいたいどこでもコードレビュー絶賛中だ。「コードレビューで知識を共有できる」「クオリティが上がる」「開発者が成長できる」といいことずくめみたいに言われている。そうしたメリットを分かった上で言う。コードレビューが嫌いだ。GitHubにあがったPRを…

初心者でもカンタンにRailsの中身のコードをコードリーディングする方法

ここで言う「Railsの中身のコード」というのはRailsを使ったRailsアプリのコードのことではない。Railsそのもののコード。DHHが書いたRailsのコード。$ rails new AppNameとかのコマンドが動く仕組みが書かれたコードのこと。 これって職場の同僚と英語で話…

特殊文字の英語表現は英語圏の職場ではよく使うけど、普通の英語学習では出てこないので対策しておくべし

特殊文字の英語表現は勉強して覚えたってよりも、シンガポールで働き出して職場の同僚が何度も話すのを聞いて自然に覚えた。最初の頃はその辺りが慣れていなくて「『#』って入れて」言いたいのにどう表現すれば分からないから、キーボードに手を伸ばして「…

履歴書の技術欄にRailsとかのフレームワークを書くならせめて自分のGitHubアカウントにフォークしとけば多少なりとも印象あがりまっせという話

香港人の若くて可愛いインターンのJ(男)が「就職活動する時になんかいい方法ありますか?」と聞いてきて、その時なにげに答えた内容がまーまーマシな回答だったな、と思ったのでここにも書くことにした。それは「もし履歴書の技術欄にRailsって書くなら、…