ユーニックス総合研究所

  • home
  • archives
  • programming-nothing-todo

プログラミングで作りたいものがない時どうすれば?

プログラミングで作りたいものがない

プログラミング学習者にあるあるな悩みが、「プログラミングで作りたいものがない」というものです。
私も今は開発者をやっていますが、プログラミングを学んでいる時は特に作りたいものがなくて悩んだ記憶があります。

しかしプログラミングで作りたいものがない、というのは別に悪いことではありません。
これはだれもが持っている悩みです。

この記事では「作りたいものがない」ということの理解と、「作りたいもの」の具体的な探し方を解説します。
具体的には↓を見ていきます。

  • 「作りたいもの」がなくても大丈夫
  • 「作りたいものが無い」というのが多数派
  • 「作りたいもの」が無くても焦らなくていい
  • 「作りたいもの」の探し方

「作りたいもの」がなくても大丈夫

「作りたいものがない」というのは良くない状態なのでしょうか?
特に何か作りたいものがないけど、Twitterとかを見ると他の開発者はみんな自分の作りたいものを作っている。
そういう光景を見ると焦りを感じるし、作りたいものがない自分に劣等感を感じる。

そういう状況は、自分だけ置いてけぼりにされているような錯覚におちいって、あまりいい気分にはなれないというのが本当のところです。
しかし、その焦りや劣等感は、あなたが「成長したい」という気持ちの表れと言えます。
その焦りや劣等感、あるいは「はやく作りたいものを見つけなきゃ」という気持ちがあるから、人は成長できます。
つまりそれらの感情は持っていても大丈夫だということになります。

大切なのはそれらの感情を持っているかどうかです。
実は「作りたいものがない」というのはそれほど大した問題ではありません。
ですから作りたいものが特になくても大丈夫です。

現に私も作りたいものは日頃から探していて、特に「これを一生涯開発する!」というものは持ち合わせていません。
けっこうみんなそんなものです。

「作りたいものが無い」というのが多数派

むしろ「作りたいものが無い」というのは、実は多数派だったりします。
世の中のプログラミングをやっている人の大半は、特に作りたいものなど持っていません。
みんな無理やり見つけて開発してたり、特別好きというわけではないけど開発してたりするんですね。

「作りたいもの」が明確にあって、それにずっと時間を投資している人と言うのは、全体のごくごく一部です。
ほとんどの人はそんなものありません。
職業プログラマーやエンジニアであってもそうです。彼らはむしろコードを書くのが好きなのであって、何か明確な成果物を作り上げたいという欲求を持っている人は少数です。

意外に思われるかもしれませんが、あんがいそういうものです。
世の中に「夢」を持っていてそれを実現することに全力で走っている人はどれぐらいいるでしょうか?
ほとんどの人は、平凡な日常に幸せを見出して毎日を生きるわけです。それが多数派です。
プログラミングにおいてもそれと同じことが言えます。

「作りたいソフトウェア」という明確なビジョン、夢を持っている人はそんなに多くないのです。

「作りたいもの」が無くても焦らなくていい

ですから作りたいものがなくても、焦る必要はありません。
その焦る気持ちは成長の原動力として大事ですが、苦しくなるほど焦る必要などどこにもありません。

むしろ「作りたいものがない」という状態は「なんでも作りたいものが選べる」状態なわけです。
この状態はすでに作りたいものがある人は持つことが出来ません。
なんでも作れるんだという自由さの中で、まぁやっぱり悩むわけなんでしょうけど、その自由奔放さを肌で感じながら自分の作りたいものを自分のペースで探していけばいいわけです。

べつにプログラミングで作りたいものがなくても、だれも怒ったりはしません。
ノルマだってないし、だれもあなたに命令しているわけではありません。
ですからどうか自由な気分、何者にも縛られていないというその状態を謳歌して楽しむぐらいの気持ちでいきましょう。

プログラマーも作りたいものを作ったら、また「作りたいものがない」状態に戻るわけですが、別にそこで焦ったりする人はいません。
じっくりコーヒーやお茶でも飲みながら「次は何を作ろうかな」といろいろ妄想するわけです。

「作りたいもの」の探し方

では「作りたいもの」の探し方を紹介します。
これは大きく分けて3つの方法があります。

それは↓の3つです。

  • カテゴリからトップダウン的に作りたいものを探す
  • 「好きなもの」から逆算的に作りたいものを探す
  • 「王道」から探す

カテゴリからトップダウン的に作りたいものを探す

まず最初に試してもらいたいものが、カテゴリからトップダウン的に作りたいものを探していく方法です。
トップダウン的というのは「上から下に向かって」とか「大から小に向かって」という意味です。
プログラミングと一言で言っても、その内容は多岐にわたります。
プログラミングの世界は奥が広く、どこまでもつながっています。

作りたいものを探したい場合は、まずはプログラミングのカテゴリを把握しましょう。
そしてそのカテゴリからトップダウン的に自分の作りたいものを探していくわけです。

プログラミングのカテゴリを把握しよう

ではプログラミングのカテゴリというのはたとえばどんなものでしょうか?
↓は一例になります。

プログラミングのカテゴリ  
├── サウンド  
├── スマホアプリ  
├── スクレイピング  
├── デバイスドライバ  
├── デスクトップアプリ  
├── OS  
├── Web  
├── 事務処理  
├── ネットワーク処理  
├── 動画処理  
├── 機械学習  
├── 画像処理  
├── 組み込み  
├── 自然言語処理  
├── プログラミング言語  
├── ライブラリ開発  
├── フレームワーク開発  
etc...  

