読者です 読者をやめる 読者になる 読者になる

zakisan's blog

https://github.com/kenzan100

ベルリンにて転職しました。

お久しぶりです、ドイツベルリンから書いております。 深山雄太です。

前回の記事

kenzan100.hatenadiary.jp

結論から申し上げますと、今月いっぱいで今働いている会社を辞め、来月からベルリンの別の会社で働き始めます。

海外で働きつつ、そのまま現地で転職活動をしたのは生まれて初めてのことです。ベルリンで働き始めてから一度も活動報告をしていなかったこともあり、この記事でまとめて書いてみます。

ベルリンどうよ?

とても良いです。ベルリンの住みやすさは最高です。 東京よりも圧倒的に人口密度が低く(23区と比較して、人口は約三分の一、面積は約1.6倍だったかな)、通勤や週末の買い物にまったくストレスを感じません。

部屋も広い。東京やニューヨーク、ロンドンとかだと、家賃あたりの体積が極端に狭いと感じます。その点ベルリンは、たてよこ高さすべてにおいて「一人が快適に暮らすにはこれくらいのスペース必要っしょ」みたいな最低基準が高い気がします。

f:id:kenzan100:20161201005552j:plain [オフィスです]

ベルリンも不動産価格は高騰しているみたいなのでいつまでもこの状況が続くかはわかりませんが、今の所はエンジニアが楽しく働けそうな都市の中ではゆとり(というか田舎感)を感じることができます。

お店の営業時間が短く、深夜営業ほとんどなし。日曜日は基本的にすべての店が閉まります(レストラン除く)。 日本のコンビニ、ドラッグストア、ドンキホーテみたいなものは皆無でして、物欲がなくなります。買い物がパターン化してくるので、買い出しのストレスが減りました。

大都市に慣れた人からすると、ベルリンは不便かも。でもエンジニアとしては一台のPCと電源とWi-Fiさえあれば、時間はいくらあっても足りないくらいの学習リソース(やコミュニティ)があります。 選択肢が少なくても、打ち込めるものがあればいい。そんなライフスタイルを望む人にとっては、ベルリンはとってもおすすめです。

ちなみに家から職場までは、こんな道のりです。

f:id:kenzan100:20161201010153j:plain [家を出たあたり]

f:id:kenzan100:20161201010543j:plain [地下鉄]

f:id:kenzan100:20161201010315j:plain [そして職場の近く]

なんで転職するの?

ベルリンはそんなわけで自分にとってとても暮らしやすい環境ですが、会社は、働くうちに辛さを感じることが増えてきました。 理由は二つで、あまりにも人数が少なすぎたことドイツ語でのコミュニケーションが思ったより多かったことです。

3月から今月末まで八ヶ月働いたことになるその会社ですが、ウェブアプリ開発を中心にした受託開発の会社です。 https://nerdgeschoss.de/

大学を出たてのドイツ人二人が創業者。長期のお仕事が増えてきたということで、フルタイムのエンジニアをhttp://berlinstartupjobs.com/で募集していたときに、偶然応募しました。 詳しくは前回の記事にまとめてあります。

柔和で人当たりのよいクリスと、技術オタクのイエンズ。この二人の組み合わせは絶妙で、二人が大きめの仕事を取ってくるさまを間近でみるにつけ、つくづくチームって大事だな、と思います。

f:id:kenzan100:20161201010939j:plain [創業者二人の写真。数年前だからだいぶ若い。]

ドイツ人二人で、ドイツ国内のクライアント6社くらいを同時に回していた彼ら。その環境でなぜか東京から連絡した日本人の私を採用してくれました。真相は今でも謎ですが、数回のスカイプと技術課題で遠隔地にいながらオファーを決断してくれた彼らの懐の深さには、今でもいたく感謝しております。

彼らは採用当時「ベルリンは英語だけでやっていけるし、俺たちを英語メインで仕事してるから、ドイツ語いらないよ!」と言ってくれたのですが、しかしやはりここはドイツ。そういうわけにはいかなかったです。

ドイツ語辛い

同僚がいなく、創業者二人とクライアントがドイツ語で打ち合わせをしていたりするので、どうしても会話で後手後手にまわってしまう。

ステークホルダー全員、英語を話そうと思えばそれこそペラペラしゃべることができる人たちなのですが、込み入った話になってくるともちろんドイツ語の方が話しやすいわけで。そういうときに、毎回あとから「で、何が決まったんだい?」と聞き返すのは、ストレスでした。

日本でも英語を社内共通語にしようとする会社がいくつかあると思いますが、たとえば契約の話とか、納期がせまってきたときとか、ホットフィックス対応とか。そういうときにはやはり母語でのコミュニケーションの方がリスクが少ないわけです。

ましてや従業員とクライアントであれば、どちらを優先させたほうがよいかは明らか。クライアントが快適に話せる言葉を使ったほうが良いに決まっています。それを実感した八ヶ月でした。

「ドイツに移住しておいてドイツ語が辛いとか、こいつ何言ってるんだ」というツッコミが聞こえてきそうですが、ベルリンの良いところは、そのときに「英語オンリーの職場に転職する」という選択肢があるところです。

このとき自分には「ドイツでこの先もがんばりたいので、ドイツ語を学んで、今の職場でプレゼンスをあげていく」という選択肢と、「英語が通じる地域でエンジニアとして活躍したいので、英語だけで何とかなる職場に転職する」という二つの選択肢がありました。

