HTML, CSSまでは順調で、JavaScriptで挫折しそうな人へ
※ かなり古い記事です。更新予定はありません。ご了承ください。
どうもー、ドイツ在住フリーランスのフルスタック & フロントエンドエンジニアのArisaです。
さて、今日はプログラミング学習をはじめて間もない方へのアドバイス記事です。
HTML, CSSはすぐに成果が出たのに、JavaScriptが思うようなスピードで習得できずに焦っている人必見💡
「HTML, CSSはすぐに成果が出たのに、JavaScriptはすぐ成果が出ない」
JavaScriptを勉強したことのある人であれば、必ず何度か思ったことがあるかもしれません。
「HTML, CSSは1ヶ月〜3ヶ月程度で思い通りのwebページを制作できるようになったのに、JavaScriptは、自分で「できるようになった!」という実感がすぐにわかない...」
実は、こう思っているのはあなただけではありません。
私は勝手に「JavaScript習得の初期症状」とこの状態を名付けていますが、短い勉強期間だけで、できないと思い込みをする人が多いということをお伝えしたいです。
「プログラミング向いてないのかな?」と思うのはまだ早い
タイトルの通りですが、「プログラミングが向いていないのかも...」とJavaScriptを数ヶ月勉強した時点で思うのは、早すぎます。
そもそも、エンジニアの仕事が高収入な理由を考えると、プログラミング言語を習得して、実務レベルで扱うことが誰にでもできるかというと、そうではないからです。
プログラミング言語って、一夜漬けでできるものではないということです。
ただし、高校レベルの英語と数学がわかる人であれば、きちんと勉強するとほとんどの人が書けるようになります。
でも勉強と同じで、得意不得意、成果が出るまでの期間に差が出るなど、できるようになるまでの差はあります。
その成果が出るまでの期間を、HTML, CSSでは1ヶ月〜3ヶ月でできたという経験があるがために、「JavaScriptでも同じ期間で習得できるものだ!」と思い込んでしまう人が多いのです。
単純に内容のレベルが上がっているので、JavaScriptがHTML, CSSより習得までに時間がかかるのは、至って普通のことなのです。
例えるならHTML, CSSは塗り絵。JavaScriptは難易度の高いパズル
よくプログラミングを教えている担当受講生にお話しする例を、ここでも共有したいと思います。
習得にかかる期間と、難易度をそれぞれの言語で理解してもらうために、日常生活の例で置き換えます。
HTML, CSSの難易度と習得できるスピードは、塗り絵のようなものです。
塗り絵は、決められた枠の中でお手本の色を見ながら、塗っていくと完成します。
塗る順番は関係なく、もっというと、似た色で代用しても完成はします。
見た目を同じにするのに、複数の方法があるわけで、色が少々違っていても、その人がこの色が良いと決めて塗ったのならそれでよしというところが塗り絵は大きいですね。
HTML, CSSは、ある程度我流でもできるレベルなので、割とすぐ「できる!」と思えるのです。
それに対し、JavaScriptは、例えるなら難易度の高いパズルです。
パズルは、1つでもピースが合わなければやり直さなければいけません。
そして、端から埋めていく方が周りのピースが埋まりやすいということも、知っていると取り組みやすさが違ってきます。
ど真ん中からピースを埋めようとしても、できないことはないですが、時間がとてもかかります。
1つ1つ、正しいピースをはめていくことで、ようやく完成するのがパズルです。
ただ、同じパズルに何度か取り組むと、どの順序でピースを埋めれば良いか、取り組んだ回数が多いほど早くパズルを完成させることができます。
JavaScriptは、まさに反復練習を繰り返すことでコードの組み立てを正しい順序で行えるようになり、「できる!」と初めて思えるようになるのです。
JavaScriptは「できる!」と実感するまでに時間がかかるのが普通
なので、少し残念なお知らせかもしれませんが、実務レベルのJavaScriptを習得しようと思ったら、少し時間はかかるものなのです。
しかし、これはある意味勉強中の人にとっては励みにもなります。
理由は「プログラミングが不向きなわけではなく、単純に自分は難しいことに挑戦しているから、時間がかかるだけなんだ」と思えるからです。
もっと安心する事実をお伝えしようと思います。
JavaScriptは、エンジニアでも実務経験2年ないと使えるとは思われないレベル
エンジニアが何年ほど実務経験を各言語で積んできたのかというのは、採用する側としては良い判断材料になります。
そして、エンジニアでもJavaScriptや他の言語も、大体2~3年は最低限実務経験があって欲しいです。
私も以前オンラインプログラミングスクールCodeGritに関わっていた時は、メンター講師の採用にはフロントエンド系の言語を2年は経験を積んだ人しか採用しませんでした。
使えるだけでは、教えるには不十分ということもありますが。
そもそも、それ以下の実務経験は、いくらエンジニアでも「使える」とはみなされないのです。
ということは、他の言語に精通しているエンジニアが新しくJavaScriptを習得したというだけでは、使えるとは信頼されにくいということです。
これはJavaScriptを学習して間もない人たちには朗報です。
他の言語のエンジニアも、プログラミングを初めて学習する人も、JavaScriptの学習期間が短ければ、みんなほぼ同じスタートラインから始めることになるからです。
武道や柔術とここはとても似ていて、流派が違う道場にいけば、今まで黒帯で他の流派でやってきた人でも、みんな白帯からスタートです。
エンジニアですら使えると思ってもらえるには、2年は実務経験と勉強したことが求められるので、JavaScriptを勉強して間もない人が、数ヶ月勉強して「できない...」と悩むのは、至って普通のことなのです。
JavaScript習得の近道は「習うより慣れろ」
JavaScriptは、HTML, CSSのように見様見真似で1, 2回書いたらできたという経験はあまり得られません。
確かに、新しい技法を学ぶには習う/新しくインプットする必要はありますが、新しく学んだ技法を1, 2回使ってみただけでは、いまいち使い方がピンときません。
それは、JavaScriptには「慣れ」がとても重要だからです。
スポーツや楽器の演奏をするときに、初めて取り組む競技や演奏する楽器は、不慣れなので、身体をそれなりに動かしたり、音を鳴らすことはできます。
でもうまくはできません。
それは反復練習をしていないからです。
上手な人は、それだけ繰り返し練習をしています。
JavaScriptも全く同じで、繰り返し書いたことのある技法は、次第に得意になっていきますが、書いた回数の少ない技法は、難しく、使える実感が湧かないのです。
この前まで「DOMが難しいです」と言っていたと思ったら、数ヶ月後には「DOMはできるんですけど、Async/Awaitがまだ苦手です」と言うようになるJavaScript習得中の人が多いのも、それが理由です。
「習うより慣れろ」
つまり習ったら、その技法を書く回数を増やしていくことで習得することを重視すると楽ということです。
今あるスキルで仕事をしながら、半年〜1, 2年ほど長い目で見て習得する
私自身が合気道をするので、また武道の話を例に出しますが、武道の習得は、何年もの修行が必要です。
でも修行の年数が浅い白帯の人でも、色帯の人と同じ技は実践できます。
ただ、上手かまだ修行が必要かの違いで、できることにはできるんです。
できますが、先生や試験で認められるまでは、稽古をしつつ、長い目で見て黒帯までを目指すことになります。
そして、いくら武道が好きだからと言っても、仕事レベルでするには黒帯を持っているだけでも難しいので、基本先生でも(ドイツでは)本業の仕事がある人が多いです。
仕事をしながら好きな武道に打ち込むと言うスタイルの人が大多数です。
JavaScriptの話に戻すと、満足がいくレベルまで勉強に専念と言うのは、HTML, CSSまでの話です。
そこからは、今のスキルで仕事をとりつつ、JavaScriptを仕事をしながら習得する方法が、一番近道です。
どうしても実務レベルとみなされるまで、もしくは自分でそう思えるようになるまでJavaScriptは1, 2年は見る必要があります。
でもその間食べていくには、収入を得なければいけません。
別で仕事を持っている人は、それを続けながら勉強に専念できますが、プログラミングを学習する目的のほとんどは、転職、もしくはフルタイムでなくても副業として収入を得られるレベルまでの習得を目指す人がほとんどだと思います。
(まれに習い事として習得される人もいますが)
貯蓄が尽きる前には習得したプログラミングで食べていけるようになる必要があるので、自分が納得するまで勉強だけ専念ということはなかなかできないです。
その理由だけで仕事をしながら取得するのかというと、これは1つの理由に過ぎません。
本当の理由は、「実務経験を積みながら勉強する方が、何倍も実力が身につくから」です。
仕事で書くコードと、個人の勉強で書くコードは別物です。
仕事は、自分でかなり考えて、調べて書かなければいけません。
勉強はテキストとお手本があります。
どちらが実力がつくかというと、前者が圧倒的に実力がつきます。
そして、案外自分で思う「仕事をしていいレベル」と、クライアントや企業が思う「仕事をしていいレベル」というのは、ギャップがあります。
割と大多数のプログラミング学習者が「自分で仕事をしていいレベルに達していないと思う」と判断するハードルをかなり高くします。
でも実際に仕事を依頼する人たちは、天才レベルのエンジニアだけ狙っているかというと、内容によってはそうではないことも多いです。
なので、今持っているスキルでできる仕事で実務経験も積みつつ、キャリアも作りつつ、JavaScriptを長い目でみて習得するのが良いのです。
まとめ
いかがでしたか?
この記事は、私がよくJavaScript学習中の受講生から「挫折しそうです」と早い段階で思い込んでしまって聞くことがきっかけで、書きました。
大抵の方は、HTML, CSSと同じスピードで取得できるものだと思い込んでしまって、理想を高く持ってしまっていることが原因です。
少し難易度の高いことを始めたので、今までより時間がかかって、反復練習も必要になるということを聞くと、安心してグッとJavaScriptの理解度が上がる人がほとんどです。
なので、今もしJavaScriptの勉強で挫折しそうな人がいたら、声を大にして、「もうちょっと続けてみれば成果が出る」と言いたいです。
難易度は上がりますが、積み重ねたら必ず書けるようになります。
私も一度はJavaScriptを投げ出したことがあります。
すぐに成果が出なかったので、面白く無くなってjQueryに逃げたことがあったのです。
でも、勉強方法を見直して、長い目でみて習得しようと考え方を変えると、いつの間にか書けるようになっていました。
挫折しそうと思ったら、「習得に時間がかかるのが普通なんだ」と言い聞かせると、少しは気持ちが楽になりませんか?
プログラミングの学習は、「楽しい」と最終的には思えないと辛いものになってしまいます。
なるべく自分が楽な方法で、無理のない方法で習得をすることを心がけると、時間は少しかかっても最終的には習得できています。
少しでもこの記事が、JavaScriptの学習で心折れそうになっている人の励みになれば嬉しいです。
では。