これまで使ったプログラミング教材

こんにちは！初めてカレンダーのイベントに参加させて頂きます！
プログラミングを筆頭にIT関連の勉強を始めて2年近く経ち、この度Web系自社開発の会社さんに転職致しましたので、これまで私が使った教材の所感をまとめてみたいと思います。
これからプログラミングを勉強される方やエンジニアへの転職を検討されている方の参考になればと思います。
#動画ラーニングシステム
##[paizaラーニング](https://paiza.jp/works/mypage)
コーディングスキルを測る転職サービス「paiza」が運営している動画ラーニングサービスです。
基礎を固めるのに使っていました。
##メリット
####環境構築をしなくてもすぐにプログラミングを学べられる
paizaラーニングは「環境構築不要」を売りにしています。
プログラミングは書いたコードを実行するのに必要なツールや設定を揃えなければなりませんが、これを高い壁に感じる初心者は多いと思います。
しかし、このpaizaラーニングは動画の横にコードを書いて実行出来るスペースがあるので、環境構築をせずにプログラミングを学ぶことが出来ます。動画に出てきたコードをすぐに試すことが出来るので、「実際に打つとどう動くのか」を確認することが出来ます。
又、各動画には「確認テスト」が用意されていますが、こちらも環境構築でコーディング出来ます。
####価格が他のサービスと比べて安め
動画形式のラーニングシステムは多く存在していますが、平均1000円/月くらいです。
しかし、paizaラーニングは1か月プランは1078円、6か月プランは748円/月、12か月プランだと**600円/月**です！
似た形式のprogateは980円なので、かなりコスパは良い方だと思われます。
又、これらのプランには全ての講座を受講出来るだけでなく、paizaのエンジニアに分からない所を質問することも出来ます。
この点からも、非常にコスパの良いサービスだと言えるでしょう。
##デメリット
####講座の内容が古かったり、扱っている技術に偏りがある
動画の内容ですが、講座で使っている技術のバージョンが古いため、実際に講座の通りに動かそうとすると、動かない場合があります。
例えばphpのフレームワークである「Laravel」ですが、7.0が出た時でさえ、動画で出てきたのは5.8でした。
その為、実際に7.0で動かすと、所々記述が変わっている箇所がありました。
又、講座で扱っている技術に偏りが見られます。
例えばPythonやPHPは言語そのものだけでなく、主要なフレームワークも取り扱っていますが、JavaScriptやC#は言語の基礎的な構文のみで、フレームワークなど応用的な内容は全くありませんでした。
又、Dockerなど昨今のWEB業界で多く使われている技術でさえも扱っていません。

##[Udemy](https://www.udemy.com/)
動画を購入する学習サービスです。
IT専門ではありませんが、プログラミングやサーバー構築などITの講座が基礎レベルから応用レベルのものまで幅広く充実しています。
paizaラーニングだけでは物足りない部分や応用的な内容に触れる際に使いました。
##メリット
####講座で扱っている技術が幅広い
IT専門のサービスではありませんが、講座で扱っている技術の幅は広いです。
例えばJavaScriptだと基礎的な構文から、Vue.jsやReact、Angularなどのフレームワークの講座が揃っています。
言語系だとTypeScriptやGoなど昨今注目されている言語の講座も多々あります。
又、DockerやAWS、GCPなどWEB業界で多く使われる技術の講座も多く取り揃っています。
肝心の内容ですが、初心者向きのものは環境構築からオススメのエディタから教えて貰えるものが多いため、学習の準備段階から学ぶことが出来ます。
####格安セールを多くやってくれる
上記のリンクを踏んだ方の多くは講座の高価格に驚いたでしょう。
しかし、Udemyは格安セールが3か月に1回のペースで行われます。
例えば10000円の講座は1200円まで値下げされていることはザラです。
上記のpaizaラーニングの月額600円と比べると高く感じてしまうかもしれませんが、一つの講座のカリキュラム量と、初心者向けでも応用的な部分を触れることが出来る点を考慮しても、1000円台で学ぶことが出来るのはかなりコスパが高いと思います。
##デメリット
####技術によっては英語でしか講座が無いものもある
日本語による講座も多くありますが、技術によっては英語のものでしか扱っていないものも一定数あります。
例えばPHPのフレームワークの一つである「Slim」は日本語の講座が無く、英語の講座のみでした。
学びたいものによっては、英語のスキルが必要になってくるかもしれません...。