自分にとっては明らかに後者の方が比重が大きかった。そのため、このタイミングでの転職活動に踏み切りました。

転職活動やってみてどうだった?

冒頭にも書きましたが、海外での就労生活ははじめてで、特にツテがあるわけでもありません。その状態で最初は自分が好きな会社(ドイツにはこだわらず)にぽろぽろとレジュメを送っていたのですが、あまり反応がよくありません。

今度は地域をベルリンに絞って探してみますと、募集自体はいくらでもあるものの、何を基準にしてどういう順番で応募しようか、迷ってしまいました。

ハニーポットというサービスがよかった

そんなときに同じく日本からベルリンに移住されたエンジニアの先輩から、ハニーポットなるサービスがあることを聞きました。

f:id:kenzan100:20161201045130p:plain ["Companies apply to you."]

ハニーポットはいまおそらく流行りのエンジニア限定のリクルーティングサービス。各地に似たようがものができつつあると思いますが、この会社はドイツベルリンにHQがあり、ヨーロッパで転職活動をしているエンジニアに嬉しいサービスです。

エンジニアとしてサービスに登録するだけで、複数の企業があなたにコンタクトしてくれます(オファー金額つき)。レジュメの公開期間が二週間限定と決まっており、その間に登録企業があなたに興味をもてば、連絡がきます。限られた時間の中で、あなたがどれだけ求められるか、だいたいの市場価値を判断することができます。

アメリカだと似たようなもので https://hired.com/ というのがあります(サービス開始時期としては、こっちが先だったと思う)。

インタビュープロセスにも不慣れな時期においては、こういったところで複数のインタビュープロセスをこなしてみることで、「採用までにだいたい何ステップあって、各ステップでどんなことを聞かれて、自分はどれだけペラペラしゃべることができるか」というものを確認できます。

やっているうちにだんだんと傾向と対策がわかってきます。その後の活動に向けて、大いに自信がつきました。

自分は三ヶ月くらいの期間で、合計10社くらいとお話をし(レジュメ送っただけで終わったところは除く)、うち5社くらいからオファーをいただいたのですが、そのうちの半分はこのサービス経由でした。

採用の大まかなプロセス

だいたいどの企業も、

  • 書類でのスクリーニング
  • スカイプとかで1、2回自己紹介と技術についてのオープンエンドセッション
  • 技術課題(ホワイトボードか、持ち帰り課題、ときどき1日体験入社みたいなのもあった)
  • 最終的な相性をみるお見合いセッション
  • オファー

という流れをとっていたように思えます。

特に自分が面白いなと思ったプロセスをとりあげると、

最初の方で必ず聞かれる質問

"What is the biggest technical challenge you solved recently?" という感じの質問は、必ずと言っていいほど聞かれます。 https://www.quora.com/How-do-you-answer-the-technical-interview-question-What-is-your-biggest-challenge-and-how-did-you-solve-it

答えはその人自身の経験に依存しますので対策はないのですが、 「ある程度実践的な(チュートリアルやりましたとかではないやつ)技術課題に対して、情熱的にしゃべることができること」 というのが、この段階で大切なことだと感じています。

ただでさえ母語ではない英語で語らなければいけないですので、必ずサマリーを書き出したり、暗唱してから臨むことをおすすめします。 「あぁ、こいつは技術が好きで、自発的に問題に取り組んで成果を出せるんだな」と思ってもらえたら、このセッションはパスできると思います。

技術課題の傾向

局所的な感覚値ですが、グーグルとかマイクロソフトが採用しているコーディングチャレンジに対して、肯定的な企業と否定的な企業が両方いると思います。 https://www.quora.com/Which-is-the-best-book-to-prepare-for-coding-programming-interviews

いわく「コーディングパズルでは、その人が職場でどうパフォーマンス発揮するか全く測れない」 一方で「アルゴリズムやデータ構造について理解が乏しい人は、肝心なところで活躍できない」などなど。

ハイブリッド型の技術課題として、「一問一答形式のコーディング問題を足切りで出題、その後合格者にだけ数時間から数日かけて取り組む技術課題を出す」などもありました。

最近増えてきたなと思うのは、その会社のプロダクトの一部を簡素化して、お持ち帰り課題として切り出す、というパターン。 その中でも、SoundCloudの課題はとっても面白かった(落ちました)。技術課題が面白い会社は、良い会社だと勝手に思っています。

深掘りできるときにしておこう

会社が違えばその会社の技術に対する姿勢もそこそこ異なるわけで、一概にこれをやったらいい、というものはやっぱりありません。 でも、あなたが応募している職種に書かれている技術スタックで、それがどういう仕組みで動いているのか(インターナルの概論)というのは、このセッションをクリアするのに大事な所だと思います。

例えばRails。ウェブアプリ開発時に、Railsの恩恵が大きい部分(Railsが何を解決しているのか)についての理解がどの程度あるか。自分が楽できたなー、と感じた時などに深堀りしておくことが大事だと思います。ARがどうDBとやり取りするのかとか、AutoLoadingとか。

転職活動というのは「もしかしたら聞かれるかもしれないから勉強しておこう」という点において、普段よりも学習意欲が高まっている状態だと思います。転職活動をちょっと大きめにとらえて「自分のスキルアップ期間」と考えて勉強すると、なかなか有意義な時間が過ごせるのではないかと。