けっこう色々ありますね。そうなんです、色々あるんです。
このカテゴリをばーっと眺めて、自分の心の琴線にヒットしそうなカテゴリを探してみてください。
別にヒットしなくても、他に比べたら多少は興味あるな~ぐらいでも大丈夫です。

興味のあるカテゴリを選ぶ

さきほどのカテゴリから興味のあるカテゴリを選びます。
たとえば「自分はパソコンよりスマホのほうが好きだな~」だったら、「デスクトップアプリ」より「スマホアプリ」のほうがあなたには適性があることになります。
逆に「スマホよりパソコンだな~」だったら、「スマホアプリ」より「デスクトップアプリ」のほうがいいわけですね。

Youtubeで動画をよく見るんだったら「動画処理」とか、プログラミングとは別で絵も描くよという人は「画像処理」なんかがヒットするわけです。
時代の最先端を勉強したい! という人なら「機械学習」から入ってディープラーニングまで学んでみようということですね。

そうやって自分の興味のあるカテゴリを選びます。
これは1つだけではなく複数選んでもOKです。

カテゴリを選択してそれについて調べていく

興味のあるカテゴリを選択したら、次はそのカテゴリについて深く調べていきます。
たとえば「自然言語処理」を選択したら、Googleで「自然言語処理」について深く調べていきます。
自然言語処理の大まかな概要、そして応用範囲など調べて把握していきます。

そしてそれらのカテゴリのチュートリアルをネットから探します。
あとはそのチュートリアルを実践してしまえばもうあなたは「作りたいものがある」状態なわけですね。
そういったチュートリアルを数でこなしていけば次第にそのカテゴリーの分野のノウハウがあなたの中にたまっていきます。
するとノウハウを応用して「あれ作ろうと」とか「あれも作れるかも」という状態になっていくわけです。
この状態になればもう自転車の補助輪が取れたようなものです。どこまでも好きに学習していけます。

「好きなもの」から逆算的に作りたいものを探す

次に紹介したいのが「好きなもの」から逆算的に作りたいものを探していく方法です。
カテゴリから探す方法はトップダウン的なアプローチでしたが、これはボトムアップ的なアプローチと言えます。
ボトムアップ的とは「下から上に向かって」とか「小から大に向かって」という意味です。

自分の「好きなもの」をリストアップする

最初にあなたの「好きなもの」を集めてリストアップします。
たとえば

  • ぬいぐるみ
  • 英語
  • K-POP

などなど、自分が日頃からキャッチアップしている情報について考えると、これらは自然に見つかります。
日頃からGoogleでどんなことを検索していますか?
SNSなどではどんな話題が多いですか?

それらを考えていくと自分の好きなものが見つかります。
「SNSではぬいぐるみの話が多いな~」とか、「Youtubeでは英語の動画をよく見るな~」とか。
自分の好きなものと言うのは身近過ぎてあまり自覚がありませんが、日頃の自分の行動を観察すると自然に見つかります。

「好きなもの」は普遍的なもの

「好きなもの」というのは普遍的なものです。つまり長く続けられるものです。
プログラミングにおいてモチベーションになるのがこういった自分の好きなものです。
好きなものについてプログラミングを行うことによってモチベーションが高まり、プログラミングするぞ! という意欲が湧いてきます。

ですから、この好きなものとプログラミングを関連付けるというのはおすすめです。
これは「好きなもの=作りたいもの」という式も自然に成り立ちます。

自分の中に眠っている自分の好きなものを明らかにすることによって、それが自然とプログラミングで作りたいものになっていきます。
日頃から自分の好きなもの、興味があることをよく観察して、自分が何が好きなのかを意識するようにしておくと吉です。
プログラミングの作りたいものの答えはそこに眠っているかもしれません。

「好きなもの」を「作りたいもの」に変換する

たとえば「ぬいぐるみ」だったら「ぬいぐるみの販売サービス」など面白いかもしれません。
会員制のサイトで、会員は自分のぬいぐるみを他の会員に売ることが出来るというサービスです。
これはカテゴリ的には「Web」になりますね。

ほかには「英語」だったら「自動翻訳サービス」などが面白いかもしれません。
これはカテゴリ的には「Web」と「自然言語処理」がそうです。
難易度的にはかなり高いです。

あとは「K-POP」だったら好きなアーティストのCD売り上げ枚数の統計を取るプログラムを作るとかも考えられます。

このように「自分の好きなもの」を「プログラミングで作りたいもの」に変換すると、自然とプログラミングで作りたいものが見えてきます。
ぜひお試しください。

「王道」から探す

あとはいわゆる「王道」から探す方法です。
興味のあるプログラミングのカテゴリも自分の好きなものもこれといって無い、という人におすすめです。
計算機科学の勉強では王道ともいえるソフトウェアがいくつかあります。

これは大学などでは教授に教わりながら生徒が作ったりします。
それぐらいポピュラーなジャンルです。

OSとコンパイラ

それは「OS」と「コンパイラ」です。

  • OS
  • コンパイラ

これら2つのソフトウェアはプログラミングの学習では王道的です。
特に何も作りたいものがないのであればこれを作るといいかもしれません。
これらのソフトウェアを作れる人は、プログラミングをやる人から一目置かれます。
難易度的には初心者の内はかなり難しいですが、何年も続ければ形には出来るようになってきます。

あなたがプログラミングの継続した勉強を望むのであればこれらのソフトウェアを作ってみるといいかもしれません。

おわりに

今回は「プログラミングで作りたいものがない」という問題について解決を試みてみました。
この記事がみなさんの助けになればうれしいです。