プログラミング学習の過程で、作りたいものがないという悩みをよく見かけます。
あなたにも、こんな経験はないでしょうか?
・プログラミングを学習しているけど、学習できた実感が湧かない
・ポートフォリオを用意したいけど、作りたいものが思い浮かばない
筆者は現役のエンジニアですが、プログラミングに触れたばかりの頃は、同じ悩みを持っていました。
プログラミング学習は続けているものの、イマイチ成長できた実感が無かったため、学習へのモチベーションが保てず、途中で学習をやめてしまったこともあります。
この記事では、私の体験を元に、作りたいものを見つけられない原因を分析し、作りたいものの見つけるコツを解説したいと思います。
作りたいものを見つけるためのヒントが得られると思いますよ。
目次
プログラミングで作りたいものがない ですが作った方がいいです

プログラミングを学習している方のほとんどが、就職や転職が目的だと思います。
好き好んでプログラミングを学習しているわけではないので、作りたいものがないのは当然のこと。
ですが、なにか作ってアウトプットすることが重要です。
なぜなら、作りたいものがあった方が、自主的に手が動いて学習が捗るからです。
プログラミングの学習では、何かをプログラミングで表現することが重要。
その過程で、技術を使いこなせるようになることで、実践的なスキルが身についていきます。
自分自身の頭で考え、試行錯誤する行為が成長へとつながっていきます。
それに、何か目標がないと、学習へのモチベーションを維持することが難しいです。
プログラミングで作りたいものがないと就職・転職に影響がでます

技術を使いこなせればいいのであれば、「教材の内容を丸暗記してしまえば良いのではないか?」と、思われる方もいらっしゃると思います。
それでも、なにか作りたいものを見つけてアウトプットすべきです。
エンジニアへの就職・転職活動では、ポートフォリオの提出を求められることが増えています。
何もアウトプットしていない場合、ポートフォリオが用意できていないこととなるため、就職・転職で不利になってしまうからです。
面接の直前に、即席でポートフォリオを用意しておけば良いのでは?と思ってしまうかもしれませんが、企業側はポートフォリオの完成度だけをみてるわけではありません。
「どうしてこの技術を選んだのですか」と聞かれたら、回答に困りませんか?
あなたが熱意を持って作り上げたポートフォリオが無い場合、大切な自己PRの機会を失ってしまうかもしれません。
試行錯誤してどのようにして課題を乗り越えたのか、その過程だったり、ポートフォリオから自分のどのようなところを読み取って欲しいか、相手に伝えることが重要です。
プログラミングで作りたいものがない3つの原因

私も、プログラミング学習を始めたばかりのころは、作りたいものが見つけられませんでした。
当時を振り返ると、主な原因は以下の3つでした。
プログラミングでできることがわかっていない
プログラミング学習を始めたばかりの頃は、プログラミングでできることを理解できていないため、何が作れるのか想像がつかないと思います。
前提となる知識が不足しているからであり、しょうがないことですので安心して下さい。
この問題については、プログラミング学習を進めていく過程で解決できると思います。
めんどくさいからアウトプットしていない
義務教育の名残で、先生の話を一方的に聞く学習に慣れてしまっている方が多いと思います。
インプットすることが学習であると思い込んでしまい、ひたすらインプットだけを繰り返していませんか?
インプットすることが学習であると思い込んでいると、手を動かしてアウトプットすることが、手間がかかるしめんどくさいと思ってしまうものです。
本業をしながら学習に取り組む方もいますので、学習に割り当てられる時間が制限されていて、手間のかかることを後回しにしがちです。
後回しにし続け、結局やらなくなってしまいます。
インプットを繰り返すことで、プログラミングの基礎的な知識を習得することは可能です。
ソースコードを読めるようにもなるのですが、何かをプログラミングで実現しようとした時、手が全く動かないと思います。
筆者はまさにこのケースに当てはまっていましたので、職場の研修で課題を出された時、全く手が動かなかったことを覚えています。
既製品と同じではダメだと思い込んでいる
世の中にはたくさんのアプリ・システムがあります。
作りたいものが見つかったとしても、「すでに同じものがあるし、作っても意味がないからやめよう」と考えてしまっていないでしょうか?
新しい物を作るに越したことはないのですが、アイデアは簡単に出てくるものではありません。
アイデアが出てこないから「自分はプログラミングに向いていないのかな」と判断してしまい、挫折してしまう方もいると思います。
学習の過程で作るのですから、新しいアイデアは不要で、既製品でも問題ありません。
既製品のまね事でも良いので、とにかく作るという行動を起こすことが重要です。
プログラミングで作りたいものを見つける6つのコツ