https://medium.com/@kenzan100/fastest-crash-course-on-algorithms-and-data-structures-a0679dd5fc24#.li3vbbrfg

お見合いセッション〜実際に決断するまで

はれて技術課題も突破したら、あとはもうお見合いみたいなもんだと思います。 どんな企業にも良い顔をしたくなるのですが、待遇面と「毎日の業務フローで、今までの経験上、ここだけは譲れない」みたいなものを明確にしておきましょう。

これは日本にいたときのエンジニアの先輩のアドバイスの実践なのですが、 もしここまでに彼らのオフィスで1日とか半日時間を過ごしたことがないのであれば、頼み込んででも「1日だけ体験入社的なことさせてくれない?」と聞いてみましょう。 お互い入社してからミスマッチが判明するのは最悪ですので。

自分の場合は「英語だけで通用する職場に行きたい」というのがそもそもの転職理由でしたので、開発チームの日常の業務フローが英語だけで完結するか、というのは大きなポイントでした。

結果的には、カスタマーサポート以外全員外国人のチーム、顧客のほとんどが北米、だけどヘッドクォーターはベルリンという会社に巡り合うことができ、当初の目的を叶えることができそうです。

f:id:kenzan100:20161201043344j:plain [ここで働きます]

決済APIと連携済みのSaaSを主な対象としたビジネスメトリクスを提供している会社です。そっち方面の会社で働いている方がいたら、ぜひ登録して使い心地を教えてください。 https://chartmogul.com/

転職活動で一番つらかったこと

いつの時代もつらいのは、最終的には一社に決めなければいけないのに、複数社並行してプロセスを進めなければいけないことですね。こればっかりは。。 体験入社で心が固まることは多いとは思います。

あと、すぐに決めるぞ!という気持ちで臨まずに、転職活動を課外活動みたいなものとしてとらえて「夢の仕事(ここからオファーもらえたら、百パーオーケー)に出会うまで長期的に頑張り続ける」という気持ちの方が成長できる気はします。メンタルも技術力も。

ただ、今いる会社の通常業務をこなしながらなので、心と体は疲弊していきます。ほどほどにしましょう(奥様、話を聞いてくれてありがとう)。

そういう意味では、選考が進んだ会社の中でSoundCloudとかN26(銀行スタートアップ)が自分にとっての「夢の仕事」でした。ただ、こういうところはおそらく応募件数が他のスタートアップとくらべて桁違いだと思います(いわんやグーグル、フェイスブックAmazon、エトセトラ)。

f:id:kenzan100:20161201044311p:plain [SoundCloud楽しかった。色々と噂はありますが。]

こういった所のプロセスは、よりアーリーなスタートアップ企業よりも時間がかかるということは覚えておくと良いと思います。私の場合、あるスタートアップが二週間で計5回くらいのプロセスを終えてオファーをくれたのに、今あげたような大手は二週間たってまだ技術課題の結果待ち、というのはざらでした。

この場合、既にオファーが出たところに待っていただいている状態で、(そもそも落ちているかもしれない)結果待ちをしなければいけないのはかなり辛いです。「そういった特殊な状況下になったら、どういう決め手でオファーをアクセプトするか」は事前に考えておくとよいかも。

がんばってね!

はい、がんばります。 えーと、この八ヶ月で自分に仕事環境に起こった変化でいうと、だいたいこんなところです。

そんなこんなで、自分は1日の体験入社も済ませ、来月から新しい会社で働きます。体験入社時点ですでにかなりディープなプロジェクトが待っていることもわかったので、不安と期待で胸がいっぱいです。

良いご報告ができるよう、がんばります。 それでは、また。

来月頭より、ベルリンでエンジニアとして働くことになりました。

f:id:kenzan100:20160221174252j:plain https://www.flickr.com/photos/ntrinkhaus/14593212964

お久しぶりです。

突然のご報告ですが、来月頭よりベルリンでエンジニアとして働くことになりました。この場を使って、働くことになった経緯と今後の展望を書きます。

これから海外でウェブ系のエンジニアとして働く人の参考になれば幸いです。

まず私の属性ですが、31歳、文系出身、主にRubyRails)でウェブアプリを書いています。エンジニア歴五年くらいです。 プログラミングを始める前は、大学時代に友達と始めた会社でゲームをつくっていました(会社は存続していて、今年で8年目です)。

f:id:kenzan100:20160221155534p:plain こんなゲームをつくっていました。

主に日本のスタートアップ企業で働いてきました。DB設計/インフラ構築含め、一からウェブサービスを開発することもあれば、既存サービスの登録者数を2ヶ月で倍増させる施策に携わることもありました。

昨年はひょんなことから、ニューヨークの選抜式のプログラミングキャンプに三ヶ月滞在しました。 ※そのときの詳細は下記にまとめています。

note.mu

エンジニアとして働くようになってから思っていることで、また海外に数ヶ月滞在してより強く思うのは、 「英語はもはや標準語で、情報のインプット/アウトプットが英語でないことは、成長する上で不利である」ということです。

すこし偏った考え方かもしれませんが、現時点ではそう思います。

理由は単純です。より多くの人に自分の考えを伝えたい人は、母国語が何語であろうと、英語で発信します。情報の母数が圧倒的に大きいので、その中で浮かび上がってくる情報にはみんなが注目します。その結果、さらに英語での情報量が増える。このフィードバックループが働いていると思うからです。

