見出し画像

【エンジニア】未熟者がカナダでデベロッパー向けのコミュニティを始めた件について

こんにちは、
Software Developer として海外就職を目指しているハルです。

この記事では、今年(2023年)の1月にバンクーバーにて始めたデベロッパー向けのコミュニティについて書きます。創設から3ヶ月が経過しているので、その過程と共に、今後の方針についてもお話したいと思います。

今回もご愛読いただければ幸いです

↓↓↓↓↓自己紹介↓↓↓↓↓

↓↓↓↓↓創設理由(一部)↓↓↓↓↓

※正直、有言実行できてホッとしてます笑

概要

カナダ・バンクーバーにて今年の1月始めにデベロッパー向けのコミュニティを作りました。フロントエンド・バックエンド・インフラ・ゲームなどの分野を問わず、ひとまずデベロッパー(エンジニア)という大きな枠組みとして、興味ある誰もが参加できるコミュニティにしています。レベルも問題ありません。

創設理由は、一つ目は自分自身のスキル向上(IT技術・英語等)のため(↑の記事に記述してあります)です。他の理由としてはチームビルディングというものに興味があったり、元々慈善活動(ボランティア)的なものを始めてみたかったなど色々あります。後者については、新卒時に日本でエンジニア向けのコミュニティを設立しようと思っていました。ただコロナが広まってしまったために、断念せざるを得なかった背景があります。

因みにコミュニティ内では英語のみで、母国語の使用は一切禁止にしております。

活動内容

毎週1回・2回ほど、参加希望の方にはPCを持参していただき、wifi環境のあるカフェに集まってます。活動時間は2時間程度です。その間、行っていることを下記にまとめました。

■内容
★ LeetCode 問題解き(メイン)
★ プロジェクト(チーム開発)
・ Linkedinアカウントシェア
・ 就職活動周りの情報交換
・ レクリエーション

それぞれ説明していきたいと思います。

★LeetCode 問題解き
LeetCode問題解きについてです。
こちらが、ほぼメインの活動内容となっています。

LeetCodeは、コーディング面接に使われる問題の学習サイトになります。アルゴリズム系やデータ構造の知識が問われる問題で、big tech (GAFA) や日本でも外資系IT企業 において有効とされています。

LeetCodeを始めた(採用した)理由は、二つです。
一つ目は、英語でアルゴリズム等の知識を定着させたいという想い。そのことによりコーディングの面接対策にもなる、という考えが合ったからです。

二つ目として、他のデベロッパー向けのコミュニティと差をつける為です。マーケティングに近い考え方(差別化戦略?)だと思いますが、周りと同じようなコミュニティを開いても人が集まらないし、リピーターも少ないなと思いました。当時、カフェやコワーキングスペースにて顔合わせのようなイベントはありましたが、実際にパソコンを持って一緒に勉強するようなコミュニティはありませんでした。『エンジニアに関連しつつ、一緒に勉強できるようなサービスは何かないだろうか』と探した結果がLeetCodeです。

もちろん、自分のコミュニティとはいえど、自身のスキル向上(自分がやりたいこと)だけを押し通しすぎては問題だと当時思いました。自分にだけ利点があっては参加者に申し訳ないので、会話・セクションの流れはメンバー(参加者)にも利点があるように工夫しています。

  1. LCの問題をまずは自力で解く(インターネット使用可)

  2. 解き終わった人同士で自身の考えをシェアする

  3. まだ、解けない人のサポートする

この間、基本的に自分はobserver(第三者的な) の立場を維持し、参加者全員がコミュニケーションを取れるように促しています。自分が必要な時は会話に参加し、皆がコミュニケーションを取れているは介入しません。状況に応じて動いてます。

参加者の利点としては、
まず、実力がある人は強者同士で意見の交換ができるという利点。また、経験が乏しい人(解ききれなかった人)に対しての分かりやすく説明するという練習ができます。カナダは移民が多く、IT強者でも英語の練習をしたいという方もいらっしゃるので、基本的に嫌な顔はされません(嫌な顔されたことがないです)

