これからJavaScriptを覚えたい!始めたばかりだけど、早くも挫折しそうだ。そんな方向けに効率の良い学習方法を紹介したいと思います。
プログラミングの躓きポイント・挫折しやすいポイント
先ず、プログラミングを覚えようとして挫折する理由というか、躓きポイントは経験上、2つあります。
1つは全部覚えようとして覚えきれない。と、もう1つは変数や定数(記述者が自由に決められる文字)なのか?それともルールでそう書かなければいけないのか?どちらか分かりにくい。この2つです。
先ず、1つ目については全部覚える必要はありません。何も見ないでコピペもせずに書けるようになるには相当場数を踏まないと、まず到達出来ませんので、最初の数年は見ながら記述する、コピペをしながらカスタマイズする。
という手法でいいので全部覚えなくても雰囲気やその記述の目的を大まかに理解し、どんどん進んじゃっていいと思います。
恐らく今後よく使うであろう関数については、記述方法が複数種ありますが、どのように省略が出来るのか?とか関数式にした方が後々使いやすい等、記述方法に色々なパターンがあるんだなー、位はざっくり覚えておいた方が良いかと思います。
そして、2つ目について、変数なのか?定数なのか?記述者が任意に決めた単語なのかどうか?
についてはエディタ側の機能(例えばVSCODEであればカーソルを当てると型のタイプが表示される)で判別が付く場合もありますし、基本的にはconst,let,class,関数(function)の後に登場する事が多いので、記述者による任意の単語なのか?判別が付くようパターンを把握しましょう。
[box class=”blue_box” title=”ポイント” type=”simple”]・よく使う構文(関数やボタン等)はメモ(紙)やテキストエディタ(データ)に保存し、いつでも参照出来るようにしておくと良い
・変数や定数、クラス名、関数名、プロパティ要素等、記述者による任意の文字がどういう時に使われるのか?パターンを覚えると良い[/box]
ちょっとアナログですが、自分の場合良く使う関数やクラス、入力オブジェクトからの要素取得等、自分が作りたいプログラムによく使いそうな構文の基本的な記述方法をノートにメモしています。
A5かB6位のノートやスケッチブックがちょうどいいサイズです。最もよく使うものはホワイトボードに書いて掲示しています。データの方がコピペ出来るので、コードをガンガン書いてくにはそちらの方が効率が良いです。

JavaScriptを習得するオススメ学習方法(ステップ)
STEP1:先ずはドットインストールやプロゲート等の無料版で動画を視聴する。
STEP2:しまぶーさんやセイトさんのJavaScript講座(Youtube動画)を視聴する。色々見てみましたが、このお二方の動画が丁寧で分かりやすい
STEP3:復習。分からなかったところは繰り返し何度も視聴し、丸暗記ではなく仕組みや何故そう書くのか?を理解する
STEP4:自分が作りたいプログラミングをいくつか列挙し、その中から比較的簡単そうなものを初作として選ぶ
STEP5:設計をする。最初は最低限の機能で良い。難しい機能は省略しても良いと思うが、(繰り返し処理やIF文、ボタン操作、関数等、学習した機能や要素は最低2、3盛り込んでおきたいところ)
STEP6:コーディングをしてみる。躓いたらSTEP2、3に戻りチェックする。
書籍の方が良いというかたはそれでも良いと思いますが、書籍の場合丁寧な反面、上から順に進めると最初は必要ないところを覚える時間が勿体ないです。書籍で学習する場合、個人的にはSTEP4、5で自分にとって必要になりそうな機能や知識を洗い出し、不要なページはサクサク飛ばして学習したり、逆引きして進めるのが効率的かと思います。
また、HTMLやCSSにはあまり時間をかけない方が良いかと思います。セイトさんの動画で紹介されているような流用元を活用し、JSに集中した方がコスパというか効率が良いです。
もっと高度なプログラミングに挑戦したいのであれば、専門書やドットインストールやプロゲートの有料会員になるのも良い選択肢ではないかと思います。
色々とネットの情報や自身がやってみた結果、このSTEPが非常に効率的で上達への近道ではないかと思います。JavaScriptは情報量が半端ないので飲み込みの早い人なら、もっと早い段階でコードを書いてしまって良いかもしれません。
以上、初心者の方向けのJavaScriptオススメ学習方法の紹介でした。まあ、目的にもよるんでしょうが、一般的な感じで覚えていくのであれば、個人的にはこのやり方が恐らく最短ルートではないかと思います。
私はこの後、PHPやサーバー側の勉強も少しやっていきたいと思っています。理由はRSSフィードの取得やAPI連携を利用したアプリを作りたいからです。もう少しフロントエンドの開発で可能なアプリで練習したら、ステップアップしたいと思います。
Flutterも並行でやってはいるのですが、私のノートPCスペックでは重たいので優先順位を下げる事にしました。
コメント