始めに
こんにちは、まんじです!
今回はプログラミングをいざ勉強したは良いものの、、、「作りたいものがないんだが?」という悩みにフォーカスして記事を書いてみたいと思います。
結論から書くと、ここらへんのアプローチが良いと思います。
- プログラミングを使って仕事を始める
- 誰かが作って欲しいものを代わりに作る(仕事する)
- ニッチかつ小さな悩みを解決するプログラミングorウェブアプリなどを作って布教する
- ポートフォリオを作るという目的のための手段として題材を探してから作ってみる
- アルゴリズム問題の練習をする
作りたいものを見つける作業に時間を使ってから作るか、
作りたいものなんてなくていいから仕事で無理やり作っていくか、、、みたいなお話です。
どんなケースにせよ、技術力やら収入を上げるためにはなんかしらを作る必要があるので、作るための仕組みを用意しようぜ!って感じの内容になります。
正直、プログラミングやって作りたいものがあってもなくてもあんまり変わらないというか、、、個人で作れる範囲だと工数的な問題でたかが知れているので、作りたいものがあるかないかとかは結構どうでも良かったりします。(本当にがっちりしたものを作るってなると自分1人で作るのは無理)
1個目: プログラミングを使って仕事を始める
個人的に「作りたいものがないぜ!」って場合に1番良いというか有効だと思うのが、プログラミングを使って仕事を始めてしまうことです。
- バイト
- 長期インターン
- 正社員
- フリーランス(は、最初からは厳しい)
特にバイトや長期インターンは高校生や大学生とかならすごくおすすめで、入るまでにポートフォリオっぽいものを作る必要にはなるし、仕事を始めてからは作りたいものがあるなしに関わらず強制的にコードを書くことになります。
ぶっちゃけたところ、、、エンジニアでアプリ作って起業したいとかじゃなければ、エンジニアで作りたいものがある必要性ってのはそこまでなかったりします。
あとはイマドキのアプリってかなり複雑なので、そもそも自分1人で作ってマーケティングからマネタイズまでやって、、、とするのは超難しいというかほぼ無理ゲーです。
少し話は脱線したものの、作りたいものがないならプログラミングで仕事をしてしまうのは1つの手段です。
学生じゃない場合には、エンジニアへの転職をしようとしてる人はポートフォリオを作って実際に転職活動を始めてしまうことです。
「仕事をするためのポートフォリオ作りのテーマが分からねえ」って場合には、以下の解決策がおすすめかな〜と思います。
- 自分もしくは他人の小さな困りごとを探してそれをアプリにする
- 自分もしくは他人が好きなことを探してそれに貢献するアプリにする
- お金が稼げそうなアプリの題材を見つけて実際に作ってマーケティングする
共通するのが、まずは「テーマを探す」ということです。
なんとなく作りたいものが出てくるというよりかは、自分もしくは他人のニーズ(やりたいこと、不満、解消したい不便さなど)を調べてからそれをアプリに落とし込んでいくイメージになります。
「ニーズが全くないです!」とか「なんのニーズもありません!」とかはなくて、必ず何かしらはあるので探すことに時間を使うのが大事です。
1日8時間プログラミングに使うのであれば、プログラミング5時間、ニーズ探し3時間みたくやると良いと思います。
見つかったらそこからはプログラミングで何かを作っていく生活に戻せば良いと思います。
とりあえず仕事に入ってさえしまえば、作りたいものはなくても嫌でも何かしらを作ることになります。(その結果、技術力が伸びる)
2個目: 誰かが作って欲しいものを代わりに作る(仕事する)
自分が作りたいものがないのであれば他人が作ってほしいものを作ってしまえばいい!というお話です。
主に小さな受託ビジネスをやるようなイメージです。
クラウドワークス系のサービスなどで「〜を自動化するシステムを3万円で作って欲しい」などの仕事依頼に対して応募して決まればそれを作っていく、、、という流れになります。
この場合は自分が作りたいものがなくても誰かが作りたいものを代わりに作るだけなので、特に作りたいものがある必要はありません。
ただ注意点としては、最初は時給500円も出ないと思います。
まずクラウドサービスとかで募集されてる仕事はソフトウェア開発の相場などを知らない素人か知ってても買い叩きたいような人が募集しているので、報酬がめちゃくちゃ安いです。
当然、安い相場なので仕事へ応募する人は多いけど、ちゃんとしたクオリティで納品する人も少ないです。
普通にウェブエンジニアをやってれば準委任契約で1時間あたり3000~5000円とかで働けるので、クラウドワークスとかに稼ぐ目的でやろうとは基本的に思わないからです。
話を戻して、作りたいものがないなら他人が作って欲しいものを仕事を受託して作ってしまえばいい・・・!ただ、最初の報酬は多分すごく安いよ!って内容でした。
ちなみにソフトウェア開発を受託するのは、SIerとかに発注されてるまともな案件(ちゃんと相場にあってるもの)なら、単価は普通に高いです。
単価が高いってのは結局のところ、ちゃんと相場感を知って適切な会社への営業活動ができているから単価が高くなるわけです。(クライアントがクラウドソーシングサービスで募集してる個人とかではなく)
とりあえず他人が作ってほしいものを請け負って作っちゃうのも1つの方法です。
3個目: ニッチかつ小さな悩みを解決するプログラムorウェブアプリなどを作って布教する
例えば、クリックポストっていう郵送サービスがあるんですけど、そのCSVのアップロードフォーマットにAmazonの販売情報から列とかを揃えて整えるプログラム、とかです。(実際に自分は自分で作って使ってた)
他にも、ぼくが作ったものとかだったら画像のリサイズを一括でやる機能とかもそうです。
画像のリサイズ一括はPhotoshopとか使ってると分かるんですけど、1枚1枚.pngとか.jpgにリサイズ作業してエクスポートするのが面倒なので(小さな不満があったので)作った、みたいな感じです。
日常生活や仕事含めると、意外と小さな不満とか、こうしたらもっと便利なのにな〜とかっていうのは探せばめちゃくちゃあるので、そういった人間のニーズの部分に焦点を当ててそれをウェブアプリにするといいぞ!って内容でした。
プログラミングを勉強しただけの状態だと作りたいものなんて基本的には何もアイデアがわいてきません。
というのもプログラミングしてても自分側から何もニーズが出てこないからです。(肩が痛いとかコードをもっと楽に書きたいとかそういうニーズばっかになる)
なので、「ニッチで小さなニーズを探す」という作業に少し時間をかけることが作るものを決める時に重要です。
4個目: ポートフォリオを作るという目的のための手段として題材を探してから作ってみる
上に書いたことと少しかぶるんですけど、「仕事入るためにポートフォリオを作る」っていう目的から逆算して何かを作るのは良いと思います。
流れはこんな感じになります。
- プログラミングを仕事にしたい
- そのためにはポートフォリオが必要
- そのためにはポートフォリオのテーマ選びが必要
- ポートフォリオのテーマって何がいいんだ?
- 調べてみる
- 作りたいものはなかったけど、これを作ろう!と決まる
「ポートフォリオのテーマって何がいいんだ?」って部分に関して言うと、これも上に書いた小さな悩みとか不満とかを探す作業をするのと、ウェブエンジニア界隈のオーソドックスな技術スタックを調べればOKです。
ポートフォリオ作ってそれにユーザーとかが少しつけられたりしたら、かなりすごいというかそれが実績というかリアルでの話のネタになるので、結構そこらへんも意識できるといいと思います。
ウェブエンジニアでいわゆる強めになるには、シンプルに技術力が高い熟練者になるか、技術力は普通だけどなんらかの手段を使って稼いでいる人(ウェブエンジニアやめて起業含む)、っていうこの2パターンしかないので、熟練者ではないパターンに自分を寄せていくなら最初の段階から少し意識したいところです。
余談ですが、エンジニアで普通の労働で得られるアッパーラインを超えてくためには、ほぼ例外なく技術力という作業ゲー(地頭の良さや開発経験に依存)ではない軸で勝負していくことにはやがてなります。
作りたいものはなくていいからポートフォリオの題材探しをしよう!ぜ!って内容でした。
5個目: アルゴリズム問題の練習をする
GAFAMとか海外のTech系だと「コンピューターサイエンスとアルゴリズム」ってのがもはや合言葉ぐらいの勢いになってるんですけど、コンピューターサイエンスとアルゴリズムのアルゴリズム問題をひたすらやるってのもおすすめです。
アルゴリズム問題ってのは、主にコーディング試験の時に役立ちます。
コーディング試験は基本的にそこそこまともというか待遇が良い企業でモダンなところに正社員で応募すると最初にほぼ100%やらされるんで、そこらへんの土台を身につけておくのは無駄になりません。
アルゴリズム問題を練習するには、この3つらへんを使うといいかと思います。
- Paiza(優しいところからある)
- AtCoder
- LeetCode
駆け出しエンジニアシーズンだった頃の自分は英語が全然ダメだったので、PaizaとAtCoder(少しだけ)をやってました。
アルゴリズム問題をやるのはウェブアプリケーションを作る基礎とかは身につかないんですけど、作りたいものがないならひたすらアルゴリズム問題を1ヶ月ぐらい解くとかは何気に無駄にならないというか、コーディング試験がそこそこ良い会社以上だと必須ってのもあって結構おすすめできたりはします。
作るってよりかは、プログラミングを使ってひたすら解くって感じの作業を繰り返すことになります。
ちなみに自分は新卒エンジニア就活をした時にビズリーチとかYahooのコーディング試験に落ちて、そこから「やばい、コーディング練習しないとぉ><!」って思ってそこらへんを練習してFreeeとかSansanとかのコーディング試験は結構余裕で突破できたので多分無駄ではなかったと今振り返ると思います。
あと実務に入ってからもたまにアルゴリズムっぽいもの(大カテゴリ、中カテゴリを持つデータ構造とか)がちょいちょい出現するんで、その時に再起的な処理(Recursive)とかhash map使って計算量減らすとかそういう時にチョイチョイ役立ってる感じも個人的にはします。
なので、作りたいものがないならとりあえずコンピューターサイエンスとアルゴリズム(アルゴリズム問題)をひたすらやるのもいいのでは?と言う内容でした。
まとめ
「プログラミングやったけど作りたいものがないぜ!」っていう悩みは、仕事とかお金の部分と絡めると解決しやすいです。
こういうサービスを作ってこうやって集客したらもしかしたらめっちゃ儲かるんじゃね?とかそういうアイデアとかがあれば、それをプログラミングで表現するだけですし、
プログラミングで仕事してリモートで稼ぎたい!
そのためにはポートフォリオ!
そのためにはこういう題材のアプリ(なんか不便さを解決しそう)を作って3ヶ月後に仕事応募開始じゃ!
みたいな感じでもいいですし、
プログラミングやったけど作りたいものないぜ!
おれはアルゴリズム問題を解きまくって競プロ王になる!
(結果、無敵のコーディング試験突破力を手に入れる)
でもいいと思います。
案外ちゃんと探してみるとプログラミングを使っていろいろとやれることはあります。
個人的にはとりあえずプログラミングで稼いでなんか気持ち良い思いとかができれば勝手にもっとやるようになるんで、いいんじゃないかなって思うところです。
作りたいものとかなくていいからプログラミングでお金を稼ぐことがなんていうか最も大事な部分カナーと個人的に思います。
ということで終わりなのと、よかったら下の記事もぜひ!!!