同時に、実力が乏しい人は実力ある人とお話しすることができるという利点があります。仮にビギナーだったとしても、ただサイトを見て理解することと実際に教わって理解するのでは圧倒的に違います。

人に教わってコードに落とす。このことが重要だというのが言えるのが、自身の新人時代からきています。会社で働くということは、他人(チーム)と作業しなければならないということ。チームで働いている以上、もちろん自分自身で調べて理解するという行為・努力は必要ですが、やはり大切なのはコミュニケーションです。

特に経験・知識量の差が大きいほど齟齬が増えてくると思うので、メンバーがそういったコミュニケーションの練習になればいいなという思いがあります。

運営事情(自分のお話)になりますが、まず自身の英語力および技術力では解き方を説明するというどころか・英語を話すのもままならない状況だったのでした。

なので、必ずいつも事前に準備しています。

問題をあらかじめ解いておき、解き方(アルゴリズム)を英語で把握しておきます。それでやっと、かろうじてお話しすることができているという感じです。
また、問題を用意する際にも、なるべくベーシックな知識が必要な問題を選ぶようにしています。要はトリッキーな問題ではなく、しっかり基礎知識が使えて解けるようなモノをピックアップしています。

★ プロジェクト(チーム開発)
メンバーの就職活動の手助けになる、そんなコミュニティにもしたいなと思うようになったが2月頃でした。常連メンバーと話し合った結果、チーム開発をすると面接等で役立つことなので始めようとなったのがきっかけです。

そこから自分を含めて、2回、チーム開発をすることになりました。

1つ目は、React・Node.js・MongoDBを使ったタスク管理系のwebサイト。こちらは、途中でメンバーが忙しくなってしまったということもあり不完全燃焼のままですが、また4月頃に再開する予定です。

2つ目は3月の上旬から下旬にかけて、メンバーの一部でモバイルアプリを作成しました。既存アプリの改修で、React-Native・Expo等を利用することによって IosとAndroidの両方で使えるようにしました。こちらはガッツリと開発しました。Scrumという開発手法をとり、平日の毎朝ミーティングを行うというハードな内容でしたが、本当に良い経験になりましたしコミュニティ内でも励み・刺激になったと思います。因みに、その甲斐あって、Google ストア・アップルストアにそのアプリがあります。

・LinkedInアカウントシェア
仕事をゲットするのに、やはりLinkedInの アカウントは欠かせませんようです。基本的にコミュニティに来る方々は就職活動中・Networking 作りの為に参加される方が非常に多いので、イベントの終わりでは参加者とアカウントを交換し合っています。

・ 就職活動周りの情報交換
お話しした通り、参加者の大半が就職活動中です。どういった求人サイトを確認しているのか・どうやって面接まで辿り着けたのかなどの情報を共有しています。既に就職されている方・これから就職活動される方・まだ学生である方、それぞれの視点から話し合いができます。

・レクリエーション
ただ勉強だけでなく、プライベートを共有してこそ強固なNetworking ができるというのが自分の考えです。コミュニティ内で話を持ちかけ、LeetCodeのイベント以外の日にレクリエーションを行うようにしてます。

ただ、自分が主催したことがなく(流石にオーバーワークになってしまうので)、ここはメンバーに一任しています。これまでにボルダリングやビリヤードなどのイベントを開いていただきました。

この時、デベロッパーだけでなく、色んな職種の方も参加されます。僕らは開発のアイデアが浮かぶいいチャンスになると思いますし、宣伝にもなりNetworkingも増える。そして、皆が楽しい時間を過ごせるので一石二鳥という感じです。

成果

