

プログラミング学習中で、ある程度学習が終わり、何か自分のオリジナルのサービスを独自開発しようか迷っている。
個人でサービス開発するのは、オススメなのか?やるべきなのか?エンジニアの意見を聞いてみたい!
今回の記事では、プログラミング学習者で3〜6ヶ月と、ある程度の学習期間を終えた方向けに、現役エンジニアの僕が、個人でオリジナルのサービス開発(独自開発)をするべき理由をお話しします。
プログラミング学習者の方は、、、
- プログラミングの基礎を学ぶ
- 応用を学ぶ
- 参考書や教材に乗っている機能やサービスを真似して開発する
- プログラミング中級者になる
- 何をすればいいか分からない。次のステップは?
このような流れを恐らく歩んでいるかと思います。
上記のようなステップを終え、プログラミング中級者になった方が次に必ずするべきことは、、、
個人でオリジナルのサービスを開発する(独自開発)する事です
では、なぜ独自開発をするべきかの理由と、個人でサービス開発をすると得れるメリットについて具体的に解説します。
- 基礎学習、応用学習が終わった「プログラミング中級者」の方
- 自分でサービス開発をしようと思うが踏み出せない方
- コーディング技術以外にも実践的なスキルを身に付けたい方
プログラミング初心者は個人でサービス開発をするべき理由

結論から言うと、プログラミング学習を初心者から卒業するには、個人でサービス開発(独自開発)する必要があります。
個人で何かオリジナルのサービスを開発すれば、エンジニアと名乗ってもいいかなと僕は思います。
つまり、独自開発をやり遂げる=エンジニア入り口に立てる、と言う事です。

独自開発ってそもそも何?何を作ればいいの?

僕の場合はLaravelで留学マッチングサービスを開発しました!
- 勤怠システム
- ブログサイト
- マッチングサービス
- チャットアプリ
- SNS
- グルメサイト
主にweb系のサービスですが、最も簡単なのは現在一般公開されているサービスを真似して作ってみると言う事です。
一般公開されている機能を独自で実装する事ができれば、実務でも必ず役に立つスキルを身に付ける事ができますし、大体ほとんどのサービスで同じ機能が実装されていたりするので、他のサービス開発の時にも応用できます。
僕が個人でWebサービスを開発した、留学マッチングサービスの詳細はこちらの記事をご覧ください!

では、なぜ独自開発をするべきか理由やメリットを深掘りして解説します!
エンジニア面接の際に必ず必要になる

まず始めに、あなたがもしエンジニアとして就職したいなら、独自開発の経験は必須と言えます。
僕自身も現在ベトナムのIT企業でエンジニアとして、働いていますが働く条件として「個人で小さくてもいいから何か独自で開発経験がある」事でした。
面接の際にも、独自開発経験の有無について質問されたり、サービス開発の際に頑張ったことや学んだ事が聞かれます。

えーー!そうだったんだ!独自開発経験がない人はエンジニアになれないんだね!

僕の会社のエンジニアはみんな、独自開発経験があり、どんなサービス作ったことあるかなどで話が弾みます!
- 独自開発経験があるエンジニア
- 独自開発経験がなく、ひたすら勉強したエンジニア
もしあなたが、面接官としてどちらのエンジニアが欲しいかと言ったら、問答無用で「独自開発経験があるエンジニア」ですよね!
また、面接官は「ソースコードチェック」を重点的に行う事が多いです。(英語で例えると、発音や文法が正しくできているかです。)
その為の指標として、独自開発を行いソースコードチェックができる状態にしておく必要があります。
個人でサービス開発をすることにより、その人の実力を「ソースコードチェック」で測る事ができる。
エンジニアとして就職する場合には、このチェックが行われる事が非常に多い。
本番環境に触れる事ができる

