プログラミングを挑戦しよう!となってprogateをやって実際できてる感が強くなり実際にやってみようと思っても、難しくて挫折してしまう。なんて事ありますよね。
実際に僕もそんな感じでしてたがある工夫をしていくと、上達が実感できて実際に上達していきます。気づいてない人が多く見受けられるので参考にしていただければ幸いです。
何か作りながら学ぶことにより、完成後の達成感とともに実感することにより成長する。
ただ勉強してるだけでは上達できないし、上達を実感できない。
成果物を作りながら学ぶことにより、上達を実感できる。
結論だけ見てもわかりずらいと思いますが、大きく分けて3つのステップで上達していけます。この3ステップは実際僕が試した勉強法ですし、今でも実施中です。
- 作りたいものを考える
- 基礎の文法は軽く1通りこなす
- 成果物の作る
作りたいものを考える
みんなここを重要視していないんですが、実際はこれが1番重要なステップの1つです。
何か作りたいものがある人とない人の差はかなりあって、作りたいものがあるからこそ、その目標に向かって頑張って上達していけます。プログラミングで1番重要なのは試行錯誤しながら成長していくことで、問題解決が自分でできるようになります。
作りたいものは最初は難しいものをやめましょう!例えば、 youtubeを作るとかfacebookを作るといったことは初心者には無理なので、有名なアプリの簡易版とかにしましょう!
有名なのはTwitterを真似して作ってみるというのはかなり有名で、いろんなプログラミングスクールでもカリキュラムになるほどです。
ちなみに、僕の作った最初のアプリはTwitterを真似たアプリでした!そのあとに、オリジナルのアプリで掲示板を作りました。
コツとしては、日頃からネタ帳みたいな感じで困難作りたいとか色々メモっておくのがいいです。僕も実際いろんなネタをストックしていて’、新しい言語や技術を学ぶ時にそのストックの中から選んで何かを作っています。
基礎の文法などは1通り流しておく
ここで重要なのは、1度軽くprogateなどで自分が作るやる言語の文法を学んでおきましょう!
間違ってはいけないのが、いきなりアプリ制作の取り掛かかってはいけないことです。何かを作ることは重要なことなんですが、何も知らないままに初めてもわからないことだらけ。コピペだけしてもどうやってバグを乗り切ったらいいのかわからなくなります。
ある程度の文法が分かっていると、こんな感じで使うのかとか分かってきます。なので、文法をどうやって使っていくのとかもわかります。そしてやっていくうちに、自分で応用もできます。
こうした基礎中の基礎はやっておいたほうがいいですが、やりすぎも良くなくて、一生progateしても何も作れません。軽く1回流しておいて、あとでわからかったりしたら見直すのが重要ですね!
成果物を作る
ここまでくるとあとは、試して試して作っていくだけなんですが、重要なことが3つあります。3つのポイントを先にこなしてから、オリジナルアプリに取り掛かるとスムーズに進めていけます。逆にしていなとそのポイントごとにつまずきまくります。意外とここに時間をある程度かけたほうがあとあとスムーズにいったりします。
- 作る前にどうゆう仕様にするかちゃんと決める
- なんのどんな技術がいるのか調べておく
- デザインを決めておく
作る前にどうゆう仕様にするかちゃんと決める
仕様を決めるというのは具体的にどうゆうことをするのかというと、
- どんな機能をつけるのか?
- データベースの構造は?
- インフラはどうする?
といったことをこの時点で決めておくことにより、あとあとどうするかなとか大まかな変更をしなくて済みます。
どんな機能?
簡易版のツイッターのクローンアプリを作るとしたら、どんな機能をつけるのかというと、
- ユーザーログイン機能
- フォローフォロワー機能
- いいね機能
- 投稿機能(CRUD)
- ページネイション
ってな感じで、最初は簡単に作ってもいいと思います。他にも画像投稿機能とか好きなの入れてもいいんですが、あまり入れすぎると完成するまでに時間がかかりすぎるので気をつけましょう!
データベース
データベースでは、ER図をかけたらいいんですがかけなくても最初は大丈夫なので、ざっくりデータベースの構造も考えておいたほうがいいです。
例えば簡単に、
ユーザー登録にはこうゆう情報を保存しておかないといけないな。
- 名前
- メールアドレス
- パスワード
みたいに、何かの情報をデータベースに保存しないといけないのでざっくりでいいので考えておきましょう!
インフラ
インフラでは初心者がつまずきやすいので、最初は簡単なHerokuとかでローンチするのがいいかもです。オリジナルアプリの時はAWSとかGCSなどの難易度の高いのを使いこなせると尚更いいです。
どんな技術を使うのか調べておく
アプリの仕様を決めたと思いますが、その昨日はどんな技術なのか?それと、どうやって実装していくのかということは重要です。ざっと機能の実装の仕方を調べてみてください。中には今では無理や!っていうぐらいややこしいのが出てくるかもしれないので、先に調べて無理そうなら外しておくのもいいと思います。
デザインを決めておく
デザインはいくら考えても、センスがないと最初の方は無理です。僕は今でも苦手ですが、ある程度のデザインを決めていてください。余計な手間と時間を多く浪費するのがこのポイントです。
デザインはCSSのフレームワークなどを使えば、ある程度整ったデザインにできるのでフレームワークを使うことをオススメします。
まとめ
ちょっと詳しく説明したので、難しく感じた方が多いかもしてませんが、1つずつこなしていけば、そんなに難しいことではありません。
1つずつこなしていくことにより、達成感が得られて上達を実感していけます。
初心者から中級者ぐらいまでは0から1なので上達した感はすごく感じやすいでしょうが、そのまた上は1から100かもっと上までと、実感が薄れてきます。
なので、制作物を作ることによりどんどんこんなものまで作ることが来るるようになったと実感しやすくなります。
実践を積めば積むだけ進化していけます。重要なことは手を動かすことです。メンターが見つけられない場合は、スクールに通うのもありです。
ちょっとの助けが欲しい場合はメンターを雇うっていうのはいい考えですよ!
メンターをつけて学びを加速しよう