【初心者向け】プログラミングで何を作ればいいのか?こんな流れで進めてみては?

今回はプログラミングを学び始めた初学者が何を作ればいいのか?っていうことを書いていきたいと思う。プログラミングの学び始めは思い通りのものを作る力もないし、どう作ればいいのかも分からないもの。

そんな時に学習したことを生かして何を作って学習を進めていけばいいのか?っていうことをこの記事では記していきたい。あくまで個人的なものだけど、参考になる部分は見てもらえたら嬉しいです。

作りたいものはないがプログラミングを学びたい

何か作りたいものがある人は「これを作りたいからプログラミングを学ぶ」っていう思考だと思うけど、作りたいものがない場合ってどんな場合だろうか。

プログラミングを学ぶ理由
  • エンジニアになりたいからプログラミングを学ぶ
  • 副業として考えたいからプログラミングを学ぶ

考えてみると作りたいものが現状あるわけではないけど、エンジニアに興味があるからプログラミングを学んで何か作ってどんな感じか実感したい!っていうところでしょうか。ちなみに何かプログラミングを学習していきたいっていう場合にはこっちの記事で紹介しているから、良かったら参考にしてみてください。

何か作りたいけど何を作っていいのか分からん・・・っていう状況ってきっと、ちょっとプログラミングを無料で使えるサイトなんかで学習したけど、「さあ何を作ろうか?」っていう状況。

「学んだ知識を生かして作ってみたいけど、何が作れるんだろう?」「難しいものは作れないだろうけど、でも自分で作って動かしてみたい・・・」

きっと心の声はそう叫んでいるはずだ。何か動くものを作っていこうではありませんか。

技術を簡単に試すならTODOアプリ

何か言語やフレームワークを学んだときにTODOアプリは割とおすすめです。その言語やフレームワークを最低限使ってどんな感じなのかを知ることができる。雑だけどこんな感じのやつ。

TODOを入力してボタンを押したら、それが画面上に表示されるという仕様。これは雑なものだから編集機能や削除機能がないけど、作る時にはそれらの機能を付けたほうが理解が深まります。

CRUDを満たすものを作る

TODOアプリでもそうだけど、CRUDを満たすものを作ると大体どんな感じなのかを掴める。

CRUDとは、永続的なデータを取り扱うソフトウェアに要求される4つの基本機能である、データの作成(Create)、読み出し(Read)、更新(Update)、削除(Delete)の頭文字を繋げた語。

CRUD

CRUD
  • Create・・・データの作成
  • Read・・・読み出し
  • Update・・・更新
  • Delete・・・削除

例えばTODOアプリならTODOを書いてボタンをクリックすると登録しますよね(Create)。登録されたTODOを画面に表示(Read)してその表示されたものを編集して更新(Update)・削除(Delete)することができるアプリケーション。

ReactやVueなどでデータベースを使わないで作る場合でもCRUDを満たすように作ると理解を深めつつ作ることができるので良いです。表示・作成・編集・削除を持ったアプリケーションです。

サンプルを作る・改造する

プログラミングの学習は何かサイトを見ながら進めることが多いですよね。学習できるサイトはいくつかあるけど、個人的にはUdemyがおすすめです。有料だけど、有料な分質が良いものが多いんですよね。

Udemy

Udemyは動画の時間も長いけど用意されているものをガッツリやれば結構良い感じになると思います。プログラミングを学習するサイトについてはこちらに書いたから良かったら見てみてください。

これだって思ったプログラミング学習サイトを見つけたら、そこにあるコースを受けて知識を身に着けていきましょう。分からない部分は何度も見返して繰り返しやれば自分の力になってくれます。

作成したアプリケーションに機能を付け加える

学習サイトではアプリケーションの作成を通して学んでいくっていうことが多い。そのアプリケーションに自分が加えたい機能を加えたり、デザインを変えたりと改造していくと良き。改造するのにはその部分のコードを知らないとできないし、やっているうちにどんな風に作られているのかを知ることができるでしょう。

学習しているうちは画面に表示されているものをコピペすれば動いてしまうけど、再度見直すと分からないところは多いはずです。そういった部分を調べつくしていけば何も見ないでも同じようなアプリケーションが作れるまであるんじゃないでしょうか。

チュートリアルを行う

フレームワークごとにチュートリアルがあったりするから、そういったものを使うのも一つの手です。ただ個人が作っているものよりも分かりづらかったりするのがちょっと難点かもしれん。Vueなんかはドキュメントも分かりやすくて良いよ。

チュートリアル

