「時間があるし、プログラミングでも勉強するか」
「受験勉強とどっちが難しいの?」
「どうやって勉強するのが効率がいいんだろう」
以上の考えや悩みを持つ方にむけた記事になります。
こんにちは!
僕は現在、大学に通いながらweb制作の勉強を1年間継続しています、Shinと申します。
僕は大学受験を終えて「なんか稼げるバイトないかな~」くらいの感覚でプログラミング学習を始めたのですが、最初の3か月くらいは学習の方法が確立できておらず全くといっていいほどスキルが身につきませんでした。
感覚でいうと野球ならファーストがわからない、鬼滅の刃なら富岡義勇が分からない、料理ならタピオカが分からないくらいの理解のなさでした。
今思うと結構おろかなことをしているのが分かるのですが、当初は正しい勉強法を実践している、と信じてやみませんでした。
しかし、いろいろな方の勉強法を見ていると
「これは伸びないなあ…」と思うような学習方法をとっている人が結構多いな、と感じました。
この現象は意外にも中・高と勉強を頑張ってきた人に多いな、という印象を持ちましたが、やっかいですよね。
というわけで本記事では、「プログラミング学習を始める前に知りたかった…」と僕が思ったプログラミングと受験勉強との違いとその対処法について解説していきます。
プログラミング学習では参考書を何度も読むのはもったいない
まずはこれですよね。
「1冊の参考書を何度も反復しろ!」
これは大学受験のときに何度も口酸っぱくいわれた言葉ではないでしょうか?
この言葉の真意は「多くの参考書に手を出しても知識がたまっていかないから1冊の教材に書いてある言葉を理解しろ」ということですが、プログラミングでは不要の概念になります。
このように思われる方も多いかもしれませんが、マジで時間の無駄です(笑)。
参考書で学ぶべきは、「この分野では○○ってことができるのか~」といった概念です。
なぜなら、プログラミングではテストがないから筆記の能力は求められてないし、コンピューターに命令を出すのが本質だからです。
コンピューターに命令を出すにも、できることが分かってないと命令できません。命令内容には何があるのか、これを参考書で知る、というのが定石です。
実際にプログラミング業界ではいかに知識を持っているかよりも、コードをかけるかが重要視されているので参考書での反復の効果の薄さが分かります。
じゃあ結局どの程度の理解が必要か、と聞かれれば目安としては1~2週くらい読んで5~6割くらいなんとなくわかれば十分です(笑)。
この理由はのちほど解説します。
プログラミング学習では参考書を全部見る必要がない
これも結構意外に思われる方が多いかもしれません。
なんで参考書を全部見る必要がないのか、それは使わない機能が多いからです。
これは大学受験された方で
「この科目、使わねえじゃねえか」
「この分野。志望してる大学で出ないのに…」
このような経験をしたことはありませんか?
こういう経験をしている方ならわかると思いますが、こういう勉強するときって
マジでつまらないですよね?
自分の目的に合わない勉強をする___。
これは受験勉強に限った話ではなく、プログラミングでの挫折につながるだけでなく、時間の無駄です。
プログラミングの勉強で必要なことは「何を作りたいのか、何に興味があるのか」これがめちゃくちゃ大事です。
つくりたいものが決まれば必要最低限の勉強をすればいいのがプログラミングの良さです。
歴史の勉強で例えるなら、室町時代の勉強をしたい!と思ったらほかの時代のことは勉強しなくていい、ということです。
挫折する人の特徴としては、室町時代だけ勉強すればいいのに旧石器時代から勉強を始めて、その量の多さに萎えるイメージです。
この例から見てもわかる通り、自分からプログラミングのハードルを上げる人が多いです。
なのでプログラミングの学習ではやりたいことから逆算して勉強する内容を決める、ことをやってください。
仮に、AIに興味があるならPythonで「Python AI」と調べれば、やることが見えてきますよ!
ぜひ楽しんで勉強してみてください!
プログラミング学習ではむしろ推奨されるカンニング・コピペ
「カンニングはよくない」
「学生の時はレポートでコピペしたら点数をもらえないからやらない」
プログラミングを学ばれていない皆さんの多くはこう思っていないでしょうか?
この考えを持っている方は正常です(笑)。
しかし、コピペやカンニングは学生生活においては持つべき良心ですが、プログラミングではむしろ推奨されています。
この考え方は
- 同じ内容を打とうとしたらみんな同じコードになる
- 大切なのは何をつくるかでコードはそのツールでしかない
- パクリじゃなきゃいい
といった考えがあるからです。
確かに、ネットなどに公開されているサービスやサイトのコードを丸パクリして金銭をとる、といったことはアウトです。
しかし、各プログラミング言語のホームページでコードが公表されていたり、○○の時はこのコードを使いましょう!といったプログラミングの情報を共有する動きはプログラミング業界では広がりを見せています。
こういう点からも、プログラミングではコピペやカンニングはオッケーです。
プログラミングではテストがないので、暗記する必要もなければ、本来は自分で何行も書かなければいけないコードもコピペで済ませることができてかなり効率的にコードを書くことができます。
こういうことを知らずに、本質から自分で理解しようとしてコードを全部暗記しようとしたり、何時間もかけてネットに公表されているコードを自分で書こうとする人が初心者に多いです。
なのでプログラミングを学ぶときには、コードの意味が理解できるようになることがとても重要になります。
プログラミングで一番大切なスキルはググる力
これは、僕だけでなく多くのプログラミング経験者が言っていることです。
プログラミング、と聞くと一見コードを見ずに書いたりすごいサービスを作ったりイメージがあると思いますが、ググれる人が最強になります。
さきほどの章では「プログラミングではコピペ・カンニングが推奨されている」といったことを書きましたが、じゃあそのコードをどこから見つけてくるか、という点でこの「ググり力」が重要になってきます。
「なんだ、検索するだけじゃん」
と思われる人もいるかもしれませんが、これが結構大変です。
現在では、多くの悩みや疑問点を解決するようなサイトや動画がアップされていますが、プログラミングに関してはまだまだ情報が少ないです。
特に学んでいる分野がマイナーなほど情報を見つけるのが難しく、ものによっては海外のサイトや動画、質問箱を見ないと出てこない内容もあるので、どうやったら自分の求める情報にたどり着きやすいか、といった点でググり力は重要な能力になります。
この力がないと、バグを修正できなかったり、自分の表現したいことができずに挫折してしまう原因になるのでググり力は必須です。
とはいえ、このググり力は実践で学んでいくしかないです。
基本的に知識が増えるほどニッチなワードやサイトでの検索ができるようになるので勉強量に比例すると考えてもらって構わないです。
これに関しては、有識者に聞くのが早いと思います。
これは、twitterで直接聞いたり、stack Overflowやteratailなどの質問サイトで聞いてみるのが良いと思います。これらのサイトでは無料で質問することができます。
上記のサイトでは、無料で聞けるメリットがある一方で、絶対に解決できる確証がない、というデメリットもあります。
そのような時は、プログラミングスクールに入ったり、メンターを雇う、といった方法があります。
プログラミングスクールではプロのエンジニアという肩書を持ったメンターが分からないところを確実に答えてくれますし、メンターを個別に雇うのは現在は1か月10,000円くらいで質問に答えてくれるサービスもあるようです。
これくらい問題を解決する能力は重要になりますので、この力をつけることが挫折を防ぐ対策になります。
ぜひ試してみてください!
まとめ
いかがだったでしょうか。
思ってた能力と違う、思ったよりも地味、といった言葉が聞こえてきそうですが、プログラミング業務の中核は大半がコピペだったり、ググったりしながら行われることが多いです。
これからプログラミングを学ばれる方は上記で示したことを念頭に置いてプログラミングの学習に励んでほしいと思います。
ただ何度も言いましたが、プログラミングの継続に必要なのは最後は
プログラミングを楽しめるかどうかです。
近年のプログラミングは数年で仕様が変わるくらいに変化が激しい業界なので、今学んだ知識が5年後に使えなくなる、といったことはザラに起こります。
そんな中でもその変化を楽しめるか、それとも「学びなおしか…」と落胆するのかでは上達が変わってきます。
なので、プログラミングの学習では「こんなことができるんだ!」と前向きな気持ちで学んでほしいと思います。
皆さんが挫折せずにプログラミングを学べるよう、願ってます。
それではまた!