プログラミングを独学で身につけるときに大切な6つのポイント
公開日:
:
最終更新日:2017/08/03
WEB全般, 講義 プログラミングTips, 勉強法, 独学者向け

さきほど「プログラミング」で検索キーワードをかけたら入力補完で「プログラミング 入門」や「プログラミング 初心者」と並んで「プログラミング 独学」がでてました。
やっぱりプログラミングを独学でやりたい!って人は多いんですね~
このブログで何回も言っていますが、「プログラミングの独学は正直かなり難しいです。」
ただ、プログラミングをやりたいけれども周りにプログラマがいない!スクールにも通えない!という人もいると思いますんで、私なりの勉強のコツなんかをかいておきます。
私も完全ではないですが、独学に近い状態でしたので・・・
Contents
言語はPHP、Rubyの2択
いきなり言語を決めてしまうのですが、初心者はPHPかRubyの2択にしましょう。
理由としては以下です。
- 開発環境の構築が比較的簡単
- 言語自体も比較的簡単
- 書籍でもネットでも情報が豊富
- 仕事や求人も多い
プログラミングって初心者にはすげーむずいんですよ。
まともに動かないし、本読んでも動画サイトみてもなにいっているかわからない。
こういう状態が続きます。
だから大切なのは少しでも易しい環境を選ぶこと。
そういった点でPHPかRubyかなあと思います。
言語に関してはJavaScriptが開発環境を作らなくてもいいので楽ですが、JavaScriptだけでできることが少ないので最初の選択肢としては外れるかなあ・・・と思いますね。しっかりやろうとすると意外に難しいですし。
CやJavaはあなたが独学者の場合やめましょう。独学の場合99%挫折します。
これらをすすめている人がいたら独学者に対して指導経験がないと判断していいかと思います。
最初は動画、基本書を写す
とにかくたくさん見ましょう、そして写しましょう。
大事なことは最初から完ぺきに理解しようとしないことです。
こう書いたらこう動いた。よくわかんないけどここをこう変えると画面にこう表示される、ということが分かればOKです。
イメージでいうと野球でいう1000本ノックです!たくさん受けているうちに体で覚えるみたいなかんじでしょうか。
間違っても動きを完ぺきに理解しようなんて思ってはいけません。
120%プログラミングができなくなる&嫌いになることを保証します(笑)
中学校で英語を学習するときにThis is a penみたいな簡単な表現をいっぱい見て、とりあえず英語に慣れていったと思います。
中1のスタートでいきなり「日本語と英語の言語学の構造体系の違い」や「言語を通しての対象の認識」についておそわったりはしないでしょう。
こんなことをやったら中学生は確実に全滅します。
最初はとにかく慣れ、なのです。
動画サイトでおすすめはやはりドットインストールでしょう。
1本1本が短いですし、わかりやすくできているのでおすすめです。ここでソースを写しながら覚えていってください。
ちなみに書籍だと下記書籍は大変わかりやすくおすすめです。
成果物を作る
ドットインストールや紹介したような書籍は大変読みやすくておすすめです。
が、これを丸写ししてもできるようにはなりません。
えーとこれはドットインストールがダメなんではなくて、プログラミングは基本的に何らかの成果物を作らないと覚えられない、と思ったほうがいいです。
オブジェクト指向を知らない人間に一生懸命、動物の例を使って説明してもあんま効果はないですね(汗)
その例で分かったとしてもプログラムを書けるようにはなりません。実践で覚えていく必要があります。
成果物といってもそんな大げさなものではなく、
ドットインストールや書籍のサンプルで、値を少しを変えたぐらいのもの
を作るようにしましょう。
コツとしては少しずつ値を変えたり、自己流にカスタマイズしていくことです。
PHPでいうとおすすめはやはりお問い合わせフォーム、掲示板でしょうか。
こんなのしか作れないの?といって馬鹿にする方は多いのですが、初心者にはお問い合わせフォームや掲示板は壁が高く、PHP1か月でしっかりしたものが作れる子は稀です。
まずは簡単なものを、という気持ちが大切です。
とにかくコピペ
基本的に最初はわからないことだらけなんで、1つ1つの処理を考えるたびに検索することになります。
その時に大事なのはコピペの精神です。
例えばデータベースに登録した後、メール送信をしたいんだけどどうすればいいんだろう・・となったときは、「PHP メール送信」とかで検索して、上位のものを適当にコピペしていきましょう。
動けばOK!動かなかったら次!この精神が大事です。
なんかギャンブルみたいな感じですし、真面目なエンジニアの方からは怒られると思いますが、最初のうちはとにかく思い通りに動かす経験を積むことが大事なんです。
しかも独学でやるならだれに気兼ねすることもないのでコピペで全然かまいません。
とにかく動かす経験を積みましょう。
×わかる→できる 〇できる→わかる
ここまではとにかくちゃんと理解しなくてもいいので、とにかく動かすことが大事!だと言ってきました。
ただ、ある程度コピペをしてくると、
- なんでこんな処理をいちいち書かないといけないんだろう
- こないだはこう書いて動いたのに、なぜ今回のものは動かないんだろう
- この処理が不便なんだけど、もっと簡単に書く方法はないかな
- Aっていう機能とBって機能は似てるけど、どう使い分けるんだろう
- こういう機能が欲しいんだけど、調べたらあったりしないかな
などさまざまな疑問がでてきます。
この段階で初めて深い理解が必要になってきます。
こういったレベルになったら評判の高い原点本といわれる本やオブジェクト指向とは何ぞや?みたいな根源的な説明が書いてあるページにいってその内容を熟読してみましょう。
以前とは段違いに理解できるようになっているはずです。
じっくり理解してわかってからできるようになるのではなく、できる経験をたくさん積んでようやくわかるようになるのです。
例えばPHPである程度、経験を積んだ方は下記書籍をじっくり読んだほうがいいでしょう。
PHPプログラマの間では聖典といわれています。
ここでさらに、理解が深まったらもう少し難しい成果物を作り、またコピペし、ある程度経験が増えた段階でしっかり理解し・・・といった感じで勉強を繰り返していきましょう。
エラーメッセージに負けるな
ここでちょっとエラーメッセージ対策について書いておこうと思います。
プログラミングを始めるととにかく最初は普通に動きません。
1行書いてはとまり、また1行書いては止まり・・・というようにエラーメッセージの嵐に遭遇します。
ここでほとんどの方は折れてしまいます。
無限地獄のように感じられて、精神をやられてしまうんですね(爆)
コツとしては次のようなことに気を付けましょう。
英単語をつなげて雰囲気だけでもつかもうとすること
ただ一応エラーメッセージってここが間違ってますよってことを教えてくれるので普通に訳せば推測ぐらいはできるようにはなります。
これも当然慣れはいりますが・・・
エラーメッセージでググること
エラーメッセージでそのまま検索をしましょう。
PHPとかだったらメジャーなエラーは大体ネットで検索できます。
現役のエンジニアもほぼ毎日業務でこうやって検索して、対処してます。
やってるうちにできるようになると悟ること
今エラーメッセージで心が折れている人には↑この言葉を贈りたいです(笑)
さっきの野球のたとえじゃないんですけど要は慣れの要素が強いんです。
最初はエラーメッセージ1つつぶすのに数十分かかっていたのが、慣れれば1分以内に解決できるようになり、さらに慣れてくるとエラーメッセージがないと物足りなくなります(笑)
まとめ
まとめると、
- できるだけやさしい言語で始める
- 1番最初は動画や基本書をみてコピペする
- 少しわかった時点で成果物を作る
- 学習の初期段階では理解よりもコピペでもいいので動かす
- ある程度動かしてきて疑問をもてるレベルになったらしっかり理解する
- 番外:エラーメッセージ対策
というのが基本的な独学の流れです。
新卒で研修を受けたりした場合は違うのかもしれないですが、独学(あるいはそれに近い状態)で学習を進める場合はこの学習法が最適だと思います。
私も人材紹介会社で生徒に教えていたときにできる子、できない子でデータを細かくとりましたが、結果としては
- できる・できないは経験の差、学習量がほとんど
- 高学歴者の人間でもすぐにはできるようにならない
- 逆に文系、非大卒でもやり続けている子はできるようになる
ってことが顕著でした。これはなぐさめではないですよ~
学歴的な頭の良さが要求されるケースはゼロではないと思いますが、思っていたほど多くはないですね。
こんな感じでしょうか。
関連記事
-
-
初心者でもできる!作れる!WEBサービスの開発 その3 運営体験記編
(前回までの続き) 初心者でもできる!作れる!WEBサービスの開発 その1 準備編 初心
-
-
就活生必見! Webエンジニアになるなら知っておきたい超基本業界用語
本日はWEB業界でよくつかわれる専門用語について私の知っている範囲で書いていこうと思います。
-
-
PHPで掲示板を作ろう! 掲示板の作成方法 まとめ
さて4回にわけて、掲示板のプログラムを学習してきました。 見た目は超シンプルで実際に動かしてみ
-
-
お問い合わせフォームを作ろう! その3(PHP)
それでは前回のコードを例に少しずつ内容について説明をしていきます。 値を取得するには まず一番最
-
-
開発を便利にする道具たち
PHPだけではありませんが、プログラミングには開発スピードをアップさせるための便利な道具があります。
-
-
Java/PHP/Perl/Ruby/Python 主要Web系言語徹底比較
本日はWeb系で使われているプログラミング言語の比較をしてみようと思います。 Web系で使われ
-
-
プログラミングを独学で身につけるための4ステップ(実践編)
前回の記事ではプログラミングを独学で身につけるための心構え的なお話をしました。 今回は、実際に
-
-
どんなプログラマが身につけておいても損はない重要なスキルとは?
のっけからストレートなタイトルですいません。 ちょっとあおり気味なタイトルですが、今日紹介する
-
-
データを扱ってみよう その2(配列)
こんばんは松本です。 少しずつ暖かくなってきましたね。暖かいのはいいんですが、オフィスでブログ
-
-
理論と実践のバランス
ネタ不足&開発のほうが忙しく、一か月以上書いておりませんでした。 今回は漠然とスキルアップする