Pythonはバージョン2の頃から書籍を購入してちょっと勉強して便利ツールを作ってみたりしたのですが、ブランクが空いて忘れてしまって、また勉強し直して便利ツールを作って、またブランクが空いて忘れてしまってという感じで無駄を繰り返しています。
この傾向は私がプログラマーでは無いので仕方ないのですが、PHPやJavascriptでも同様で、基本+α程度まではできるようになって、その時に作りたいものを作って満足し、ブランクが空いて忘れてしまうということの繰り返しです。
プログラマーでは無いしプログラミングが趣味というわけでも無いので、身体に身につくまで繰り返して実践していないのが原因だと思われます。
また作りたいものができると初級+程度から学習しなおして作るということをやっている訳ですが、流石にこの傾向は無駄だなと思い、ちょっと作りたいものの規模を大きく設定して長期的に取り組んでみようと思っています。
いまやPythonもバージョン3系が主流ですし色々な拡張ライブラリも充実しているのでそれらを学ぶと色々なことができるようになっているのは嬉しいことです。そこで最近やってきたPython学習のメモ的なことを記しておくことにします。
私自身まだまだこれからですが、Pythonをこれから学習しようと言う人の参考になれば幸いです。いきなり無理をする必要は無いと思いますので楽しみながら勉強するのが一番ですね。プログラミングを楽しめないと長続きしないと思います。
文法や基礎を学ぶにはもはやオンライン学習必須
私はドットインストールが世に出てきた頃からお世話になっていた世代なのですが、プログラマーでは無いことから必要な部分のつまみ食い(作りたいものを作ったら終わり)的なことを繰り返していることは先に述べた通りです。
Pythonに限らず、Visual Basic、Visual C#、Javascript、PHP、などの書籍も買って読みましたが、作りたいものが作れてしまうとそれで終えてしまうのが私のダメなところです。
ドットインストールはITスキルの動画レッスンの先駆けだったと思いますが、最近ではProgateなども使いやすくて初学者にはオススメです。レッスン動画作成のノウハウもコンテンツ提供者側がどんどん進化させているので、下手に書籍を購入するよりも動画でレッスンを受けた方が現行の知識を得られるという意味ではオススメです。もちろん書籍の良さもありますけどね。
まずはおとなしく上記リンク先の様なオンラインレッスン(無料)を受講して、基礎知識を理解することをオススメします。レッスン1つずつは要素が少ないので大抵の人は理解できると思います。レッスン環境をWebブラウザのみあればオンラインで行えるプロゲートの方がオススメかな?と個人的には思います。
ここで注意点として、レッスン動画はあくまでも基礎知識を得るための手段に過ぎず、ここで暗記する必要は無いという事です。忘れたら再度見れば良い事ですし、覚えたことだけで目的とするプログラミングができそうだと思ったらその段階で実践に行ってみるのも手です。
そこで躓いたらまた戻って来て再学習すると良いです。そうしないと楽しめなくて結果が得られないのでモチベーションを維持出来ません。100点取れるまで先に進めないって人はなかなかプログラミングの面白さを体感出来ません。学校の勉強(テスト)とは違いますからね。ビジネスの現場では学習途中でも力技で結果につなげるとか、ツギハギでも結果を出すというのが案外重要で、そういう進め方でも達成感はあります。
いよいよ実践(Google Colaboratory)
オススメはJupyter NotebookがベースとなっているGoogleコラボラトリー(コラボレイトリー)です。これはGoogleアカウントがあればWebブラウザ上でGoogleのサーバーを使ってPythonプログラムを実行出来ます。
Google Driveとの連携が原則となっている仕様であり、外部ファイルの読み込み等で若干特有の知識が必要になりますが、そういうノウハウというか解説はYouTubeに沢山動画があるので、我慢してそういうレッスンを見て要点を掴んだら自分なりに実践してみることです。
個人的には、Webスクレイピングでネット上にある情報を取ってきて、必要な情報のみをスクレイピング(抽出)するのがニーズに合っています。Webスクレイピングがおそらく一番わかりやすくて満足度の高いPythonプログラミングだと思います。テキスト情報を抽出したり、画像URLを抽出して一気にダウンロード(保存)するとかも出来ます。
メリットは、自分のPC上に環境構築する必要が無いことと、Jupyter Notebookの機能によるメモ書き、ブロック毎のステップ実行が手軽にできることです。ある程度Jupyter Notebook系のインターフェースでブロック実行させて全体の動きを把握できるようになるまではこの環境で十分だと思います。
教えてくれる人(先生)等がいる場合は、簡単にプロジェクトファイルを共有して見てもらえるので、教える側も教わる側もハードルが低いです。
ハイスペックなGoogleサーバー上で動いているので処理能力は申し分無いですが、連続演算処理に時間制限があるので、長時間に及ぶ解析やAI学習にはちょっと厳しいものがあります。もっともそういうプログラムが作れるようになったら環境をローカルに作る段階だと思うので道具は使い方次第だと割り切りが必要ですね。それにしても便利ですよこれは。
最終的にはローカルなPython開発環境
Google Colaboratoryの制限に縛られたくない場合や、より高度な事、複雑な開発環境が必要になった場合はローカルに環境を整える必要があります。Pythonをベースに便利な拡張を追加していけば、自分好みにしっくり来る開発環境が作れます。
また違うバージョンのPythonを使い分けたり、使いやすいコードエディタを任意に選んで使えるなど、UI的な部分、コードの補完機能など色々な視点で便利なものを選べます。
人から教わったり、複数名で開発する部分で、トレードオフで別の知識(Gitなどを併用)が必要になってくるのでハードルは上がりますが、中級者レベルになるとどうしてもここは避けて通れないんじゃないかなと思います。もちろん予備知識を追加してやれば不便は解決できるのでGoogle Colaboratoryからステップアップするには通らなくてはならない道だと思います。
おまけ:オススメレッスン動画
個人的に、YouTubeでPythonプログラミングの解説講座をしてくれているお気に入りレッスンチャンネルを紹介しておきます。人それぞれ理解のツボが違うと思うので足がかりに自分に合う解説をしてくれる配信者を探すと良いでしょう。Pythonに関するレッスン動画は下記以外にも色々あります。
いまにゅのプログラミング塾
いまにゅさんのレッスンは、じっくり理解を深めたい人に向いていると思います。若干寄り道気味な手順を見せてくれますが、そういうところが実際のコーディングには欠かせない手順だったりするので、プログラミングってこういう感じで確認しながらコーディングしていくんだなというのが参考になります。ただ、全体的に動画一本の時間が長目で色々な要素を散りばめているので、過去に観た手法をもう一度観たい時にどの動画に有ったか探すのが大変だったりします。じっくり(一時停止しながら)理解を深めてモノにしていった方が手戻りがなくて無駄を省けると思います。後でやってみようと思うと後から探すのが大変。
直也テック
直也テックさんのレッスンは、お題に興味があったら真似して実践してみると良いですね。逆に言えばお題に興味がなかったら理解は進まないと思います。今後も面白くて興味を引くお題をレッスン動画にしてくれるのを期待したいです。
解説書
なお、書籍を脇に置いてじっくり進めたい人もいると思いますので、自分に合う解説書を探してみて下さい。勉強の仕方は人それぞれだと思います。社会人になってから勉強の楽しさを知った私としては押し付けられる学校の勉強なんかより自発的にする勉強の方が何倍も楽しくて身につきますね。
スクレイピング・ハッキング・ラボ Pythonで自動化する未来型生活 (技術の泉シリーズ(NextPublishing))
コメント