Gizumoの小松です!
みなさまにGizumoのことをさらに知っていただきたいと思い、メンバーのインタビューを行っています。
今回は、Gizumoで研修講師を担当している『阿部』にお話をお聞きしました!
阿部さんは、プログラミング未経験でGizumoへ入社し、プロジェクト先で開発経験を積んで、現在はバックエンドの研修を担当しています。
プロジェクト先での仕事の流れや、研修講師として心がけていることなど、詳しく教えていただきました!
これまではどんなお仕事をされていたのですか?
前職は銀行員として働いていて、主に融資審査業務に携わっていました。企業様の決算書を見て財務状況などを確認し、貸し出しができるかどうかの審査を行っていました。
どうしてエンジニアになりたいと思い始めたんですか?
銀行員としてお客様に商品の魅力を伝えるような業務もあったのですが、入社して3年目くらいから商品自体を作る仕事に興味を持つようになりました。自分で1から物を作るという軸を持って仕事を探していたところ、エンジニアという職種を知りました。
当時はエンジニアという職種についてほとんど知識がなかったので、教育に力を入れている企業を探しました。
Gizumoはこれまでに自分が調べたどの企業よりも教育に力を入れている印象を受けました。
また面接の際もこちらの話をじっくりと聞いてくれる雰囲気で、双方のコミュニケーションを重視しているんだろうなと感じたことが入社の決め手になりました。
入社前はどのくらいのプログラミングスキルを持っていたのですか?
Gizumoの求人に応募した段階では、スキルはほぼ0でした。
面接までの間に少しでもスキルを身に着けておきたいと考え、応募してから本格的に学習し始めました。HTML/CSS、JavaScript、PHPを一通り触ってみて、よく分からないなりにひとまずポートフォリオを完成させてみました。
入社前の学習の期間としては1ヶ月くらいです。
兄がフロントエンドエンジニアなので、教えてもらいながら学習しました。
Gizumoに入社してからはどのような流れで案件に配属されたのですか?
2ヶ月間のプログラミング研修を受けて、案件に配属となりました。
(※編集者注:現在のプログラミング研修期間は3ヶ月〜です。)
直近の配属先では、CRM(顧客関係管理)のシステムを開発するプロジェクトに参画しました。リリースされてから3年ほど経っているような案件で、新機能の追加などを行いました。顧客管理や商談管理の機能を開発したり、MA(マーケティングオートメーション)と呼ばれる、例えば関心が高い顧客に絞って自動的にメールを送るような機能を追加したりしました。
最初の半年くらいはプログラマーとして開発をメインに行なっていたのですが、その後はリーダーポジションも担当し、5名のチームメンバーのタスク管理やリリースのスケジュール管理なども任せていただきました。
どのような技術を扱っていたのですか?
HTML/CSS、JavaScript、PHPがメインです。
一部のサーバーにRubyが使用されていたりと、いろいろな言語が入り乱れていました。
同じ案件内でもプロジェクトによって使用しているフレームワークが違い、Zend Framework、Laravel、CakePHPなどを使用しました。
1日の流れを教えてください。
毎朝のミーティングで1日のタスクを確認して、それに沿って実装を行います。
プロジェクト全体としては、まず実装を行い、テストをしてリリースし、最後にリリース後検証を行うような流れです。この流れを1ヶ月に2回ほど繰り返すイメージです。
プロジェクトの中で大変だったことややりがいを感じたことはありますか?
データ量が多いシステムだったので処理を完了するのに時間がかかる部分が多く、常にパフォーマンス面に気を遣うのは大変でした。
データ量を減らすことは難しかったので、データベースの設計を見直してみたり、MySQLを使用している部分をNoSQL系のデータベースに変えてみたり、個々にクエリを見てインデックスが効いてるかどうかを確認して張り替えたりと、いろいろな方向から改善していきました。
もともと実行に1分間近くかかっていたクエリを、1~2秒間くらいまで縮められた時はかなりやりがいを感じましたね。
このプロジェクトに参画して、データベースやSQLに対する知識がかなり身につきました。
最終的にパフォーマンスのチューニング全般を任せてもらえるようになりましたし、自分自身もデータベースに関する技術をさらに追求するようになりました。
その後、研修講師になったんですね。講師になった経緯を教えてください。
実際に案件に参画して、プロジェクト内での働き方や実践的なスキルを高められるGizumoの研修はかなりレベルが高いなと、改めて感じました。
自分が今持っている知識をエンジニアを目指す方に教えることで会社に還元したい、IT業界の発展に貢献したい、と思い研修講師を志望しました。
案件先ではバックエンドエンジニアとして働いていたので、研修でもバックエンドの領域を担当しています。
人に教えることはもとから得意だったんですか?
そうですね。大学生の頃に塾講師のアルバイトをやっていたので、単純に教えることは楽しいと感じていました。
また、自分自身も勉強は大好きだったので、知らないことを分かるようになる楽しみを多くの人に伝えたいという気持ちもありました。
阿部さん自身が現在学習していることはありますか?
最近はWebデザインについて学習しています。研修講師と並行して社内の開発にも携わっているのですが、業務の中で広告デザインの原案を作成することもあります。
もともとデザインセンスは皆無で、研修生時代にWebサイトを作って研修講師の人に見てもらった際にかなり多くの指摘をいただいた経験もあります。それがとても悔しくて、デザインの基礎からがっつり勉強し始めました。
今後研修でWebデザインを教える予定もあるのですか?
Webデザイン自体は、Webデザイナーとして実際にお仕事している人に教えてもらうほうが質が高い研修になると思います。ただ、バックエンドエンジニア志望の研修生にデザインに興味を持ってもらうような施策は取り入れたいと考えています。
研修生時代の私と同じように、「デザインセンスには自信がないです」とか「色彩感覚がないので…」という方は結構多いんです。でも学問としてWebデザインを学べばセンスに頼らなくても習得できるものなので、そういった論理的な観点からWebデザイン興味を持ってもらえたらと思います。
現在阿部さんが扱える技術スタックを教えてください。
HTML/CSS、JavaScript、jQuery、PHPは業務レベルで扱うことができます。
あとは社内のセミナーでPythonを用いたAIの構築を学んだので、Pythonも扱えます。
フレームワークだと、Vue.js、Nuxt.js、Laravel、 ZendFrameworkを使用することができます。
阿部さんならではの得意分野ってありますか?
まずはデータベース周りです。案件先でもクエリのチューニングやデータベースの設計の最適化はかなり力を入れていたので、研修生の方にも実践的なノウハウをどんどん教えていきたいです。
技術面以外だと、説明力は自分の中でも強みの部分だと思っています。アンサーファーストや序論・本論・結論の組み立てなどはもちろん、相手の理解度に合わせた説明は常に意識しています。
研修講師の業務で大変なことはありますか?
研修生の理解度をチェックする際に、本当に理解しているのか、それとも表面上だけの理解なのかを把握するのはすごく難しいです。質問をした際にテンプレのような回答をできる方は多いのですが、それだけでは実際の業務で使えるようにはならないんです。なぜそうなっているのかという本質的な理解度を確認していく必要があります。
コードレビューの際は、研修生の回答に対して「なぜ?」という問いを何度も繰り返していきます。本質を理解していないと1回目の問いで上手く答えられない部分が出てくるんです。その答えられない部分を確認して、どこを理解していないのか見つけていくイメージです。1つの回答に対してだいたい3~4回は「なぜ?」と聞いています。
最初は「何が分からないのか分からないです」と相談してくるような人もいます(笑)。そんな人にも、「じゃあ現状はどうなっている?」「そこからどうしたい?」「どうなっているのがベスト?」「作りたいものと現状のギャップってなに?」「ギャップを埋めるためにはどうしたらいい?」と細分化して質問しています。
Gizumoのエンジニアは、そういったレビューに合格した方たちなんですね。
そうですね。これは私の個人的な考えなのですが、エンジニアは自分が書いたコードを説明する責任があると思うんです。自分が作ったものを説明できないのは致命的です。
当たり前のことではありますが、Gizumoの研修を乗り越えたエンジニアは全員、自分が書いたコードを分かりやすく人に伝えることができます。
研修を担当していてやりがいを感じる瞬間はありますか?
もちろん研修生のスキルが伸びていくことにはやりがいを感じます。
それ以上にやりがいを感じる瞬間は、研修が終わってエンジニアになったメンバーが活躍している声を聞くことです。エンジニアに限らずですが、技術だけ高めればいいわけではなくて、会話力だったり人間力だったり人として大切な部分も高められているんだなと感じるので、嬉しいです。
研修が終わってからも社内の勉強会で会話する機会が多いのですが、自分が教えた研修生がそういった勉強会で登壇して話している姿を見ると感動します。
教える上で心がけていることはありますか?
研修生には最後までアウトプットしてもらう、ということは常に心がけています。
コードレビューの際は、「このコードについて説明してみてください。」というところから始めるのですが、説明が間違えていても遮ることはしないです。言語化してみて違和感のあるところを自分で探してもらうようにしています。
例えば説明してもらった後に、「今の説明どうだった?」って聞くんです。間違えた説明をしている方って、ほとんどの人が「なんかちょっと違うかもしれないです。」と答えます。そんなときは、「じゃあ具体的にどこが違和感あった?」と一緒に確認していきます。
言語化できないということは、自分の中で知識の整理がついていないということだと思うので、まずは整理させてあげるように意識しています。
ですので、研修生の方は、間違いを恐れないでまずはアウトプットしてみてほしいです。少しずつアウトプットして違和感に気がついてそれを修正する、というサイクルを繰り返していると、学習の効率もあがるしアウトプットの質もどんどん上がっていきます。
阿部さん自身の今後のキャリアの展望はありますか?
今後もずっと教育に携わりたいです。
直近では、自分が教育したエンジニアを1000名輩出するのが目標です。
そのためには自分の技術を高め続ける必要があると思います。現在持っている技術を教えるだけでなく、常に最新鋭の技術をキャッチアップして人に伝えていきたいです。
先ほどお話ししたWebデザインについてはこれからも学習しつつ、バックエンドの技術もさらに高めていこうと思っています。Pythonを使ったAIの実装だったり、ビッグデータを使ったデータベース全般の知識もより強固にしていきたいです。
IT業界って技術の移り変わりがかなり早いので、自分自身も常に学習して、自分の市場価値も研修生の市場価値も上げ続けられる存在でいたいです。
阿部さんの考える良いエンジニア像を教えてください。
コミュニケーション能力や説明力があるエンジニアはかなり強いと思います。
その上で、常にどんな環境でも学習をし続けられることが重要だと考えます。
例えば希望する案件に参画できなかったとして、それを自分にとって必要のない経験だと感じてなおざりにするのではなく、自分の技術力に結び付けられることはないかなと探すことができるのが良いエンジニアだと思います。
研修生のみなさんにもそんなエンジニアを目指してほしいと思っています。
最後に、転職に悩む人に向けてメッセージをお願いします。
数年前の自分に向けてのメッセージでもあるのですが、『やりたくないこと』ではなく『やりたいこと』に目を向けて仕事を探してほしいと思います。
特に転職をする際って、「これはダメ。これはダメ。」と消去法になってしまいがちです。消去法で仕事を探してしまうと、入社前とのギャップに苦しんだりまた別のやりたくないことが出てくる可能性が高くなってしまうと思うんです。
正直、私もGizumoに入社するまでやりたいことがなかったんです。ただ、何かを作ったり、それを誰かに使ってもらえることは嬉しいなと感じていて。そこを基準に考えたときにたどり着いた仕事がエンジニアでした。
Gizumoはやりたい人がやりたいことに挑戦できる会社です。やりたいことを考えた上でエンジニアに行き着いた方は、是非Gizumoで実現していただけたらと思います。
プログラミング未経験からエンジニアになって、現在は研修講師として未経験の方に教えているなんてすごいですね!今持っている知識を教えるだけでなく、常に新しい技術をキャッチアップし続けている姿勢も印象的でした。
「説明力のあるエンジニアを目指したい!」「Gizumoで夢を実現させてみたい!」と思われた方は、ぜひ気軽にお話を聞きに来ていただけると嬉しいです!