プログラミングやディープラーニングの勉強、何から手をつければ良い！？

#はじめに

　こんにちは！この記事が初めての投稿です！
　僕は３ヶ月ほど前からプログラミングを勉強し始めた大学生で、最近ようやくプログラミングとはどのようなものかを少しずつ把握できるようになった初心者です（笑）
　自分の備忘録も兼ねてこれから色々な記事を書こうと思うのでよろしくお願い致します！

#この記事の対象

　この記事は「プログラミングを勉強したいけど何から始めればいいかわからない！」「ディープラーニングに興味があるけど難しそう！」といった、3ヶ月前の悩める僕のような人達がターゲットです。逆に熟練者の皆さんにはアドバイスをいただけたら嬉しいです。

#手をつけやすいプログラミング言語

　プログラミングには色々な言語がありますよね！C言語、Java、JavaScript、Rなど多岐に渡ります。その中でも初心者に圧倒的にオススメなのがPythonなんです。大事なことなので太字でもう一回書きます。**Python**です。
　Pythonから始めればまずプログラミングアレルギーになることは防げるでしょう。Pythonほど学びやすさと機能性を兼ね備えた言語はないのではないかと、僕は勝手に考えています。C言語やJavaの場合ではたくさん記述しないといけないようなものがPythonにはあらかじめ備わっており、しかも少ない記述量で簡単に呼び出せる。めちゃくちゃ優れものです。決してPythonの回し者などではないですが本当に勉強しやすいと感じています。なぜならプログラミングについて「あー、なんかマトリックスの映画で緑の文字がバーって流れてる感じのやつでしょ？」ぐらいの知識しかなかった僕ですら勉強できたのですから、、、！

#オススメの勉強方法

　プログラミングやディープラーニングの勉強を始めるにあたってどんな方法で勉強し始めたらいいか、みなさんはこの記事にたどり着くまで色々調べたと思います。その感想はおそらく
　
**いや、多すぎ！！何から手をつければええんじゃ！！**


だと思います。３ヶ月前の僕がそうでした。なのでここからは、たくさんの勉強方法を試してみてたくさん挫折もした僕からみたオススメの勉強方法を書いていこうと思います。

###書店に行ってプログラミング関連の本を買う
みなさんもまず思いつくのが本なのではないでしょうか。なんといっても手っ取り早いですよね！書店に行ってアマゾンでの評価が高かった本を買う。。。まあハズレはなさそうです。
その中でも僕が読んでみて「これは良い！」と思った本を紹介します！

**①実践力を身につけるPythonの教科書**
![Pythonの教科書.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405324/de3f150f-bf99-5335-bcbe-f0ca657142df.jpeg)

　こんな感じの表紙の本です。書店のプログラミング関連の本が並んでいる中にほとんど必ずと言っていいほど置いてあります。
僕も何の知識もない状態でこの本からPythonの勉強を始めました！ある程度勉強が進んだ今になってこの本の緻密さを感じつつあります。実際に色々コードを書きながら勉強できる点が特に良かったですね！
書店にPythonの入門書はたくさんあるので、実際に軽く立ち読みしてみて「この本なら簡単そうだ！」という本を買ってみるのも良いですが、とりあえず僕からはこの本をオススメしておきます！

**②ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装**
![ディープ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405324/b9ab9e91-91b5-4ca7-0dfd-0fe8f35dd397.jpeg)

　この本はプログラミング書籍の中で一大勢力であるオライリージャパンのなかでも特に有名な本です。先ほど紹介した書籍である程度Pythonのことがわかってきたら、内容的に無理なく繋げられる本だと思います。
　少し前からどんどんと世間の関心が高まっているディープラーニング。プログラミングを勉強し始めた人たちの中にも、ディープラーニングに興味があって始めたという人はかなりの数いるんじゃないでしょうか？そんな人たちにとてもオススメです。
　レビューを見たところ初心者には若干難しいかもといったものが散見されますがそんなことはないと思います。むしろ、これから実践的な内容を勉強していくにあたってとても役立つことが豊富に書いてあるので、Pythonの勉強さえ丁寧にやっておけば無理なく読み進められると思います！


以上の2つをセットで集中的に読み進めれば１ヶ月程度である程度の知識はついてくると思います！でも、本には致命的な弱点があるのです、、、。それは
      
         
**インプットはできてもなかなかアウトプットができない！**

僕は本ってすごくいいと思うんですよ、勉強道具として。でも、インプットができてもそれで終わってしまいがちなのもまた弱点なのです。
その弱点を補強するための道具としてオススメなものがもう一つあります。それは！

##ネット講座