Github、StackOverflow、HackerNews.. こういったサイトに全世界からエンジニアが集まり、英語で議論しています。

個人的にも、RailsCastsThoughtbot社が提供するスクリーンキャスト、そして 英語が原著である数々の技術書にお世話になりました。

ThoughtbotのCTO Joe Ferrisさんは声がとても良い f:id:kenzan100:20160221161010p:plain

ベルリンという選択肢

そんな経緯で海外でのエンジニアキャリアへの思いを強くしていた矢先に、複数の方から「ドイツ ベルリンのスタートアップシーンがアツいらしい」という噂を聞きました。

実際に日本人エンジニア二人が渡独し会社を立ち上げていたり、他にもグッドパッチさんが海外オフィス第一号としてベルリンにオフィスをつくっていたり

以前の職場の同僚は、世界中のスタートアップを巡る中で、ベルリン発のスタートアップWunderlistの職場環境に強く感銘を受けたそうです。

そのときに、ベルリンのウェブ業界では英語さえ喋ることができれば不自由しない、ということも聞きました。

ワーキングホリデービザの使い道

そして最後に自分の背中を押したのは、ワーキングホリデービザの存在です。 今まで自分の中のワーキングホリデービザのイメージは「異文化理解のための留学の大人版」のようなもので、自分とはあまり関係がないと思っていました。

ただ、就労ビザを取ることの難しさを去年ニューヨークで肌で感じた昨年末、 「ワーキングホリデービザで就職先を見つけ、そこから就労ビザに移行する」というやり方があることを知りました。

さらに、私がこの方法を真剣に考え始めたときには、すでにワーキングホリデービザの取得期限が間近に迫っていました。 ドイツのワーキングホリデー申請資格は、「申請日に、30歳以下であること」。31歳の誕生日がタイムリミットです。

31歳の誕生日が一ヶ月後に迫っていた私にとって、この期限は「今決断しなければ、人生で選択できるチャレンジの一つが永久に失われる」という類のものでした。

妻には「見通しが甘すぎる」とこってりと絞られましたが、最終的には妻と私二人で、(移住覚悟で)ベルリンに生活の拠点を移す、という決断をするに至りました。

仕事のオファーをもらうまで

ビザが取れるからといって、雇ってくれる(それも自分が望むポジションで)組織がなければ、就労ビザの取得は望み薄です。 自分の現在のスキルセットがどう評価されるのかまったく分からない状態で、とりあえず現地のウェブエンジニア向け求人をあたってみました。

f:id:kenzan100:20160221163929p:plain Berlin Startup Jobsというどんぴしゃのサイトがあり、情報は毎日のように更新されます

全部で5,6社にレジュメを送り、ベルリンに移住することになった経緯をそのメールの冒頭に書き添えました。 結論からいうと、無事そのうちの一社からオファーをいただき、ベルリン到着後すぐにその会社でエンジニアとして働き始めます。

その会社はここ。ドイツ人二人だけでやっている開発会社で、三人目として自分が参加します。 https://nerdgeschoss.de/

そのうち一人の Jensというエンジニアは、ベルリンで Swift.berlin というミートアップを主催しており、余暇でサーバーサイドSwiftのウェブフレームワークを自分で開発していたり、技術的に大変面白い方です。

f:id:kenzan100:20160221171651p:plain

他の会社からも総じて反応がよかった訳ではなく、この会社だけが今の自分のスキルセットを評価してくれました。 雇用はお見合いなのだなと、つくづく思います(もし今エンジニアとして就職活動、転職活動をしている人がいたら、決して一社一社からの評価に気を揉まないでください)。

この会社がなぜオファーをくれたのか自分なりに分析してみると、

  • 英語に関しては苦労せずにコミュニケーションできること(ドイツ語が喋れなくてもまったく問題ない、とのことでした)
  • スタートアップでウェブアプリを0から素早くつくる、という経験があったこと
  • Swiftが出たばかりのときに作ったiOSゲームをGithub上で公開しており、それを気に入ってくれたこと(実は現在の開発環境だとビルドできません。。 )

ざっくりとこんな所だと思っています。

この選択を正解にするために

自分はエンジニアとしてまだまだ未熟です。それでも自分となんのしがらみもない海外の開発会社からオファーをもらえたことで、チャレンジする道が拓けました。

ただ、この方法がオススメかというと正直迷います。場所が変わることは強烈な成長ファクターだと思いますが、結果成長するかどうかは、その人次第ですよね。

「日本でまず技術力を伸ばして、それから海外でもどこでも、自分が挑戦したい分野に挑めば良いのでは」という考えにも共感します。ウェブアプリ開発という文脈で、東京のレベルが低いとはまったく思いません。

ただ、自分の場合たまたま「英語で情報をインプットしているときのほうが、よりプログラミングにハマる感覚が強かった(成長実感が強かった)」というイメージがあるので、今回の道を選びました。

あとはこれを正解にしていけるよう、現地で精一杯、願わくば JensとChrisという二人のドイツ人と一緒に「代表作(サービス/プロダクトなのか、ライブラリなのか、はたまた組織そのものなのか分かりませんが)」をつくれるよう、粘り強く挑戦していきたいと思います。

