プログラミングはすべて習得しようとしない方がいい?
プログラミングを学習しようとする初心者はたいてい以下の手順でプログラミングを勉強しようとします。
- プログラミング言語の本を買って最初から最後まで一通り学習する
- アルゴリズム、データ構造などのプログラミングの基礎知識を一通り学習する
- 統合開発環境(Xocdeなど)の機能を一通り学習する
- アプリ開発で使えるパーツ(テキストボックス、ボタンなど)について一通り学習する
- アプリ開発を行う
上記の方法で勉強すると、ほぼ確実に挫折します。上記の方法だと一度にすべてを体系的に習得しようとするので、学習量のあまり多さにモチベーションが下がり挫折してしまいます。
では、どうしたらプログラミング初心者が効率良く学習できるのでしょうか?
アプリ開発、AppStoreに公開した経験がある管理人が解説しますね〜
プログラミングは何のために習得するのか?
プログラミングは何のために学習するのでしょうか?プログラミング言語をマスターするため?開発ツールをマスターするため?
アプリやWebサービスを開発するために、プログラミングを習得するのです。ここが大事ですね〜
なので自分がアプリ、Webサービス開発で必要な要素だけ学習して開発を実際に行うことが、挫折せずにプログラミングを習得するポイントになります。
「いついつまでにこのプログラミング本を制覇する」「いついつまでにXcodeの使い方をマスターする」など手段が目的になっていないか見直してみてください。
とにかく一通りアプリ開発を経験することが大事!
私は基本的な部分だけを一通り学習したら、知識が不足していると感じても、すぐ自分が作りたいアプリを開発するのがいいと思います。アプリを開発することで以下のメリットがあります。
- わからない部分が出てきて初めて学習するので、すぐにプログラミングが身に付き、忘れにくくなる
- アプリが実際に動くことで、モチベーションが上がり学習意欲が高まる
- テスト、デバッグ、アプリ公開などアプリ開発を行わないと経験できない事が身に付く
特にテスト、デバッグ、アプリ公開を経験するとプログラマへ就職、転職に有利になりますよ!とにかく学習はほどほどにしてとにかくアプリを開発してきましょう!
初心者のプログラミング習得の手順
1.作りたいアプリ、Webサービスを考える
最初に作りたいアプリ、Webサービスを考えます。以下の観点でアイディアを考えるとよいでしょう〜
- 自分が欲しいと思うアプリ
- 普段の生活で不便、不満に思っている事を見つけ、それをアプリやWebサービスで解決できないか考える
2.習得するプログラミング言語を決める
作りたいアプリに適した、プログラミング言語を選択します。大体以下のようにプログラミング言語を選択しますね〜
- iPhoneアプリ → Swift
- Androidアプリ → Java
- Windowsアプリ → C#、VisualBasic.net
- Webサービス → PHP、Java、JavaScript
3.基本的な部分を解説している本で学習する
プログラミング言語を決定したら、基本的な部分だけ本から学習します。以下の項目が何となくわかればOKです!
- 基本的な文法
- 開発環境の基本的な使い方
- 基本パーツ(ボタン、テキストボックスなど)の使い方
これからつくる iPhoneアプリ開発入門 ~Swiftではじめるプログラミングの第一歩~
慣れないうちは、本に記載されているサンプルプログラムの意味がわからない事も多いですが、その時は意味はわからなくていいので、そのままサンプルプログラムを自分の手で打ち込んで、動作を確認ください。
これをプログラミングの写経といい、非常に有効なプログラミング学習法の一つです。これを繰り返していくことで、何となくサンプルプログラムの意味がわかってくるようになります。
あまりここの学習で時間を費やさないようにします。
4.アルゴリズム、データ構造は概念を知っていればOK!深追いはしない
これらは重要ですが、深追いすると初心者は挫折します。
こういうアルゴリズム、データ構造があるという事だけを頭に入れましょう!
実際に開発して問題に当たった時に、このアルゴリズム、データ構造は使えないか?と考えます。
5.リファレンス的な本を買う。この本で学習は行わない
「逆引き◯◯大全」「◯◯ポケットリファレンス」という感じのタイトルがついた本を買います。
現場ですぐに使える! VisualC#2015逆引き大全500の極意
開発を行っていると、ふと「ファイルを開いて内容を確認したいけどプログラムでどう書くのか?」「サウンドを鳴らしたいけどプログラムでどう書くのか?」という場面が多くあります。
こういう時な上記の本があれば、プログラムでどう書くかさっと調べる事ができます。
6.アプリ開発を開始!まずはコアな部分を開発、アプリが実現可能か検証する
いよいよアプリ開発を開始します!まず最初にコアな部分からプログラミングを行っていきます。
コアな部分とは、その機能が無いとアプリが成り立たない程の最重要の機能のことです。
例えば、Twitterアプリなら「Twitterのユーザー認証」や「Twitterでつぶやく」などの機能です。
コアな部分から開発することで、自分が作りたいアプリが実現可能かどうか早い段階で確認する事ができます!
ここが一番開発で時間がかかるところですので、焦らずじっくり取り組みましょう〜
7.わからない部分が出てきたらそこでまた、調査や学習を行う
開発ではわからない部分が必ず出てくると思います。
上記で買った本、ネットなどで解決法がないか調べます。
ネットなどは結構サンプルプログラムがごろごろありますが、解説が説明不足でプログラムの意味がわからないことも多いので、その場合はプログラムの写経し、動作を確認することで理解をしていきます。
8.コアな部分に少しずつ他の機能を 機能追加 → 動作確認 → 機能追加 → 動作確認… を繰り返していく
コアな部分が開発できたら、もうアプリ開発の山場は超えました!
あとはコアな部分に少しずつ他の機能を追加していきます。
ほんの少しだけ機能追加して、機能追加したらマメに動作確認をするのがポイントです。
一気に機能追加をしてしまうと、動作確認で不具合が発生した時に不具合箇所の発見が困難になります。
9.アプリが一通り完成したらテスト、デバッグを行う
アプリが完成したら、テスト、デバッグを行います。
デバッグとはプログラムの不具合を修正することです。
テスト、デバッグは一冊の本が書けるぐらい奥深い内容なのでここでは説明できません^^;
後ほどこのブログで解説しようかな〜
個人で作成したアプリの場合は、アプリを一通り動かしてみて、不具合が無ければOKでしょう!
あと以下の例のように想定外の状況、使われ方を考えつく限りたくさん挙げておき、その対策を行っておきましょう!
- ファイルを開いている時にアプリが異常終了してしまった
- ネットで通信を行なっている途中でネットが切断されてしまった
- 何らかの通信で通信相手からの反応が返ってこない
- 大容量のデータ、ファイルを扱うので、何らかの不具合が発生しないか?
- 想定外のデータが入力されてきた
- ハードウェア障害などでファイルの読み込み、書き込みができなくなってしまったなど
10.アプリを公開する
テスト、デバッグが終わったらアプリを公開しましょう!
これは公開するプラットフォームのマニュアルを確認しながら作業すればできるはずです!
できればアプリは公開まで行いましょう。公開すればユーザーからの貴重なフィードバックがあり、とても参考になります!
まとめ
まとめると、とにかくアプリ開発を経験することが、プログラミング習得の近道です!
どんどんアプリ開発を行いましょう!
今回の解説でちょっと曖昧な部分があると思いますので、次回は実際に自分はどうやってアプリ開発をしたかを解説したいと思います。
↓費用はかかりますが、プログラミング教室を利用すれば、効率的にアプリ開発ができるようになります。