そう、ネット講座なんです。やっぱりプログラミングって自分で何かしら作ってみるという作業がないと身につかないと思います。ネット講座ならインプットとアウトプットが同時にできます。本当に勉強し始めの時期、そしてネット環境がないところでは本でコツコツ勉強して、ある程度わかってきたら講座でアウトプット。この方法で個人的にはすんなりと勉強が捗るようになりましたよ！中でもオススメのサイトをいくつかピップアップ！もちろん全て僕が受講したことあるものです！

**①Paizaラーニング**

　プログラミング講座の中でもPaizaラーニングはかなり有名ですね。PythonはもちろんのことC言語やJavaScriptなどの他の言語の講座もたくさんあり、勉強をどんどん進めていけるオススメのサイトです。キャラクターが無理のないスピードで解説してくれる映像授業なのでとっつきにくさは皆無でした！それぞれのコースの後には演習問題がつくのでアウトプットができること間違いなしです！スキルチェックというコーナーで腕試しもできるので実践力が自然につくのではないかと思います。
　１ヶ月1000円前後の有料コースだともちろんのこと無料コースでも受講できる講座はたくさんあるので、まずはお試しでいくつか授業を受けてみてはいかがでしょうか？？下にリンク貼っておきます！
[Paizaラーニング](https://paiza.jp)

**②Progate**

　Progateもかなり有名なサイトです。こちらは映像授業ではなくスライド形態の講座です。一つのページを見終わったら自分で次のページに進むといったもので自分で理解できたと思ったタイミングで進められるので、その点では映像授業より優れていると感じました。Progateももちろん演習問題付きです。
　こちらも有料コースと無料コースがありますが、無料コースだと少しコースが少なめなのがネックです。でも内容的には素晴らしいので、１ヶ月1000円前後のコースに登録するのも全く高い買い物ではなかったですよ！
[Progate](https://prog-8.com)

**③Codexa**

　Codexaも基本的には無料の映像授業です。無料で学習できる範囲が上記2つのサイトより広いような気がします。Pandasやmatplotlib、numpyなど、プログラミングやディープラーニングの学習において知っていたらさらに豊かになる部分を補強するのに使えます。ただ、無料なので授業の質もまあ、、、といった感じですね。内容自体は素晴らしいのですが、結構噛んだり言い間違えたりした部分をそのまま収録しちゃってるので、自分で集中して授業を聞く力・鵜呑みにしない洞察力が必要になるかと思います（笑）
[Codexa](https://www.codexa.net)

**④Udemy**

　このサイトはたくさんのネット講座を試してきた僕が行き着いたところです。上記3つのサイトで基礎的な部分を補強できたら、いよいよ何か形にするためにUdemyで学ぶ、という流れでしょうか。少なくとも僕はそれで問題なかったですし、実際に初めて何かを作るというのはとても楽しい経験ですよ！
　Udemyはディープラーニング系の講座が豊富だという印象を受けました。僕はディープラーニングに興味を持ってプログラミングを始めたので、同じ理由で始める人には特にオススメできるサイトです！
　Udemyは自分が興味のある講座を個別で買うというスタイルであり1つの講座がかなりのお値段してしまうので、キャンペーンの期間中に購入することを強く強く推奨します。通常時24000円の講座が1600円で買えちゃうんですよ！初めて見たときはビビりました（笑）講座が選び放題なので勉強してて面白いです！
[Udemy](https://www.udemy.com)

##終わりに

　いかがだったでしょうか？

　これからプログラミングの勉強を始めようとする人たちのお役に立てたなら幸いです！僕もまだまだ初心者なのでみなさんと情報共有しつつ勉強できたらいいな、なんて思っています。
　ここまで色々と書きましたが、なんだかんだ自分で何かを作る経験をしないと勉強にはならない気がします。僕も最初の頃はただひたすら写経のようにプログラミングを勉強していて、途中からすごくつまらなくなって投げ出しそうになりました。でも「アプリとか作ってみたいなあ、、、」という目標をうっすら立ててみると、それに向けて何を勉強すればいいか・効率よく勉強する方法は何かと模索することにつながり、1つアプリを作ることができました。とはいえまだ1つなので、勉強はこれからも続きます。これからプログラミングを始める人はこの記事の方法で勉強し始めた後、今度は環境構築でつまづくことがあると思います、というか絶対に！（笑）次はその環境構築で僕がつまづいたポイントなどを織り交ぜた記事を書けたらいいなと思っていますので、良かったらみてやってください。

この記事を読んでくれた皆さん、ご一読ありがとうございます！
そしてこの記事をきっかけに勉強し始めてくれた皆さん！応援しています！