・現在のメンバーが200人近くに
この3ヶ月、また自身の能力が低い中で現在、コミュニティのメンバーが200人近くおり、そのうち実際にイベントに参加してくれた方は50人ほど。途中で作ったコミュニティ用のSlackには30人ほどです。毎回のイベントに10人という人数制限(場所の関係上・コミュニケーション円滑のため)を設けている中で、かなりの数に足を運んでいただいたと思います。

・自身のスキルの向上
本当にありがたいことに色んなことを学ぶことができました。英語はもちろんのこと、LeetCodeも120問以上解いたことになりました。チーム開発では、今まで経験したことのないMobile Applicationの開発だったり、そもそも開発手法のScrumですら経験がありませんでした(新人時代はウォーターフォール開発だったので)。他にもGithub(Backlog等)、英語でのPair Programmingなどいただいたものが数え切れません。

・Networkingの拡大
LinkedInのコネクト数(フォロワー数も含む)も大幅に上がりました。70%以上はこのコミュニティからです。また、気軽に連絡を取り合えるような仲間に巡り会えたのでプライベートとしても充実しています。

・感謝の言葉からの自己肯定感アップ
メンバーには「コミュニティを開いてくれてありがとう」とよく言われます。自分としては、確かにそれなりの準備はあれど、ただ好きで開いているだけなので、正直貰える理由がよく分かりませんでした。ただ最近になって「こんな自分でもできることがあるんだな」と思えるようになってきました。

■創設の感想

・参加者のレベルがとにかく高い
参加者のレベルですが、非常に高いです。
英語においては、ほぼ全て(メンバーの97%)の人が問題なく話せます。
※自分が一番喋れない…
具体的には、例えばLeetCodeの自身の意見・アイデアを問題なくシェアできるくらいです。