自分が働く会社のチーム紹介ページ。この "YOU" が俺になります f:id:kenzan100:20160221165147p:plain

似たような経験をすでにしていらっしゃる方、これからしようかどうか迷っている方、そんな方々にとっての一つの視座になれば幸いです。

とりあえず、今一番不安なのは、日本のおいしいお米が食べられなさそうなことと、集団でディスカッションするときに、会話においてけぼりになりそうなことです。。

「中級者エンジニア」ならではの悩み

皆さんは、今自分のエンジニアとしての学習サイクルに満足していますか?

自分は全く満足できていません。やってみたいこと、やらなきゃいけないと思うことがたくさんあって、その割に学習速度を保てていると感じられていないからです。

三ヶ月前までは、そんなことはありませんでした。それは、 リカースセンター(前まではHacker School) という、仕事/寝食を忘れてコーディングに没頭できる場所に渡米し通っていたからです。

そこで日本に帰国後、このコミュニティで感動したことを自分なりに解釈し、Dokugaku Dojoという名前でこの3ヶ月間実験してきました。

プログラミング独学道場 第一回ミートアップ「Hello World」を開きました。 - zakisan's blog

Dokugaku Dojo = 中級者エンジニアが、学習を加速させる場所

しかし最近「これは何のための、誰のための場所なのか」という、このコミュニティの位置づけについて色々と悩んでおりました。悩みに悩んだ結果、現在は 『初心者を過ぎたエンジニアが、さらに学習を加速させられる場づくり』 というビジョンを掲げております。

その理由として。。

ブーム化するプログラミング学習

アメリカではすでにプログラミング学習が一種の「ブーム化」しています。短期間で一気にウェブアプリ開発技術を詰め込む、「ブートキャンプ」と呼ばれるやつですね(私が参加したところの組織のファウンダーは、初心者を対象にしたこのブートキャンプ現象を毛嫌いしていましたが...)。

ブートキャンプの語源は、軍隊の新兵訓練施設です photo by MCRD Parris Island, SC

2015年5月時点で、北米地域で 70を超えるプログラミングブートキャンプが存在するようです。 日本でもこの流れは起きていて、最近だとテックキャンプ、テックアカデミー、(リモートだと)コードキャンプなどがあります。

プログラミング、その深遠な冒険の始まり...

では、そこでひとまず「なんとなく、ウェブアプリってこう作れば良いんだな」ってことが分かったとしましょう。実はそこからが、冒険の始まりなのです。 この右も左も分からない初心者を脱したあたりから、エンジニアは色々な方向に興味、目的意識が拡散していく傾向にあります。

ここで厄介なのは、まだ一つの技術分野を「極める覚悟」をもった段階ではないため、とりうる選択肢が色々ある、ということです。

現在の自分の頭の中をさらけ出してしまうと。。

Railsで何年か書いてきたけど、何年後かにRailsって陳腐化するよなぁ。。(現状への不安) そういえば、静的型付けの言語って業務でまだやってないなぁ。。でもC++Javaを独りでやる気しないなぁ.. やっぱここはGoかな! でももっと振り切ってRustも良いんじゃね? あともちろん、関数型は絶対だよね。。Scala、Elixir!? Haskell。。 JavaScriptも、古くて常に新しい言語なので、理解の深さが試されるよなぁ、ECMAScript6 ...

この混沌とした思考が、プログラミング言語だけでなく、ライブラリ、フレームワーク、XaaS(SaaS, PaaS, BaaS...) においても繰り返されるとお考えください。

中級者からの思考のビッグバン です。Qiitaから毎週届く「先週ストックが多かった投稿ベスト20」が、これに拍車をかけます。

photo by gari.baldi

そうなってくると、一つの技術にじっくり取り組む集中力が減退してしまい、表層的な部分しかなぞっていないということにもなりかねません。 さらに、今までは「初心者にありがちなバグ・エラー」でお互いに助け合えていたエンジニア同士でも、細分化したときには助け合える共通の課題が減ってしまいます。結果、勉強仲間に出会いにくくなったり、ウェブ上の情報ボリュームが少なくなってしまいます。

ググってもなかなかシンプルな解決策が出てこないエラーで悩んだり、バズっている技術の何に手を出したら良いのか考えたり、、エンジニアは十把一絡げではなく、そこからさらにまた専門性があるんだ、ということにも気づいてくる頃です。

中級者エンジニアならではのメタなコミュニティをつくりたい

そんな雑多な状態で、どうやったら良いコミュニティがつくれるんでしょう。一つニューヨークでの体験から気づいたのは、この中級者にさしかかったときの悩み、課題は(その時手を出している技術は違えども)メタでは同じ。 ということです。彼らにも、他の人、先達、同じくらいのレベル感の仲間ががいて、救われる、勇気づけられる、助けられるポイントがあると思うんです。

その「迷いを抱えながら学び続けるエンジニアを助けられる(学習速度を上げられる)コミュニティとは何なのか」それをDokugaku Dojoが抱える命題とおいて、現在活動しております。

ぜひ、Dokugaku Dojoのミートアップにお越しください!

ということで、この想いに共感してくださる方は、ぜひ私たちが主催するミートアップにお越しください :)

  • 日時: 11/28(土) 午前10時スタート (所要時間:二時間)
  • 場所:渋谷駅徒歩五分、グッドパッチさんのオフィスお借りします。
  • ご興味ある方は、下記Facebookイベントページより、参加ボタンを押してください。

