先日、フリーランスのWebエンジニアとして活動していく上で大事なことをまとめた記事(下記参考記事参照)を書いたのですが、その中でスキルを磨くということを紹介させていただきました。
そこで、今回はさらに掘り下げて具体的にスキルを磨くにはどう学習すればいいのかということで、「プログラミングを効率的に学習する方法」を紹介したいと思います。
マネして逆算式で学習するべし
プログラミングに限らず何でもそうですが最初から出来る人はいません。ズブの素人がいきなりスケボーやサーフィンをやってもできませんよね?プログラミングも同じです。何でも学習や練習、経験を積み重ねることでスキルが身についていきます。
ただし、効率的に学習することで人よりも早いペースで習得することは可能です。そこで個人的におすすめしたいプログラミングの学習方法は、「最初はとにかく真似をする」ということです。
なぜ真似するやり方が効率的なのかを少し詳しく説明していきたいと思います。
目標が明確に定まる
まず、新たにプログラミング言語を習得しようと思ったときに、よくやりがちなのが「ゼロから始める〜」のような書籍やサイトで勉強することです。
ただし、こういった「ゼロから始める〜」系は、プログラミングの仕様や概要をはじめ、簡単なコードから学習していく「順算式」の学習方法が大半です。この場合何か特定のサイトを作っているという明確な目標が設定されずらい側面があり、コードをなぞっているだけということになりがちです。そうすると、当然のように頭に入ってきませんし、すぐ忘れてしまいます。その結果、モチベーションの維持も難しくなり途中で学習することを放棄してしまいがちです。
その反面、たとえば自分が作りたいサービスやサイトを見つけて、それと同じようなものを作っていく方法ではゴールとなる目標が明確に定まっているため、モチベーションの維持が比較的容易になります。誰だって見えないゴールへ向かって走っていくのは嫌ですよね?マラソンだって42.195km先にゴールがあると明確に分かっているから頑張れるわけです。
無駄を省ける
順算式の学習の場合、一から順を追って学習していくことになるので、例えば作ろうとしているものに関係のないコードも出てきます。つまり目的に必要のないことやっているので時間の無駄になり非効率なんですね。
逆算式の場合は、完成品から具体的にどういったプログラミング言語で、どのような処理をすれば良いのか一目瞭然に分かるのでピンポイントで学ぶことができ、無駄を省くことができます。
実務レベルを体感できる
プログラミングを少しかじったことがある人でプログラミングが出来ると思っていてもクライアントワークになると出来なくなる人がいます。これは特に順算式で学習している人に多い傾向があります。なぜなら学んだことしか頭に入っていなくてイレギュラーな要望に対応するという免疫が養われていないからです。
既存のサービスやサイトを真似る方法では、既に多くのプロのチェックを経てブラッシュアップされたクオリティの高いものを真似するわけですから、作成していく中で必ずハマったり壁にぶち当たったりすると思います。ただし、そこがとても大事で応用力を身につけるチャンスになります。そして、このタイミングで技術書で調べたりググったりして勉強するわけです。
クライアントワークの場合、難しい要望にも何かしらの方法で解決策を見つけないといけないので応用力が問われます。そういったスキルは実務で必要なレベル感を体感することが一番手っ取り早いのです。
既に答えがある
ちなみに、先ほどハマるポイントがあると言いましたが、javascriptなどのフロント側の処理の場合は既にソースに答えがあります。とりあえずハマったらソースを隅々までチェックし該当部分のコードを見つけだし、具体的にどういった処理をしているのかを調べていけば必ず解決すると思います。
調べる癖がつく
逆算式学習の場合は、順算式に比べてググったり調べる機会が格段に増えます。特に最初のうちは調べてばっかりです。そうすると自ずと調べる癖が身についてきます。そうすると検索の仕方も向上してきて知りたい情報を得るスピードもとても早くなります。これは実は立派なスキルで知りたい情報をいかに早く見つけ出すかというのはエンジニアリングの上でとても大事なことになります。プロのエンジニアになればなるほど検索能力は高いですよ。
逆算式のデメリット
逆算式学習がプログラミングにおいて効率の良い方法だということを説明してきましたが、もちろんデメリットもあるのでそちらに関しても挙げておきます。
基礎が抜ける恐れがある
順算式の場合は基礎から順を追って学習していきますが、逆算式の場合はその目的を達成するために必要なコードを書いていくため、基礎の一部が抜ける恐れがあります。ただ、いろいろなサイトやサービスを作っていく上で自然と身についていきますが、順算式に比べ最初のうちはそういった恐れがあります。
間違った情報を覚えてしまう
真似して学習する場合、目標とするサンプルにコードミスがあっても、それが正しいと思ってそのまま吸収してしまうので間違った情報を覚えてしまう恐れがあります。
また、インターネット上には間違った方法を解説しているサイトもたくさんあります。逆算式の場合、都度検索していくことが多くなるので、その分間違った情報を掴むこともあります。
オンライン学習を利用してみる
こういったデメリットもカバーしつつ逆算式に学習したければオンライン学習もおすすめだと思います。
Udemy
やドットインストール、TechAcademyあたりが有名どころですが、オンライン学習の場合はそれぞれのレベルに合わせたガリュキュラムが用意されてあるのが特徴で、ゲームやチャットボット、サイトなど明確なターゲットを定めて逆算式で分かりやすく学習することができますし、間違ったことを教えられることもないので安心して学習することができます。
特にプログラミング経験がまだ短い方は、逆算式で学習するとしても自分のレベル感と作りたいサービス等のレベルがかけ離れているケースもあるので、こういったオンラインサービスを利用するのも1つの選択肢だと思います。
まとめ
ということで、今回はプログラミングを学習方法として「逆算式学習」がなぜ効率が良いのかということを紹介させていただきました。もちろんデメリットもありますが、自分の経験則上、逆算式学習は本当に実践的で一番有効な方法だと思っています。
もちろん中には、合わないという方もいるとは思うのですが、自分の経験が少しでも誰かの役に立てれば嬉しいです!
それでは今回はここまで!また!