エンジニアとしてステップアップしたいなら個人開発をしよう

2021-12-04

Feature image for this page

こんにちは、こぷらです。 今回はエンジニアがステップアップするために何をしたらよいか紹介します。

プログラミングを勉強したものの、次にどうしたらよいかわからないと考えたことはないでしょうか? 私もプログラミングを勉強し始めた当初はよく悩みました。

そんな人におすすめなのは、個人開発を経験してみることです。 個人開発なんて難しそうと感じるかも知れませんが、決してそんな事はありません。 世界中に公開するものならともかく、個人で使う分なら細かい部分まで気を配らなくて良いため、かんたんに作れてしまいます。 それでいて、システム全体を設計/開発する経験は、間違いなくエンジニアとしてのスキルを高めてくれるでしょう。

この記事を読むことで、具体的に個人開発を経験するメリットを理解して、自分でも作ってみようと思えるでしょう。

そもそも個人開発ってなにするの?

個人開発は自由です、何をしても構いません。 ただそんな事言われても多くの人は困惑して一歩目を踏み出せないでしょう。 そんなときは、まず自分にとって役に立つものを公開することを目指しましょう。

ここで一つ注意点ですが、個人開発において重要なのは作ることではなく公開することです。 ただ作るだけだとフィードバックが少なく、得られる学びが減ってしまいます。 家族や友達だけでもいいので、とにかく結果を公開しましょう。

個人開発を経験することで得られるメリット

個人的には記事内では語り尽くせないほどのメリットがあると思っていますが、ここでは特に大きなメリットを 2 つ紹介します。

エンジニアに必要な能力がすべて身につく

個人開発をやりきることで、エンジニアに必要な能力がすべて身につくと言っても過言ではありません。 要求定義や設計、開発、運用などなど、どれもエンジニアとしての必須スキルです。 仕事でなら、自分以外の人と協力してやるため、意外と他人がやっている部分がブラックボックスになりがちです。 しかし個人開発なら、ブラックボックスはありません。 すべて自分ひとりの力で開発する必要があります。

そして何より一から開発するからこそ、勉強だけでは得られない経験があります。 答えが存在する勉強とは違い、何が良いかを試行錯誤する経験があなたのエンジニアとしての血となり肉となります。 これは個人的な考えですが、エラーを起こしたことのないプログラマーより、無数のエラーを経験したプログラマーのほうが優秀な人になれると考えています。 初めてやったら失敗することのほうが多いでしょうが、まずは一歩踏み出してみましょう。

エンジニアとしての自信が持てる

例えば私の場合、業務上開発のスタートアップよりも既存システムに手を加えることのほうが多かったため、なかなか全体設計を行うことがありませんでした。 そのため、0からの設計やインフラ構築など、システム全体のことを考えることがあまりありませんでした。 そのため、自身のスキルに漠然と不安を持っていたことを覚えています。

個人開発を通じて 0 から作ることを実際にやってみると、意外と自分でもできることやここはやっぱりよくわからないということがはっきり見えてきます。 ですが、漠然と不安に思っていた頃に比べ、自分の得意不得意がはっきりと認識できるようになりました。 人間はわからないことに不安を感じる生き物です。 苦手だということが予めわかっていれば対策も考えられます。 そして、私の得意なことはこれだとはっきりすれば、その一点だけで自信が持てます。

はじめの一歩のアイデア

そうは言っても何を作ればいいかわからないという人も多いでしょう。 何かを作りたいけど、どうすればいいのかわからないからアイデアも浮かばないというのはよくある話です。 そこで最後に、初心者でも作れそうなもののアイデアをいくつか紹介します。

メモアプリ

この手のジャンルだと Evernote 有名ですが、勉強のためなら Google のKeep のようなシンプルなもので十分でしょう。 メモを入力する UI にそれを保存するバックエンドの開発、少ない機能ですがソフトウェア開発の全体像を学ぶにはうってつけだと思います。 シンプルですが学ぶことは多いです。

Twitter クローン

SNS は Web 開発の集大成と言ってもいいかもしれません。 ユーザー認証や個人情報のセキュリティ、、 考えることが多い分ハードルは高いですが、学ぶこともそれだけ多いです。 Twitter と書きましたが、SNS なら何でもいいので自分の好きなものを真似して作ってみましょう。

普段困っていること

最後はアイデアと言うより考え方ですが、普段の生活で困っていることをアプリ化してみましょう。 特に困っていることはないと考える人もいるかも知れません。 ただそれは現在の生活に慣れてしまっただけです。 客観的な視点を持って、こうすればもっとうまくなるはずと考えてください。 これはエンジニアに必要な要件定義のスキルにも関わるので、作りたいものがない人は積極的にやってみてください。

まとめ

今回は、初心者エンジニアがスキルアップのためにやるべきこととして個人開発について紹介しました。

エンジニアにとって大切なのはプログラムが書けることではなく、プロダクトを開発できることです。 個人開発を通じて一つでもプロダクトを開発した経験があれば、本や学校で勉強しただけの頃よりも大きな自身が持てるでしょう。

それでは、よいエンジニアライフを。


Profile picture

Written by Coppla

職業:ソフトウェアエンジニア - 会社では精密機械の制御系ソフトウェアの開発を、プライベートで Web アプリ制作の勉強をしています。趣味は旅行と美味しいものを食べること

Categories

© 2022 Coppla, Built with Gatsby