Overview

It is very easy to find articles like 100 best CSS Frameworks in 2021. Just to clarify, that’s not what I’m trying to write here. CSS frameworks are solutions for your problem, so you can’t pick the best framework unless you know what the problem is.

I’m going to start by describing 2 aspects here, which are Design Cost and Customisability. As you can see below, I categorised major CSS frameworks into 4 groups, which solves completely different problems.

Design Cost

The first thing you have to think about is how much you or your organisation has the capability to spend resources…


How long can you remember commands you typed on your terminal? If it’s less than 3 arguments, I can remember it for a day but any more than 3 then it gets difficult. What if you used the command a week ago? What if the command had more than 10 arguments includes file paths? For example:

docker run -it -shm-size 256m -net=”host” -rm -v “${PWD}/some/path:/app” -e SOME_ENV=”stage” -e ANOTHER_ENV=”another” docker/image

I definitely can’t remember exactly what commands I typed even just 30 seconds later. I know some people who try to find the command by pressing the up key many…


“The template looks just like your typical HTML document, not like JSX in React. How does Vue use their Virtual DOM internally?”

At this point, you probably have a good understanding of the ease of use that Vue provides to us. That being said, the internal processes that make Vue so easy to use externally are much more complex internally. As a front end developer, it is extremely important to understand the rendering process because it helps to solve problems when you are faced with those tediously annoying bugs. …


Recently, during a hackathon organized by my company, I implemented a prototype application with a framework by the name of Vue.js.

Going into the hackathon, I was basically a complete Vue newbie. The entirety of my Vue experience was obtained from tutorials. This meant I had learn on the run. Amazingly, and much to the credit of Vue, I achieved a lot more than I expected. I learned how to implement components, how to properly handle events, as well as how to create some fascinating animations.

What really surprised me about Vue was just how easily it was learned by…


ピュウンピュウンピュウン!

午前2時、聞いたことも無い音によって突然起こされた。例えるなら車の盗難防止用のアラームだろうか、どうやら外から聞こえてくるようだ。うるさくて眠れない、というほどのうるささでもなく我慢すれば眠れそうだった。発生源を調べるのが面倒だったのでそのまま寝ることにした。

15分後、やっぱり眠れない。「ピュウうううううううううん!」今度は消防車の音が聞こえて来た。さすがにうるさい。と、窓の外を覗いてみるとちょうど消防車が家の前を通り過ぎようとしていた。「お、この周辺で火事でもあったのか、それは騒々しくもなるな」と物凄い睡魔に襲われる中漠然と思っていると、その消防車は家の前で止まったではないか。

「ふえー!この近所で火事か!それは大変だ!」

よく外を見ようと窓を開けると今度は消防車から人が出て来た。「これがイギリスの消防士かー、オレンジ色の服着てないんだなぁ。やっぱり日本とは違う!」と感心しているとその消防士が一直線にうちのマンションに向かって走って来て、建物の中に突入して行った。

「・・・あれ、燃えてるの俺の家やんけ!」

さっきから鳴ってるよく分からないアラーム、よく聞くと外からではなくマンションの廊下で鳴っている。これ火災報知器の音か!無知って怖いな!てか、音が小さすぎる。ここは2階、例え燃えてて逃げ道が無くても最悪窓から飛び降りればそこまで怪我せず脱出はできそうだな。瞬時に考える。窓からマンションの入り口を見ると何人かは外に避難しているようだった。

そもそも本当に燃えているのか?煙も何も見えない。同じような経験は小学校のときに誰かがいたずらをして「消火栓」って書いてあるボタンを押したとき以来だ。正直外寒いし最悪飛び降りればいいからもっかい寝ようかなあ、と思っているとやっとルームメイトが起きてきた。何が起こったのか聞かれたので「消防車が来ててうちのマンションの火災報知器が鳴ってる」と答えるとすぐ着替え始めた。やはり外に避難するらしいので一緒に避難することにした。

