高校生が四ヶ月エンジニアインターンに参加してみた感想
18歳高校3年生、2023年9月からフィシルコム株式会社でフロントエンドの学生インターンに参加させていただいています
最初の三ヶ月の試用期間が終わり、ありがたいことに人生初のお給料(時給1200円)も貰えるようになったので、ここらで軽く振り返りをしておこうと思い記事を書くことにしました
なぜこの会社にしたか?
インターン先をフィシルコムに決めた最大の理由は使用している技術スタックです
というのも、僕は2022年冬にプログラミングの独学を初めてからほとんどウェブ系の技術(主にJS)を勉強してきたので、Next.jsを使った実務に触れたいと思っていました。
ただ、まだ新しい方の技術だからなのか、新しいNext.jsを使って開発をしている企業でインターンを受け入れているところがほとんどなく困っていました。そんな中フィシルコムを発見。新しいNext.jsを使っていて、かつ他の技術もモダンで魅力的だったため即決で応募しました。
本来は大学生以上のみが対象だったのですが、フォームに無理やり高校の名前を書いて送信したらオンライン面談をしていただけることになり、社長ともう1人の社員さんと僕で行われた面談の結果、とりあえず三ヶ月の試用期間無給という条件で参加できることになりました。
開発メンバー構成
開発チームはフロントエンドとバックエンドで分かれていて、僕はフロント側に参加しています
フロントのチームは現在10人前後で、数人がフルタイム+数人が副業参加+数人がインターンという感じで、コミュニケーションツールにMattermost(slackみたいなやつ)を使い、原則フルリモートで開発しています
僕が担当してきた主な業務
フィシルコムでは現在「Nex-Ray」というマーケティングのサービスを開発しているのですが、その開発においてのデータ取得+更新、設定ページのフォーム作成、多言語化などを担当させていただきました。今はStorybookのあたりをやらせてもらってます
実際に働いているエンジニアの方にコードをレビューしてもらうのは初めてだったので、最初の方は特にドキドキしました。逆に僕がレビュアーになることもあり、いい経験だなと感じています
1人で開発する時と違う部分
「動けばいい」じゃダメ
僕はインターンに参加するまでにいくつか個人開発をしていたのですが、その時と一番違うと感じたのは「動けばいい」じゃダメなんだな、ということです
というのも僕は性格的にも結構細かいところを気にしないので、自分で作ってる時は記述の順番とかフォーマットの統一とか読みやすさとかを無視して書いちゃってました。不要なImportとかを削除しないで置きっぱにしてたりします(これは僕がテキトーすぎるだけも)
ただやっぱりチームで開発しているコードとなるとそうはいかなくて、当然僕が書いたファイルを後から違う人が読んだり書き換えたりすることになるわけなので、今まで書かれてきた記述の慣習や命名規則に従って書くこと、理にかなった順番で実装することの重要性をすごく感じました。
レビューでそういった細かい指摘が沢山ついてることもあり、僕のミスが他の人の時間を取ることにもなるので自分で書いたコードを何回も読み返すようになりました
人のコードを理解する必要がある
もう一つ個人開発と決定的に違う部分は「人のコードを読む」ステップの存在です
1人で開発している時は当然自分のコードしかないので、やることは新しくコードを書いたり改修したりするだけです。しかしチームで開発するとなると、基本的にタスクに取り掛かる際の最初のステップは「コードを読んで理解すること」です
これは慣れなのかもしれませんが僕はまだまだ結構時間がかかるステップでして、1ファイル完結でのロジックとかならなんとか理解できるものの、複数階層になっていたりカスタムフックをいろいろ使っているものだと中々ヘビーです
使われている関数の実装を見ようとそのファイルに飛んでみるとまた違う関数が出てきて、そこではカスタムフック何個も使われてて、更にそこを掘っていくと...みたいな場合も多々あります
一回理解しても一晩経つと忘れちゃったりするので、僕はタスクをもらってコードを読んだら得られた情報や実装内容を軽く紙に図式化するようにしました。
人のコードを読むスキルはどのジャンル、どの技術だろうがエンジニアとして必須のものだと思うので、実際に企業で書かれているコードを読めるのは成長につながると信じ頑張ってます
週一のオンラインMTG
現在の開発チームでは、週に一回GoogleMeetでオンライン会議をしています
そこではまずそれぞれのメンバーがその週に行ったタスクと次週に行うタスクを共有+何か質問や共有事項があれば適宜に行うという感じです
これ自体は多分一般的な流れだと思うのですが、最近フィシルコムでは「勉強会」という面白い取り組みをしています。
Zennのスクラップ機能を使ってその週にメンバーが得た知見や気になることを共有するというものなのですが、新しい技術とかライブラリとか記述とかが知れてためになります。これも一人で黙々と勉強していると得られない機会なので、ありがたいです。
まとめ
この四ヶ月間のインターンのを通して、技術的なスキルに加えてエンジニアとしての貴重な経験を積めたと感じています。また、それと同時に他のエンジニアの方々との技術力や知見の差というのもひしひしと感じていて、「頑張らないとな」とも思います
やっぱりプログラミングを「書く、学ぶ」ということと実際にエンジニアとして「働く」ということは違う部分も多くあるため、思い切って参加してみてよかったなと感じています。僕も技術力は決して高くないですが学生として参加させていただけてるので、エンジニアインターンに参加したことがない他の学生の方もぜひ一度参加してみて欲しいです。僕も今後成長できるよう日々精進します
ここまで読んでいただきありがとうございました!
おまけ 〜今後していきたいこと〜
現在僕はエンジニアインターンで学んだことを活かして、Flutterを使用したモバイルアプリ開発の「Picmo株式会社」という法人を立ち上げてプロジェクトを開始しようとしているところです。具体的な開発物としては「アルクエッグ」という、ウォーキングで育てるたまごっち的なアプリを予定しています
約半年後にアプリの正式リリースを予定しているのですが、開発を始めるために必要な人員として経験が数年以上あるFlutterエンジニアとモバイルアプリのUI/UX作成を担当できるデザイナーを探しています。3,4人程度のエンジニアと1人のデザイナーで作る予定なので、もし興味があったら会社ホームページを見てみてください
質問やご連絡は僕のTwitterにお願いします
Discussion