プログラミング学習開始から1ヶ月で Progate卒業まで②

プログラミング

Progateの学習内容と達成度

 こんにちは、こまくです。

 前回の続きを書いていきます。

 前回の記事を読んでいない方は是非こちらからどうぞ

 まず、Progateで行った学習内容とその達成度、そしてそのレッスンにかけた学習時間をまとめます。(昨日最後にRubyを学習したため、昨日より合計時間が長くなっています)

 学習内容  達成度  学習時間

 HTML&CSS  100%  19時間

 JavaScript  100%   8時間

 Ruby    100%   3時間

 PHP     68%   6時間

 Node.js    46%   3時間

 SQL     36%   1時間 

 合計 43時間

 HTML&CSS、JavaScript、Node.js、SQLの4つは「Web開発コース(Node.js)」というコースに沿って行い、全体の学習の順番は

 「Web開発コース」→ PHP → Ruby

 の順番です。

 ではそれぞれを選んだ理由、学習しての感想を書いていきます。

まずHTML&CSSを学んだ理由と感想

 まず、Web開発コースを初めから学ぼうとしたわけではなく、HTML&CSSコースから始めました。

 理由はもちろん、リベ大の両学長がHTML&CSSから始めるように言っていたためです。

 今考えてみるとHTML&CSSが分からないと他の言語を利用することができなくなるため、当たり前と言えば当たり前の選択でした。

 もしHTML&CSSも含んで何のコースから始めようかと迷っている人はHTML&CSS一択です。

 これは間違いありません。

 そして、このHTML&CSSコースですが、初めて実際のコードに触れた(初めに勉強した「プログラミングはこうして作られる」(著:平山尚)では「Sunaba」という完全オリジナル言語であったため)私でも楽しく無理なく理解できる内容でした。

 しかし、このProgateのレッスンには「学習レッスン」と「道場レッスン」があるのですが、この「道場レッスン」初心者の私にはとても難しく、クリアまでに時間がかかりました。

 「学習レッスン」では一つひとつ丁寧に指示を出してくれるため、とにかくその指示に従ってぬくぬくコードを書いていればクリアできるのですが、道場レッスンでは少しのヒントはあるものの、基本的には見本となる仕様書(Webページ)を見せられ、「これと同じものを作って下さい!さあどうぞ!」と急に荒野に放り出されるのです。

 どの順番でコードを書いていけばいいのか、そもそもどのようなコードを書けばいいのか。

 それが分かっていなければ道場レッスンはクリアできません。

 ただ、クリアできるかどうかだけで言えば、答えを見ながらクリアできることもできるので、自分の中のクリア条件を決める必要があります。

 私が決めた条件は、全くヒントや答えを見ず、仕様書だけを見て全く同じものを作成できるというものでした。

 初級はなんとかクリアできたものの、とにかく中級が難しかったです。

 中級の道場レッスンだけで11時間かけたほどです。

 正直ベテランの方に言わせればこの初歩の初歩でここまで完璧を目指す意味はきっとなく、効率の悪い勉強方法だと思うのですが、私はこの道場レッスンの経験をすることで、その後の学習レッスンを勉強する際にも道場レッスンのつもりで勉強することができるようになりました。

 具体的にどのように変わったかというと、学習レッスンはまずスライドでコードの説明を受け、その後その説明されたことを一つひとつ指示を受けながら(ヒントもたくさんもらいながら)コードを書いていくのですが、私はスライドでコードの説明を受ける時点で自分でコードを書くイメージを膨らませ、いざ自分でコードを書くとなった時にはヒントや指示をほとんど見ずにコードを書いていくという勉強方法にしました。

 このおかげで、「コードを覚えよう」という気持ちがこれ以前に比べ大きく変わり、1度の学習レッスンでそのレッスンの大体のコードが書けるようになりました。(もちろん後に出てくるNode.jsなど複雑なものは流石に書けませんが)

 私にとっては今後の勉強効率を上げるためや、コードを自分で書くんだという意識を高めるために必要な11時間であったと思います。

 その後の道場レッスン上級以降は内容は少し難しくなるものの、書くコードの量が中級に比べ少ないため、あっさりクリアすることができました。