階段を降りると物凄い焦げた感じの臭いがした。「あ、まじで燃えてるんだ」と焦った。同じように音が小さすぎる火災報知器の音にやっと気づいた人たち数人と一緒に外に出た。燃えてるのはわかったのだが、おばあちゃんがロビーのめっちゃいい椅子に腰掛けてのんびりしてるし、こんだけ焦げた臭いしてるのにこの時間に飲んだくれて帰って来た人たちは気にせずマンションの中に突入していったのだった。

外には30人くらいの人がたむろしていた。僕は逃げ遅れたほうかと思っていたけど、僕の後から出てくる人もたくさんいた。外から見た感じでは、煙も見えないし炎も見えないし、何も起こっていないように見える。そもそも、消防士が消化活動をしていないところを見るとそこまで切羽詰まった感じではなさそうだ。周りの人たちもだるそうに建物を眺めたり携帯を眺めたりして単に時間を潰していた。

午前3時、叩き起こされてから1時間、やっと消防士の人が大丈夫だから中に入っていいよ、と言ってくれたので部屋に戻った。噂によると1階の電気系統のどこかが悪くて煙だか火が出たんだそうな。ロンドンまで来て、生まれて始めて本物の火事らしきものに遭遇したのであった。あー、びっくりした。


長期で海外に行くのはこれが3回目だ。1回目は3ヶ月間フィリピンのセブ、2回目は1年半カナダのトロント、この3回目は2年イギリスのロンドン。

最初、フィリピンのセブに行くときは7年働いた会社を辞めた。これは自分にとって大きな転機だったと思うが、その大きな一歩を踏み出すまでに物凄く時間がかかってしまった。もう数年早く踏み出していればもっと選択肢が沢山あったのに、と思うこともある。そして無くなった時間は戻って来ない。

環境を変えるのは心理的な不安がとても大きい。海外に行くことそのものより、「仕事を辞める」「大学を休学する」という決断を下すほうが難しいかもしれない。そういう決断を後押しするような心構えを3つ書き出してみたい。

今からここに書くことは「海外に行きたいけど勇気が出ず、躊躇している」人に向けて書いていると同時に、これからロンドンに行く自分に向けても書いている。

遠い未来の計画を立てないこと

自分が5年後10年後にどうなりたいかを見越して、逆算して今何かをする必要は無い。今の僕の状況は5年前に想定した未来とは全く違う。僕は単に今やらなきゃいけないことを1つづつ積み重ねていくだけで自分の満足する結果が出た。

僕の最初の一歩はただの英語の勉強で、2012年くらいから2年間はフィリピン英会話をやりつつ英語をしているだけだった。その途中でフィリピン留学の選択肢が良さそうに見えたので、次にフィリピンの英語学校に3ヶ月行った。

フィリピンの留学中にカナダに行くことが良い選択肢に見えたので、それが終わると今度は1年半カナダに行って英語学校に行った後エンジニアとして働いた。

カナダから日本に戻ると、1年5ヶ月くらい英語必須なGengoでまたエンジニアとして働いた。そして今度はビザが当たってロンドンで働くことになった。ここまで想定して計画は立ててなかったし、立てていたらこの結果は出なかったと思う。

小さなスパンで見ると今回のロンドンに行く経過もそうだった。最初の一歩は1月に抽選の為のメールを1通送ることだった。それが当たると次の一歩はビザの申請と手続きをし、5月にビザが下りると次の一歩は履歴書をアップデートすることだった。

それが終わり6月に応募したい会社のリストを作り、7月に応募して、スカイプ面接して、8月に受かったら飛行機のチケットを取り、会社を辞める手続きをし…と、こんな感じで9ヶ月かけて少しづつ準備を進めて行った。

別に途中で気が変わればいつだって辞められた。それに最初のメール1通を送った段階でこのステップを全て想定していたわけではなかった。単に1つづつ丁寧に進めて行くことで気づくことや分かることが沢山あって、それに価値があったのだ。

完璧な準備を諦めること

「準備万端!よし海外行こう!」

と思える時は一生来ない。英語の勉強、仕事上のスキル、フィリピンの英語学校や留学エージェントの選択、何かは分からない。英語を完璧に話せるようになってから海外行こう、と思ったら英語の勉強だけで一生が終わる。

