【コラム】Python学習についてnoteに書いてみる
こんばんは。エンジニアの村田です。
今回はPythonを学んでみての所感をコラム的な形で書いていこうと思います。
元々経験していた言語:
VBA:がっつり。
JavaScript:GASをそこそこ。HTML,CSSを絡めてWebページ制作も少し。
Swift:簡単なアプリは練習用に作れるくらい。
Java:微々たるもの...。
こんな状態でPythonを学んでみての感想が以下の通りです。
・部品がでかい!
・変数を定義しなくて良いのは...
・つまづくポイントは辞書やクラス?
1つずつお話ししていきます。
・部品がでかい
僕の勝手に尊敬している某教育系YouTuberさんも仰っていたのですが、他の言語と比べるとコード数が少なくて同じものが実装できます。
例えばプログレスバーを実装しようとしても、VBAだとまずユーザーフォームを作って、進捗として増えていく値は〇〇だから変数は△△を代入して...、となかなか大がかりです。
Application.StatusBar を使えば簡単には出せますが、画面左下だけでそんなに目立ちませんし、中断した後も表示が残り続けてしまうことの後始末は自分でやらねばなりません。
一方Pythonではtqdmパッケージのimportと、ループするオブジェクトをtqdm()内に入れてあげれば良いだけなのでとてもシンプルです。
・変数を定義しなくて良いのは...
よく「Pythonは変数を定義しなくても良いから初心者にはラクな言語だ」と言われますが、僕はその考えに反対派です。
理由としては、変数に何が入っているのか、変数は何の型になっているのかが初学者には意識されにくい点だと考えています。
文字の連結あたりのテーマでその問題が浮き彫りになると思います。
いざ連結しようとしても、数値をstr()で囲んでいないためにエラーになり、初学者だとエラーにも上手く対応しづらく、デバッグも難しいことからなにがなんやらとなってしまい、Python学習からだんだん遠ざかるという人も何人か見てきました。
変数を定義しなくて良いのも、行数を減らせるメリットがあると思います。しかし行数は減らせても1行程度ですし、そのために可読性も落ちてしまうのはメリットと言えるのか...?と思ってしまいました。
・つまづくポイントは辞書やクラス?
多言語経験者からすれば、「辞書は連想配列、クラスは概念は習得済みなので書きい方さえわかればOK」って感じでラクにクリアできるかと思います。
しかし、初学者には辞書は書き方は何とか理解しても、いつ使えばいいのか、クラスも使い方がわからず書き方もわからない...となってしまう人が多かったです。
こちらに関しては辞書やクラスの解説記事を書こうと思っています。初学者の方でも習得できてしまえば、経験者との溝は埋められるかと思います。
以上3点述べてみました。
あくまで僕の感想や周囲の人も含めた知見ですが、今後もプログラミングやその他のコンテンツも増やしていこうと思います。
ここまで読んでいただき、ありがとうございました。