プログラミング学習者の9割は挫折すると言われていますが、学習の順番を変えるだけで成果を上げることができます。
ずばり!!筆者が考える「挫折しない学習の順番」は、この6つのステップです。
- 開発環境の要らないものでプログラミングの基礎を学ぶ
- HTML/CSSを学ぶ
- ローカルアプリケーションを作る
- Webの基礎、HTTPを学ぶ
- データベースを学ぶ
- Webアプリケーションの開発
この6段階をそれぞれしっかり身につけていけば、きっとプログラミングが楽しく学べると信じています。
プログラミング言語は、どうして90%の人が挫折すると言われているのか
プログラミングにはIDE(統合開発環境)や様々な開発環境が必要となります。
実は、開発環境の構築は、私たちプロでも手こずることがあります。
そのため、この開発環境の構築で挫折する人がとても多いのです。
開発環境が作れない
開発環境は使っているOSやバージョン、インストールされているものなど様々な理由からエラーが発生してしまいます。
つまり、使っているパソコン1台1台の状況によって何が必要なのかを見極める力が必要になります。
また、出力されるエラーもほとんどが英語の場合が多いのが現状です。
さぁ、プログラミングを学習しよう!と意気込んで開発環境を構築しているときに
MSIが壊れています、java_sp.dllが壊れています、1305、2755、1606、25025、1618
Oracle Java公式サイト ヘルプセンターより引用
こんなエラーが出たらどう対応していいかわからなくなってしまったりしますよね。
そのため、プログラミングを学ぶには順番が必要だと筆者は考えています。
開発しているときにエラーが発生!
プログラムを実装して、さぁ実行!しかし、何かエラーがでて動かない・・・
java.lang.NullPointerException at MyClass.mash(MyClass.java:9) at MyClass.crunch(MyClass.java:6) at MyClass.main(MyClass.java:3)
Oracle Java公式サイト 公式ドキュメントより引用
こんなエラーが出てきたけどどうしたらいいのかわからない。
原因はわかってもどう直したらよいのかがわからない。
プログラムのエラーにはたくさんの種類があります。
プログラムが悪いのか、実行環境が悪いのか・・・
トラブルが起きた時には原因の切り分けが必要になります。
開発環境の要らないものでプログラミングの基礎を学ぶ
私がおススメする1番最初に学ぶものはプログラミングの基礎である制御です。
アルゴリズムとも呼ばれる、プログラミングのお作法を身につけましょう。
(アルゴリズムは厳密には制御とは異なるものです)
一番簡単にプログラミングの基礎を学ぶためには、ブロックプログラミングで身につける方法がおススメです。(ビジュアルプログラミングとも呼ばれています)
有名なアプリだとScrach(スクラッチ)やMineCraft(マインクラフト)、プログラミングゼミなどがあります。
なぜブロックプログラミング?
まず、環境構築で躓きません。
そして、制御の方法や、プログラミングの基礎であるお作法をしっかりと身につけることができます。
基礎をしっかりと身につけることで、今後、プログラミング言語での開発のときにエラーが起きた時も、切り分けが容易になります。
では、ブロックプログラミングのアプリはどれを選ぶべきでしょうか?
それぞれのメリットデメリットを解説しましょう。
Scrachで学ぶ
公式サイト https://scratch.mit.edu/
メリット
- 教材がたくさんある
- プログラム外との接続ができる
- 自由度が高い
デメリット
- 教材の購入が必要
- 自由度が高く、何から手を付ければよいか迷う
MineCraftで学ぶ
MinCraft公式サイト https://www.minecraft.net/ja-jp
メリット
- ゲームをしている感覚でプログラミングを学ぶことができる
- 飽きない
デメリット
- 教材も増えては来ているが、順序だてて学ぶ手段が少ない
- ゲームが苦手、マイクラを知らないととっつきにくい
プログラミングゼミで学ぶ
プログラミングゼミ公式サイト https://programmingzemi.com/
メリット
- アプリの中に教材がある
- ゲーム感覚でクリアしていくと基礎を学べる
- 自分の作品を作りながら、復習ができる
デメリット
- 教材の数が少ない
- どうしてそうなるのか?の説明が少ない
- 動作が不安定になることがある
ブロックプログラミングの一番のおススメ
筆者のおススメはプログラミングゼミ(プロゼミ)です。
何と言っても教材や練習問題がアプリの中に包括されているのは魅力的です。
プロゼミでざっと制御を学んでからスクラッチやマイクラの教材を購入しても良いかもしれません。
練習問題をたくさん用意している筆者のオンライン講座も公開しています。
初心者でも挫折しない、ブロックプログラミングで学ぶプログラミングの仕組み
HTML/CSSを学ぶ
ブロックの基礎ができたらいよいよプログラミング言語に!と思った方!!
ちょっと待ってください―。
プログラミング言語をいきなり触ってもいいのですが、少しワンクッション挟みましょう。
HTMLはマークアップ言語といって文章を扱う言語になりますが、コード(タグ)を作るとウェブ上に様々な形を表せるという点では、プログラミングに似ています。
HTMLとCSSの基礎を学びながらなんとなくコーディングに慣れていきましょう。
ローカルアプリケーションを作る
次は、ローカルで動作するアプリを作ります。
ブロックプログラミングで、プログラミングの基礎を学んだら、いよいよプログラミング言語を使ってアプリケーションを作りましょう。
プログラミング言語はC#を使います。
なぜ、C#なのでしょうか?
C#は開発環境の構築が簡単なんです。
VisualStudioCodeを使用する方法もありますが、Visual Studio Community をインストールしましょう。
Mac版もあります。
このIDE(統合開発環境)はエラーも少なく、すべてがこの1つで動かせるようになります。
WindowsFormアプリを作ろう
Windowsの方は、さっそくWindowsFormアプリを作ってみましょう。
このWindowsFormアプリは、1台のパソコン内だけで動くアプリなので、他の環境に振り回されません。
そのため、プログラミング言語の習得にはベストです。
このアプリで、しっかりプログラミングの基本を身につけます。
残念なことにIDEのMac版はありますが、ローカルアプリを作成するにはXamarinを利用しています。
かなり複雑になってしまいます。
MacでC#のアプリを作る
Macの方は、コンソールアプリを作ると良いでしょう。
動きが無く少し寂しい感じはしますが、WindowsFormと同様にプログラミングの基本は身につきます。
I/O(インプットとアウトプット)については学べる部分が少ないですが、その他は同じですので、ここではプログラミングの基本を身につけることを心がけてください。
Webの基礎、HTTPを学ぶ
プログラミング言語でのローカルアプリを作成したら、いよいよWebアプリケーションだ!と意気込むのも理解できますが、ちょっと待ってください。
まずは、Webとは、HTTPとは何かを学びましょう。
ここをしっかり学んでおかないと、この後のWebアプリケーションでつまずく原因になります。
HTTPとは?
HTTPとは、簡単に言うとWebの基礎です。
しっかり学ぼうとするとかなりの知識を要します。
しかし、アプリケーションの開発をするのには、そこまでの知識は必要ありません。
必要最低限の知識はこれだけです。
- Webの仕組み
- リクエストとレスポンス
- メソッド
- ステータス
データベースを学ぶ
さぁもう少し!ここではデータのやり取りをするためにデータベース学びます。
アプリケーションではありませんが、データベースはアプリケーションと切っても切れない関係です。
現在では、それぞれの言語のフレームワークにクエリマッパーというものが付属していて、データベースクエリを知らなくても、データベースのデータの操作はできてしまいます。
ただ、何かトラブルがあった時や、どこにエラーがあるのか?などの切り分けをするのであれば、クエリ(SQL文)の知識は必須です。
データベースの構造や処理の内容まで学習できればベストですが、最初はこの3つだけ覚えましょう
- DML(SELECT、UPDATE、INSERT、DELETE)
- DDL(CREATE、ALTER)
- トランザクション
特にSELECT文はJOINやサブクエリなど少し覚えることが多いですが、簡単なSQL文は読み書きできるようになりましょう。
Webアプリケーションの開発
さぁ、お待たせしました。いよいよWebアプリケーションに取り掛かりましょう。
せっかくC#をインストールしたので、C#を使ってASP.NETのWebアプリケーションが良いですね。
他の言語でも良いのですが、開発環境の構築に時間を取られがちです。
まずは1つの言語でWebアプリを作ってしまいましょう。
C#でASP.NETのWebアプリケーション作る最大のメリットとしては、何と言っても開発環境でつまずきません。
デメリットとしては、ASP.NETのフロントはMicrosoftの独特なコードが多いことでしょうか。
しかしこれは、簡単なアプリケーションであれば特に問題になりませんので、最初の一歩としては最適です。
最後に
プログラミング学習の6つのステップ、いかがだったでしょうか?
いきなりハードルを上げて全く知識のないことをしようとすると、かなりの時間を費やしますし、なにより「動かない」、「わからない」のストレスがとても負担になります。
それよりは、ひとつひとつ小さなステップをいくつか上りながら、知識を積み上げていくとしっかりと技術が身についていることを実感できると思います。
プログラミング学習はやり方さえ間違えなければ誰でも習得可能です。
でもどうしても躓きそうになったら・・・一緒に並走してくれるスクールはやはり強力です。
たいていどのスクールでも相談は無料なので、一度相談してみることをおすすめします。
転職保証付きプログラミングスクール DMM WEBCAMP COMMIT
こちらは、転職保証がついたスクールです。国から支給される給付金ももらえるようですので、一度無料で相談してみてはいかがでしょうか。
こちらのスクールに関しては、この記事で分析しているので参考にしてみてください。
無料は良いけど、相談したらしつこい勧誘とかいやなんだよなぁ。。。。
DMMWebCampに関してはしつこい勧誘はないようです。
初めの一歩はとても緊張しますが、その一歩がもしかしたらあなたの人生を変えてくれるかもしれません。
ぜひ、小さな一歩を踏み出して、エンジニアライフを楽しみましょう。
他にもこんな記事を書いています。