次に学んだ言語と、類似言語

 HTML&CSSの学習が終わり、次に進もうとしたのですが、ここで困ったことになります。

 両学長「HTML&CSSが終わったら、PHPかRuby、JavaScriptのレッスンをやってみるといいで!」

 学長!!どの順番ですか?っていうかそれは3つともやるってことですか?学長!!はっきり言って下さい!!

 両学長におんぶに抱っこの私は迷いましたが、過去に運用していたブログがWordPressであり、JavaScriptが利用できることを知っていたこと、さらにTwitterで「将来ゲームアプリを作りたいのですが、どの言語を勉強すればいいですか?」と質問したところ「ティラノスクリプト」というゲーム開発ツールを紹介していただいたのですが、そのツールで使う言語もJavaScriptであったため、とりあえずJavaScriptにしました。

 この3つはHTML&CSSで作成したものに動きをつけるための言語です。(正直、この意味をまだちゃんと理解できてはいません)

 その後PHP、Rubyと学んだのですが、正直この3つの言語の使い分けが初心者の私にはよく分かりません。英単語と文法が違うだけで、学習で学ぶことがほとんど一緒だったのです。例えば、コンソールというところに”Hello World”の文字を表示するために、

 JavaScriptは console.log(“Hello World );

 PHPは echo ‘Hello World’;

 Rubyは puts “Hello World”

 とコードを書きます。

 この先色々な処理を学ぶのですが、それぞれ同じ処理を言語によって違う英単語と文法で学んでいくわけです。

 私はこの3つの言語を学んだ(PHPは途中までですが)おかげで処理について理解を深めることができましたが、正直、どんどんプログラミングを勉強を進めるのであれば、1つ勉強していればよかったと思います。

 だからきっと、両学長はあのような言い方をしたんですね。

 さすがです・・・学長。(圧倒的信者)

 もし初心者の私がこの中で1つを勧めるとすれば、Rubyです。

 Rubyが他の二つに比べ圧倒的にコードがシンプルでした。

 処理を覚えるのが大変な中、細かいコードのルールを一緒に覚えなければいけないため、Rubyが最もスムーズに学習することができました。

 あくまで初心者の私の意見ですが、初心者ならではの「挫折しにくい」「楽しく勉強できる」という視点で考えるとRubyという選択で良いと思います。

Node.jsとSQL

 これらの言語を学んだのは「Web開発コース(Node.js)」という一連のコースがProgateのおすすめコースであったので、とりあえず一通り学ぶにはこれがいいかなと軽いノリで選びました。

 正直この言語のことは上手く説明できる気がしません。

 とりあえずまだマシなSQLからです。

 SQLとは、サーバーに対し、データベースからデータを出したり更新したりするように指示を出す言語

 ・・・なんだと思います。 

 ・・・とりあえずそんな感じに理解しています。

 コード自体はそこまで複雑ではないので学習を進めること自体は難しくないのですが、これを利用するためにはNode.jsなどのサーバーサイドの言語も併用して利用する必要がある(・・・多分あるはず!)なので、そこの理解を飛ばしてSQLのコードだけ書けるというようになるため、なんだか使いこなせる気がしないまま学習を終えました。

 そして、Node.jsです。これはJavaScriptのサーバーサイドの言語だそうです。(自分で言ってて意味は分からない)

 この言語を使うことで、フレームワーク(Webアプリを作る機能を提供してくれるもの)などの様々なツールを利用できるようになります。

 詳しくは、自分の目で確かめてみて下さい。

 このNode.jsに関しては、何とか指示通りにコードを書いたものの、コード意味がよく分かっていないものもありました。

 さらに学習をする上でベースとなるコードは既に用意された状態でポイントのコードだけ書いていくことになるため、これを使いこなせる気も全くありません。

 私がProgateを勉強した中でNode.jsが最難関でした。

 ちなみに「Web開発コース」ではお買い物メモのWebアプリケーションを作る過程を踏んでいくのですが、このコースをクリアしても自分でお買い物メモのWebアプリケーションを作るのは不可能です。

 何周も何周もすればできる方もいるのかもしれませんが、初心者の方が1回で作れるようになれるようなものではありません。

 そんな厳しい体験をさせられたNode.jsとSQLでしたが、プログラミングの奥深さを少し覗く機会をもらったのだと思います。(そう思うことにしています) 

 長くなりましたが、以上が私がProgateで言語を選んだきっかけと感想です。

 これからProgateを始める方や、始めたばかりの方の参考になれば嬉しいです。

今日も1日お疲れ様でした!

明日も楽しく頑張りましょう!

それでは、また!

コメント

タイトルとURLをコピーしました