【解決策】プログラミングを学びたいけど「作りたいものがない」
どうも、トマトです。元フリーターの現エンジニアです。今回はかつての私も経験した「作りたいものがない」問題についてお答えしたいと思います、本当あるあるですよね、作る事が大事って言われても何も思い浮かばないよってね。笑
本記事では、プログラミング勉強で作りたいものがない時の解決策について解説しています。これは私も経験して悩まされましたが、今では「こうすればいいじゃん」って感じで、そこから一つアドバイスできればなと思います。
はじめに:作る事ってそんなに大事なこと?
まず最初に、そもそもプログラミング勉強において何か作る事ってそんなに大事なことなのか、もしくは作りながら学ぶことはそれほど効率的なことなのか、これについて簡単に解説しておきます(おさらい)
結論から言うと、何か作りながらプログラミングを学ぶのは効率的だし重要です、独学なら尚更って感じ。
作りながら学習はメリットしかない
作りながら学ぶと頭に入ってきやすいし、その処理がどこでどのように使われるのか感覚的にも理解できる、プログラミングの基本構文を学んだだけだと「これどこで使うんだよ」で止まってしまい先が見えない。
作るもの・作りたいものが決まっていると、それを完成させる為に必要な知識だけを拾って吸収していくだけなので、寄り道することなく効率よく勉強できるメリットもある、それでなくても時間がかかりがちなプログラミング学習においてこれは大事です。
完成した作品のクオリティが高ければ、それをポートフォリオにして面接で使えばアピール材料にもなります、プログラミングを独学するならもはや常識レベルで「作りながら学ぶ」が定着しています。
プログラミング勉強で作りたいものがない問題
プログラミングの勉強(独学)では何か作ることが大事なんだ!、、、ってそのセリフ聞き飽きたって方いないですか、作りたいものがない時どうすんだ、思いつかない時どうすんだって言いたい。
ここからが本題、作りたいものがない時どうすんだって話、この壁にぶち当たると時間だけが無駄に過ぎていく、ググることを繰り返し結果何も思いつかず一日終了パターン。
こんな時どうすればいいか?
視点を変えて考えてみるといい
プログラミングで作りたいものを考える時のほとんどは自分視点が多い、「こんなのあったらいいな」「あれって作れるかな」みたいな感じ、でもそれすら出てこない人は無理なんですよ、無い袖は振れない状態。
それなら、逆の視点で考えてみるとどうだろう、自分は作りたいものはないが、何か作って欲しいと願う人はごまんといるわけで、そういう人達からネタを抽出して「作らなければならないもの」と考え取り組めばいい。
仕事を依頼されたと思って取り組んでみる
自分で作りたいものがなくても、作って欲しい側を妄想しそれを仕事として依頼されたと考え取り組めば、「作りながら学ぶ」をよりリアルに体現できます、例をいくつか置いておきます。
具体的には、フォロー&リツイートによるプレゼント企画を実施しようと考えています、そこであなたに仕事の依頼です、企画に参加したフォロワーの中から当選者を抽選するツールを作ってください。
こんな感じで視点を変えて考えれば「作るもの」なんてのは湧いて出てきます、前者に関しては勉強題材としてもおすすめ出来る内容ですし、後者は勉強するには濃く実用的なので作品としてもアピールできます。
妄想出来ないって方は家族や友人に「プログラミングで何か作って欲しいもの、あると便利なものってない?」と尋ねてみるといいかと思います、目的はプログラミング学習なので返ってきた答えには前向きに取り組んであげましょう。
既存アプリの模倣を作るのも効果的「例:メルカリ」
「作りたいものがない」「視点を変えて考えることもできない」「相談できる人がいない」という方は既存アプリの模倣を作るのも勉強題材として効果的かと思います。
例:「メルカリ」を模倣するなら
例えば、メルカリなんか良いと思います。
- ページを真似て作成する
→コーディング(HTML/CSS)の勉強になる - ログイン・ログアウト機能の実装
→プログラミング(PHP)の勉強になる - 商品を一覧表示させる
→プログラミング(JavaScript・PHP)の勉強になる - 商品を登録する
→プログラミング(データ管理)の勉強になる
サクッと挙げただけでもクソ勉強になりますよね、多分全ページ実装してポートフォリオにして持っていけば、どこかしらのWEB系企業は拾ってくれるんじゃないですかね。
他にもBTO系サイトの見積もりページ、Twitterを再現してみるのもありかと思います、別に完全再現する必要はありません(というか出来ない)、表面上の振る舞いを似せてそれっぽいものを作ればOKです。
作る上で共通して大事な事
作りながら学ぶスタンスで重要なのは「一度に全て作ろうとしないこと」です、一つの機能を細かく分けて一つずつ丁寧に作り上げていきましょう、実際の現場でも一気に作る事はありません。
一度に作ろうとしてしまうと必ずエラーで躓きます、解決したと思えば別のエラー、それを繰り返すうちに萎えて挫折して結局諦めてしまう人も多いのが現実です。
一つの機能を細分化し作るとは?
今言った「一つの機能を細かく分けて~」というのは具体的にはどういう事かというと。
「計算ボタンを押すと処理が動く」「入力欄の値を取得する」「値を計算する」「テキストを表示する(更新する)」というざっくり4つの実装が必要になります、それぞれ動作を確認して合体させて完成となる。
というような感じで、作りながら学ぶ際は一度に作ろうとせず、それを実装するために必要な要素を洗い出してから取り組んでいくのがベストかと思います、このやり方ならバグやエラーも少なく済み、結果的に挫折しにくい良い勉強スタイルを確立できる。
是非お試しあれ、以上おつ。
他の人が読んでいる記事
飲食→派遣→IT系ベンチャーに転職。
本業をベーシックインカムとし、やりたい事に挑戦するWebエンジニア。