Dokugaku Dojo 第三回ミートアップ STDIN/STDOUT | Facebook

フィードバックお待ちしております!!

プログラミング独学道場 第一回ミートアップ「Hello World」を開きました。

先週末の土曜日、「プログラミング独学道場」という私たちが主催している活動の第一回ミートアップを開きました。その活動内容をここでレポートします!

レベル感問わず、独学でプログラミングを学んでいる皆様に見ていただきたいレポートです。

独学道場ってなに?

f:id:kenzan100:20150914005614p:plain

プログラミングを独学で学ぶエンジニア(エンジニア目指して修行中の方含む)たち が、自分の独学の様子を安心できるコミュニティ内でさらけ出すことで、レベル感に関わらずお互いから刺激を請け合い、結果として エンジニアという人種の探求と、好奇心ドリブンであることの幸せを追求する 。。

まぁ、変な集団です。こう書いてみると、まだまだ固まっていないなぁ、と自分でも思います。が、その分これから何が起こるのか自分たちにもよくわかりません。それが楽しいです。やみつきになりそうです。

この独学道場の取り組みはつい一ヶ月ほど前に始まったばかりなのですが、今までで口コミを中心に50人ほどの人に活動に参加してもらうことができました。

普段どんなことをしているの?

普段の活動はオンラインのもくもく会。 ビデオチャットやテキストチャットをつかって、自宅やカフェで独学するときに自分の勉強内容をみんなに逐次共有します。

f:id:kenzan100:20150914013027j:plain

人から見られている程よい緊張感と、独学内容を言語化することでペースメーカーになることが、現在の価値になっています。 これ以外にもさまざまな独学道場限定の実験的な取り組みが、ときに主催者発信で、ときに横のつながりから起きはじめています。

ただし、オンラインだけでもくもくやっているよりも やっぱり実際にあった方がより面白いことが起こせるよね、という合意があって、 晴れて先週の土曜日、第一回独学道場ミートアップ「Hello World」を開催する運びとなりました。

告知時点で参加していた道場生のほとんどにご参加いただき、30名ほどが集まるイベントとなりました。

Goodpatchさんのオフィスをお借りしました!

会場は、最近お友達になったグッドパッチさんのオフィススペースをお借りしました。本当にありがとうございます。 マイクやアンプといった音響設備があったり(!?)、会場全体にBlueToothスピーカーで音楽が流せたり、至れり尽くせりの環境でした。。他のイベントスペースへのハードルが上がってしまいそうで怖いくらい、ものすごく恵まれた会場でした。重ねて、御礼申し上げます。

f:id:kenzan100:20150914005945j:plain

午前10時からお昼前までの健康的な会で、みなさんあまり遅れることもなく、10時少しすぎには会場全部がちょうどよく埋まるくらいの人が集まりました。

f:id:kenzan100:20150914011422j:plain

イベントレポート本編

さて、ここからは時系列でイベントの様子をお伝えします。 最初は、主催者の私 深山 雄太(みやま ゆうた)と北郷 裕太郎(ほんごう ゆうたろう)から、独学道場の趣旨説明。

また、実は独学道場は開始当初からインターナショナルなイベントです(理由は後述)。

この日も、アメリカのボストン、ハーバード大学から参加する学生がいて、 ビデオチャットから参加する彼を紹介する時間もとりました。

f:id:kenzan100:20150914013619j:plain

日本語がどの程度伝わったのかは不明ですが、会場がその瞬間盛り上がったのは確かです笑

本イベントのねらい

それがサクッっと終わったあとは、独学道場ミートアップ本編です。 今回意識したのは、「会に来た人たちが、安心して喋る機会をできるだけ増やす」こと。

その上で必要だと思ったのは、独学の先達からの「独学の楽しさ、秘訣」のプレゼンです。 今回は、深山が会の一ヶ月前くらいに知り合った松林さんという方にお越しいただき、「いま分からないことを分かるようにするにはどうしたら良いか」「分かっている人とまだ分かっていない人のあいだはどう埋められるのか」などのテーマについてお話しいただきました。

f:id:kenzan100:20150914014053j:plain

Linux Distributionの一つであるVine Linuxを開発している Project Vineの副代表をやられており、 プログラミング学習がここまで一般的になる前から、ずっと独学でやられてきた方です。

なんと一生続いている趣味が「音楽考古学」ということで、「好きこそものの上手なれ」を体現されている方でした(著名なハッカーの方には、音楽に造詣が深い方が多い気がします)。独学の真髄は楽しむことにあり、という、独学道場へ入門される方々にとってこれ以上ないイントロダクションでした。

グループワークの時間です

その後は、いよいよ開場の皆さんにお話ししてもらうワークの時間です。

実は皆さんの話す時間を最大化するために、あらかじめこちらで「興味・関心が似通っていそうな方々」5 ~ 6人の グループをつくっておきました。 彼らが同じテーブルを囲めるように席替えをしてもらって、自己紹介+アイスブレイクの時間を軽く設けます。

そしてその後に、メインの「自分の独学体験、不満、課題、困りポイント」の共有をしてもらったのですが、ここがハイライトとなりました。 ペアになって喋ってもらったのですが、会場のボルテージは最高潮。 皆さんの顔つきがより一段と好奇心に満ちイキイキとした状態になりました。