プログラミングで作りたいものを見つけるためのコツをまとめてみました。
後半にいくにつれて難易度が高くなっていますので、あなたのの悩みレベルに対応したものを実践してみてください。
①教材で作成したアプリ・システムに機能を付け足す
プログラミング学習に使っている教材で、何かしら動くアプリ・システムを作っているはずです。
全く関係のない機能でも構いませんので、何か機能を付け足してみましょう。
学んだ範囲で実現できる機能で構いませんし、小さな機能で問題ありません。
教材を写経して作ったものよりも、学んだ知識のみで実際に動く機能を作り込むことで、成功体験を得られます。
小さな成功体験だとしても、その後の学習へのモチベーションを向上させる効果も期待できます。
②既存のアプリ・システムを作ってみる
あなたが普段使っているアプリ・システムを、学習済みのプログラム言語で作ってみましょう。
実際に動いているものを参考にするので、必要な機能は明確です。
作るものを考える必要がないので、プログラミングだけに専念出来ます。
まずは小規模なアプリをマネて作ってみることをオススメします。
大規模なアプリですとプログラミングする量もそれなりの規模となりますので、途中で挫折してしまう恐れがあるからです。
アプリ・システムを作る場合、一番始めに、そもそも学習済みのプログラム言語で作ることが可能なのか、調べる必要があります。
どのプログラム言語でも、やれることが同じではなく、得意なこと・得意じゃないこと、やれること・やれないことがあります。
調べることでプログラム言語の特徴が見えてくると思います。
特徴を理解すると、作りたいものに対して、プログラム言語の向き不向きを判別できるようになります。
不足している知識が明確になって、より具体的な学習のロードマップを作れるようになります。
③他の人が作ったアプリ・システムを写経してみる
ソースコード共有サービスを用いることで、他の人が作成したアプリ・システムを動かすことが出来ます。
しかも、元となるソースコードまで無料で公開されていますので、どうやって作られているのか、確認することまで可能です。
まずはそのまま写経して、自分の手で作ってみることから始めます。
改善点がみつかった場合や、追加出来そうな機能がある場合は、反映してオリジナル要素を加えていき、ブラッシュアップしていきましょう。
プログラムの書き方は人それぞれで、他の人が書いたプログラムを見ることはとても勉強になります。
自分には無かった発想や、教材からは得られなかった知識が盛り込まれていることが多く、新たな発見に出会えるはずです。
④クラウドソーシングサービスの案件を練習としてやってみる
クラウドソーシングサービスに登録されている、小規模なシステム開発にチャレンジしてみましょう。
実際に案件に応募するのではなく、クライアントが依頼しているものを練習として作ってみる、ということです。
完成させることができれば、実践的なスキルが身についたことを確認出来ますので、自信につながります。
実際に案件をこなせるようになれば、報酬も発生しますので、モチベーションも維持しやすいと思います。
実践的なスキルを身につけながら、必要な知識もインプットでき、スキルが身についたことも実感しやすいですので、一番おすすめの方法です。
⑤プログラムでできること×興味のあることの組み合わせで考える
独創的なアプリ全てが、まったく新しいアイデアにより生まれたわけではなく、既存の要素同士の新しい組み合わせで成り立っているものが多いです。
プログラミングでできることに絞られますので、プログラミングでできることと、既存の要素を組み合わせることを意識してみてください。
片方の要素に縛られることなく、既存の要素をたくさん挙げてみて下さい。
おもしろい組み合わせが見つかることもあります。
1つ参考になるサービスを紹介します。
「Arrangy」という、アレンジ飯を情報共有するサービスで、ポートフォリオ合同コンテスト「editch vol.3」で、最優秀賞を獲得した作品です。
一人ぐらいの方や、仕事が忙しく時間が無い方は、毎日の食事が同じメニューになりがちです。
作者の方は、食事のバリエーションを増やすため、アレンジ飯に目をつけていたそうです。
情報共有する(プログラミングでできること)×アレンジ飯、がうまく噛み合った、おもしろい組み合わせだと思いませんか?
既存の要素として、自分が興味のあることや、得意なことを挙げることをオススメします。
まっさらな状態からアプリを作ることとなりますので、高いモチベーションを維持できなければ、完成させることが難しいからです。
プログラミングに限らず、新しいアイデアを生むための1つの考え方になりますので、習得しておいて損はありませんよ。
⑥プログラミングコンテストに参加する
プログラミングコンテストとは、プログラミングのスキルを競い合い、プログラミング学習者を応援するために企業が開催しているコンテストです。
コンテストの内容は、大まかに以下の2つに分類されます。
・アルゴリズム問題を解くコンテスト
・開発したアプリ、サービスを審査するコンテスト
非常にレベルの高いコンテストばかりでして、優秀な成績を納めた場合、賞金が出たり、開催主の企業に就職できたりします。
コンテストに参加しなくても、入賞した作品については公開されていますので、作りたいものを見つけるためのヒントが得られると思います。
アルゴリズム問題を解くコンテストに関しては、過去問が公開されていますので、自分の実力チェックも出来ます。
まとめ プログラミングで作りたいものがない時の対処法

プログラミングで作りたいものが見つからない原因、作りたいものを見つけるコツについて解説してみました。
作りたいものを見つけるコツについて、おさらいしてみましょう。
プログラミングで作りたいものを見つける6つのコツ
- 教材で作成したアプリ・システムに機能を付け足す
- 既存のアプリ・システムを作ってみる
- 他の人が作ったアプリ・システムを写経してみる
- クラウドソーシングサービスの案件を練習としてやってみる
- プログラムでできること×興味のあることの組み合わせで考える
- プログラミングコンテストに参加する
実践的なスキルを身につけるためには、何かをプログラミングで表現し、技術を使いこなせるようになることが重要です。
そのためにも、何か作りたいものを見つけて、手を動かしてアウトプットすることが成長への近道です。
作りたいものを見つけることで、自主的に手が進んで学習が捗りますし、就職や転職を有利に進められます。
インプットだけを繰り返すのではなく、アウトプットの重要性を再確認して、実践的なスキルを身に付けていって欲しいです。