一番いいフィリピンの英語学校やエージェントを見つける、というのも無理だ。ある程度の失敗は受け入れるしかない。1年経てばフィリピンの英語学校の先生は入れ替わるし、同じように運営されている保証もない。

見ている限り、海外に来ている人は皆完璧ではないし、失敗もたくさんしている。単にそれを受け入れる気構えがあれば十分だ。その経験を通じて英語がうまくなったり自分の能力が上がっていく。

先の心配をしすぎないこと

一番大事なことは、問題は遭遇したときに解決することにして、先の心配を特にしないことだ。もしトロントに行く前にどんな問題が発生するか予め全て分かっていたら、絶対に行かなかった(笑)。

ホームステイ先のオーナーと喧嘩になる、引っ越し先は見つからない、仕事も3ヶ月見つからない、全然友達できないし出来たそばから帰ってく、お金もガッツリ減って行く、部屋綺麗じゃないし寒い、ご飯は美味しく無い、英語がうまく通じない、文化が違いすぎる、とか。


2017年9月: City Hall

トロントには2014年の9月から2016年の1月末まで滞在していた。幸運にもワーキングホリデービザ(と観光ビザ)で来て、約1年間プログラマとして働けた。これを書いている2017年9月の今、もう1度トロントを訪れていて、今思い出してもとても貴重な経験だったので今更ながらその時のことを書いてみたい。

なぜトロントに行ったのか

トロントに最初に来たのは2014年の9月だった。7年働いた会社を辞め、3ヶ月のフィリピン留学を終えて、当初はその後日本で仕事をする予定だった。しかし、一緒にフィリピンで授業を受けていた人達が「カナダ行く」「オーストラリア行く」等の渡航計画を聞いているうちに面白そう、と思って勢いでトロントまで来てしまった。1回フィリピンに行ってしまったせいかそのまま日本に戻る気にもなれなかった。

最初の計画はこうだった。

「最初は生活に慣れる為に2ヶ月英語学校に行って仕事を探そう。仕事はプログラマだから探せばすぐ見つかる」

日本の仕事を辞めてトロントまで来たが、別にプログラミング自体は好きだったし続けようと思っていたので同じ仕事をするつもりだった。カナダを選んだのは、30歳以下ならワーホリビザが取れて1年間働ける、というのと、実際に発給されるビザはただの労働ビザ(カナダの短大に1年か2年行って発行されるもの)と同等のビザで労働の制限が無いというところだった。オーストラリアだと6ヶ月しか同じ職場で働けない等の制限がある。

トロントの仕事探しと苦悩

探し始めると分かるのだが、仕事が全然見つからなくて困った。普通にワーホリに来る日本人が現地の仕事探すのが大変なように、経験があるエンジニアでも仕事を探すのは大変だった。もちろん日本人でなくともエンジニア職を探している人はいっぱいいて、同じような境遇な人を見つけては情報交換をしていた。毎日求人を眺めては応募先リストを作ってメールを送り、返事を待った。返事が来たら電話して面接に行き、何回も落ちた。

正確に記録したところによると、最終的には合計3ヶ月で83件メールを送って電話やメールでレスポンスがあったのは13件、面接に行ったのは7件、面接を通ったのが1件だった。最初は仕事を選り好みしていたが、1ヶ月も経つとそんな余裕も無くなって少しでも自分の経験とマッチしていたりやりたいことに近ければとりあえず応募していた。

お金も割と余裕を持って貯金していたのだが、フィリピンに3ヶ月行ってトロントに来て3ヶ月ほど経ち、暫く無職の生活が続いていた。貯金もどんどん目減りしていくのでいざとなったら日本食レストランかカフェで働くことも視野に入れ、尚且つ、節約の為に月$350(約3万5000円)の中心から遠めのシェアハウスにも引っ越した。

カナダの職歴を得る為のインターン生活

その後すぐに「カナダで働いた経験」を履歴書に書く事が返事をもらう為に必要であることが分かってインターンの職にも応募した。幸いその面接は簡単に通ってとりあえず無給で働き始めることになった。

香港系とジャマイカ系のカナディアン2人で始めたスタートアップで、僕を含めた残りの4人は全員外国人インターンだった。構成はエチオピア人、韓国人、トルコ人、日本人。

