プログラミング初心者向け、Python の活用のすゝめ

Posted on 2024年03月04日 (月) in 一般

アイキャッチ

目次

はじめに

「Python の文法を習ったけど知識だけで身にならない」

「プログラミングをどう活用すればいいのかピンとこない」

「AI・統計とかやってみたけど、学んだことをどう活かせばいいか分からない」

という人は結構いると思います。
(私も 3 つ目のタイプでした)

私も経済分析を勉強する過程で Python(と R)を学びましたが、ある程度勉強した段階で「実際にどう活用できるのか?」が分からなくなり、モチベーションを落としてしまいした。

Python は比較的記法が簡単で、汎用性の高さや AI と相性がいいなど間口が広い言語です。

そのため初めての言語が Python という人も多く、その分上記の 3 パターンが理由で躓く確率も低くはないと思います。

私は自分の経験からこれらのモチベーション低下に対して、

「実際に活用できる場面を作ることで、より深く理解しモチベーションを維持する」

という対策がオススメだと考えます。

そのためには実際に役立つツールの開発・公開が一番であり、今回はそのやり方を書いていこうと思います。

ツール開発の方法

Python で初心者がツールを開発する際、主に 3 つの選択肢をおすすめします。

  1. パソコンソフトの開発

  2. Web アプリの開発

これらの選択肢は、Python で何をやりたいか?という「目的」によってオススメが変わります。

しかしどの選択肢を選ぶにせよ、

「Python の文法を最低限知る(覚えなくても良い)」

「Python を実行できる環境構築」

の 2 つを行う必要があります。

また開発していると分からないことがたくさん出ると思いますが、そういう時は以下の順序で調べてみてください

  1. 普通に Google 検索で他の誰かが書いていないか確認

  2. なければ ChatGPT などにきいて、実行したり別で調べて有効性を確認する

  3. それでも上手くいかない時は、英語で調べて Googe 翻訳などを駆使しながら頑張る

大体のことはこの順序で解決します。

こうして準備が完了したら、目的を元にどちらの選択肢を選ぶか決めてください。

パソコンソフトの開発・公開

この選択肢は、主に

  • 目的は特にないが Python を身につけたい

  • Python を使って実際に日常生活で使える物を作りたい

という人向けの方法です。

準備

パソコンソフトを作るために以下のものが必要です。

  • Python 本体のインストール

  • コードエディタ(VScode など)の導入

  • Vnev の使い方の習得

GoogleColab では作れないため、必ず手元のパソコンに Python 環境を用意してください。

パソコンソフトを作る際に、「フレームワーク」と呼ばれる物を使うことで、コマンドではなくウィンドウからマウスで操作できるようなソフトを作ることができます。

Python で使えるフレームワークは沢山ありますが、以下の 2 つを特におすすめします。

おすすめフレームワーク

tkinter

tkinter は Python にはじめから入っており、別途導入は必要なりません。

ネットで最も情報量が多いため調べやすく、また書き方もシンプルであるため、一つしか機能がないようなシンプルなツールを作るときにおすすめです。

非常に簡単に使えますが、見た目が古く、機能を増やすとコードが分かりづらくなるという欠点があります。

Flet

Flet は Python にライブラリとして後から導入する必要があります。

新し目なためまだネットに情報が少なくいですが、公式ドキュメントが豊富であるため意外となんとかなります。

こちらも意外と書き方がシンプルであり、複数の機能を持つようなソフトの開発でもコードが分かりづらくなりにくいです。

また tkinter と異なりパソコン以外でも、web やスマホのアプリにも使うことができ、見た目も非常に優れているため汎用性が非常に高いです。

見た目や機能性などを重視するならこちらがおすすめです。

作る際のおすすめ

準備や使うフレームワークについて軽く調べた後、どのように実際にツールを作るのかを解説します。

作るツールは以下の条件で考えると良いと思います。

  • シンプルで簡潔(立派なソフトを目指さない)

  • 自分自身がパソコンで欲しい機能(他の人の需要は考えない)

例として、私は「文字数カウント」ソフトを作りました。

とても立派なものではなく、カウントしたいテキストをコピーしてボタンを押すと文字数・改行数・空白数 を表示するだけのソフトで、10 行くらいしか書いてません。

