どうも! 佐野です。
日々、プログラミングを必死に学習されている方ばかりで刺激を受けております。
僕も新しいプログラミング言語に挑戦しようと思いたって、日々学習中です!
でも、効率よく学習するコツを知っておかないと
「毎日勉強しているはずなのに、全く成長できない!!」
「勉強と関係ない余計な部分に時間取られすぎ!」
といった状況に陥ってしまいます。
プログラミング学習には「罠」があって、これに気付かないと何倍も学習時間が変わってきてしまうんです。
そこでこの記事では僕の経験をもとに、「なぜプログラミングができないのか」「プログラミング学習に役立つ3つのコツ」をご紹介したいと思います。
学習できない理由を知ることで、
「いままでここで躓いてたなぁ..。」
「これは盲点だった!」
という気付きを得ると共にプログラミング学習がより効率的なものに変わりますよ。
よくいわれている学習のコツとは一味違い僕が実際に経験したなかで培ってきたものなので、参考にしていただけると嬉しいです。
もし直接、学習の躓くポイントを聞きたいというかたは、侍エンジニアの無料相談を活用してください。
オンラインからでも出来ますので、気軽にご利用ください。
この記事の目次
プログラミングができない人の3つの特徴
「プログラミング」に苦手意識がありませんか
最初は意識してなくても、学習で結果を得ることができないと「プログラミング」に対して苦手意識が芽生えてきますよね。
しかし、苦手意識を払拭しないことには学習は進みません。
まずはどこまで学習するか範囲を絞っていくことで基礎を理解していきましょう。
プログラミングを学習することでどんなメリットがあるか把握しておくと、モチベーションの維持にも繋がりますよ。
全て理解しようとしてませんか
プログラミングができないと思っている人の特徴として、全てを理解しようとしています。
しかし、プログラミングを学習するにあたり、初めから全てを理解しようとする必要は無いんです!
なぜなら、プログラミングの全てを覚えようとすると、莫大な情報量があるのでかなりの労力を使います。
また、プログラミングの技術はすぐに新しい技術が登場するため、
一度に全てを覚えようとする必要はありません。
全てを理解しようとすると、覚えることが多くて息詰まってしまいます……。
学習方法としては、参考書や学習サイトを使い繰り返し学習するのがおすすめです。
具体的にには、
2周目:実際にコードを書いてみて分からないところは調べて見る(理解度60%)
2周目が終わったら簡単なアプリ開発やサンプルコードの改変など、
アウトプットして実際に動くものを作りながらステップアップしていきましょう。
ちなみに、一流のエンジニアであっても、全てを把握しているわけではなく、
分からないことは調べながら業務を進めているので気負わず学習を進めていきましょう!
「検索」に時間を掛けすぎていませんか
プログラミング学習のほとんどは「エラー」の処理になると思います。
初心者の方だと、解決方法が分からないので都度検索していきますよね。
しかし、ただやみくもに検索していてはほしい結果が出てきません。
検索のコツを知って、効率的に学習しましょう
検索しても原因の特定ができない場合はQ&Aサイトなどに相談することをオススメします。
⇒作業効率10倍!?検索のコツを徹底紹介
⇒知りたいことが丸わかり!おすすめQ&Aサイト
効率を追い求めた学習の3大ポイント
1. 基礎を学び全体を把握する
これはプログラミング学習に限ったことではありませんが、学習はまずもっとも基礎となる「概念」や「仕組み」など一番外側にある全体のものから学習するといいです。
といわれても、具体的にどういうメリットがあるのかイメージがわきませんよね。
たとえば、みなさんはスマホをお使いだと思いますが、スマホを初めて買って使い始めたときはすごく苦労されたのではないでしょうか。
僕も最初Androidのスマホを買いましたが、全然使い方がわかりませんでした。
でも誰もがスマホに使い慣れた今となっては、新しい機種に買い換えても難なく使いこなせると思います。
それは「スマホの概念や仕組み」を理解しているからです。
「スマホとはこういったものだ」「スマホはこんな仕組みになっている」ということを理解しているので、たとえ「iPhoneユーザー」であっても「Andorid」をすぐに使いこなせますし、その逆もしかりです。
スマホの仕組みと似ている「タブレット」も使いこなすことだって簡単にできてしまうでしょう。
概念や仕組みがわかれば応用力が身につく
このように、まずその技術の中心や基礎となっている概念や仕組みを理解して全体を把握することは、後々の学習において理解度や進み具合がまるで変わってきます。
WEBアプリを作りたいのであれば
「WEBの仕組み」や「ネットワークの仕組み」
を知り、スマホアプリを作りたい人であれば
「スマホアプリの仕組みや概念」
を知ることが重要です。
教科書通りにやっていても、「一体何のことを言っているのか全然理解できない」「自分が今、何をやっているのかさっぱりわからない」といったご経験はないでしょうか?
一番基礎となっている部分を知ることで、自分が今、どこの何を学習しているのか迷子になりません。
概念や基礎となっている技術を知り全体を把握することで、自分が理解できていない部分や分からない点が明確になります。
すると、検索や質問も具体的にしやすいですし、その分問題の解決も早くなります。
よって、プログラミング学習がスムーズになり習得がはやくなるのです。
2. 本当に必要なこと(技術)を見定める
書籍で手にはいる技術は全て必要なわけではない
プログラミング言語の文法書や技術書などの書籍は、深く幅広い知識を習得できます。
ただ、それらで学習した知識すべてが実際に仕事で役にたつかというとそうでもないのです。
僕が仕事をはじめたころは、技術的な部分は書籍を読んだり検索したりして調べることができましたが
「問題の特定の仕方」
「論理的な思考」
などができずに苦労した覚えがあります。
本当に必要なのは技術より「考え方」
本当に必要なのは、技術より「考え方や思考法」が重要だとわかりました。
わからないことや理解できないことは、現役のエンジニアでもたくさんあります。
特に恥ずかしいことでもありません。
ただ、仕事を獲得する、またはエンジニアとして働いていくうえでは
「なぜわからないのか?」
「なぜ理解できないのか?」
という根本的な部分を考えることが一番重要でした。
このエンジニアとしての考え方や思考法が身につくと、自分で問題を解決できるようになり、自由にプログラミングをできるようにもなってきます。
3. ツールを使いこなす
プログラミング言語の文法やテクニックを覚えることを中心に行っている方が多いでしょう。
ただ、忘れがちなのは
「学習に使っているツールを使いこなす」
ことです。
テキストエディタや開発ツールを使いこなそう
たとえば、プログラミングの学習をしているなら「テキストエディタ」や「開発ツール」など何かツールを使われていることでしょう。
そのツールは使いこなせていますか?
ショートカットやプラグインなどを駆使して、最速で学習できる環境を整えることも重要です。
例をあげると、HTMLの学習をするために、HTMLの雛形を毎回1文字ずつ入力しているとそれだけで時間がかかってしまいます。
テキストエディタにはショートカットがたくさんあるので、HTMLの雛形を作るショートカットを使えば、3秒で作ることができてしまいます。
それによってすでに理解できている部分は省いて、新しいことを学習するのに時間を費やすことができるようになります。
ツールの便利機能を調べて使いこなすことも、学習効率を上げるためには重要な要素です。
タイピングの速さ
また、「タイピングの速さ」も重要です。
これは「パソコン」というツールを使いこなすことを指しています。
1日10分だけでもタイピングアプリで練習すれば、1ヶ月ほどで見違えるほど速くなります。
今後の学習でコードの入力が速くなり、学習スピードが上がります。
プログラミング言語の学習も大事ですが、余分な時間を使わないようにツールを使いやすくしたり、開発環境の設定を変えたりして工夫することも必要なのです。
エンジニアは、ツールを使いこなすことに時間をかけます。
たとえば、新しくiPhoneアプリを作れるようになるために「Xcode」という開発ツールの使い方を覚えるとします。
それに2週間かけることも普通なのです。
それだけツールを使いこなすことは重要だとされています。
ツールを使いこなすと、それ以降の作業効率がずっとあがるため長期的に考えると効率がいいからなのです。
プログラミングができる人になるには
プログラミングができる人=継続できる人です。
プログラミングができないと考えている人の共通点として、
学習時間が足りてない可能性があります。
基本的に新しい物事を身に着けようと思うと、その分野が得意になるまで「1000時間」かかるといわれているんです。
これは1000時間の法則というやつです。
プログラミングを習得しようとすると理解できるまでにかなりの時間がかかります。
これを読んでいる方は1年未満の学習者ではないでしょうか?
最初は理解できず辛いですが、1年程継続してきましょう!
継続してやっていると理解できることが徐々に増えてきて楽しくなりますよ!
まとめ
いかがでしたでしょうか?
重要なことは
- 1. 全体を把握する
- 2. 本当に必要なことを学習する
- 3. ツールを使いこなす
の3点です。
これらを意識して学習を行うことで、学習効率が上がること間違いないでしょう!