チュートリアルは何かアプリケーションを作るっていうものが多いから、チュートリアルを終えたときには何か動くものができているはずです。書いたコードをマスターしてチュートリアルでやったことを次はサッとできるようにしておこう。

それでも開発したいものがない

いやー学習サイトとかチュートリアルとかやったんだけど、その先に何を作っていったらいいのか分からん・・・っていう場合もあるだろうか。あくまで提案としてだけど、以下の機能を持ったものを作ってみるのはどうだろう。

  • 会員登録機能
  • 読取・作成・編集・削除機能
  • 決済機能

これらの機能を持ったものが作れれば、自分のイメージしたものは何となく作れるんじゃないかな?と思います。作るものとしては会員登録が必要なnoteのようなブログや掲示板などなど、決済機能を付ける場合にはStripeを使うといいと思います。

フロントのみの場合

ReactやVueなどフロントのみで開発したい場合は基本バックエンドの言語は使わないで開発したい・・・って思うでしょう。その際には読取・作成・編集・削除機能を持ったものに何か取り入れたいものを入れてみると良いです。取り入れる余裕がなければそれだけでもいいと思うけど、取り入れると一気にアプリケーション作ってる感が出てくる。

  • チャット機能
  • ファイル・画像のアップロード機能
  • APIを使った機能
  • ・・・

チャット機能は1から作るのは面倒だけど、Firebaseを使えばリアルタイムのチャット機能をそこまで難しくなく作ることができる。チャットの内容はFirebaseのDBに保存してっていう感じだね。

ファイルや画像のアップロードはその画像のアップロード先をどこにするか?といったことを考えなくてはいけないです。AWSのS3やGCPのバケットなどなど考えるはず。他のサービスとの連携をここでも学ぶことができる。

APIを使った機能だけど、フロントだけでAPIを使わずに開発するっていうことはほとんどないんじゃないかなと思います。自分でAPIを作らずとも他のサービスが提供しているAPIはたくさんあるので、それらを使って何か開発してしまいましょう。

【2021年最新】作りたいアプリ別API一覧を全紹介〜随時更新〜

APIを叩いて画面ではこの項目を表示させるとかよくあるので、APIがどんなものか知っておくといいですよ。

APIのみの場合

APIのみを作りたいっていうのは学び始めのうちはそこまでないと思うけど、バックエンドしか興味がないっていう人はAPIを作ってみるのもありでしょう。APIを作る場合にも読取・作成・更新・削除機能を持ったものを作るのが良いと思います。

読取・作成・更新・削除
  • DBから情報を取得して返す
  • DBにレコードを挿入する
  • 指定されたDBのレコードを編集する
  • 指定されたDBのレコードを削除する

試す際にはCurlコマンドやPostmanAdvancedRestClientなどを使って作成したAPIがちゃんと動くか確かめてみると良いと思います。PostmanやAdvancedRestClientは簡単にAPIを叩いてデータを見ることができるのが良いですよ。

AdvancedRestClient

環境構築をコードで行う - Docker

Docker

余裕があればDockerを使って環境構築をしてみることをおすすめします。エンジニアとして企業で働くならDockerを使っていないところは今や少ないと思うからやっておいたほうが良いでしょう。

Dockerを使うことで一度環境を構築するファイルを作ってしまえば、後はそれを実行するだけで使うことができるから楽です。環境を破棄するのも楽だし、チーム開発なら皆同じものを使って実行するだけだからそれぞれでバージョンや環境によるエラーっていうことが起きづらいです。

アウトプットしよう

作るものとは関係ないけど、学習内容をアウトプットしていくのは結構良いですよ。ブログやQiita、Zennなどアウトプットする場所はいろいろあるけど、ブログがいいんじゃないかなと思う。(Qiitaなんかだとガチなコメントが来てメンタルがやられる恐れがあるので・・・)

最後はやっぱり作りたいものを作ろう

最初は作りたいものがなくても、学習を進めていくとどんどんできることが増えていきます。「こういうの作りたいんだけどどうやるか分からん・・・」と思っていたものも、学び続けると「こんな感じでやれば作れるかなあ・・・」という風になっていくはず。

今は作りたいものがなくても徐々にできるようになっていってこれ作ってみようかなーっていう時がきっと来る。そういう時に今まで学習したことを生かしてイメージ通りのものを作ってやりましょう。もしかしたらちょっと人気なサービスを作り上げる可能性もあるかもしれませんよ。

 

今回はプログラミングで作りたいものが何もないっていう時に何を作ればいいのかなあ?っていうことで少し書いてみました。何か部分的にでも参考になったものがあれば嬉しいです。