いつまでも`Hello World`を書き続けている人が1歩だけ進んだコードを書くために【JavaScript編】
こんばんは。オガサワラです。
『いつまでも`Hello World`を書き続けている人が1歩だけ進んだコードを書くために【JavaScript編】』です。
先ず始めに、僕自身はプログラミングを書く仕事をしている訳ではないので毎日ごりごりプログラミングを書いている訳ではありません。なのであくまでも趣味としてのJavaScript学習、または初歩の初歩から学びたい人にとって手助けになる情報をまとめるのが本稿のコンセプトです。(自身の備忘録も兼ねています)
プログラミング学習が進まない理由
プログラミングを勉強しようと入門書を購入したもののいつも上手くいかない人(ぼくです)には相応の理由があります。
先ず具体的なイメージ不足の可能性があります。(ぼくです)
いろんな書籍を読んだけど`Hello World`書いてるだけで終わる。
本棚に並んだ様々な言語の入門書をみて、
「あれ…おれ…`Hello World`しか書いてなくね…。どんだけWorldにHelloし続ければ実になるんだよ」
と気が滅入った経験はありませんか?
これは何がしたいか具体的に定まっていないから入門書の始めの章だけでモチベーションが霧散してしまうパターンですね。
先ず何がしたいか定めてから作成に向けて学習する方が圧倒的にモチベーションを保ちやすいです。
さらに何がしたいか具体的に定まっていない人は技術書を熟読しようと意気込みがちになりますが十中八九挫折します。(ぼくです)
当たり前の話ですが技術書は小説ではありません。
なので1から10まで読む必要はないです。
そりゃ作者からすると1から10まで読んで貰えたら嬉しいでしょうけれど、必要な箇所のみ必要な時に読んでたら全部の章を読んでたくらいがちょうどいいと思います。
先ずは作成したいものを定め志し低めでいきましょう。
具体的な目標があっても無理だわ
何がしたいか定めたけれど何をどう学習して目標に近付けばいいかわからないといケースもあります。(ぼくです)
これに関しては、とても難しい問題だと思っていて、初心者が闇雲に学習しても徒労に終わる可能性があります。(ぼくです)
周りに聞ける人がいるなら「こういうことしたいんだけど何を勉強したらいいかな?」と聞くのが一番。
ただし、職業プログラマならまだしも趣味でコツコツやっている人なんかは周りに聞ける人なんていねーよって人もいると思うので情報共有サイトの力を借りましょう。
↓↓とか。
teratail【テラテイル】|思考するエンジニアのためのQAプラットフォーム
↓↓とか。
あと、Yahoo知恵袋なんかも有りだと思います。
初心者にオススメしたい良書
ぜひとも初心者にオススメしたい書籍は『脱初心者のためのJavaScript力を底上げするための本』です。
先ずこちらの書籍を読んで感動したポイントがインデントの取り扱いについて詳しく解説されている点です。
ソースコードに置けるインデントの取り扱いについて詳しく解説している書籍ってあまりありませんが『脱初心者のためのJavaScript力を底上げするための本』ではとても丁寧に解説されています。
具体的には、こちらの書籍が出版された2017年時点で主流である
・タブ1つ
・半角スペース4つ
・半角スペース2つ
というインデントの取り扱いについて各作法のメリットやデメリットまたは好んで使う者の傾向などもまとめられています。
インデントの取り扱いってこうしないといけないという決まりがある訳ではありません。
なのでプログラミング学習を始めて最初の頃って、なんでこっちのソースではインデントが半角2つなのに違うソースでは半角4つなんだろうとモヤモヤします。
『脱初心者のためのJavaScript力を底上げするための本』では第1章が《キレイなコードを書く》ですので、先ずその何気ないモヤモヤを解消してくれるところから始まります。
この点が、初心者に寄り添った良書だと感じるポイントですね。
ちなみにインデントの扱いの他にも、
・1行の長さ
・文末の表現
・空行、改行の使い方
・命名規則
・コメント表現
・波括弧の使い方
・スペースの使い方
・switch 文の書き方
などが第1章の《キレイなコードを書く》では解説されています。
《キレイなコードを書く》というテーマはJavaScriptに限らずどんな言語に置いても大切ですし、流行り廃りも比較的少ない要素なので1章だけでも読む価値は十分にあると思います。
ちなみにAmazonプライム会員ならプライムリーディングで無料で読めます。
初心者にオススメしたい良webサイト
・JavaScript初級者から中級者になろう — uhyohyo.net
2018年に入ってから更新されていませんが、初心者にはぜひともオススメしたいWebサイト。こちらのサイトで基礎は一通り抑えることができると思います。第十七章までとボリュームがあるので下手な技術書買うよりもこのサイト読んだ方が勉強になると思います。
概念から抑える
学習の手法としては回り道にはなりますが、プログラミングを学ぶ上で、その概念からしっかり抑えておくのはオススメです。
ちなみに学習方法にファインマンテクニックというものがあります。
これは学ぼうとしている分野の概念から獲得するという手法なんですが、語弊を恐れずざっくり説明すると、プログラミングってなんだろうと考えて、どんどん単純化して、最終的には小学生でも分かるくらいにまで単純化しましょうって感じの学習方法です。
さて、ここから趣味全開で話が逸れますが、概念から抑えていくと、とどのつまりプログラミングというのは計算の手順であり、プログラミングでPCに任せられる仕事は数値に出来るものだけです。
逆にいうと数値化できれば計算できる訳ですので、
座標を取れば空間表現も可能ですし、音のような連続量も符号化(サンプリング)という概念で1秒を無数にスライスしデジタル化できます。そしてデジタル化できるので計算することができます。
ちなみに、この概念は動画などの時間表現にも使われます。ゲームやっている人なら良く聞くFPS(フレーム・パー・セカンド)って1秒を何コマに分割するのかってやつです。
こうやって考えていくと自分の好きなゲームタイトル何かがどういう風に動いているのかざっくりでも分かってきて楽しくないですか?
まるで魔法のように感じていたことの仕組みを理解し、一生懸命考え、自分の組んだプログラムが思った通りに動く。
その達成感は凄まじいものがあります。
プログラミングは種も仕掛けもある魔法です。(それは手品…)
何はともあれ楽しみましょう。すべてはそこからです。健闘を祈ります。
まとめ
今回は自身の備忘録も兼ねてプログラミング言語学習方法の最初の1歩についてまとめてみました。一応、JavaScript編と銘打ってはいますが、様々な言語に応用可能なスキルのまとめを目指して追記や修正をしていけたらと考えておりますので、ご意見・ご感想を頂けると幸いです。
最後まで読んで頂きありがとうございました。