Python学習のきっかけ
Pythonの導入?
そうですね、Pythonの導入もやりたいですけれども。
その声の針は今、録音ボタンを押したら?
はい、目の前で。
今回は、Pythonを学ぼうということで、
Pythonのインストールもやりたいんですけど、
インストールしているところを録音しても仕方がないので。
インストールしている間に話を聞くっていうのは無理ですか?
それでもいいんだけど、
改めて、今回Pythonを勉強したいと思ったきっかけとか、
ここで聞いておきたいなと思ったんですけど。
私もそんなの語れないのですけれど。
Pythonを最初に知ったのはどこですか?
知っていたのはどこですか?
だって、文系じゃないですか。
自分は大学でプログラミングのサークルに入っていたから、
もちろん知っていますけど、
あなたは教育福祉の方の学部で、
そういうサークルにも入っておらず。
はい。
ど文系ど文系な人生を歩んできましたよ。
そこからPythonを知るところもそうだし、
Pythonをやってみようかなと思うっていうところにも
ちょっとハードルがあるじゃないですか。
なんか、原宅さんがやっていて、
そんなのがあるんだねって思ったのが一つ。
でも、より興味を持ったのは、
難しいプログラミングなんだろうって、
難しいけど、面白そうだぞっていう気持ちが漠然とあって、
はいはいはい。
それは、なんだろう、
自分がすごく頭がぐちゃぐちゃになる人というか、
常に頭の中がぐちゃぐちゃで生きている人だから、
それを整理していくっていう考え方が強いのかなって思ったときに、
そういう考え方とか、そういう書き方とかの仕組みを知りたいみたいになって、
それでかな。
なるほど。
確かにプログラミングの世界は完全にロジックの世界だから、
プログラミングが間違ってエラーをはかれたら、
それを書いている人間が絶対悪いわけですよ。
コンピューターの側がちょっと手違いでみたいなことになるわけよっていう世界だから、
そういうところで論理的に書いて、バグのない仕組みを作るっていうのは、
もちろん頭の整理にもなるし、すごくいいと思います。
苦手なんでね、論理的みたいなのは苦手なので。
全然そうは思わないけどね、自分は。
そういうのを練習してみたい気持ちがあるかな。
自分は前から何度かお勧めしたことあると思うんだけど、
もちろん確かに現実世界のいろいろな問題の中で頭がごちゃごちゃになるっていうのは、
自分もそうだし、あなたもそうかもしれないけど、
論理のそういう世界、例えば数学の世界だったりとかさ、
そういうところで論理的に思考をするっていうのはすごい得意な人だと思うし、
だからやっぱりぜひやってみてほしいなと自分も思っていたので、
今回ちょっとやってもらえるということで、自分も楽しみにしてますという、そんな感じです。
プログラミングでできること
Pythonで始める前に言われていたのは、
Pythonで何ができるの?みたいなところを聞きたいみたいな話だったんですけど、
結論言うと、大体のことはできる。
プログラミングで作られたものって、どういうものをイメージします?
プログラミングといえばとか。
プログラミングといえば、研究者の人とかが研究資料を管理する。
研究資料を管理する?
この論文、この論文、例えば検索したら、
文献リストとか、
なんかフィルターかけたり、相当で並び替えたり、
マンションとかがあるけど、それのもっと個人のニーズに寄せたような、
文献リストが欲しい、メモが欲しい、それを紐付けたい、タグとかなんとかで、
っていう研究をやっていくときの、
メモ、文献、資料をガサッと集めとくみたいな。
だいぶ具体的なイメージやね。
もちろんそれもプログラミングでできたものだけど、
もっと単純に言えば、スマホに入っているLINEでも、
さっき言ってたNotionでも、
さっき食べたマッチ屋の券売機とか。
そうそう、今モニタータッチして触ってやれるやつありますけど、
それも全部プログラミングでできてるわけですよ。
それで言うと、今言ってくれたやつは、今のところ増田が思い描く、
私が欲しいプログラムみたいな感じになるんですか?
そういうわけではない?
えー、なんだろうな。
論理的とか、つなげるとか、考えるのが苦手だから、
そこを助けてくれるツールが欲しい。
それこそ、それをもっと研究とかの人がそれをやるのにきっと、
文献リストとか、タグ付けとか、
関係性をつなげられるメモとかを作ってるんだろうし、
私みたいなのは、
自分のことを変えりみるときとか、
やりたいこととか、
生活をしていく、暮らしていくときに、
もうちょっと万全とじゃなくて、考えられるといいなっていう気持ちがあって、
それを助けてくれるツールが欲しい。
具体的にどういうものが欲しいのか?
どういうものを自分は必要としているのか?
っていうところがまだ決められていない。
定義がわからないから、ぼんやりしている。
それはすごいわかる。
要するに外部足場というか、
自分の頭の中のメモリだけで全部考えるんじゃなくて、
すでにやっているものだったら、
手書きのノートであったりとか、
ノーションみたいなものであったり、
ただそこでうまく管理しきれなかったりしづらい部分みたいなのを、
自分で作ったアプリケーションツールとかで補助して、
うまく考えられるようになったらいいなっていう感じ。
自分は手書きのノートでそれをずっとやってきていて、
何冊書いたかなっていうくらい書いているけど、
ただ書いているだけになっていて、
それはそれで何かしらの効能はあると思う。
ジャーナリングっていうときに、
ただ別に何も考えないでいいから書くだけでええねんでって言っている人もいる。
それにもまたそれの効果があるって言っている人もいるから、
それが悪いわけじゃないけど、
自分はもうちょっと書いたこととか、
もやもやしていることとかを書いて終わりなときもいいけど、
書いて終わりにしたくないときとか、
書いて終わりにしたくない内容があるから、
そこをどうしたらいいのかな、
こういう行動をしてみようかな、
行動するには例えば習慣とかね、
スモールステップだったりとかどうしたらいいだろうっていうのを助けてほしくて、
そうなったときに自分はプログラミングとかでそういうアプリケーションとかだったり、
AIの力だったりっていうのが必要なのかもしれないなと思う。
プログラミング学習の壁と楽しさ
めちゃくちゃいい話。やっぱりプログラミングをやるっていう上で、
やっぱり一番大事なことかもしれないね。
結局何がやりたいとか何かがやりたいとかって目的があってプログラミングをやるんだけど、
ここってすっごいそのジレンマがあって、
プログラミングができている人じゃないと自分の作りたいものがわからないっていう。
それはそう。だから私は何ができるのか教えてって言うと。
一方で何ができるかっていうのがわからないと目的を見出すことができないよね。
なんか全然関係ない。
だってパイソン語を勉強したら北海道までひとっ飛びかなみたいなのってちょっと違うやん。
でもそれ極端な話で言うと、そういう状態の人が目的を見出せない以上、
初めての人がプログラミングをやろうってなるっていうところにはやっぱり壁が一つ大きいのがあって、
そこをなんとなく周りの人とか関わる人の中でプログラミングってこんな感じなのかな、
こういうことができるのかなっていうのを持っているとだんだんそういうのができるっていう話で、
そういうのってやっぱりプログラミングを勉強していく中でわかっていく部分っていうのもあるから、
結構プログラミングってとにかく最初は黙ってやれみたいなところもちょっとあったりするんだけど、
そういうところがやっぱりクリアできているというか、ちゃんと理解ができているっていう感じがすごいしたっていうのが一つと、
もう一つ今言ってきた自分の考えたことみたいなやつをしっかりとストックして今後考えることにつなげていきたいみたいな、
そういうところは自分もすごい考えてた部分、考えてる部分で、
今世の中的に言うと狭いそういう知的生産とかそっちの世界ではセカンドブレインとか言われたりする。
2番目の脳。
そう、だから自分の頭の中に自分の経験とかっていうのは溜まっているわけやん。
ただその知識みたいな部分で言うと、もうそれを全部頭の中に載せておくことはできないから、
それをデジタルツールに覚えてもらって必要な時に引っ張り出せるようなそういうツールの使い方をする。
その分自分の脳みそ自体はちょっとまた別のことに使うっていう。
だからまさに今言ってくれたような、自分が考えるための手助けになるような。
もちろんその中には自分が過去に経験したことの、
これをこういう時にこうしたらこういう風になってこういう学びがありましたみたいなのが入ってたりするわけだし、
そういうものとかも引き出せる。
要は忘れてしまっても大丈夫な状態になるっていう、そういうような仕組みがあったりとかして、
そういうところの勉強も自分はちょこちょこしてたので、
そういう話もどこかでできたら面白いかなというふうに思いました。
でもそこに行くためにはまず、パイソンの勉強をしないといけないですから。
そうね。
まあということになっているが。
それはそれで、勉強っていうのはね、知らんことわからんことをどれだけ自分の世界に持ってこれるかやから。
やっぱりね、今ただそういうアプリとかを作るだけの話をすれば、
AI使って何もわかってなくても作れちゃうっていうところは結構あります。
ただ、やっぱそれをうまく扱うにしても、やっぱり本当に何も知らない状態でそれをやったって、
何の応用も効かないし、絶対に行き詰まるとは思ってて、
だからやっぱりここでAIであっという間にできちゃうっていうところをちゃんと勉強を楽しむっていうのも含めて、
やってみようかなと思っているっていうところはやっぱ姿勢として素晴らしいなと思います。
はい。
Pythonの得意分野と開発の仕組み
ということでですね、話を戻しまして、パイソンが何ができるかっていうところなんですけど、
今の部分で言うと、今言ってくれたアプリケーションっていうのは、
パイソンが主戦場の世界では正直ないかも。
なんだけど、パイソン自体が最初に勉強するプログラミング言語として結構優秀というか、
わかりやすい言語なんで、とりあえずそこから触ってみるっていうのはいいかなっていうのが一つと、
パイソンはね、やっぱりよく言われるのは、それこそAIを作る。
AIって、なんかどっかから買ってきたらAIですっていう世界でもあったりするかもしれないけど、
要はすっげえパソコンに対していろいろな処理をさせて、学習をさせてAIにするっていうのが必要なので、
その学習をさせるっていうところをパソコンに対して命令していくわけね。
それをパイソンっていうプログラミング言語でやることが多いです。
あるいは、データの分析、要はビッグデータを扱うっていうところが得意な言語っていうふうに言われてるんで、
大量のデータを使ってAIに学習させたりとか、大量のデータを使ってデータを分析させてグラフを作りますとか、
そういうのが得意っていうのが中心的な部分。
ただ、それだけではないです。
パイソンはすごく今人気のというか、モダンな言語なんで、いろんなことができるし何でもできる。
やっぱりプログラミング言語ってたくさんあるじゃないですか。
らしい。
結構たくさんあるんです。
今回資料をこれだけ用意してきましたけれども、聞いてる人には伝わらないですけど、
この画像の中にたくさんプログラミング言語があるんです。
JavaとJavaScriptは別なんですよとか。
はい、そうなんです。
あとC言語ってめっちゃ聞くかも。
こっちに書いてあるやつはC言語シリーズの中のパワーアップバージョンみたいなCシャープってやつで、
実はCとCプラスとCプラプラと、Cプラプラを2倍にしてCシャープっていうおしゃれな、
おしゃれでしょ?
IT周りの人ってそういう除け方するときあるよなっていう。
あるんです、実はそういう。
っていう感じでいろんな言語があるんですけど、
やっぱり書き方が違うんです、正直。
っていうときに複数の言語を完璧に覚えておくってやっぱり難しい。
バイリンガル、トリリンガルじゃないですけどね。
っていうところで考えると、
PythonはAIとかデータ分析得意だけど、
いやでもこういうケースでもそのままPythonで作りたいんだよなってみんな思うわけです。
っていう風になると、
なんとかしてPythonの言語でそういうことができるような仕組みっていうのをみんな考えるんですよ。
だからそういう感じで、
Pythonエコシステムみたいなやつの裾野が広がっていくみたいなのがあって、
そういうところで言うと、
Pythonは大体何でもできるっていう風に言えますと。
ただこの画像を見てもらって分かると思うんだけど、
大きく2つにアプリケーションとか作るときって分かれる部分があって、
それがフロントエンドとバックエンドって言われるやつなんです。
違うイメージはある。
Pythonって聞くやつとHTMLって絶対違うもんって。
ここね、HTMLとかCSSって書いてあるんだけど、
これは正確にはプログラミング言語ではないんです。
これは何かっていうと、ざっくり言うと、
ウェブサイト作るときとか。
ウェブサイトを作るときのマークアップ言語って言うんだけど、
要はここが見出しだよ、ここが本文だよ、ここは画像が入っているんだよ、
みたいなのを示してあげるっていうもの。
マーキングをしているみたいな感じだよね。
っていうようなものだと思ってもらったらよくて、
そういうところはフロントエンドに入ります。
フロントエンドって何かって言うと、
ユーザーが直接見る操作する部分っていうのがフロントエンドです。
アプリとかウェブサイトとかそういうの全部なんだけど、
それだけだと当然動作しません。
そことバックエンドっていう、
要は例えばデータを保存しているとか、
さっきのアプリの例で言ったら、
絶対そのアプリって書類データベースがあるじゃないですか。
欲しいって言ってたんですね。
書類を新しく登録してあげたりとか、
それを今度は登録されたデータの中から、
例えばPythonっていうタイトルが付いてる書類の一覧を抽出して、
今度はフロントエンドに送ってあげる。
だからフロントエンドをユーザーが触って、
それのリクエストに対してバックエンドが動いて登録をしたり、
今度はフィルターの結果を返してくれたりっていうので、
今度またフロントエンドにそれが反映されるみたいな。
データ自体はサーバーの方にあって、
それを自分たち使う人間がこれが見たいよとか、
これを置いておきたいよっていうのをリクエストして、
それをサーバーがはいはいって言って渡してくれて、
それをまたこちら使う人側が、
HTMLとかそういう整えられた形で見ることができているっていう。
だからアプリケーションっていうものを作る場合は、
基本的にフロントエンドとバックエンドに分かれて、
役割分担をして作ってるんだよっていうのが分かればよくて、
そのうちPythonはどっちかっていうとバックエンドが得意です。
というかほぼ基本的にバックエンドのものだと思ってください。
もちろん簡単なアプリケーションだったら、
そういうUIを出したりとかもできるんだけど、
どっちかっていうとバックエンドが得意な言語なんですっていうことを
ちょっと言っておきたいなと思いました。
という感じですと。
今後の学習とまとめ
どういうアプリ作りたいかみたいなところは先にするとして、
とりあえずどういうことやりたいなとかっていうのはすごい分かってきたので、
Pythonっていうのを実践投入するかっていうのはさておき、
一旦基本的な動画はPythonでやってみましょうか。
ここまでで質問はありますか?
今のところはサーバー側を触るものと、
見た目とか触り心地を整えるものと違うよということですね。
ここから基本を勉強する上ではフロントエンドもバックエンドもないので、
これは成長した自分がまた見るものだと思ってください。
ということで、松田さんはプログラミング学習者として非常に優秀な人間だと思うので、
これを聞いているプログラミングに興味がある人は、
これをロールモデルにしていただいて、
学習のアレにしてもらえればいいかなと思います。
ということで、環境構築のところは録音を回しても仕方がないので、
普通に環境構築をしていきたいと思います。
次回があれば、変数とかその辺の基本からお会いしましょう。
環境構築が終わって、実際に触ってみようのところから。
突然の唐揚げ放送大学、第1回でした。