プログラミングを学習する場合、独学で学ぶ方も多いと思います。
しかし、プログラミングを独学で学んだ場合、10人中8人は挫折すると言われています。
そこで、この記事では
独学でプログラミング学習を行うための方法などについて紹介します。
本の選び方とおすすめの本
プログラミング学習する際に、最初に参考書を購入する方も多いのではないでしょうか。
しかし、「全く何も知らない初心者」と「基礎を知っている初心者」など、同じ初心者でも知識に差があるため参考書を選ぶ場合には口コミや可能であれば中身を少し見てみることをおすすめします。
本の選び方については、人によって基準が様々ななので一概にはいえませんが
- 本を通して何かを作れる
- 発行年・版数が新しいもの
上記2つを意識することをおすすめます。
本を通して何か作れる
参考書を購入する場合、何かを作りながら解説をしてくれる本が理解がより深まります。
参考書によっては、具体的なコードの書き方などをサンプルコード付きで詳しく解説するだけ参考書もあります。もちろん中級者や上級者にとってはスキルとしてアウトプットすることができるでしょう。
しかし、初心者の場合は、プログラミングの書き方を知っただけでは、次のステップに進むことが難しいです。
特に、オブジェクト指向は処理ごとにファイルを分ける場合ので、短いサンプルコードだと「ファイルを分ける意味があるのか」という新たな疑問やオブジェクト指向の恩賞を理解しにくいというデメリットがあります。
何かを作りながら学べる参考書の場合、実際にECサイトなどを作りながら解説してくれるので、コードが長くなりオブジェクト指向のメリットなども感じながら学ぶことができます。
その上、プログラミングの書き方以外にもサーバー・データーベースなどの周辺知識なども解説してあります。
そのため、読み終わった頃には簡単な成果物なら1人で開発することができるはずです。
発行年・版数が新しいものを選ぶ
プログラミングは、常にバージョンアップをしています。
そのため、古い参考書を購入して古いバージョンを学んでしまうと、基本的なプログラミングの書き方や基礎は学ぶことができますが、新しい概念等を覚えることができないので、あまり意味がありません。
ですので、参考書を購入する場合は発行年数と版数を最初に確認をして、次に購入を検討している参考書が紹介しているプログラミング言語のバージョンを確認してみて下さい。
絶対ではありませんが、1年~2年ほど前に発行されたものであれば、最新バージョンのプログラミング言語を解説している本であることが多いです。
おすすめしたい参考書
一定のプログラミング言語に偏ってしまいますが、筆者がおすすめしたい参考書を紹介します。
スッキリわかるシリーズ
すっきるわかるシリーズは「Java言語」、「C言語」を解説している参考書になります。
Java言語は、RPGゲームを題材に解説を行っているので、1つ1つの概念を理解しやすい参考書です。C言語では初心者にとって最初の大きな壁である「ポインタ」をわかりやすく解説しており、実際にパズルゲームを作りながら学ぶことができます。
決して堅苦しくなく親しみやすい参考書です。スッキリシリーズは以下の種類があります。
気づけばプロ並みPHP 改訂版
「気づけばプロ並みPHP」は本題の通りPHPを解説してある参考書です。
0からショッピングカートシステムを作成しながらPHPを学んでいきます。ショッピングカート機能はかなり複雑なシステムです。
しかし、初心者でも可能な限り噛み砕いて解説してくれていて、最初は小さなシステム開発から行い少しずつ本格的なシステムを開発していきます。
文章もとても易しい文章で書いてあり、本書を読み終わるころにはPHPプログラマーとして初級者の域は脱しています。
しかし、プログラミング言語に挑戦したことがないという方は、本書からではなく同筆者が執筆している「いきなりはじめるPHP」を読み、本書を読むことのが良いです。
- プログラミング初学者の場合は「いきなりはじめるPHP」
- PHPの書き方はわかる方は「気づけばプロ並みPHP」
プログラミング学習におすすめのサイト
完全無料ではありませんが、無料で一部学習を利用できる学習サイトなどがあるので、「プログラミングに興味がある」、「参考書を購入するか悩んでいる」という方は、プログラミング学習サイトを利用した後に、参考書で勉強をするのもおすすめの方法です。
この章では、プログラミング学習におすすめの学習サイトを紹介します。
ドットインストール
1つの動画が約3分程度で終わるので、通勤途中や休憩時間にでも手軽に学習することができます。
また、1つの動画が短いためとてもスピーディに解説が行われるので、ドットインストールだけでプログラミングの知識を付けることは難しいです。
「プログラミングとはこういう感じなんだ」、「○○言語はこういう概念があるんだ」という雰囲気を掴むのには、おすすめの動画学習サイトです。
無料で視聴できる範囲が限られているので、全ての動画を見たい場合は月額980円のプレミアム登録を行う必要があります。
Paizaラーニング
Paizaラーニングでは、プログラミング学習動画だけではなく、学習の理解度を高めるために問題が用意されています。
また、Paizaラーニングで基礎学習を終えた後にスキルアップ問題があるので、さらに実力を高めることができます。スキルアップ問題ではユーザーをS~Eランクまでの6段階でランク分けされているので、自分の実力をランクで把握することが可能です。
その上、高ランクになると企業からスカウトが届くので、上手くいくと転職・就職のチャンスを得られる可能性もあります。
料金は1ヶ月単位だと980円必要になりますが、料金を半年分・1年分とまとめて払うことができ、1年分だと7200円(月600円)で利用することがきます。
知識0でも学習をしやすいように、プロのエンジニアに質問ができる環境もあるので挫折しにくい環境が整っています。
学習動画とスキルアップ問題以外にも、プログラミングコードを書いて敵を倒すRPGゲームなどもあるので楽しみながらプログラミングを身に付けることができます。
Schoo
Schooは、ニコニコ生放送のシステムとほぼ同じです。生放送で授業を行い、わからない部分はその場でチャットで質問することができます。
生放送で教えてくれる講師は「現役のエンジニアやプログラマー」、「学校で講師を行っている方」などが授業を行ってくれるので、実践的な内容を詳しく学べることが可能です。
しかし、1つの授業が約1時間~1時間半程度と長時間で構成されていることが多いので、時間を用意しておく必要があります。
生放送以外の過去授業を視聴したい場合は、プレミアム会員になる必要があり月額1080円の費用が発生します。
Progate
Progeteは、かわいい猫がプログラミングをイラストとテキストで噛み砕いて解説してくれます。また、各章ごとに練習問題が用意されており、実際に手を動かして学ぶことができます。
練習問題も後半になると、これまで学んだ知識を覚えておかないとクリアーすることが難しく、プログラミングの深い理解度が求められる問題になっています。
しかし、どの練習問題でも「ヒント」があるので、ヒントを頼りに問題を解くことができるため、気負わずに学習することが可能です。
無料会員登録では、一部の学習コンテンツしか利用できませんが、月額980円の有料会員登録を行うとProgeteで提供されている様々な学習コースが受け放題になります。
無料で通えるプログラミングスクール
プログラミングスクールの受講料が高額で、経済的な理由により受講を諦めている方も多いのではないでしょうか。
プログラミングスクールは比較的やすいといっても10万円以上は必要になります。ほんとんどは分割支払に対応していますが、分割でも月に1万~円ほど支払が増えると経済的負担は増えます。
しかし、一定の条件を満たす必要はありますが、無料で学べるプログラミングスクールがあります。また、無料で学べるプログラミングスクールは、転職支援もついているためプログラミングの知識と仕事両方を手に入れられる可能性もあります。
この章では無料プログラミングスクールをいくつか紹介します。
0円スクール
プログラミング未経験の方が、最短3ヶ月でプログラマーへ転職することができるスクールです。
学べるプログラミング言語はJava言語のみとなっていますが、プログラミング言語以外にもデーターベースやHTML/CSSなど周辺知識もしっかりと身に付けることができます。
条件は以下の通りです。
- 札幌・仙台・東京・名古屋・神戸・福岡いずれかの教室へ通える方
- 18歳~35歳以下
- 週4日以上通える方(難しい場合は要相談)
- 1年以内にIT業界に就職・転職意思がある方
GEEK JOB
東京の教室に通える方限定になってしまいますが、学べるプログラミング言語は「Java/PHP/Ruby」のうち1つを選ぶことができます。
GEEK JOBは紹介できる求人数が多く、常時500社以上の優良企業の中から受講生に合った求人を紹介してくれます。
受講条件は以下の通りです。
- 東京の教室に通える方
- 平日10時~18時もしくは18時~21時に教室に来校し学習ができる方
- 20代の方限定
ProEngineer
ProEngineerでは、4ヶ月間の集中カリキュラムで、実践的なスキルを身に付けていきます。また、希望者は有給インターン制度を利用して実際の開発現場に身をおくことも可能です。
学べる言語はPHPまたはJava言語のどちらかを選ぶことができます。また、テストツールや仕様書や設計書の読み方や書き方などプログラマーとして必要な知識をしっかりと学べます。
受講条件は以下の通りです。
- 東京の教室に通える方
- パソコンでインターネット検索など最低限の操作が出来る方
Five Link School
FiveLinkSchoolは、他の無料プログラミングスクールと比較すると受講期間が長く設けてあります。
また、他のスクールより厳しい印象があり、途中退学の場合は教材費を請求されます。
他にも、無断欠勤や週に1回程度来校して1~2時間で帰るなど、著しくやる気を感じられない場合は、退学もしくは教材費を請求されることがあるので、本気でプログラマーを目指している方専用のスクールです。
学べる言語はPHPのみとなっていますが、実際にWebアプリケーションを開発しながら実践的な技術を身に付けていきます。
- 福岡の教室に通える方
- 週に3回、15以上来校して学習できる方
- 8ヶ月間真剣に頑張れる方
- 8ヶ月間はスクールの学習を優先できる方
- 転職の意思が強い方
プログラミングを独学で学ぶための心得
プログラミングは、全くの未経験から独学で取得することは可能です。
プログラミンを独学で学ぶ場合
- 莫大な時間が必要になる
- モチベーションの維持
- 問題を解決する能力 など
上記のようなことを心得て学習する必要があります。
プログラミングを独学で学ぶ場合に、まず大きな問題となるのが教えてくれる先生(経験者)がいないということです。
そのため、わからない部分は自分で調べて解決する必要があるので、問題が発生する度に解決までに時間が掛かってしまいます。その上、自己解決能力を嫌でも身につけないといけません。
また「ここが悪い」、「ここが良い」という専門的な評価を行ってくれる人もいないので、モチベーションの維持がかなり難しいです。
プログラミングを独学で学ぶメリット・デメリット
プログラミングを独学で学ぶ場合の一番大きなメリットは「学習費用を抑えられる」という事ではないでしょうか。もちろん良いことばかりではなく、独学ならではのメリット・デメリットがあります。
プログラミングを独学で学ぶ場合のメリット・デメリットをまとめてみました。
メリット
学習費用が抑えられる
独学で学ぶ場合の1番のメリットだといえます。プログラミングスクールに通う場合は安くても10万円~の費用が必要です。
パソコンを所持していることを前提で言うと、独学の場合は主に必要になる費用は書籍代だけなので、高くても2万円前後で学習することができます。
また、インターネットで必要な情報を調べることができるので、書籍とインターネットの情報を合わせて学習することで費用をかなり抑えることが可能です。
自分の好きなペースで学習できる
プログラミングスクールだと、オンライン完結型であってもレッスン日やサポート期間などが決まっているので、自由に自分のペースで学ぶことはできません。
しかし、独学だと「明日は朝早いから今日は30分だけ勉強しよう」、「今日は気分が乗らないから明日勉強しよう」など自分のペースで学習を行うことができます。
また、他のプログラミング言語経験者が独学で学ぶ場合は、要領を掴んでいるので、自分が知りたいことだけに絞って効率よく学習を行うことも可能です。
自己解決能力が身に付く
独学の場合は、教えてくれる先生がいないため「疑問点」や「エラーの解決」などを自分で調べて解決する必要があります。
そのため、問題点を明確にしてインターネットや書籍で解決する自己解決能力がないと学習を進めることができません。
誤解がないようお伝えすると、「自己解決能力に自信がない方」でもプログラミング学習を行うと嫌でも身に付くスキルになります。
プログラミングスクールと違って教えてくれる人がいないので、独学の方が必然的に自己解決能力が身に付く速度は速いです。
デメリット
エラーに時間を費やしてしまう
独学で辛いのは、疑問点やエラーを解決できないで、コーディング時間よりエラー解決のために調べる時間が多くなることです。
筆者も、プログラミングは独学から始めましたが、1つのエラーを解決するために3日も費やしたことがあります。
時間を費やしてしまう理由は
- 調べても専門用語が多すぎて理解できない
- そもそも、どのようなキーワードで調べれば良いのかわからない
- 古い情報と新しい情報が混同しているため判断が難しい など
理由を挙げるとキリがありませんが上記のような理由があるため、これから知識を身に付ける初心者の方が、エラーや疑問点を解決する場合は、独学では時間が掛かりすぎる場合が多いです。
挫折率が高い
上記の理由とも関係していますが、プログラミングの独学は10人中8人は挫折すると言われています。
これは、「調べてもわからないから」、「知りたい情報を探せないから」という「分からない」を解決できないため、志半ばで挫折してしまう人が多いです。
参考書で学習する程度のものだったら、解決策もすぐに出てくることもありますが、最新のプログラミング言語やオリジナルサービス開発時に発生した特殊なケースだと、情報が少なく解決できずに挫折率も高まります。
プログラミング学習はなぜ挫折する人が多い?挫折率が高い理由について別の記事で紹介していますので、気になる方は読んでみてください。
どんなものが作れるのかわからない
参考書や無料サイトでプログラミングの基礎を学び終えた後に、次に挑戦したくなるのが「成果物の作成」ですよね。
しかし、参考書や無料サイトではプログラミングの基本構文や考え方を学ぶことがメインです。そのため、今持っている参考書を理解することができたら「どんなものが作れるのか」というのが明確にすることができません。
「参考書を読んで基礎を固めた程度では何も作れない」というイメージを自分の中で作ってしまい、勉強の節目が曖昧になりモチベーションの維持が難しくなります。
独学で学ぶ際にぶつかる壁の乗り越え方
繰り返しになってしまいますが、独学で学ぶ場合は教えてくれる先生が存在しません。そのため、自分で問題を解決していく必要があります。
プログラミング初心者が、最初にぶつかる壁の乗り越え方を紹介します。
概念を理解することができない場合
何事もしっかりと「基礎を理解してから次に進みたい」という方もいると思います。しかし、プログラミングに関しては「良く分からないけど、○○すれば○○の動作をする」と割り切って、次に進むのも大切です。
仕組みまでしっかりと理解して次に進むことが理想ではあります。しかし、プログラミングにはこれまでの生活では聞いたことがないような言葉や概念がたくさんあるので、1度で仕組みまで理解することは困難です。
そのため、今は理解できなくても割り切って学習を進めて、別の概念や仕組みを知ることで曖昧だった部分を理解できることが多々あります。
ですので、概念が理解できない時は「○○すれば○○の動作をする」とプログラミングの振る舞いを覚えることから始めてみて下さい。
コンソールに文字が表示されるだけで面白くない場合
PHPやRubyでは、実際にブラウザー上に文字を表示させたり、動きを与えたりしながら学習を行うのでモチベーションを維持しやすいかもしれません。
しかし、プログラミング言語によってはプログラミング結果を表示させる部分(コンソール)に処理結果の文字列だけが表示されるだけなので、「こんなこと続けて本当にゲームは作れるの?」といったモチベーション低下を招く原因にもなります。
モチベーションが低下した場合、1度参考書での学習は辞めてこれまで学習した内容で、一部分だけ開発を行ってみましょう。
例えば、「スマホアプリの起動画面だけ作成してみる」、「Webアプリケーションで検索機能の部分だけ作ってみる」など実際に開発してみることで、自分が苦手としている部分や理解が浅い部分を明確にすることができるので、勉強意欲も戻ってくることが多いです。
コードが頭に浮かばずに書けない場合
参考書では、サンプルコードが用意されているので、まっさらな状態からコードを書くことが少ないです。
そのため、実際に何か作ろうとした時にコードが頭に浮かばずに、何も書けないといった状態になることがあります。
例えばインターネット上で「php ログイン機能 実装」といった具合に検索すると、PHP言語でWebサイトのログイン機能をサンプルコード付きで紹介しているブログサイトがたくさん表示されます。
まずは、サンプルコードを真似して実装してみましょう。この時に注意する点はコピペをせずに全てのコードを自力で入力することが大切です。
人が書いたコードをただ真似して入力するだけでも「この関数(メソッド)でログインIDとパスワードを受け取って、ここでデーターベースの情報を参照する」といった具合に一連の流れを実際に体験することができます。
まずは、一連の流れや感覚を掴むためにも、他の人が書いたコードを真似しながら入力するようにしてみましょう。
まとめ:独学は忍耐力と時間が必要になる
いかがでしたでしょうか。
今回の要点をまとめると
- 参考書を購入する場合、発行年・版数が新しいものを選ぶ
- 独学はモチベーションの維持がかなり難しい
- 参考書を購入する前に学習サイトを利用してみる
- 独学ではなくプログラミングスクールに通う方法も検討してみる
上記4つです。
独学は費用が抑えられる分、学習時間がかなり必要になります。もちろん独学でも諦めない心と忍耐力がある方は、知識とスキルを身につけることができます。
肝心なのは、学習している「今を楽しんでいるか」ということです。勉強を楽しむというのは少し変な言い方ですが「やり遂げた時」、「自分なりに理解できた瞬間」に、達成感やもっと頑張ろうという気持ちが出てくるのであれば、独学でも十分スキルを磨いていけます。
しかし、達成感やもっと頑張ろうという気持ちが出てこない場合は、プログラミングスクールを検討するのも1つの方法です。
学習方法にも、合う合わないがあります。自分に合った最適な学習方法を見つけ出して夢を掴んでください。