こんにちは!
seiです!
- プログラミングの学習をするときは手を動かすって聞いたけど、何を作ればよいか分からない!
- 初心者におすすめな作るべきものを知りたい
現役エンジニアのseiがお答えします!
この記事の信頼性
・seiは現役フルスタックエンジニア
・完全独学でエンジニアとして就職
プログラミング初心者はWebアプリを作りましょう
プログラミング初心者はWebアプリを作るべきです。
理由は以下の通り。
- モチベーションが維持できる
- 足りない知識から習得できる
- 自信がつく
モチベーションが維持できる
アプリ開発を目標にすると成果物があるのでモチベーションが維持できます。
マラソンとかも「あの木まで頑張ろう」と思って走ってると頑張れますよね。
あれと同じです。
ずっと本や動画を見ているだけだと眠くなりますし、一向にプログラミングを使って制作物ができないのでやる気も下がってしまいます。
足りない知識から習得できる
目標とするアプリを作るにはどうすればよいか?
自分が知らないことを優先に調べて実装していくので、自分に足りていない知識から習得することができます。
たとえば、httpメソッドは知っているのか?サイトを作成するには?それを全世界の人が見れるようにするには?などです。
「アプリ開発に必要な」知識を優先して習得することができます。
実務はアプリケーションを作る場合がほとんどなので、これに関わる知識を身に着けたいですね。
自信がつく
自分ひとりでアプリを完成させることができれば、かなりの自信がつきます。
僕はニートだった時にプログラミング学習してました。ニートだったので彼女もおらず、自分に自信を失ってしまってました。
でもアプリ完成させてエンジニアとして入社した後は、めっちゃ自信つきました(笑)
友人のモバイルアプリエンジニアは認証周りと通信周りの知識が乏しいと言っていました。
初心者におすすめの制作アプリ例
アプリを作ればよいことは分かったけど、実際に何を作ればよいか分からない(´;ω;`)
そんなあなたにおすすめの制作例を10個紹介します!
難易度を5段階で評価しています。
Todoリストアプリ ★★☆☆☆(2/5)
おすすめ言語:JavaScript(フレームワークにはReactやVue.js)
基本的なCRUD(Create, Read, Update, Delete)の操作を理解し、実装できるようになると思います。ユーザーがタスクを追加、削除、完了マークを付けることができるシンプルなアプリケーションを作成しましょう。ローカルストレージを使用してデータの永続性を学ぶこともできます。
ウェブスクレイパー ★★★☆☆(3/5)
おすすめ言語:Python(ライブラリにはSeleniumやBeautifulSoup)
特定のウェブサイトから情報を抽出し、そのデータを解析または保存するプログラムを作ります。例えば、ニュースサイトから記事のタイトルを取得したり、Eコマースサイトから製品の価格情報を取得したりします。これにより、データ収集と解析の基本を学ぶことができます。
日本語のレシピサイトからスクレイピングを翻訳して海外向けのサイトを作成したりとかですね。
簡単なブログ ★★★☆☆(3/5)
おすすめ言語:PHPまたはJavaScript(フレームワークにはNode.js + Express)
HTML、CSS、JavaScriptを使って自分のブログを作成しましょう。てデータベース(MySQLやMongoDBなど)と統合し、記事の投稿や削除ができるようにします。これにより、フロントエンドとバックエンドの両方について基本的な理解を深めることができます。
一般的なアプリ開発に近い知識が身につきます。
天気予報アプリ ★★★☆☆(3/5)
おすすめ言語:JavaScript(フレームワークにはReactやVue.js)
OpenWeatherMapなどの公開APIを使用して、現在地や指定した場所の天気を表示するアプリを作ります。これにより、外部APIとのインタラクションとJSONデータの操作について学ぶことができます。
実際の開発では外部APIを用いることもあります。
計算機 ★★☆☆☆(2/5)
おすすめ言語:JavaScript
GUI(Graphical User Interface)の基本を学びながら、基本的な算術演算が可能なウェブアプリケーションを作成します。ユーザー入力の処理とデータの検証について学ぶことができます。
チャットアプリ ★★★★☆(4/5)
おすすめ言語:JavaScript(フレームワークにはNode.js + Express, Socket.IO)
リアルタイムのインタラクションが必要なアプリを作成することで、WebSocketの概念を理解し、同時に複数のユーザーが共有状態を持つアプリケーションの構築方法を学ぶことができます。
結構難しいと思います。
画像ギャラリー ★★★☆☆(3/5)
おすすめ言語:JavaScript(フレームワークにはReactやVue.js)
FlickrやUnsplashのようなAPIを使用して、ユーザーが画像を検索し、閲覧することができるウェブアプリケーションを作成します。これにより、外部APIからデータを取得し、それをユーザーフレンドリーな形で表示する方法を学ぶことができます。
シンプルなゲーム ★★★☆☆(3/5)
おすすめ言語:PythonまたはJavaScript
じゃんけんやトランプなどの基本的なゲームを作成し、プログラムの制御フローとインタラクティブなプログラミングの基礎が学べます。こんな風にルールが複雑なタイプのプロジェクトはアルゴリズムとロジックのスキルを鍛えるのに役立ちます。
個人ポートフォリオサイト ★★★☆☆(3/5)
おすすめ言語:HTML、CSS、JavaScript
自分の経歴をアピールするためのサイトを作成します。ここではHTML、CSS、JavaScriptを学んで、レスポンシブデザインについても学ぶと良いです。自分の制作物を紹介しましょう。自分の技術レベルを示すのに良いです。
簡単なEコマースサイト ★★★★★(5/5)
おすすめ言語:JavaScript(フレームワークにはReactやVue.js、バックエンドにはNode.js + Express)
基本的な商品リスト、ショッピングカート、チェックアウト機能を持つ簡単なオンラインショッピングサイトを作ります。これにより、ユーザー認証、データベース管理、サーバーサイドプログラミングなど、フルスタック開発の多くの側面を学ぶことができます。
細かく考えると結構難しいです。認証の部分を自分で実装するなら、かなり学びが深まると思います。
何を作れば効率的に学びが進むのか
せっかく学ぶなら効率的に進めたいですよね。
ポイントを紹介します。
自分の作りたいものを作る
実は、自分が作りたいものを作ることが一番効率的な学習方法です。
理由は以下の通りです。
- 興味があるから続けられる
- 抽象イメージを具現化する能力が身につく
- 達成感が大きい
興味があるから続けられる
やはり興味があることを学ぶ方が楽しいですよね。プログラミング学習は続けることが最も大事です。楽しければ自然と続けられて効率的に学ぶことに繋がります。興味がないことを続けるのは苦痛でしかないので、自分の興味のあるものを作りましょう。
抽象イメージを具現化する能力が身につく
プログラミングは頭の中にある抽象的なイメージを、実際のシステムとして具現化する作業です。
自分の頭の中にある作りたいシステムをイメージしてそれを具現化することで、この抽象→具現化の変換が早くできるようになるので学習が効率的に進みます。
すでに完成しているサービスを模倣して作成するのも良いですが、これは「答えを書き写しながら、宿題をする」のと似ていて、身につきにくいです。
達成感が大きい
やはり、自分の作ったものが形になったというのはすごい達成感があります。この達成感を元に次のシステムを作るモチベーションが湧いてくるので学習が効率的に進みます。
僕も始めて自分が作ったアプリケーションが完成したときは、大きな達成感と喜びを感じました。
就職しようとしている企業が作っているシステムを作る
就職のためにプログラミングの学習をしているなら、就職しようとしている企業が作成しているシステムの小規模なものを作ると良いです。作るシステムによって必要な技術が変わるので、一番近いものを作成しましょう。
その企業や業界で必要とされる技術を具体的に学ぶことができ、また実際のビジネスシーンでの問題解決に近い形でスキルを磨くことができます。
例えば、あなたがECサイトを運営している企業に就職したいと思っているなら、自分で簡単なECサイトを作ってみることをおすすめします。そうすることで、ECサイトで必要となる商品の一覧表示、カートへの追加、購入処理など、実際の業務で求められる技術を身につけることができます。
まとめ
今回は初心者におすすめの具体的アプリケーション案と学習を進めるうえでのポイントを紹介しました。
僕が一番最初に作ったシステムは、成績を管理するシステムでした。当時塾を運営していたので成績を管理するシステムが必須でした。
業務用に作成したシステムでしたが、自分に関わることで興味を持てたので楽しく進めることができました。
みなさんも自分の興味のあるアプリを考えてみてください!