入社半月エンジニアインターンの学び
どうも!珍しくIdeaタグの記事を書きます。
と言うのも、現在参加しているインターンシップで、未経験として開発に携わる上でのマインドセットに変化があったからです。技術的な学習事項についてはスクラップにまとめつつ、気になった所を記事に切り出していきたいと思います。(Zenn住み良い...)
はじめに
バックグラウンド
自分は元々経営学専攻の文系学生でした。大学ではwebデザインの授業でHTMLやCSS、経済学や統計学の授業でデータ分析のためにR言語を触った事がありましたが、開発のためのプログラミング経験は皆無。大学の時に経験したインターンの影響でサービスの開発にコミットしたいと思うようになり、独学でプログラミングを学び始めました。
インターン先
WealthParkです。
そんな自分を運良く受け入れてもらった会社がWealthParkは"あらゆる投資の民主化"をミッションに、現在は不動産管理の領域でのNo.1プラットフォーマーを目指しているスタートアップ企業です。
先月からエンジニアインターンとしてお世話になっています!
何をしているのか
とにかく色々な事に興味がある自分の希望を叶えてもらい、
今はフロントエンドとバックエンドの開発、両方のプロジェクトに参加しています。
フロントエンド
以下のコーポレートサイトの改修に努めています。
やっていること
現在4か国語でサービスが提供されているので、コーポレートサイトも4か国語に対応しています。
翻訳用に作成した変数にそれぞれの言語の意訳を割り当てる作業や、投稿された記事のDebugなど簡単な作業から任されています。
直近では、セミナー情報の記事を載せる新しいページを制作したり、SaleForceのMA(Marketing Automation)ツールを使って、サイトの仕様を最適化していく予定です。
課題
半月ほど働いてみて、いくつか課題が見えてきました。
技術が古い
このコーポレートサイトは現在WordPressで管理されていますが、翻訳機能などの導入済みプラグインのサポートが終了している事がひとつの課題になっています。また、当時これらの機能を導入された方が会社におらず、どのような意図で現在の構成になっているのか分からない点がある事も問題です。
統一性が低い
コーポレートサイトを専属で担当するフロントエンドエンジニアがいないのが現状です。開発ルールを設けずにこれまで開発を進めてきたことから、コードの可読性が年々低下していることを懸念しています。また、デザイナーと委託のマークアップエンジニアでチームが構成されているので、それぞれのワークフローもバラバラです。
やりたいこと
新しい技術の選定
現在ボトルネックとなっている翻訳プラグインをどのように置き換えていくかを考えていきたいです。新しいプラグインを導入してWordPressで管理を続けるのか、それともReactなどのフロントエンド技術を新たに導入してサイトを築いていくのか。いずれにしても長期的な目線で、会社にとって合理的な提案ができるようになりたいと思っています。
命名規則の統一
約3年ほど前に生まれた本サイトは各個人のルールに従ってコツコツと開発されてきたようです。
見た目は年々リッチになっていく一方で、コードの可読性はだんだんと下がっていっています。
自分がCSS設計のBEMを導入して、コーポレートサイト開発の負担を減らしていきたいです。
ワークフローの確立
現在の開発工程は各々が各々のフローに従って進めています。もし開発中に何か問題が起きた時、原因追求にかかる時間が(リモートワークなら尚更)多くなってしまうはず。そこでバックエンドチームで学ぶであろう開発手法をコーポレート改修チームにも導入して、チーム内での共通認識を作りたいと思っています。
バックエンド
主に、以下のサービスに関係するAPI開発に従事しています。
やっていること
オンボーディングプロセスに沿って、会社のサービス構成やそれらに使われている技術の学習を進めています。入社以来バックエンドチームのメンバーがメンターの助けを借りつつ、サービスの仕組みを理解するためのタスクをこなしています。個人では、Docker やMysqlのコマンドライン操作、Golangの学習を進めています。
やりたいこと
できるだけ早くオンボーディングプロセスを終え、サービスに利用されているメインのAPI開発に参加できるようになりたいというのが一番です。そのために今の時間の使い方がとても大切だと思っています。
まず理解
APIのファイル構成がとても複雑ですぐには理解ができませんでした。今となっては大まかに把握できるようになってきましたが、細かいところまでは目が届いていません。現状のまま開発に参加しても足手まといは必死なので、まずはとにかく仕組みの理解に徹底するつもりです。
技術に慣れる
データベースを管理するためのAPIにはMysqlが用いられている一方、複数のAPI達へのルーティングを担当するAPIではMongoDBが利用されています。他にもPostgreSQLなどこれまでに全く触れたことのない技術がわんさかです。開発に参加したときに少しでもスムーズに業務がこなせるように使うであろう技術から学習していきたいです。
学んだこと
さて、ようやく本題です。
フルリモートとはいえ組織に属しての開発は、これまでの独りでの開発とは違いました。入社前に思い描いていた自分と入社してから実際の自分の間には良くも悪くも乖離がありました。
予想以上に無力
入社する前は、今頃APIの開発に参加しているだろうと思っていました。しかし現実は全くで、サービスを構成するAPI全てに目を通すことすらできていません。APIとデータ構造の複雑さ、複数のAPIによって構成されるアーキテクチャの仕組みは、個人開発していた成果物からは程遠いと感じています。コーポレートサイトについてもとてつもない情報量を管理していて、まだどこに何があるのかを調べながら編集しています。
元々自分が即戦力になれるレベルではないと気を引き締めていましたが、初めて実務を経験してみて、自分のスキルが予想していた以上に通用しない事を実感しています。一方でそのことを実感する度に、自分のポテンシャルを見込んで受け入れてもらえたのだという事を言い聞かせるようにしています。今自分が無力な事も伸びしろがあるという期待の裏返しと捉えることで、新しい業務にも臆せず挑戦できるようになりました。
聞くことも自走力
入社してから半月経ちましたが、正直まだわからないことだらけです。一番最初の環境構築からかなり躓きました。何か分からない事があった際、もっとメンターや他の開発メンバーの助けを借りたら良かったと思っています。
エンジニアにおける自走力とは、自身で必要な情報を調べてそれらを組み合わせることで問題を解決する能力だと思っていました。けれど今は、時間をかけて調べてみても解決できない問題があった場合、すぐさま人に頼るという選択肢が取れる人は自走力が高い人だと思います。現在は"どうやって自分だけで問題を解決できるか"から"いかに相手の時間を奪わない質問を投げられるか"にベクトルが移り変わってきました。
幸い、一緒に働いているチームメンバーは皆さん支持的でフランクなのでとても質問がしやすい環境です。就職先を選ぶ上でも質問しやすい雰囲気というのは、未経験にとっては特に大切な要素だと思います。
心境の変化
これらの学びを得たことで自分自身のインターンに対する姿勢にも変化がありました。
何もできなくて焦燥 → しっかり地盤を固める
入社してどんどん開発に参加をしている自分のイメージとギャップを感じて、最初の方は焦っていました。けれど、エンジニアチームのリーダーと毎日ミーティングで進捗状況を共有したり、メンバーとコミュニケーションをとっていく中で、自身の貢献している将来像とチームから期待されているものが擦り合わさってきていると思います。
もちろん最速のスピードでキャッチアップをしていくつもりです。ただ、現在はそこに焦りを感じることは少なくなってきました。それよりも中途半端な状態で開発プロジェクトに参加してチーム全体の開発速度を落とすことがないよう、今という時間をしっかりと地盤固めに投資していこうと考えるようになりました。
早く成果を出したい → 長期的に良い選択をしたい
自分の雇用形態がインターンシップ(契約)という事もあり、早く成果を出して正社員として雇用をしてもらえるようにできるだけ早く目に見える成果を生み出したいというのが入社直後の考えでした。この気持ちは今も持っている一方、会社にとって短期的な価値しかもたらさないような成果ではダメだよなという考えが加わりました。
自分にとって一番理想的な近未来は、インターンシップでの功績が認められて正社員として会社のプロダクト開発に関わる事です。例えば、会社のサイトを一新する事。Reactを用いて、綺麗で使いやすいコーポレートサイトに置き換える事はエンジニアとして大きな成果だと思います。しかし、Reactを駆使できるエンジニアたちはプロダクト開発で忙しいし、自分もバックエンド開発に携わっていたいので、今後ずっとコーポレートサイト専属のエンジニアになるつもりもありません。そうなった時に、この成果の価値はそれ自身を維持するためのコストに打ち消されてしまうと思います。
自分が今から残していく成果が、長い目で見て価値を持ち続けることができるか。副作用を持ち合わせていないか。会社の中に実際に入ってみて内情を知ることができるようになったからこそ、この標準を常に持って、日々の選択をしていきたいと思うようになりました。
まとめに
WealthParkインターンシップについての初回記事でした。今後も定期的にインターンを通して得た経験をここから発信していきたいと思います。おそらく次の記事のタイトルは"入社一ヶ月エンジニアインターンの学び"です。
Discussion
元気そうで何よりです!
お互い頑張りましょう!
大野さん!ありがとうございます...!
はい、頑張りましょう!