TypeScript、 JavaScript、SQLが勉強できるサイト「Execute Program」を紹介する

# Execute Programとは
https://www.executeprogram.com/

Gary Bernhardt氏が作ったプログラミング学習サービス。
彼は「[Destroy All Software](https://www.destroyallsoftware.com/screencasts)」を運営しており、以下の登壇でのトークが有名みたい。
https://www.destroyallsoftware.com/talks/boundaries

SQL、JavaScript、TypeScriptが基礎から応用まで学べる。

[Progate](https://prog-8.com/)みたいに、解説を読む→コードを書くという流れで学習が進む。

[Susutainable Web Development With Ruby on Rails](https://www.amazon.co.jp/Sustainable-Web-Development-Ruby-Rails/dp/0990702847)内でSQLが学べるサイトとして紹介されていた。

金額は**月額39ドル**(円安ェ、、、)

16レッスン無料なので、気になった方は試しにやってみてください。

# こういう人におすすめ

- SQLを手を動かしながら勉強できるサイトを探していた人
- なんとなくJavaScript、TypeScriptを使えていたが、もう一度ちゃんと勉強し直してみたいと思っていた人
- 文法書を読むだけだと頭に残らなくてツラい人
- 「文法は全て覚えようとするのではなく、頭にインデックスを張るように読め」と言われるものの、頭に張ったはずのインデックスすら記憶から抜け落ちるのに悩んでいた人
- プログラミングと同時に英語も勉強したいと思っていた人

# 特徴

## 対話的な学習サービス
「対話的」というのは解説や説明を読んだ後に、例題を解いていくスタイルの教材のことである。似たようなサービスで代表的なのがProgateだ。

Progateの場合だと、解説を読んだ後にコードを書く。

Execute Programは解説を読んだ後に

- お題に即したコードを書く問題
例)
![スクリーンショット 2022-08-20 0.43.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/942599/17681661-8976-a5de-21ea-d9d82286ab7b.png)

- 例題のコードの出力結果を予測する問題
例)
![スクリーンショット 2022-08-20 0.33.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/942599/82fdfd3d-5046-34d9-d3b8-e041083c0687.png)


の2つが出題される。

割合としては、コードを書く問題が1割、出力を予測する問題が9割くらい。

難易度は、非常に易しい。

後述するように、**このサイトは文法を脳に定着させることを主眼に置いている学習サイト**であるため、学習している内容をしっかりと理解しているかを確認するような問題が出る。

## 文法をしっかり頭に定着させるのが目的のため、復習が全体の10パーセントを占める

Execute Programで最も特徴的なのが、**1日にやれる問題数に制限がある**ことだ。各パートで規定の問題数を解いたら、次の日まで新しい問題に進むボタンがロックされる。

そして、ロックが解除されるとreview(復習)として、過去にやった範囲から複数の問題が出題され、それを解いてからでないと新しい範囲に進めない。

「月額のサービスだから1日で制覇されると商売にならないのか？」とも思ったのだが、サイト内には以下のように書かれている。

> **You can choose to go faster, but there's a trade-off**.
> 
> Going faster makes it easier to get in over your head by cramming lessons without fully understanding them. You'll also get proportionally more reviews each day, which may feel like a burden. *We only recommend going faster if you're an experienced developer or are learning in a group providing mutual support.*
> 

このサイトはしっかりと文法を覚えることを目標としている。そのために復習を通して繰り返し学習していく。

## 学習範囲が広くて、内容も濃い(?)

なんか英語だし月額高いし、progateでよくね？と思った方もいるかもしれない。

ただ、Execute Programは取り扱っている文法範囲がとても広い。

普通にベーシックな文法書くらいの網羅性があると思う。

内容の濃さに関しては、何をもって「濃い」と判定するかがわからないので答えにくいのだが、プログラマである Bernhardt氏の経験をもとにして作ってあるとのことで割と深く学べそう。

### やってみた感想
「Modern JavaScript」はとてもわかりやすかった。SetやMap、ジェネレーターなどよくわかっていなかった内容を理解するきっかけになったと思う。thisとprototypeの話が取り扱われていないものの、それ以外は市販の参考書と同じくらいの網羅性がある気がする。
Execute Programは重要なところをピックアップしてわかりやすく説明してくれるので勉強しやすかった（レッスンによっては、オライリー JavaScriptのような分厚い参考書よりも詳しく説明してくれているところもある）。

SQLに関しては「スッキリSQL」などでSQLを書く練習をした人にとってはかなり簡単な内容となっているので少し物足りないかもしれない。ただ、基本的な文法をおさらいしたい人や、SQLインジェクション、N+1問題を勉強したい人にはおすすめできる。

## 大体１ヶ月以内でやり切れそう

学習しすぎてロックされても、一番長いコースで12日で終了できるようなので、全集中すれば全てのコースを1ヶ月で終えられそう

（自分の場合はかなりゆっくりやっているので普通に時間がかかってしまっている、、、）

また、例えば「SQL」がロックされても、他の「Modern JavaScript」など他のコースはロックされないので、やろうと思えば1日に割と多くの問題を解くことができる。

# 見た目が質素

Progateはかわいい忍者犬が出てきたり、わかりやすい図がでてきて視覚的に理解しすい。

一方execute programは図が全くでてこない。説明は英文のみとなっている。

SQLのテーブル結合なんかは図があったらもっと初心者に優しいなあと思った。

# 最後に

月額が高いが、対話的なシステムなので不思議と頭に入ってきやすい上に、定期的に復習の時間が設けられているので学習した内容がしっかり頭に残っている気がする。
無料レッスンをやってみて良さそうなら是非ともやってみてほしい。