韓国人は普通にプログラマとして就労経験があったので問題なかったが、トルコ人はGitを使ったことが無いらしく、複数の機能を全部、アセットをまとめて1コミットにしてPushするのでコミットを見ても何がしたいのか全く分からなかった。もちろんコメントはない。

その会社でインターンするのと同時に並行して仕事を探していたら、結構返事が来るようになって働き始めて1ヶ月後には最初のジョブオファーを貰うことができた。ちなみに、カナダのインターンは本当にすぐに辞める。僕は1週間後に辞めたが、仕事が見つかると即日辞める人も珍しくないらしい。

トロントでの快適プログラミングライフ

働くことになったのはeコマースのパッケージを作っているスタートアップで、フロントエンドの仕事をすることに決まった。給料はトロントのプログラマの平均から言うとやや低いが、日本での給料よりは貰えたので個人的には満足だった。

社内のフロントエンドはカナダ人2人、中国人1人、僕の4人だった。バックエンドはロシア人が2人。それとは別にロシア人のUIデザイナーが1人。上司は2つ年下のカナダ人女性だったのだが、めっちゃプログラミングできるし、ほんと素晴らしい人だった。IBMから転職して来たと言っていた。

カナダで仕事するにあたって最初に気になっていたのは労働時間だった。蓋を開けてみるとみんな9時〜9時半に来てだいたい5時半くらい前には帰っていた。早いと4時くらいに理由も言わずに帰る。さすがに2時くらいだと「病院行くから」「家族の面倒見ないといけないから」とか言い残して帰って行く。また、半休という概念は無く2時に帰ろうが1日出社したとしてカウントされるらしい。更にランチタイムに「私たちは働きすぎだ、5時間で十分」みたいな事を話していた。電車やバスも4時過ぎから混み始める。どうやらカナダ人の認識としては「4時か5時には帰るがそれでも働き過ぎ」らしい。

もう1つ気づいたことは、個人の責任の範囲がしっかりしていることだった。割と日本だとプロジェクトやサービスの必要に応じて何でもやる事が多いけれど、カナダはそういうのが全く無かった。本当にフロントエンドエンジニアはそれしかやらない。人がいなくなればその分他の人を雇う。勉強しなきゃいけないことを絞ることが出来て個人的には働きやすかった。

出来が悪いとすぐにクビになる、みたいな噂をネットで見ていてビクビクしていたが、隣にいた中国人はあんまりコード書けてなかったけど全然クビになる気配は無かった。それだけいいエンジニアを採用するのはカナダでも難しく、普通に日本人のレベルで勤勉に働いてたらまずクビになることは無いと思う。

最後に、締め切りに対する感覚が全く違っていた。日本だと締め切りが決まっていて、追加タスクがあったとしてもその締切日は変わらない(ことが多い)。カナダだと追加タスクがあると締め切りが伸びるかそのタスクを諦める。残業で解決するという発想が最初から無いように見える。

お酒が好きな人には残念だが飲み会に相当するものは一切なく、超豪華なクリスマスパーティが1回あるだけだった。あの会に参加できたのは本当に幸運だった。

ワーホリでもトロントでの経験は生きた

ビザの関係で実際に働けたのは1年くらいだったが、とてもいい経験だったと思う。トロントは英語が完璧ではない人にも物凄く寛容な場所で、僕みたいな日本人でも(なんとか)仕事を見つけることができた。

この経験はその後日本に戻ってGengoに就職するときにも物凄いプラスになったし、今回ロンドンに行くにあたって推薦状が必要になったのだけどこのトロントの会社で今も働いている上司にお願いしたら快諾してくれた。なのでここで働いてなかったら今の自分は絶対に無かった。

もし日本で働き疲れたら、「海外で働く」という選択肢を視野に入れてもいいと思う。それはめっちゃ凄いプログラマじゃなくても英語を勉強すれば普通にできる。実際の仕事探しのコツや面接の準備の仕方などは別の記事で書いてみたい。

Kohei Mikami

Full Stack Developer, London, Japanese

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store