これまで、プログラミングの基礎、応用と学習して来た方のほとんどの方が、「ローカル環境」で学習や開発を行って来た方がほとんどかと思います。
もちろん、実務では最終的には本番環境でサービスを公開する必要があるので、エンジニアになる前に本番環境に慣れておく必要があります。
- FTPツールの使い方(FTPツールとは?使い方の記事)
- バックアップの取り方
- ドメイン、サーバーの基礎知識
- HTTP化
- セキュリティー対策など
このようにローカルでは学ぶことのできない重要な事が、独自開発を通して学ぶ事が可能です。
実務では、「ローカル⇆本番環境」この間でのデータやファイルのやりとりが非常に多く、もし実務で本番環境のデータが吹っ飛んでしまえば、損害賠償にもなりかねないので、この辺りの基礎知識は学んでおく必要があります。
独自開発では、ローカル環境では学べない、実務で必要不可欠なスキルを学ぶ事ができる!
フロントとシステム言語を網羅できる

1人でサービス開発をするとなると、サイトのデザインコーディングから、システムの構築まで自分1人で行う必要があります。
現役のエンジニアでも多いのですが、独自開発を経験している人がほとんどなので、大体フロント言語と、システム言語をまんべんなくできる方が多いです。
最終的には、自分にあった言語を選択し、「フロント言語orシステム言語」に特化していきますが、実務で開発をする際には、互いに気遣ったコーディングをする必要があります。

ぐちゃぐちゃなHTMLコードにPHPのコードを埋め込むのは嫌な気持ちするもんね!
つまりまとめると、システムエンジニアの気持ちも理解でき、フロントエンジニアの気持ちも理解できる人材こそ現場で求められるエンジニアなのです!
独自開発を経験する事で、システム、フロントの両方を行うので「あ〜あの時こうコーディングしてれば、この機能をスムーズに実装できたのに!」みたいな事が起こります。
独自開発を通して、システムエンジニア、フロントエンジニア両方の気持ちを理解できる優秀なエンジニアになろう!
自分のポートフォリオになる

もし、「フリーランスエンジニアとして今後は活躍したい!」という方であれば、ポートフォリオ(実績)作りは非常に重要です。
もしあなたが、何かのサービスをフリーランスエンジニアに依頼したいとして、、、
- 何かサービスを開発した事があるエンジニア(証拠アリ)
- 開発経験はないが、長年プログラミングを学習した
このどちらに仕事を依頼したいかと言うと、当然個人でサービス開発経験があるエンジニアに依頼したいですよね!
さらに、その作ったサービスが実際に公開されていれば、クライアント側は「このエンジニアはこのレベルのサービスを作れるんだ!」と一つの指標にもなるので、安心感も与える事ができます。
クラウドワークスやランサーズでも、案件を獲得できてる人とできていない人の大きな違いは、このポートフォリオ(実績)が充実しているかどうかです。
フリーランスを目指している場合、独自開発を行いそれを自分のポートフォリオ(実績)として、案件を獲得する事ができる。
コーディング技術以外も学べる

サービス開発は小さいながらも、ちょっとした「新規事業の立ち上げ」と言えるでしょう。
僕の場合は、留学マッチングサービス「HOMEABROAD」を開発したのですが、その過程の中でコーディング技術はもちろんのこと、それ以外にも沢山の事を学びました。
- 世の中のニーズを考える能力
- マーケティング力
- デザイン力
- 設計能力
- バグからの忍耐力 ← かなり重要
- 調べる力
僕の場合は、開発する前にこのサービスのコンセプトや、ターゲット、利益までの設計を全て考えてから開発をスタートしました。
- ただ単にサービス開発をする
- サービ開発+@を行う
独自開発はエンジニアになるには誰もが通る道なので、他のエンジニアと差別化するためにも+@の部分を意識して取り組んでみるといいでしょう!
独自開発に+@を付け加えて、他のエンジニアと差別化できる人材になろう!
- デザインを超頑張る
- マーケティング考慮したサービス
- リリース後、アクセスを集めてみる
- 超短時間で開発を終える
- 利益も考えたサービス設計
- 世の中のニーズを解決できるサービス
まとめ

うわー!個人でWebサービスを開発するってこんなにも大切な事なんだね!
もう今すぐにでも開発をスタートしたい!!
いかがでしたでしょうか!
もう一度まとめると、独自開発=エンジニアへの入り口です!
TechAcademy などの有名なプログラミングスクールでも独自開発というカリキュラムが組み込まれているくらいなので、エンジニアになる前には必ず経験しておきましょう!
この記事をみて、「独自開発しました!」と言う方がいれば、ぜひ僕にシェアしてください!
最後までご覧いただきありがとうございました!
