■はじめに 自己紹介代わりに読んでいただけると幸いです。
11/21(土) G's ACADEMY FUKUOKA LAB3期を卒業しました。
G's ACADEMY は、プログラミングを教えるだけのスクールでは終わらない、起業家であれ、エンジニアであれ、 自分が何を成したくて、それをどう実現するかを学び、達成する場所 です。
正式な紹介文は公式WEBサイトのリンクを貼りましたので参照ください。
「G’s ACADEMY」は「セカイを変えるGEEKを養成する」をテーマに、2015年4月にデジタルハリウッドが設立したエンジニア・起業家養成スクールです。運営母体であるデジタルハリウッド大学と大学院では、大学発ベンチャーの設立数が全国11位(令和元年度実績)となっており、多数の起業家を輩出しています。
■わたしのこれまで 私はかつて、関東のソフトウェア開発会社で14年間インフラ系のシステムエンジニアをしていました。インフラと言っても、サービスの実行環境のインフラ周りというわけではなく、社会基盤の方のインフラのことです。このあたり、言葉の表現が難しいなと最近気づきました。
目に見えない部分のソフトウェアなので説明が難しいのですが、携帯電話の言葉で3G、LTE、4Gというのは皆さん聞いたことがあると思います。この年々進化していく携帯電話のネットワークを構成する機器の開発を行っていました。一番長かったのが携帯電話のネットワーク機器の組み込みソフトウェアで、その他にもIPTVやデジタルサイネージの試験、高速道路の情報板システムの更新などにも関わりました。
システム開発という仕事全体の中でプログラミングは全体の工数の10%程度です。それ以下の現場もあるかもしれません。(工数というのはIT業界でよく使われる単位で1人で1ヶ月働く時間を1人月といったりします。もちろん作業の割合はどういう契約の元、どの作業工程を担当するかで変わってきます。上流から下流全部やる場合もあれば、製造工程(プログラミング)だけ、試験工程だけやる場合もあるでしょう。)
残りは何をやっているかというと、要件定義、基本設計、機能設計、詳細設計、試験項目書作り、単体試験、結合試験、総合試験、進捗会議などです。私はOSやハードウェアに近い部分を担当することが多かったのでそのような部門との定期的な検討会もありました。ハードウェアの仕様策定にソフトウェアの観点から関われるというのはなかなかできない体験でした。
その他にも問題が起きれば問題対応、顧客説明資料作成、なぜなぜ分析や品質分析などをしていました。こちらは想像の通りかなり精神が削られる仕事でした。
大変な仕事ですが、これらがつまらないわけではありませんでした。すごくやりがいや達成感を感じる瞬間もありました。
しかし、もともと学生の頃からプログラミングには触れており、自分の作ったソフトウェアで誰かを楽しませたいという思いがあり、IT業界に就職した経緯があります。 誰かの目に触れるものが作りたい、個人が触って楽しめるサービスを作りたい という思いはずっと持ち続けていました。
■働きながらやりたいことを達成できないのか 働きながら自分のやりたいことを達成する人は、もちろんいます。とあるプロジェクトで一緒になった先輩はまさにそういう人で、やるべき仕事を素早く終わらせて、自分の将来のための学習に時間というリソースを割り当てていました。もちろん仕事をおろそかにしているわけではありませんし、自分たちより仕事量もこなしていたと思います。
そんな先輩の背中を見て育ったはずの私ですが、どうしても、今の仕事という直近の課題のための学習に時間というリソースを割くタイプで、将来の自分のための活動は後回しになりがちでした。
そうこうしているうちに、4人程度のチームリーダーを任されるようになり、次は8人程度、次は係長という役職という流れで、モノを作るという仕事から、ヒトを管理するという仕事が主な仕事になってきました。
その頃の仕事は、部下の残業時間管理であったり、上司への進捗状況方向資料作成だったりして、自分がシステムを作っているという感覚はほぼゼロになりました。かろうじてお客さんとの仕様検討や部下の生産物のレビューをしていたくらいで、このままずっとヒトを管理するのが仕事になるのかと悩みました。
そして会社を退職しました。
■どこで学ぶのか 個人が触って楽しめるサービス って何があるだろう。そう考えたとき思いついたのはスマホアプリとWEBサービスでした。そこで、そういう技術が学べる場所に入ろうと思いました。
退職して実家のある福岡に戻ってきていたので、福岡に限定してインターネットを片っ端から調べてスプレッドシートにまとめ、オンライン・オフライン、無料・有料、学べる内容は何か、などを調べていたところ、明らかに他とは違った学校がありました。それがG's ACADEMY FUKUOKAでした。
起業家を育てる、卒業制作を投資家や起業の担当者の前でプレゼンできる、など明らかに他の学校とは異なる価値観でした。説明会を聞き、ここはプログラミングのスクールではありません、という創設者の児玉さんの第一声にうなずきながら、入学を決めました。
■入学式 2020/4/28(火)入学式
今では当たり前になっているビデオチャットでのやり取りですが、当時は初の試みのZoom入学式でした。
G's ACADEMY FUKUOKAには、主に働きながら通える週末(DEV)コースとガッツリプログラム漬けになれる平日(LAB)コースがあります。私はすでに会社をやめていたため平日(LAB)コースに入学しました。
周りのLABコースの同期は、全員会社をやめてきた人たちかというとそうではなく、学校卒業してすぐ来ました、だったり、会社経営してます、だったり、年齢、背景、過去の体験がバラエティに富んでおり、普通に会社員をしていたら出会えないような人たちと一緒に学びがスタートました。
■Javascript選手権 まずはじめに論理的思考や、HTML/CSSを学びます。次にJavascriptを学び、自分で作成したプロダクトで順位を競い合う、Javascript選手権を行います。私はここでTopickPotという「新しい言葉に会いに行く」というコンセプトのサービスを作りました。今でも使えるのでぜひ使ってみてください。
MediaWikiAPIというWikiPediaのAPIを叩いてランダムな言葉を抽出し、お皿に並べるサービスです。jQueryを使ってページ再読み込みせずに動的にお皿の数を変更できるUIにこだわりました。また、気に入った言葉はTwitterに投稿できるようにして、Twitterから自分のサービスへの流入を狙いました。
また、多言語切り替えを実現するというのも工夫した点です。言語ファイルをJavascriptのオブジェクトで作成して、DeelL翻訳を使ってサービスで使う日本語を全部翻訳したのが懐かしいです。このとき、言語よりも絵文字やデザインで意図を分からせるのも重要ではないかと気が付きました。
私が初めて世の中に出した、「個人が触って楽しめるサービス」がこのToPickPotです。以下のTwitterのスレッドに当時の思いなども書いているのでそちらもぜひ御覧ください。
■PHP選手権 PHPを学んだ後、同期3人と初めてのチーム開発を行いました。TravelGoという景色の感動を共有する、というコンセプトのサービスを作りました。3人で、デザインとCSS、データアクセス部分、その他表示ロジックで分けて開発したことを覚えています。
Googleのストリートビューは、色んな角度から景色を楽しむことができ、その角度ごとにURLが異なることに気づきました。そして、同じ景色でも角度や方向などの切り取り方によって見え方が全く違うことに面白さを感じ、作り始めました。
このとき初めてまともにFirebaseに触れたのですが、非同期処理の取り扱いにかなり頭を悩ませていたことを覚えています。
また、この頃はフレームワークやライブラリを使うより、まずは自分でアルゴリズムを作りたいという思いが強く、ページネーションを自分の考えた処理で実装できたのが満足でした。
私は一応システムエンジニアとして開発の流れみたいなものを重視したかったので、設計書や試験項目書などにこだわりましたが、1週間と期間が短いのとWEB開発という勝手が違う分野だったのでこのやり方が最善だったかというと最善ではなかったと思います。最後にはソースのマージに苦しみ、手でマージするという自体も発生しました。しかしチームで一つのことを達成したという喜びは実現することができました。
以下のTwitterのスレッドに当時の思いなども書いているのでそちらもぜひ御覧ください。
■DEPLOYフェーズ 希望者はVueやLalavel、Unity、データサイエンスなどが学習できます。また定期的に企画の発表会があり、卒業制作のための企画を練ります。
ここまで読んできた皆様は、なんだ、プログラミングを教えているじゃないか、と思いますよね。しかしこれは、今思うとプログラミングを教えているのではなく、 自分のやりたいことを達成するための手段の学び方を教えていた のだと思います。
DEPLOYフェーズあたりから生徒それぞれが作りたいものが見えてきて、そのための手段としてどのような技術があるかを模索し、 授業で教えない技術で自走し始める からです。
■MENTORフェーズ 卒業前の2ヶ月位はMENTORフェーズといって、自分のやりたい企画を固めて、メンターさんを決めて卒業制作に取り掛かります。
ここからがタイトルの通り、 挑戦者のいる環境に身を置けるありがたさ を実感しました。周りを見渡すとどうでしょうか。
ブロックチェーン、Androidネイティブ、Flutterでマルチプラットフォーム、決済システム導入、IoT、React/Next、React Native、脳波測定、VR、UnityでARゲーム、カメラで骨格認識、機械学習のために数学から勉強、などなど。
授業で全くやってないことにみんな挑戦しているんですね。
これはG’s ACADEMYがプログラミングを教えているのではなく、 自分のやりたいことを達成するための手段の学び方を教えている からだと思いました。
そして、挑戦者がすぐ近くにいることで、自分も挑戦しようという気持ちになります。それは、自分の挑戦が他の誰かの挑戦につながるということでもあります。そういう 挑戦しやすい雰囲気 が生まれていました。
これが、 挑戦者のいる環境に身を置けるありがたさ です。かつてシステムエンジニアで働いていたころの自分では成し得なかった挑戦が、G's ACADEMY FUKUOKAという環境にいることで当たり前になってしまうのです。
■自分は何に挑戦したのか そういう私はNext.jsというReactのフレームワークを選びました。
入学当初から一貫した、 個人が直接触って楽しめるサービスを作りたい という思いから、ユーザーがコンテンツを投稿するサービスを考えました。
そして、コンテンツそれぞれにURLを付けたい、Twitterにそれを投稿したら画像がみえるようにしたい(OGP)、それをモダンフロントエンドでやりたいなど、やりたいことを挙げていくと自然にNext.jsに行き着きました。
当初私は、SSG(静的サイトジェネレータ)は表示速度が早いけれど、再ビルドが必要なためコンテンツ投稿には向かない、ということをググって知識としては持っていました。
そこでNext.jsでもSSR(サーバサイドレンダリング)を使おうと思いましたが、メンターの平間さんの「最近ではVercelとNext.js組み合わせれば(ISR)再ビルドいらなくなるよ」という神のお告げもあり、Next.jsの真髄に挑戦ことができました。
SSRでも機能としては満たせるのですが、SSG(ISR)にあえて挑戦していったのも、 挑戦者のいる環境に身を置いていたから だと思います。
そして、自分のプロダクトをGLOBAL GEEK AUDITIONで大勢の来場者の前でピッチをするということそのものも、自分の中では大きな挑戦の一つでした。
■GLOBAL GEEK AUDITION 2020/11/19(土)GLOBAL GEEK AUDITION in GRAND MIRAGE evoL
出来上がった卒業制作に関して5分間のセレクションピッチを行い、選ばれたプロダクトが投資家や企業担当者の前で5分間のピッチを行う、それがGLOBAL GEEK AUDITIONです。
省略してGGAと言われたり、 人生を変える5分間 と言われてたりもします。
卒業制作では、「思い出を未来へ繋ぐ」をコンセプトにした、過去の出来事を、時間と感情とともに綴る、手記投稿サービスを作成しました。
これはG's ACADEMY FUKUOKAという環境で、様々な背景を持つ人と出会い、過去の体験と感情を共有し、それが相互に良い影響を与えることに感動したことから生まれたサービスです。
ピッチ内容をYouTubeに字幕で文字起こししたものをアップロードしたので、ぜひ字幕ONで御覧ください。
実際のサービスは以下のリンクからご覧いただけますが、リリース前であるため、ダミーメールアドレス(○○@example.com)を使うなど個人情報を残さず、消えてしまっても良い情報を投稿するなど、試験的なご利用をお願いします。
閲覧するだけならユーザ登録は不要です。
■卒業式 11/21(土) G's ACADEMY FUKUOKA LAB3期を卒業しました。
卒業式では前述のGLOBAL GEEK AUDITIONの詳細な結果発表があり、写真は技術面の得点で歴代で1位という評価を頂いたことに はしゃぐ私 です。
登壇者を選抜するセレクションピッチにて、技術をもっと前面にアピールするようにという的確なアドバイスをくれた児玉さん、そして、WEB系の技術が手探り状態の私を、技術面の方向性を導き、支えてくれたメンターの平間さん、ありがとうございました。
そして、G's ACADEMY FUKUOKAの同期、チューターさん、先生、スタッフ、先輩後輩生徒の皆さん、ありがとうございました。
そして何より、私の今までの行動に、理解を示し、支えてくれて、応援してくれた実家の両親に感謝しています。
私は昔から、大勢の人前で話すことに苦手意識があり、ピッチの練習のときもうまく言葉が出ないことが多々ありました。しかし、不思議なことにGLOBAL GEEK AUDITION本番では過度な緊張をせず、自己ベストなくらいのピッチができました。
これはなぜだろうと振り返ってみました。
会場の準備風景を見て、こんなにも多くの人がこの日のために駆けつけてくれたのだと実感しました。控室では必死になってピッチの練習をしたり、最後まで諦めずに資料修正を頑張る仲間たちに励まされました。
壇上に立ち、司会者、来場者の顔を見て、その後ろのボランティアスタッフや現役生、同期、先輩方の姿を見て、私の担当する5分間は私だけの5分じゃないと強く感じました。
GLOBAL GEEK AUDITIONに関わるすべての人達、そして私を応援してくれているすべての人達、その人達が後ろから私を支えてくれている。それはまるで暖かなクッションで、引っ込みがちな私を、前へ前へと押してくれているようでした。その支えられている感覚が緊張を和らげ、良い結果につながったのだと思います。
挑戦者のいる環境に身を置けるありがたさ をここでも実感しました。 挑戦者のいる環境は挑戦者を支える人たちでできている と感じました。
GLOBAL GEEK AUDITION、人生を変える5分間は、私にこのような体験と気づきを与えてくれました。
■さいごに 私がこのnoteで伝えたかったことは、タイトルの通り、 挑戦者のいる環境に身をおけるありがたさ です。そして、その 挑戦者のいる環境は挑戦者を支える人たちでできている、 ということです。周りに挑戦者やそれを支えてくれる人達がいたからこそ自分も挑戦できたことは間違いない事実です。
そのような環境をすでにお持ちの方はその環境を本当に大切にしてください。そのような環境をお探しの方は、G's ACADEMY FUKUOKAがきっと迎えてくれるでしょう。
■今後の活動 私は現在WEBエンジニアとして、個人が触って活用できるサービスに関わる仕事で働きたいと考えています。本投稿を見て私に興味を持たれた方がいらっしゃいましたら、ぜひお声掛けください。
ここまで読み進めていただき本当にありがとうございました。FacebookやTwitterでnote見ましたーと気軽に絡んでいただけると幸いです。
私のFacebookはこちら
私のTwitterはこちら
この内容は、noteにも投稿しております。