おはようございますカレイドです。
今回は本格的にプログラミングを学んで2ヶ月。もっと早くから意識しておけばよかったなと思うことと、それ以前から感じていることをまとめてみます。
初学者向けなので当たり前のことを書いていますが、過去の自分が知りたかったことをまとめてみました。
1週目は駆け抜けよう。どんなものでもまずは頂上まで
まずは勢いでプログラミングを始めた人がこける部分を見てみましょう。
実際に私も好きで始めたところから難易度が上がり一気に学習に詰まるときが来ました。
プログラミングを例えるならだれでも学んだことのある算数、数学がいい例だと思います。
学び方いろいろあると思いますがプログラミングの場合は基礎はさらっと応用から制作物まで一気に駆け抜けるとまずは全体の見通しが立っていいと思います。
そして、ある時、点と点が結んで一気に道が開けるときが来ます。
それまではかなり長いこと低迷する可能性が高いので継続です。プログラミングは8割が挫折すると言われているぐらいなので、つまずくことはむしろ当然だと考えると少しは気が楽になりますね。
初心者がはまりがちな環境構築
この環境構築を例えるなら入社しての社員です。やりたい業務をやる前に会社の雑用のやり方つまらない事務作業みたいなのが環境構築です。
プログラミングの環境構築は最初はかなり難しいので誰かに教えてもらうとかして駆け抜ける。もしくはオンラインの動画を見ながら構築が一番躓かない方法だと思います。
第2の選択としてはオンライン上でプログラミングを学習できるサイトを利用する。
これがいいかと思います。特にProgateという学習サイトは絶対に躓かないと言えるぐらい丁寧なのでスタートにここを選ぶのは大いにありです。しかし簡単ゆえに生じる問題もあるのでそれについて下の記事を参考に。
個人的なおすすめとしては、環境構築含めてプログラミングなのでいずれは必ず通る道になります。ですので必ず自分でやってみることをおすすめします。
そのうえで必ず調べることになるのでこの過程をまずは味わってみるといいと思います。
Webデザイナーでもなんでも必ず調べながら作業をすることになるので、最初のうちは調べる癖をつけましょう。
最初は本ではなく動画サイトUdemyで勉強をお勧めします。
私は今のようなオンライン勉強が活発になる前からプログラミング勉強をしていたこともあったのですがほとんど書籍で行っていました。
- 本で勉強するメリット
- 後で見返すのが簡単。
- 結構細かいことまで書いてある。
正直オンライン上での勉強がはかどるようになってからは最初に本を選ぶのはお勧めしません。まずはオンラインのほうが費用が安い。
私が唯一本のほうが優れているなと思うところは動画よりも詳しく書いてあるってことですね。
ただ結局これも今はネットで検索をかけるとある程度は詳しくまとまっているので、本で深い難しい部分を学び、一つ一つの難しい構文を調べながらやるって感じが一番使えるのではないかなと思います。
一方で動画で勉強するメリットは以下になります。
- 動画やオンライン上で勉強するメリット
- 環境構築を一緒にやってくれ、動画形式なので見逃す心配がなく確実!!
- 講師のタイピングを実際に見れるのでどのようなエラーが発生するかわかる。
- 勉強方法に応じて2倍速なども選べる。
私が紹介しているUdemyのサイトであれば1つの制作物を作るところまでで1200円でできちゃいます。
他にも例えばProgateなら各章ごとにその経過報告をハッシュタグをつけてツイートできるので躓いたところをセットで書けば優しい人が教えてくれます。
勉強の進み具合を共有できるTwitterを利用することで疑問点を簡単に解決できるっていうのがあるのでオンラインがおすすめです。
ところが書籍の場合だと今のご時世持ってる人がいないので画像取ってアップしてみたいな、面倒な手続きが必要になるのでお勧めしません。
Udemyは動画の再生スピードを変更できるので再生速度2倍がとにかくはかどります。
耳で一週目は効いてその動画で学ぶ全体像を把握→実際にコーディングして感覚をつかむ。
この流れが一番いいです。
中級者(初学者を脱してある程度自分で勉強できる段階)までくるとさらなるメリットがあるのですがこれについてはまた今度話します
2週目、他の教材からが本番
そして何より初学者が意識するべきなのはまずは終わらせることです。これはプログラミングに限ったことではないですが、どんなものでも中途半端で投げ出すのが一番よろしくないです。
ではそうならないためにはどうしたらいいか。
わからないところはメモを取って移して先へ進む。
プログラミングは同じコードだけ書けば必ず動くのでその瞬間に完璧に理解する必要はないです。
そして学習を進める間で必ず同じ文や書き方に出会います。そうするとその時には違うアプローチからその構文が出てきたり、一歩学習が進んだ段階でその文に触れることになるので感じ方がまた違います。
ですのでわからないものはすっ飛ばして先へ進む。ふと思いついたときや息抜きぐらいにどうしても理解できない部分をネットなんかでぐぐったりすると案外すっと理解できることもあります。
そして新しい教材に進んだときに改めて理解が進むこともあります。学校のこの先生の数学はよくわからんけど、この先生の説明の仕方は納得できる。そんなイメージです。
学習アイテム(本、動画、オンライン形式)の構文が常に正しいとは限らない。
先ほども書いたように私のプログラミング勉強の主はUdemyというオンラインプラットフォームになります。
ここで経験したことで学んだことです。
最新versionと安定version
まず世の中のプログラミング言語は毎日簡単に書けるようにアップデートをされます。これを初心者の方は頭に入れておきましょう。
そして語弊がないようにここでは現在多くの人が使っているversionを安定。まだ世に出始めたばかりで浸透していないものを最新と呼ぶことにします。
ここでは例としてJavaScriptを上げますね。今一番開発が進んでいるのはJavaScriptなんじゃないかってぐらいいろいろなアプデがされていますが。一例としてその中で非同期処理を例に挙げます。
初心者の方には難しいと思うのでざっくり見ていただければいいのですが、要するにここで伝えたいのは以前の書き方と最新の書き方で大幅に書き方が変わっているということです。
これにはいい点と悪い点があります。
いい点は一つは最新であるがゆえに書きやすい(文がシンプルになっている)。しかし書きやすいと理解しやすいは別です。今まで学んだものを省略しようとしすぎると脳にとってはオーバーワークになります。
上記の例はJavaScriptでmap関数を適用した例ですが、中の文が1文であれば特例としてreturnを書かなくていいという仕様があり、オブジェクトを格納する際にkeyとvalueが同じなら省略可能というものを使うとすごいシンプルに書けるのですが、駆け出しで勉強した人にとってはかえって理解しがたい分になります。
簡単な例でいえば今までは二けた×二けたの掛け算を筆算を使って書いていたが、すっ飛ばしていきなり答えを書くみたいな感じです。
常に最新だと勉強しづらいこともある。
多くの動画や書籍では新しい書き方を使わずに慣れ親しんだ書き方をします。
もちろん新しい書き方が主流になればそれがデフォルトになるのですが、最新の構文を使った動画で勉強をした後に違う動画だったり書籍だと違う書き方をしているなんてことがよくあります。
なので自分が勉強していた書き方と異なっている場合は以前のverと最新で省略化が可能になっていることがあるのでその構文で調べてみるとよいと思います。
過去の書き方を学ぶと今の書き方ってすごい便利だなと思うと同時に、あれ?こっちの書き方のほうが自分は好きだなってことも出てくるのでどちらの意味でも調べてみるといいと思います。
例えば開発者側からみると省略して見やすくしたつもりが半分くらいの人にとってはあまり納得できなかったりすることもあります。
特に初心者のうちは学んだ構文が特定の場合にはめちゃくちゃ省略出来たりするので、なんだこの書き方はってなることも多いはずです。そういう時は落ち付いて調べてみると超最新の書き方だったりします。
過去の書き方を学ぶと理解度はぐっと深まる
上にも述べたように今ある構文は必ず過去の構文をでこうしたら楽なのになっていうのを実現したものがほとんどです。
みなさんも一度は苦労したものが便利になったときってすごい喜び感じませんか?それと同じで過去の苦労を知るっていうのは理解を深める意味でいい勉強法の一つです。特にJavaScriptは時代の変化が激しいので
常に最新の情報を終えるような意識を常に持っておきましょう。
Inputと同時にOutPutを行えると飽きない。
最初のうちはInputがほとんどです。最初は簡単だったものはやがて難しくなっていきます。
その時にいったん振り返って今までの内容を使って簡単なアウトプットをすると脳みそにはいい刺激になります。
Inputばかりだと目標を見失いがち
Inputばかりしていると視野が狭くなります。ですので時々は目を離して周りを見渡してみましょう。ここまで学んだ内容で何が出来るかを考えることは頭のリセットという意味でもかなりいい効果を生み出します。
ある程度勉強したらアプリ、ポートフォリオをとりあえず手を付けてみる。
Web系を勉強している人なら HTML CSS BOOTSTRAPを勉強すれば簡単なwebページくらいは作れるはずなのでとりあえず作ってみましょう。0→1を作ることで常にInput状態からOutPutを行うので新たな視点を得ることが出来ます。
これをこうしたいけど今までのをどうやったら組めるんだろうとか、これ勉強しないと無理そうだな見たいな感じで必要な勉強でそうでない勉強を取捨選択することが出来るようになります。
私も二か月一通り勉強したのでアプリやポートフォリオ作成に手を出し始めています。
またバックエンドではNode.jsやpythonなどを使っていますが、裏のアルゴリズムを考えるのもとても難しくやりがいがあります。何時間もかけて書いたコードが思い通りに動いたときの喜びは計り知れないですね。
まとめ
今回は自分が勉強をしていく中でもっと早く知っていればという内容をまとめてみました。
特にプログラミングは最初に道しるべがないために80%も脱落するんじゃないかなと思います。これを読んだ人が少しでも自信をもってプログラミングを勉強してもらえたらいいなと思います。