エンジニアになりたい人はまずサービスをリリースすることに集中しよう
これからエンジニアになっていきたい。でも最初に何をしたらいいかわからない方に向けた記事です。
色々な思いがあり、エンジニアを志している人は多くいらっしゃると思います。
そんな中でまずはサービスを考えるところ初めて見ませんか?という提案です。
なぜサービスを考えることが重要なのか?
エンジニアにとってサービスを考えることがなぜ大事なのか?
そもそもエンジニアのミッションはテクノロジーを使った価値提供をすることです。
つまりサービスを作り、世の中に価値提供していくことこそがエンジニアであり、プログラミングはその手段です。
エンジニアを志している方の多くはまずはプログラミングの勉強を初めてしまいます。 その中で挫折をしてしまったり、躓いてしまっている中で、いつしか本当に作りたかったサービスまで忘れてしまうことが多くあります。
目的から目を背けずひたすらサービスを考えることができる人は、プログラミングやデザインなどはそのサービスを成立させるための手段だと考えることができるので、本当にやりたかった価値提供を行うということにたどり着けると思います。
作りたいサービスと技術選定
「作りたいサービスを明確にする」→「それを実現する方法を調査する」→「サービスをリリースしてグロースさせる」という3つの工程を行っていきます。
この作業は1つ1つに難しさがあり、同時に行ってしまうと余計に難しく感じてしまいます。
細かいやり方を学ぶ前にまずは自分が作りたいものを明確にした上で、それを成立させる言語やライブラリなどを探していく技術選定を行うことが効率的です。
私も技術選定はとても悩みますし、エンジニアとして一人前の人でもかなり悩むポイントが多くありますので、まず最初は独学では近くの誰かに相談をすることをおすすめします。
作りたいサービスを明確にする→技術選定という流れをしっかりと意識して、難易度を下げることが重要です。
サービスを考えるとは?
そもそもサービスを考えるとは何かを考えてみます。
サービスを考えるフレームワークはとても多くあります。 新規事業や新規サービスを考える上で、代表的なものとしてはリーンキャンバスがあります。
こういったフレームワークはあるものの、あくまでフレームワークはフレームワークなので、本質的には以下のことを考えればいいと思います。
このサービスは誰に、何の価値を提供しているのか?
言い換えると何屋で誰がお客さんなのか?ということです
まずはこの問いに対してシャープに回答ができているかが重要だと思います。
開発を進めていくための準備
開発を本格的に進めていくためには、サービスを具体化していく必要あります。
この具体化の作業は技術選定の前に行います。
大事なのはこの段階ではまだ技術選定を行わないということです。 つまり、どのプログラミング言語を学ぶか、デザインはどうするか?などは一切考えないということです。
では具体化とは何かをご説明します。
画面を手書きしてみる
まずはビジュアルを具体化していきます。いわゆるワイヤーフレームを作るという作業になります。
ワイヤーフレームを作るという作業において、色々なツールがありますが、そのツールに慣れることが目的化しやすいのでまずは手書きで画面を書いてみることをおすすめします
機能を列挙してみる
画面が手書きで書けたら次は機能を列挙します。手書きのワイヤーフレームから機能を抽出する作業です。
例えば、メッセージ機能がある、チャット機能がある、決済機能があるなどです。
なぜ機能を列挙する必要があるかというと、この機能によって技術選定が変わるからです。 機能が明確になっていないとどの技術でそれを実現できるかを検討できないので、おおまかにでもいいので機能を列挙しておきましょう。
技術選定と開発
ここまでできてやっと技術選定や開発を行っています。 自分で開発を学びながら、自分が作りたいサービスを実現できそうな技術を見つける作業を行っていきます。
注意点としては、まず最初は独学でやってみることをおすすめします。
誰かに相談せずに最初の1週間はわからないなりに四苦八苦する経験を1度経験しておくと、誰かに相談をした時の学習効率が全く違うはずです。
四苦八苦が十分できたら、そこからは相談できる誰かを早急に見つけましょう笑
この四苦八苦期間が長すぎると挫折してしまいますし、あんなに作りたかったサービスをリリースすることにすら興味を失ってしまいます。
技術選定や開発を相談できるサービスの例としては以下のようなものがあります。
プログラミングスクール
プログラミングスクールに実際に通ったり、ビデオチャットでやり取りをしながら学ぶ方法があります。
ただし個人的にはあくまで開発の方法を教えてくれるだけなので、サービスをリリースするということに集中することが難しいのでは無いかと思います。
個人のメンターに相談する
僕が一番おすすめする方法は個人の信頼できる方を見つけてその人に、サービスのことも開発や技術選定もがっつりと相談することです。
私もサービスを作り始めた時は、友人に毎日、毎日わからないことや仮説をひたらすら相談しながら色々なものを吸収していきました。
スクールではなかなか相談できないことも、個人間であれば相談の範囲が明確に決まっている訳ではないので、色々なことを聞くことができ、 「何がわからないのかがわからない」という状態を抜けることができると思います。
現在、以下のサービスでメンターを行っていますので、もしご興味があればまずはご相談いただければ、全般的にご相談に乗らせていただきます!