技術的なスキルにおいては、LeetCodeに関してはmidium (中級レベルに対して、参加者の半分くらいは自力で解いてきます(それも10分もかからないくらいで)し、アルゴリズム系の知識周りといい総合的な知識が非常に強いです。母国・カナダでCS・Bootcampを卒業してきたという方や、職歴がある人においては、Big tech等の有名企業で働いていた方もチラホラです。

ITの職歴がない人も、学校等の課題から、必ずといっていいほど既にポートフォリオ(フルスタック:フロント・バック両方)が手元にあるという方々がほとんどです。この点にしても、日本よりレベルが高い人が揃っているかなと思います。

その他として、コミュニケーション能力が非常に高いという印象です。
まず、自分が日本の文化を持っている(ハイコンテクスト文化)からかもしれませんが、技量に関係なくどの人も積極的に会話に加わってきます。仮に間違っていても、自分の意見をしっかり表現してくるのは、日本にはない他文化の強みなのかもしれません。

積極性だけでなく、例えば初心者と会話する時に、会話のアプローチの仕方も長けているなと感じます。レベルが低いからと貶すこともなく、無視したりするということもなく、その初心者のやりたいこと・レベルに沿ってアドバイスできるヒアリング力も強いのかなと(ヒアリング力はbig techに通っていた方であるほど、非常に強い印象)

ここら辺が北米圏のITで求められてくるレベルなのかなと思ってます。

補足:カナダでIT職ターゲットに就職活動されている方、絶望するかもしれませんが、そうじゃない人でも仕事をゲットしてくる方はいます。結論として、やはり大事なのは『ビザ』『Networking』だと思ってます。

・創設において、英語がなくても需要があれば事足りる
お話しした通り、英語はボロボロです。最近は、このコミュニティの繋がりから遥かに改善されました(メンバーに感謝しかありません)が、創設当初は本当に拙かったです。加えて、性格も奥手なので緊張して上手く話せない時もありました。

ただ参加者の方が本当に親切でした。そして、最大の理由はバンクーバーはIT企業への求職者で溢れかえっている状態です。多くの方がすがる想いでコミュニティに参加し、必死で情報交換をしてくださいます。僕が頑張って会話等を引っ張る必要がなかったので、英語力が問われるような機会が少なかったのが幸いです。

もしカナダでコミュニティの創設を考えている方がいらっしゃいましたら、
少しだけ需要を考えつつ、とにかく始めてみるのをオススメします。

■今後について

結論として、今後もコミュティを続けていくつもりです。
以下にやりたいことをまとめました。

・活動内容の改善
活動内容について、改善する必要があるので対応したいなと思ってます。

1番は、各々の職に応じた活動内容にするという点です。
例えば、今メインで行われているLeetCodeの問題解きについてです。一見、需要がありそうに見えますが、UI/UXデザイナーやFrontend Developerの就職を目指されている方にはほぼ意味がありません。また、会社によってはこういった技術面談をしてこない(そもそもLeetCodeを問うような企業はBig tech といった有名企業が多い)そうで、それよりもポートフォリオ作成・チーム開発、もしくは新技術等に関するプレゼン等の方がより学習効率・需要があるのではないか、という意見がメンバーからいただいてます。

難しいのは承知ですが、メンバーのバックグランド・目指すものが様々なため、多くの方に利点があるような環境を目指したいなというのが本音です。

・各々が発言しやすい環境を
これは創設当初から心がけていますが、本当に難しいです。言いたいこととしては、メンバーの自主性を大切にしたいなと思ってます。色んな方がこのコミュニティを使いやすいように使っていただくのが自身の理想です。
例えば、日本在住でも『英語+IT』を実践的に学びたい人がいれば、独自のプロジェクトを持ってきていただき、積極的にコミュニティに関わっていただければと思ってます(許可は取って欲しいですが)

いずれにせよ、今やるべきことは、メンバーの意見はいつでも耳を傾けて、このコミュニティに随時反映していくことかなと思ってます。

・どこにいてもリモートで繋がれる・職がゲットできるように
ここまでコミュニティに力を入れている理由としては、数年後もこのコミュティを存続させたいからです。ガッツリ活動するか、ほのぼのと活動していくかはさておき、理由としてコミュニティ内に『日本で働いてみたい・移住してみたい』という方がいるからです。これは、自分達が『カナダで働きたい・在住したい』というのと変わらないなと。今自分は支援していただいている状態なので、今度は自分の番かなと。将来そういった人達の支援ができるようになれたらいいなと思ったのがきっかけです(日本の将来のためにも…)

日本・カナダだけでなく、例えばオーストラリア、アメリカ、イギリス。このコミュニティ内で色んな国々のNetWorkingを持てるようになり、メンバー各々の持つスキルで各国の望む職をゲットできるようになれればいいなと。そうすれば、移住等にも繋がる(国によりますが)と思うのでよりメンバーの自己実現につながるのかなと。

このコミュニティを通して、かどうかは分かりませんが色んな方(デベロッパーに関わらず)を将来繋ぐことができるブリッジのような存在になれればいいかなと思います。

それは、たとえAIが出てきてもです。

終わり

海外就職を目指して始まったこのコミュニティですが、正直この3ヶ月でここまで心変わりするとは思っていませんでしたし、学べることがここまで多いとは(デベロッパーだけでなく)思いませんでした。

私事ですが、ワーキングホリデーにビザを切り替えた今、カナダに滞在できる期間はもう11ヶ月を切りました(時が加速してるしか思えない!!!)。勤務許可を所持してカナダに滞在するには企業にビザを用意していただくか、カナダのカレッジ・大学に通うしか選択肢はないと思ってます。

1番はカナダで就職して、さらにメンバー・コミュニティの力になれたらいいなとは思っていますが、正直どうなるか先のことは分りません。

コミュニティ、自分。いずれにせよ自身のスキルを高めていくのは必須なので今後もメンバーと共に切磋琢磨できればいいかなと思います。


以上、創設したコミュニティのお話しでした。
今回もここまで読んでいただき、ありがとうございました。

↓ 質問等ある方はTwitterからDMいただければ幸いです。


この記事が気に入ったらサポートをしてみませんか?