こんにちは!エンジニアの李です。 今年の4月にフォースタートアップス株式会社に新卒入社し、STARTUP DB(スタートアップデータベース)という国内最大級のスタートアップ情報を集約したプラットフォームの開発に携わらせていただいています。
目次
- 1. はじめに
- 2. 自己紹介
- 3. エンジニアの「魅力」
- 4. なぜフォースタートアップスに入社したのか?
- 5. フォースタートアップスの開発業務
- 6. 私が考えるエンジニアに「共通する」求められるスキルとは?
1. はじめに
- 文系出身でもエンジニアになれるの?
- エンジニアの楽しさとは?
- フォースタートアップスのエンジニアはどんなことをしているの?
今回は、上記の3つの疑問を解消するような内容を中心に執筆してみました! 最初にお伝えしたいことは、文系出身の私でもエンジニアとして活動できていること、フォースタートアップスのエンジニアは、約半数が文系出身で、学問関係なくめちゃくちゃ活躍していることです。
就活時代を振り返ると、いざ本当にエンジニアになろうと思った時、周りにエンジニアとして働いている方は全くいなかったので、情報が少なく非常に不安でした。 本記事を通して、そんな不安がちょっとでも解消されると幸いです!執筆自体が初めてのため読みづらい部分が多々あると思いますが、よろしくお願いします!
2. 自己紹介
大学では情報系とは全く関係ない言語学を専攻してました。 プログラミングを始めたのは、一年生の後期にコロナが流行り始めた頃です。「HTML・CSSができればフリーランスで月5万円稼げます!」みたいな動画を見つけたのがきっかけでした。実際はHTML・CSSだけできても案件を受注する力がなければ、月5万円稼ぐなんて到底夢のまた夢で難しい話でした。
ただ、実際に手を動かしてサイトを作ってみたり、検証ツールで普段自分が日常的にみていたサイトがどんなソースコードで動いているのかを知った時は、かなりワクワクしたのを覚えています。
大学3年時に、インターンの募集サイトで開発未経験でも募集していた学生ベンチャーを見つけて、10ヶ月ほど働いていました。Webサイトの画面を開発したり、WordPressの関数を作ったりしてました。
3. エンジニアの「魅力」
3.1 ゲーム感覚のような楽しさがある
個人的にエンジニアの業務には、カードゲーム、モンハン、推理ゲームのような楽しさがたくさんあると思っています。
「カードゲーム」
流行りの技術を取り入れたり、サービスの弱点を減らすような動きが常に行われています。
これは、最近流行っているデッキの傾向を把握したり、どんな構成で相手に挑もうかを考える部分に似ています!
技術スキルが増えるほど、シナジーを発揮するのもあり、カードゲームでいう複数カードを揃えるとコンボが使えるようになる感覚に似ています!
「モンハン」
フォースタートアップスでは、アジャイル開発を採用しております。1週間のスプリントで開発する機能の優先順位を話し合って決め、スクラムボードから自分で対応するチケットを取っていきます。もちろん自分が全然わからないことに出くわすこともよくありますが、そんな時は上長に相談したり、一緒に考えて頂いたりします。
これは、モンハンでいう討伐クエストみたいだと思っていて、大型モンスターだったら上長ハンターに相談して弱点を伺ったり、攻略法を一緒に見つけにいく(例えば、氷属性っぽいから火属性使えばうまくいくんじゃないか)みたいな感覚に似ています!
3.2 思考の整理ができるようになる
私は、やらなければいけないことや目的がすぐに混線してしまい、頭の中の情報が散らかってしまうことがよくありました。
開発は常に情報過多で複雑です。情報の整理を常に行っているため、エンジニアスキルとして、思考の整理を学ぶことができます。
今では、悩み事ややらなければいけないことがあったら、それらをリストアップして関連付けや優先順位付けを行い、やるべきことと、やらなくて良いことを分けるような習慣がつきました。
3.3 貢献したことが目に見える
自分の書いたソースコードが価値に変わってユーザーに届くことで、ユーザーへの貢献が目に見えて積み上がっていきます。プログラムは実際に動くものだからより実感が湧きやすいです!
4. なぜフォースタートアップスに入社したのか?
学生ベンチャーでインターンをしていた経験があり、決まりきった仕組みの中で働くよりも、常に試行錯誤しながら効率化を図るような働き方が楽しいと思っていました。フォースタートアップスは少数のチーム体制であり、新卒でも裁量を持って働けるところに魅力を感じ入社を決めました。
5. フォースタートアップスの開発業務
フォースタートアップスで利用している技術スタックです。
- フロントエンド:React.js / Next.js / Vue.js / Nuxt.js
- サーバサイド:Ruby on Rails / 一部(Python / TypeScript)
- パブリッククラウド:AWS
- 開発環境:Docker / GitHub / ZenHub / Terraform / Terraform Cloud / GitHub Actions / Rollbar / Notion
5.1 インターンで学んだこと
入社から1ヶ月ほどは、開発課題に取り組みました。実際に使われている社内ツールを触り、ローカルに同等の機能を実装することが課題です。開発課題では、Rubyのプログラミング言語の理解やプロダクトに対する理解がかなり深まりました。また、わからないことがあったらすぐに上長に質問して教えていただける環境でしたので、楽しみながら開発課題に取り組むことができました!
開発課題を経てからは、社内ツールの機能改善や機能追加に携わらせていただきました。運用しているユーザー(社員)が目の前にいて、使い勝手や要件の詳細をすぐにヒアリングすることができました。要望や要件をもとに開発を進めるだけでなく、要件定義などの上流部分から携わらせていただけるので、非常にやりがいを持って働けました。
ユーザーの声をヒアリングするのは信じられないほどモチベーションに繋がります。
私が書いたソースコードを、上長がその場で丁寧に説明しながら修正してくださったことがありました。既存の関数を呼び出したり、冗長なソースコードを修正することで、私が書いた40行のソースコードがたったの4行にまとまりました。正直「こんなに書いたのに、、」という悲しい気持ちに少しなりましたが、ソースコードは常に入れ替わっていくものなので、自分以外の人にも意図が伝わるような可読性の高いソースコードを書くことが求められるような開発環境なんだ!と感動した覚えがあります。
5.2 フォースタートアップスならではのこと
5/15,16に開催された、「Climbers」というスタートアップ企業が集まる展示会にフォースタートアップスのSTARTUP DBがブースを出展し、参加しました。
セールスに関しては、ビジネスサイドが全て担当する企業も多いと思いますが、フォースタートアップスでは商談に同席してみたいと言えば、二つ返事でOKが出るくらい自由度の高い環境です。今回のイベントでは、実際のお客様に自分が開発に携わっているプロダクトを説明したり、お客様のニーズをヒアリングできる素晴らしい体験ができました!
6. 私が考えるエンジニアに「共通する」求められるスキルとは?
- わからないことを「わかりません」と言える素直さ
- わからないことを説明できるロジック
- 要件の背景を探る推理力
- 知らないことに対する好奇心
技術力は、経験に比例して伸びていくものだと考えています。そのため、技術力よりもエンジニアになりたいという気持ちの方が個人的には大事なのではないかと思います。
だからこそ「自分なんかが目指していいのかな?」なんて迷う暇があったら、今すぐエンジニアの世界に飛び込みましょう!
例えば、
などはいかがでしょうか!