たったこれだけのソフトですが、当時の私はちょうどこのようなソフトが欲しかったので作りました。

こんように明らかに他人の需要がなくても、自分がしばらくは使い続けるようなソフトを目指すと良いと思います。

作成後

ソフトを作って実際に自分が使うようになったら、2 つのことを行います。

1 つ目は日々の改良です。

使っていると必ずどこかに不満や改良点が増えていくと思います。

そうしたものを、極力感覚を開けないで改良し続けてください。

特に初心者の時は、プログラミングの感覚を開けてしまうと、書き方をすぐ忘れてしまいがちです。

数行でもいいので毎日書くことで、ただ知識として知っているのではなく、感覚として理解できるようなります。

2 つ目のやることは、コードと一緒にソフトを公開することです。

初心者丸出しのコードに、革新的ではない技術で恥ずかしいと思いますが、私は公開することをおすすめします。

なぜならば、ただ自分のために作るだけでは得られない経験を積めるからです。

コードごとソフトを公開すると、他人が使用する場合の目線をするようになったり、バグに対して敏感になったりなど視野が広がります。

また公開に使う GitHub についても理解が進み、GitHub の持つ便利な機能を使って知ることもできます。

このように公開することでしか得られない経験を獲得できるため、公開をすることを強くおすすめします。

それにちょっと公開しただけのソフトは誰にも見られない(実体験)なので、そこまで心配を必要ありません。

Web アプリの開発・公開

この選択肢は、主に

  • Python を使って他人が簡単に使える物を作りたい

  • 統計分析や簡単な AI を実際に活用したツールを作りたい

  • Python で作ったものの成果物を発表・公開したい

という人向けの方法です。

準備

必要なものはパソコンソフトと同じです。

おすすめフレームワーク

Streamlit

このライブラリを強くおすすめします。

なぜならばアプリの作成が容易なだけでなく、公開もほぼ自動で行えるからです。

基本的に Web アプリは慣れるまで公開が非常に大変ですが、Streamlit なら誰でも簡単に公開することができます。

また文法もシンプルで、ネットでの記事も多いため初心者はこれ一択だと思います。

作る際のオススメ

基本的にパソコンソフトと同じですが、Web アプリの場合は「端末を選ばずに気軽に使える」という利点を考慮に入れて作ることをおすすめします。

また Streamlit は統計分析や軽めの AI と非常に相性がよいように設計されてるため、これらの知識を生かしたアプリを作るのも良いと思います。

私は実際に大学のゼミで株式投資の分析用のアプリを作成・公開・実演するためにこのライブラリを使用しました。

Streamlit は見た目が良く端末を選ばずにすぐに使えるため、良い印象になりやすいです。

実際私が株式投資分析についての成果の発表の際に、このアプリを使って実際に分析を実演して体験してもらうと教授やゼミ生からの非常に評判が良かったです。

このように目的を持って他の人に使ってもらいたいなら、公開しても他人に使ってもらうのが難しいパソコンソフトよりも、Web アプリのほうが適しています。

作成後

基本的にパソコンソフトと同じですが、Web アプリは他人も使いやすいため公開したものを積極的に使ってもらうのをおすすめします。

Streamlit は Streamlit cloud というサービスを用いることで、無料で簡単に公開・アップデートできるので、頻繁に改良しつつモチベーションの向上につなげてください。

終わりに

私はプログラミングを初めて習った際に、何も理解できないまま言われるままになんとなく使っていました。

しかし目的を持って自分で使うツールを作ってから、プログラミングについての理解を実感することができ、またモチベーションが劇的に上がりました。

そのため私はこの「実際に自分が使うツールを作る」というやり方をおすすめします。

ついでに私が初めて自分で作ったソフトである「文字数カウント」を元に機能を最終形態メガドライブのように積み重ねたのが「Yukis Army knife」です。

現在、生成 AI の発達でプログラミングが不要になると言われていますが、私としてはプログラミングの知識が不要になることは当分ないと思います。

なぜなら人間は求める仕様を自然言語で完璧に言語化することができないからです。

どこかでプログラミングの知識や経験がなければ説明しづらい修正をすることができませんし、同じ道具(AI)を使うなら詳しいほうが上手く使えるに決まっています。

なので生成 AI に使われるのではなく、生成 AI を使うためにプログラミングを始めてみるのをおすすめします。