こんにちは。ZOAMONです。
今回は、よく聞かれることのうちの一つ、「初心者がWebアプリ開発するには、何を勉強したらいいですか?」という問いに対して、お答えしていきたいと思います。
以前の記事でも書きましたが、初心者がプログラミングを勉強するときには、何でもいいからとにかく何か作れ、ということをいってきました。
でも、「何でもいいから作れ」と言われて、作ることができる人もなかなかいないことも事実です。ですので、どのようなモノを作るべきか、ロードマップを紹介したいと思います。
1つ目:自己紹介ポートフォリオページ
まず1つ目は、自己紹介ポートフォリオページを、簡単なHTMLやCSSで作成してみてください。どのようなページでも構いません。デザインが下手くそでも構いません。
何度も言いますが、とりあえずつくってみて、アップしていくことが大事です。
自分がどういう人間なのか、趣味はなにか、これまでの開発実績や職歴があるのであれば、そういったこと、公開できる制作物があれば、そういったものも載せていきましょう。
具体的なイメージがわかない方は、下記のようなランディングページをまとめたサイトや、ポートフォリオサイトをまとめたサイトを参考にしてみましょう。
ポートフォリオ作成から学べること
- HTMLやCSSの知識
- Bootstrapなどのデザインテンプレートの知識
- S3に簡単なページを上げるための知識
ポートフォリオ作成から繋げられる案件
- 企業のランディングページ作成案件
- 単発のページデザイン
2つ目:Todoアプリ開発
次に、HTMLやCSSなどの世界から少し卒業して、非常に簡単なTodoアプリ開発を行ってみましょう。参考となるURLを貼っておきます。
※私がPython/Django使いなので、Djangoのチュートリアルになっております。
他の言語やフレームワークについて知りたい方は、それぞれ独自にお調べください。
- https://qiita.com/__init__/items/b8fd530f3b8603231b35
- https://hitsujicloud.com/2020/03/04/post-311/
- https://note.com/shimakaze_soft/n/nfa9369873d1a
Todoアプリは、色んな機能の非常に基本的な部分を学ぶことが可能です。
専門用語では「CURD」といいますが、これらが含まれていて、そして機能としてもシンプルに構築できるので、Todoアプリをオススメしています。
・C: Create => 新規登録機能
・U: Update => 既存データ更新機能
・R: Read => データ読み込み機能
・D: Delete => データ削除機能
ただ、ここではあまり複雑なユーザ管理や、権限管理などは入れなくていいと思います。みんなで共有のTodoアプリのイメージと言いますか、誰でも登録できて、誰でも更新できるくらいの気軽なものをつくってみましょう。
Todoアプリ開発から学べること
- 基本的なWebアプリケーションの構造
- フレームワークの基本的な知識
Todoアプリ開発から繋げられる案件
- Webアプリケーションのごく一部の機能の開発
※Djangoで言えば、ビューの中の一部分、など - デバッグ・機能テスト
Todoアプリ開発を終えた段階だけでは、まだまだ開発案件を受注することは難しいと思います。ただ、これで自分で作成したWebアプリを公開できることになりますので、モチベーションもアップすると思います!
ここまでできたのであれば、どんどんここからスピードアップしていきましょう!
3つ目:匿名掲示板
今度は、匿名掲示板をつくってみましょう。いわゆる、昔で言えば「2ちゃんねる」、今で言う「5ちゃんねる」のようなものです。
シンプルに、誰でもスレッドを立てることができて、そのスレッド内で自由にやり取りができるようなものをつくってみましょう。
Todoアプリと違う点は、スレッドと投稿、という親子関係がデータ構造上にあることです。これを通じて、親子関係があるデータベースのモデル定義や、親子関係があるデータベースの取り扱いなどについて、理解をすることができます。
匿名掲示板開発から学ぶことができること
- 親子関係があるデータベースの取り扱い
匿名掲示板開発を通じて得られる案件
匿名掲示板開発ができるレベルであれば、以下のような案件は請けても問題ないのではないか、と思います。
※ただし、強くデザイン能力を求められるような案件の場合は、自分のデザインスキルと合わせて考えましょう。時間が奪われてしまう可能性があります。
- データベース周りの取り扱いが発生するような案件
- 簡単なレベルの機能単位の案件(一連のMTV・MVC)
実際、ここまでできたら簡単な案件はどんどん請けていって、実践でレベルアップしていくのもいいと思います。
どこかのWeb系企業に転職したいと思われている方は、転職するために動き出してもいい頃合いでしょう。
4つ目:ブログ開発
次に、ブログを開発してみましょう。ここからは、少し見た目にもこだわってみましょう。ポートフォリオ作成で得たデザイン知識と、Todoアプリで得たアプリ開発の知識を組み合わせるイメージです。
もちろん、ポートフォリオのデザインが微妙だな、という状態の方は、この時点で少しだけアップデートしてみましょう。
ただし、ここでもポイントは、時間をかけすぎないことです。時間をかけすぎますと、先に進むのがそれだけ遅くなります。時間をかけて完璧なモノを作るよりも、沢山アプリを開発してアプリ開発の知識をより多く得て、より多くの実績を得るほうが重要です。
そして、このブログ開発において、最低限欲しい機能としては、以下のとおりです。
- ブログ投稿・更新・削除機能
- 投稿する記事の投稿予約機能
- ブログ記事の公開・非公開機能
- タグ機能
https://tutorial.djangogirls.org/ja/django_urls/
ブログ開発から学ぶことができること
以上のようなブログを開発する中で、以下のような知見を学ぶことができます
- データベース内の時間項目の取扱い
- ログイン制御・ユーザ権限による制御
ブログ開発から繋げられる案件
- 会員制アプリの開発業務(会員制アプリなど)
- 大体のバックエンド開発業務(お金の絡まない部分)
ここまでで、正直あとは現場で実践を積んでいこう、というレベルにまで達することはできていると思います。
ですので、就職したい方も、フリーランスで行きたい方も、ポートフォリオを公開してどんどん自分を売り込んでいきましょう。
5つ目:ECサイト
5つ目には、これまでの大成として、Amazonや楽天をイメージしたECサイトを開発してみましょう。決済の機能までつけると、少し面倒な作業が必要になってきますが、今はStripeなど、簡単にクレジット決済システムを構築するための方法があります。
ですので、以下の機能を実装してみるといいと思います。
- クレジットカード決済機能
- カート追加、削除機能
- 商品登録・管理機能
ECサイトの開発も問題なくできるようになりましたら、いよいよフリーランスとして生きていくための準備はバッチリになります。
もちろん、ここまででどんな案件でもこなせるかと言うと、全くそんなことはないでしょう。しかし、プログラミングスキルでしっかりと稼いでいくには、ある程度実力を身に着けた後は、現場でそれを磨いていくしかありません。
最後に
最後に注意すべきことは、これらを高速で回していくことです。
ゆっくりやってしまっては、時間が経つにつれて、段々とモチベーションも下がってしまいますので、他の人と成果を報告し合ったり、Twitterなどで実績をアップしてみたりして、モチベーションを維持しつつ高速で進めていきましょう。
いかがでしょうか?このブログでは、今後もこのような記事をアップしていきますので、面白いと感じられましたら、是非ともブックマークお願い致します!
また、関西圏を中心に、ITプログラミング教育活動を行っております。
今回の記事のように、最短で実力をつけていくための方法論をお伝えしたり、プラスアルファとして、これらのアプリを開発するための設計をどうしていくか、ということも学んでいくことができます。
もし興味がございましたら、以下のURLから、お問い合わせください!
コメントを残す