はじめに
仕事や学校の授業だけじゃ、なんか物足りない!もっとスキルアップしたい!
そう思って、個人開発に挑戦しようとしたことはありませんか?
でも、いざ始めようとすると...
- 「作りたいものが全然思い浮かばない...」
- 「競プロみたいなアルゴリズムより、実務で役立つスキルを身につけたい」
- 「毎回、環境構築で挫折するんだよなぁ...」
かつての私も、まさにこんな状態でした。
「個人開発ってハードル高すぎ...」
そう思っていた私が、今では気になる技術をどんどん試せるようになりました!
この記事では、そんな私が個人開発をスムーズに始められるようになるまでのプロセスを、経験談を交えながら紹介します。
対象
- 学生さん
- 駆け出しエンジニア
- 新卒エンジニア
- ジュニアエンジニア
- めんどくさがりさん
1. 作りたいもの、本当にない??
個人開発になかなか手が出せない人にとってまず出てくる問題。それが
何を作ればいいのかわからない問題
学びは得たいが、どんなプロダクトをつくればいいのかなかなか思い浮かばない人は多いと思います。
個人開発 ≠ 1つのプロダクトを作り上げること
作りたいプロダクトが思い浮かばないのにプロダクトを作ろうとする必要はありません。確かに1つのプロダクトを最初から最後まで作りあげることも大きな学びですが、それにはかなりの時間を必要とします。
(そもそも最初から完全なプロダクトを作りたい!という人はこの記事見ていないと思いますし...)
ほとんどの人にとって個人開発をしたいと思う理由は学びを得たいからではないでしょうか。自身の技術力を上げるために実際に手を動かして学びたい。その手段の1つとして個人開発にチャレンジしたいのではないでしょうか。つまり、何を開発するかは自身のスキルアップのために何を開発するか。そこにフォーカスを当てることが重要だと思います。
スキルアップとしての開発
スキルアップのために何を開発するか。それを見つけるためにまずは自身の現状のスキルを明確にする必要があると思います。
何を理解していて、どんなことが実装できるのか。また、フロントエンジニアもしくはバックエンドエンジニアとしてどんなスキルが足りないのか。これらを明確にすればおのずと実装すべきことが明確になるはずです。
例として、新卒のバックエンドエンジニアを挙げます。新卒エンジニアはまずはジュニアレベルのエンジニアを目指すと思います。個人の方のQiita記事ですか載せておきます。
この記事にはジュニアレベルのエンジニアとして必要な知識が書かれています。特に認証周りなんかは、仕事でも新卒エンジニアではなかなか実装する機会がないのではないでしょうか。しかし、バックエンジニアにとっては理解しておきたい分野です。このような分野を仕事で経験できない分、個人開発で実装してみて学べばいいのです!
むしろ逆説的ですが、このように自分に足りない分野がないのであれば、もうシニアレベル以上のエンジニアなのではないでしょうか?
2. 環境構築なんて慣れているひとに任せてしまえ
環境構築めんどくさい
作りたいものが決まった後に出てくる新たな問題。それが
環境構築めんどくさい問題
おそらく、環境構築であきらめてしまう人の心情は、「新しく実装するならローカルの環境に影響を与えないようにDocker環境を構築したい」と思ってDocker環境の構築をしてみるが、いざやってみるとめんどくさくてやめてしまう。という人が多いと思います。
私も「これ実装してみたい!」と何度か思ったことがありますが、いつもこの環境構築がめんどくさくなってやめてしまいました。
GitHubのPublic リポジトリ
だがしかし、あきらめるのは早いです!!
今の時代GitHubでDocker環境を共有してくださっている方が大勢います!そういったリポジトリを活用して開発を進めるのが一番効率的です。学びたいことがインフラ周りでないのであれば、環境構築は楽をしてしまうのが一番です。むしろ、環境構築のせいで本来学びたいことが学べなかったり、そこまでの道のりが長くなることの方が大問題だと思います。
(話を戻します)公開されているDocker環境のリポジトリをforkして自分のリポジトリにもってくるのもいいのですが、もしTemplate Repositoryがあれば、そちらを活用するのがおすすめです!
Template Repositoryを活用することよって、自分のリポジトリに同じ環境をいくつも作成できるので、慣れている環境でリポジトリごとに様々な実装ができます。
Template Repositorとは↓
Templateとして公開されている環境例
- Laravel
- Ruby on Rails
(思たよりTemplateとして公開している人が少なかったので、自分でTemplate作って公開しようかな)
3. 最後に一番大事なこと
本当はこれを一番初めにお伝えしたかったのですが、エンジニアにとって技術以外の部分ってそんなに興味ないと思ったので最後にしれっと書いておきます。
一番大事なこと:とにかくやってみる!
なぜ個人開発を始められないか
個人開発をしたいけどなかなか手を出せない人って、始める前に全体像を明確にしたり、実装可能かどうかを調べてみたりという人が多いと思います。それでなかなか実装自体が始まらない・・・という負の連鎖になってしまっているのではないでしょうか?
何を隠そうか!私がそうでした!
チャレンジするのに完璧主義は邪魔でしかない
確かに、仕事では全体像の把握や影響範囲、工数などが明確であることが求められます。しかし、やりたいことは個人開発です。実務のように完璧なプランニングなんていらないのです。
なにかを実装したいと思ったら、プロダクトの入り口から出口まで設計せずに、実装したい部分だけ実装してもいいんです!なんなら実装できなかったで終わってもいいんです!なぜなら個人開発だから。
おわり
以上が私の思う個人開発の始め方になります。
エンジニアにとって自己研鑽はとても大事なことだと思います。学びにさえなれば別に個人開発がうまくいってもいかなくてもどちらでも良いと思います。そのくらいのマインドでやっていくのが大事なんじゃないかな~と私は思います。