f:id:kenzan100:20150914014641j:plainf:id:kenzan100:20150914014653j:plainf:id:kenzan100:20150914014702j:plain

同時に相手の話を傾聴する姿勢が生まれ、互いのややもすると「他では尋ねられない」疑問点や不満をシェアすることが、 独学道場ならではの関係性が生まれる上で最も大事な活動だと認識しました。

最後に、独学道場のこれからの施策について軽く私たち主催者から説明。

このときどうしても伝えたかったのは、 「ここは安心感をもって、安心感をお互いに与える前提でつくられたコミュニティです」ということ。

f:id:kenzan100:20150914015126j:plain

人はただでさえ、何か新しいことを学ぶときは無防備です。ましては独学でやっていれば、躓くポイントは無数にあります。

そのときに、周りにいる人からバカにされる、判断される、評価される もしくは職場のように即成果につながることを求められていたら、 私たちは学ぶことに一生懸命になれるでしょうか?

私は、なれないと思います。人は、誰しも「学ぶことにワクワクする力」「自分が変わっていくと信じる力」を持っていると私は固く信じています。 これらの力は大人になるにつれて萎むもの。それが復活するためには、安心感をもって取り組めるコミュニティ、空間が不可欠です。

これが、私が独学道場にこめるもっとも大切な願いです。

独学道場って、これから何するの?

独学道場は、今後とも エンジニア(とエンジニアを目指す人)にとって ベストなライフスタイルはなんなのか、模索していきます。

そのときに、自分がニューヨークで体験してきたプログラミングラボ(キャンプ)が原体験にあります。 正直、そのときの感動体験をどうしても再現したい、と思い、日夜この独学道場に取り組んでいるといっても過言ではありません。

そのニューヨークのプログラミングラボの説明は、過去に書いたこの記事に詳しくのせました。 ニューヨークのエンジニアコミュニティについて。Hacker Schoolでプログラミング修行中|Okazaki Yuta|note ご興味ある方はぜひチェックしてみてください。

独学道場ミートアップ第二回「Do Loop」開催します!

そして、最後まで記事を読んでくださった皆さんに、 次回 独学道場ミートアップ 第二回 「Do Loop」に先行申し込みできるリンクをご用意しました。

日時: 10月10日(土)午前中

場所:渋谷(会場検討中)

独学道場ミートアップ 第二回 「Do Loop」先行申込リンク

こちらも、ぶっちゃけどんな人が集まるかわかりません。 ただ一つだけ約束できるのは、きっと、あなたが今まで出会ったことがない人々が、 「プログラミングを学ぶことに情熱を燃やしている」という一点だけで集まるだろう、ということです。

ワクワクしませんか? ぜひ独学道場と一緒に、世界を変える練習をしましょう。 皆さんのご参加、お待ちしております。

独学道場で、アルゴリズムの勉強を再開しています。

僕らが主催するプログラミング独学道場で、帰国後遠ざかっていた アルゴリズムの勉強を再開。 Manberという人が書いた「Introduction to Algorithms」の第1章の末尾、エクササイズの1.3をやった。

独学道場とは www.dokugaku.io

エクササイズ 1.3 は、訳すとこんな感じ。

「9, 44, 32, 12, 7, 42」のような順番で並ぶ数字のリストを考えてください。 このリストから、できるだけ少ない回数 数字を取り除いて、数字が大きくなる順で並ぶようなリストにしてください。

自分が唸って書いたRubyスクリプトは下記。もっと良いやり方あるよ! って方は、ぜひぜひ!コメントください。

require 'pp'
def make_ol(list)
  possible_arr = []
  list.each do |n|
    possible_arr.each do |arr|
      i = (arr.length - 1)
      while i >= 0
        if arr[i] < n
          arr.delete_if{ |m| m > n }
          arr << n
          break
        end
        i -= 1
      end
    end
    possible_arr << [n]
    pp possible_arr
  end
  possible_arr.max{ |a,b| a.length <=> b.length }
end

pp make_ol([9, 44, 32, 12, 7, 42])

Githubでも公開しているので、そちらの方がコメント送りやすければぜひGithub上でフィードバックください。

github.com

ポジティブなコミュニティの成立条件 | ETIC主催のTokyo Startup Gateway 2015 キックオフ会が面白かった。

ETIC主催のTokyo Startup Gateway 2015 キックオフ会に行ってきました。 参加する中で「ポジティブなコミュニティの成立条件」について想いを馳せたので、記します。

(今日の会場は恵比寿のイベントスペースでした) photo by robertpaulyoung

ETICというのは、起業家養成プログラムを、20年以上もやっている日本のスタートアップ(ベンチャー)育成の老舗。知り合いが何人か内外で関わっていることもあり、いつも定期的にETICのイベントに参加している。その度に自分の所属やポジションは変わっている。不思議。

今 自分が参加中の Tokyo Startup Gatewayは、このETICが培ってきたネットワークを総動員して東京都と組んで始めた新しい起業家養成プログラムとのこと。

http://tokyo-startup.jp/

今日はその書類選考を通った人が初顔合わせをするキックオフ会。応募は500件ほどあったということで、その中から一次書類選考を通過した約100人が会場に集った。

