プログラミング言語の中でPythonに今はまっています。
その理由は
-ライブラリが豊富で様々な用途に使う際に環境設定があまり必要でない。
-機械学習に向いているのでデータを蓄積させて分析するという自分の用途にマッチしている。
(株式投資やFXはもちろん、経済産業省、厚生労働省、財務省など、行政機関が出すデータを解析しやすい)
-記述する際に「インテンド4つ下げ」などのルールがあるので他人が書いたコードも見やすい。
-それに付随して他人のコードから学ぶべき要点を把握しやすい。
といったところです。
Pythonは機械学習やディープラーニングにも用いられることから難しいと思われがちですが、
実はそうではなく、むしろプログラミング言語初心者が手をつけるのに最適な言語であることが分かってきました。
(色々とプログラミング言語関連の本を読んでいると「最初に学ぶのに最適な言語」としてPythonは取り上げられることが多いのも、うなづけます)
そんな私がPythonに興味を持ち、0から始めたのを記しておくのは
これから同様の状態から学ばれる方にとっても一定の価値があるのではないかと感じた為です。
前置きが長くなり失礼しました。それでは始めてきます。
Pythonの歩き方
学ぶといっても手法は色々あります。
「オフライン(対面)での学習」→使っていないので、メリット、デメリットをあげるという程度にひかえておきます。
「オンラインでの学習」
「書籍」
順にメリットデメリットを考えてみましょう。
「オフライン(対面)での学習」
これはいわゆる教室に通うこともあれば、Skypeなどのオンラインであるが対面つまり1:1で受講できるものも含んでいることに注意して下さい。
(メリット)
講師がその場にいるので疑問がわけばすぐに質問し、解消できる。
(デメリット)
どうしても対面という性質上、高額になりがちである。
(サービス)
良さそうなサービスが色々とあり、サイト名も承知していますが、
私は「オンラインでの学習」+「書籍」でフォローが効率的かつお金もかからずに学習できると感じたため、
こちらは体験しておらず、正直分からないです。
よって言及は避けたいと思います。
「オンライン学習」
ここでオンライン学習とはドットインストール、Aidemyなどネットブラウザを通じて学習できるものをさします。
(メリット)
場所を選ばずどこでも受講できる。
講師1:受講生N の場合が多いので受講料が安くすむ(無料の場合も多い)
(デメリット)
一方通行になりがちなので質問がし辛い
(おすすめのサービス)
Aidemy
https://aidemy.net/
Pythonや機械学習系に特化したオンライン学習サービス。
(基礎的な部分が無料でそれ以上学ぶ場合には有料)
udemy
https://www.udemy.com/
シリコンバレー生まれのオンライン動画サービス。有料。
割引率はいつも多めになっているので「お得だ!」と思って飛びつかないようにしたいw
コースの評価を見れば分かりますが、評価の良いサービスも多くサービス内容も有料なだけはあるなと思えるものが多いです。
参考までに。私は酒井さんの下記講座を受講しましたが、初心者でも環境構築から説明してくれているのでスムーズに理解していける作りになっています。
ドットインストール
https://dotinstall.com/
こちらではPython3はPremuumプランとして有料になっており、私は試したことがありません。
ただし、それ以外のHTML,CSS,JavaScriptなどの基礎部分は無料で受講できるのでプログラミング言語初心者で一度どのようなものかを見てみたいという人にはオススメです。
私が一番最初にプログラミング言語を学ぶ際に使ったのもこちらのサイト。
Paiza
https://paiza.jp/guide/career
プログラマーの就職や転職用サイトなのだが、それを目的にしなくても登録すればプログラミング言語が無料で学べるのが特徴。(有料もあり)
ちなみに私はPaizaを使い始めたばかりなのですが、いわゆる萌える系(?)、表現が適切なのか分からないが可愛らしい女の子のキャラが出てくるので、そういうのが好きな人はこちらが向いているかもしれないですw
サービス面から考えると Python , C言語 ,C# ,JaveScriptが完全無料となっていて、
しかも実際に手を動かすことで進めていくので習得できるスピードも早くなる作りになっています。
Progate
https://prog-8.com/
イラスト中心で実際にコードを書いていくタイプなので実践寄りです。
内容も若干高度なので、入り口としては難しく感じるかもしれません。
ただ、理解が進んできてからProgateに取り組むと、プロダクト制作のスピードは向上します。
無料で各言語のさわり部分を体験出来るので、それで相性が良いと思えば有料コースへ切り替えればよいと思います。
Coursera
https://www.coursera.org/
こちらはミシガン大学、カルフォルニア大学、プリンストン大学などアメリカの一流大学や
Googleなどの有名企業の講義がそのまま受けられる画期的なシステムです。
私がブロックチェーンを学ぶ際に使った
仮想通貨の教科書(日経BP社)
もCourseraの「Bitcoin and Cryptocurrency Technologies」と完全に連動している(というか著者が喋っているw)ので英語がわかる人はそちらも活用してみると良いかと。
基本的には無料であり、
修了証をもらう場合には49$程度の費用がかかるが
LinkedInに資格として登録できるのが大きなメリットです。
グローバルに活躍したいと思っている人にとってはJob Chanceを得るにも一役買うことでしょう。
「書籍」
(メリット)
書籍になるぐらいなので情報源が確実で、正確な知識を入手できる
(デメリット)
プログラミング言語という性質上、手を動かして試行錯誤して分かることが多い。
その為、書籍では学べるものはあまりないというのが実感である。
使うならば上記のオンラインでの学習と組み合わせるのが吉。
(おすすめの書籍)
私はオンラインでの学習にメリットを感じていたのであまり書籍について語れるものはありません。
しかし10冊ぐらい斜め読みした中でこれはいいと思ったのもがあったので紹介させてもらいます。
(これは結果的に実際に購入したので下記にレビューをしています。)
実践力を身につける Pythonの教科書(マイナビ出版 著者:クジラ飛行机)
こちらの書籍は何が分かりやすくておすすめかというと、
コードだけでは分かりにくいプログラミング言語を
ときには
順を追った丁寧な文章で、
またときには
直感的な図表
にて説明してくれている。
そのバランスが非常に適切なのです。
初心者がつまづきやすくなるところをよく分かっておられて、その部分に説明を注力しているのが感じられます。
全くの初心者から始めるなら間違いなくおすすめできる書籍です。
なお、他の書籍はざっと立ち読みしたものの、購入していないから言及を控えることとします。
これが一番分かりやすいと思ったから購入した、という単純な理由に基づきます。
#おわりに
本日はPythonの学習についてまとめてみました。
自分が学習した過程もある程度網羅できたので満足w
プログラミング言語をやってみて思うのは思ったよりハードルは高くないということです。
もちろん個人の資質は関係していると思います。
(それは私が頭がいいといっている訳では決してなくw、集中して物事に取り組めるか、細かいことに気付けるか、という資質です。)
しかし「適切な学習ルート」で一定以上時間をかければ、
自分の臨んだプロダクトができるものと信じています。
私が実践から学んだ**「適切なルート」**についてもお話しておきましょう。
Pythonに絞るなら
「udemy」 or「 Paiza 」+「 実践力を身につける Pythonの教科書」で分からないところを補完
→あとは Python を実際動かしてみて、どんどんプロダクトを作っていくこと。
分からなければネット情報、書籍そしてPython3.6.5 公式ドキュメントを参考にしましょう。
https://docs.python.jp/3/
ドキュメントはどの言語を学ぶ際にも大事になってきます。
プログラマーはプログラミング言語をコーディングする際はドキュメントを参照していますので
どの言語を学ぶときにもまずチェックしておきましょう。
(辞書的存在です。迷ったときに参照する感じ)
ネット情報ではプログラミングに関しての知識共有ができる、こちらのQiita(キータ)がまさにおすすめ。
QiitaでQiitaをおすすめしているメタな説明になってますねw
分からない状態を書き込めば何らかの答えが載っているはず。
(多くの人は同じ箇所でつまづくケースが多いため)
GitHubも共有知といった感じがいいですね。(読み方はギットハブです)
リポジトリの「Issues」にコードを公開すればレビューを貰えたりします。
私は、それをTwitterにあげることでレビューを受けやすくしています。
(もちろん公開できる範囲で)
そんな感じで学習しました!参考になれば幸いです。