エンジニアを目指しているみなさん。
個人開発はされたことありますか?
エンジニア面接の質問で必ずと言っていいほど来るのがこちらの質問。
「個人で何かサービスを作られた経験はありますか?」
面接官はあなたのエンジニアとして、どれぐらいの技術力があるかを確認するためにこの様な質問を問いかけてきます。
もちろん何か個人で開発したことが無いと面接が即終了するなんて事はありませんが、ここでYESと答えられるようになれば、それは採用率アップの大きな武器となるでしょう。
個人開発は面接の武器になるだけではなく、技術力や問題解決能力の向上に大きな影響を与えてくれます。
やっておいて損はないので時間が取れるうちにコツコツと進めて1つのサービスを完成させてみましょう。
なぜ個人開発をするべきなのか
個人開発をする事にはたくさんのメリットが存在します。
個人開発をするメリット
- 技術力の向上
- 問題解決能力の向上
- 検索力の向上
- 面接の武器になる
- 資産になる
技術力の向上
個人開発は当然ですが自分の力で様々な機能を実装しなければいけません。
例えばAmazonの様なECサイト(ネットショッピング)を一人で構築するとなった場合は下記のような機能が必要になってきます。
ECサイトに必要な機能
- ユーザ登録機能
- ログイン機能
- 商品を表示する機能
- 決済機能
上記はかなり大雑把に機能を羅列しているだけなので実際はMySQLなどで情報を保存したり、キャッシュを使ってDBの負荷を減らしたり、ユーザにおすすめの商品を表示するロジックの実装をしたり、もしものためにユーザ毎の履歴を保存したりと、細かい機能も含めるとこの5倍以上の機能が必要になってきます。
これらを全部自分で実装する事になるので当然技術力も跳ね上がります。
もし、一部の機能を作り切る事が出来なかったとしても
ECサイトを作るためには何が必要かというのを洗い出すことで設計力も身につけることが出来ます。
割と有名な言葉で
「設計8割、実行2割」
という言葉があるぐらい設計は重要なので、設計力があるエンジニアはかなり重宝されます。
問題解決能力と検索力の向上
設計が終わっていざ開発するフェーズに入ると様々な問題にぶち当たります。
個人開発のさまざまな壁
- 環境構築で行き詰まった
- プログラミングの書き方が分からない
- エラーが発生した
- 負荷がやばい
これらの問題を解決するためにあなたはGoogle先生に質問をひたすら投げ続けて行く事になります。
Google先生に質問を投げるときは検索キーワードがとても重要です。
同じことを意味するキーワードでも下記の様に検索キーワードを変化させると検索結果が大きく変化します。
検索方法
- キーワードの間にスペースの有無
- キーワードの並び替え
- キーワードの言い換え
- 英語で検索
4つ目の項目である英語で検索は若干ハードルが高いですが、日本語で検索するよりも英語で検索したほうが情報量が圧倒的に多いです。
なにか上手く行かないときは「XXXXX not working」のように「not working」と付けて検索すると大抵のことは出てきます。
また、エラーが発生した時はエラーメッセージをコピペして貼り付けると同じエラーに遭遇した人が解決法を書いていてくれていたりもします。
このように問題に直面したときはGooglle先生が求めている答えを表示してくれるように考えながら検索をしていく必要があります。
ここさえ攻略出来てしまえば大抵の問題は解決することができるようになります。
面接の武器になる
個人開発を行った経験があると面接の武器になり採用率に大きく貢献してくれます。
ここでいう個人開発の経験と言うのは何かを作りきったサービスまたはアプリのことを指していますが、中途半端で終わってしまった開発でも、その開発の中で得たものがあればもちろんそれはプラスになります。
エンジニアの面接で面接官が個人開発をしていますか?と聞く意図としては
個人開発をしているか聞く意図
- あなたの開発力
- 学ぶ意欲
- 忍耐力や継続力はあるか
- 問題解決能力(問題にぶち当たった時にどう解決したのか)
などを見ているケースが多く、この殆どが個人開発を経験することで身につけられることが出来ます。
資産になる
個人開発で作ったサービスはあなたの資産となります。
面接時にはポートフォリオとして提出するのもありです。
今まで複数のサービス、アプリを作られた経験がある場合は履歴書にもしっかりとアピールして自分という存在を売り出して行きましょう。
サービスは必ずリリースしよう
個人開発で作る内容はアプリでもウェブサービスでもボットでも何でも良いですが
必ずリリースをしましょう。
昔は個人で開発したサービスを公開するのは若干ハードルが高めでしたが、今ではherokuというサービスを使って無料で公開することも出来ます。
作ったサービスに対してユーザーからの意見(フィードバック)をもらって改善を行っていけばそれはサービスの運用経験にも繋がります。
作りたい内容が無い場合
個人開発したいけど作りたい物が無いんだよなぁ
この様な状況の方は、既存のサービスを真似て作って見ると良いでしょう。
個人開発と言えどオリジナリティが溢れていて完全に新しいサービスである必要はありません。
内容は既存のサービスを9割ぐらい真似て作成し、レイアウトや機能を少し変えるだけでも問題ありません。
ここで重要なのは何かを開発したことがあると言う経験なのですから。
難しいことは考えずに、「あ、このサービスいいな」と思ったらそのサービスを作るために何が必要かをリサーチして作り始めてみましょう。
普段使っているサービスで何か不満を感じた時に、そこを改善したサービスを作ってみるのも手だよ!
マネタイズ
個人で開発したサービスは広告などを貼ることで収入源としても力を発揮する可能性を秘めています。
例えば技術系の記事を書けるサービスとして有名なqiitaでは下記のような記事がありました。
たった3週間で作成したサービスが月10万の収益を生み出したのです。
これは完全にアイデアが良かったというのもありますが、実装するのにはそこまで難しくなかったはずです。
このように作成したサービスがバズると収益を生み出すこともできるので、これを狙って個人開発をしていくのもエンジニアの1つの楽しみ方と言えるでしょう。
まとめ
個人開発をすることでエンジニア面接の大きな武器になり、あなたの資産にもなります。
デメリットはほぼ無いのでもし本気でエンジニアへの転職を希望されている方は是非個人開発をはじめてみてはいかがでしょうか。
最初は難しくてわからないことだらけだったけど、今では楽しくて毎日サービスの事ばかり考えている自分がいたよ!