会場では、5、6人ごとにテーブルを囲んで座る(みんな初対面)。予め提出した事業計画に基づいて、似たようなトピックの方々で集まれるよう座席配置が組まれていた(事務局の皆様、ソートありがとうございます)。

競争ではなく、協力

最初にETIC事務局の石野さんからプログラムの概要紹介。 大事な説明だなと思ったのは、「隣に座っている人は、蹴落とす対象ではない。彼らは将来の取引先であり、顧客であり、同志である」という説明。起業家の卵はときに必要以上に秘密主義に走る。周りは皆ライバルだ!と感じてしまう。

そこで上述の説明。これは、安心感をもって自分のアイデアを露出して、フィードバックを積極的に求める雰囲気を醸成する上で極めて大事だと思う。この雰囲気がないと、ビジネスコンテストは冷たく、熱量が低く、疲弊するものになってしまう。

(安心感が大事)photo by paul goyette

特に自分が参加したチームのあたたかさ、フィードバック力はものすごく高かった。みんながお互いの意見を真摯に聞いて、「愛情をもって(これも石野さんの言葉)」互いにフィードバックをしていた。それを感じたのが、概要説明に続く一連のワークショップ・セッション。

最初にやったのは、隣の人とペアを組みインタビューを互いにし合うワークショップ。あらかじめ決められたインタビュー項目に基づいて25分ずつしゃべって、インタビューをする側がそれを聞き取る。インタビュー内容は、その人の過去、未来を語ってもらうもの。パッションがどこにあるのかを引き出す内容。

その次に、一時間かけて、グループで自己紹介+自分のやっていること・やりたいことの説明。

両方ともとても心地よかった。

自分が参加したチームのメンバー紹介

  • 二児の母であり、人間力を高める学習体験を子どもに提供するECサイトを構想中の佐藤さん(実名公表を控えられていて、仮名です)。出産の一週間後にもかかわらずキックオフ会に参加する、ものすごいバイタリティ!
  • 自力で学び続ける人のための究極の図書館をつくりたい深山さん(俺です。知り合いの皆さんへ、岡崎は旧姓になりました)。
  • 薄れていく地域教育の復活を、空き家を使って地域でスキルを持つ大人と子どもの接点をつくることで試みる駒崎さん。
  • 自身が高校中退をして感じた実体験を元に、画一的・一本道ではない教育のあり方を質の高い網羅的な学校情報提供を通じて模索する平島さん。
  • カンボジアの農村部に、日本の余ったスマホに英語学習コンテンツを詰め込んで送り届けることで、世界の人々の可能性を広げるEducaを立ち上げた森さん。

どのメンバーも、自分の経験に基づいてやりたいことを考えており、すでに人を巻き込みながら実行している。自分が知っているネットワークを超えて、人と、同志と出会うのは意外と(特に社会人になってからは)難しい。その得難い経験ができた。

ポジティブなコミュニティの成立条件

なんでこんなポジティブな経験ができたんだろう、と考えて見る。

  1. 事前スクリーニング:倍率5倍くらいのスクリーニング 今日参加した方々は、応募時からここまでで五倍の倍率をくぐり抜けてきた方々。身も蓋もない言い方をすると、スクリーニングが事前にされた分参加者の質が担保されていた。

  2. 十分な母数:似たようなトピックをもっている人で小グループがつくれるだけの母数 母数が十分に大きいので、倍率5倍のスクリーニングをしても結果 数十人〜100人くらいのメンバーが集まる。これだけいると、興味分野・パッション単位で小グループを編成できる(それが今日のチーム分け)。パッションが似通っているので、お互いに深く文脈を理解しながらディスカッションができた。

最後に、村口和孝さんのお話と懇親会

キックオフ会 最後の目玉として、日本のVCの草分け的存在 村口和孝さんのお話。

以下は自分が気になった内容のメモ。

  • 「今時の子どもは、テレビをiPadみたいに手でめくろうとする」常に時代は変わる。あなた方の感覚も既に古いかもしれない。
  • キャズムを超える前の起業家の評価は「変わり者」。今でなく二年後の未来にウケるものを考えよう。その勇気を持とう。
  • 事業マインドを持たず「良いものだから」という理由で広めようとする活動は、結局は誰かに迷惑をかける。事業化こそが、世の中が受け入れているサインだから。世の中が受け入れないものを広めようとすると、誰かが犠牲になってしまう。
  • 金がなくて、若くて、知名度がない人に、村口さんは投資したい。彼らは変人って言われることに耐えられるから。
  • PDCAは、組織人の標語。起業家は、OODA(Observe, Orient, Decision making, Action)を代わりにやる。晴れて成功したら、PDCAしてください。

懇親会でも皆が知り合いやすくなるちょっとした仕掛けがあって面白かった。

今後このメンバーで毎週集い、人と事業を成長させていく。とっても楽しみです。 と同時に、起業家という文脈以外でも、エネルギーあふれるあたたかいコミュニティがどんどん生まれてほしい。そのために、このイベント紹介記事が参考になれば幸いです。

日本語で「計算の楽しさ」を伝えるプログラミング言語 Japalispをつくりました。

(経緯) ニューヨークのプログラミングラボに滞在中、ひょんなことから日本語の話し言葉でLispっぽいプログラムが書ける Japalispというプログラミング言語を開発しました。

Japalisp(ジャパリスプ)自体は下記リンクを参照してください。

もっとも自然な日本語プログラミング言語 Japalisp