##[ドットインストール](https://dotinstall.com/)
株式会社ドットインストールが運営している動画ラーニングサービスです。
ProgateやUdemyと並んで多くのエンジニアに使われているサービスです。
##メリット
####取り扱っている言語が幅広い
ドットインストールのレッスン数は全部で442種類あり、JavaやPHPなどのメジャーな言語はもちろん、iOSの言語であるSwift、AdaやCoffeeScriptといったマニアックな言語まで取り揃っています。
又、言語の基礎文法だけでなく、ポートフォリオの作成やFirebase、Gitなどのツールの使い方まで学ぶことが出来るので、かなり実践的な力を付けることが出来ると思います。
##デメリット
####無理に3分以内にまとめている動画が多い
ドットインストールの売りの一つに「3分以内で無理なく学習」というものがあります。
これにより外出している時や少し時間が空いた時でも気軽に学習することが出来ます。
しかしその反面、3分以内に無理に収めようとしているからか、講義の終盤がかなり駆け足になってしまっているものが多く、早口過ぎて聞き取れない部分が多かったです。私は早口の言葉を聞き取ることが苦手なので聞き取れなかった部分が多く、何回も巻き戻していました。
又「この部分はもう少し解説が欲しいな...」と部分もかなり簡単に解説して終わった部分もあるので、理解に到達するまで時間を要した部分もありました。
個人的にはプログラミング学習については隙間時間に行うのではなく、まとまった時間を確保して行った方が良いと考えているので、無理に3分に集約させているドットインストールは相性が悪かったと思いました。


#テキスト
テキストは順番に沿うスタイルではなく、コーディングする際に分からない所や忘れてしまった所が出た時に辞書替わりに使っていました。

##[よくわかるPHPの教科書(PHP7対応版)](https://www.amazon.co.jp/%E3%82%88%E3%81%8F%E3%82%8F%E3%81%8B%E3%82%8BPHP%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E3%80%90PHP7%E5%AF%BE%E5%BF%9C%E7%89%88%E3%80%91-%E3%81%9F%E3%81%AB%E3%81%90%E3%81%A1%E3%81%BE%E3%81%93%E3%81%A8/dp/4839964688/ref=sr_1_9?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=PQAP6YQSOAP&dchild=1&keywords=php+%E5%85%A5%E9%96%80&qid=1607951638&sprefix=PHP%2Caps%2C315&sr=8-9)
「PHPの入門書」と銘打っている書物ですが、PHPの環境構築から四則演算やif文などの基礎構文やDBとの連携、webアプリケーションの作成まで網羅しています。
この内容を理解出来れば、簡単なwebアプリケーションの作成をすんなり出来るかと思います。
##[PHPフレームワーク Laravel入門](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798060992/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=BLCGDEJSLLV3&dchild=1&keywords=laravel+%E5%85%A5%E9%96%80&qid=1607951863&sprefix=Larav%2Caps%2C262&sr=8-1)
PHPのフレームワークの一つであるLaravelの入門書です。
「入門書」と言っていますが、ユーザー認証やユニットテストまで載っているので、これ一冊あればLaravelを使った開発の基礎を抑えられると思います。

#これから触れるもの
以下のサービスはこれから触れていく予定のものになります。(しばらく触れた後に所感を寄稿したいと思います。)
##[MakeLearn](https://makelearn.net/)
2020年5月頃よりリリースされた、学習プラットフォームです。
上記の動画ラーニングシステムのようにチュートリアルに沿ってアプリケーションを作成するのではなく、選択したテーマに沿って要件定義、設計、製造、リリース(完成品の提出)と実務に近い形でアプリケーションの開発を行います。
完成品に用いる言語やインフラはこちらが決めることが出来る為、学んだ技術のアウトプットを実践的に行うことが出来ます。
又、提出された完成品はポートフォリオとしてまとめられるので、自分の実績になります。
基本無料ですが、一部課金要素があるので、コスト面でも問題無いかと思われます。
しかし、開発状況のレポート作成が必須であることや、実践的なものである為提出期日が定められているなど、時間の確保が必須となっている為、就業中の方にとってはハードルを感じてしまうかもしれません。(一応、未完成品でも提出すればレビューを頂けるみたいです。)

#まとめ
自分がこれまで使ったサービスや教材についてお話致しました。
エンジニアを志している方や駆け出しエンジニアの方の参考になれればと思います。
もし「これを使って勉強しています！」というものや、「これはオススメ！」というものがございましたら、コメント欄に共有をお願い致します！(･∀･)/