大人のPython のはじめ方
いい歳になってるけど、いま話題のプログラミングを始めてみたい、という方への記事です。私もいい歳だった3年ほど前から、Python始めました。もちろん今も歳は増え続けているので、さらにいい歳になってます!
ネットの中には初心者向けの記事は大量にありますが、そのほとんどは万人向けで、どちらかと言えば、学生や新人社会人を対象としたものが多いと感じます。そこで、自分の経験も踏まえて、おっさんに向けに記事を書いてみました。
「物事を始めるの遅すぎるということはない。やりたいと思ったときが始めるときだ。」
と言われます?が、おっちゃんが趣味でプログラミングを続けていくには、若者のようにこの技術を身につけると就職が有利になる、もっとよい会社に転職できる、といった明確なモチベーションがなく、また日々の仕事があるので、自由に使える時間も限定されるので、継続するのがしんどいなと思います。
この記事をプログラミングを始めるかどうかを判断するのに、参考にしてもらえれば幸いです。
1. 想定してる対象読者
・はたらくおじさん。もちろん、おばちゃんも可。
・プログラミングに興味あって、なんとなく始めてみたいな、と思っている人
・または、少し初めてみたものの面白くなくで続きそうにないな、と思っている人
・パソコンに興味がある人
・数字にアレルギーがない人(難しい数学はいりませんが、数字アレルギーの人は続けていくのはツライと感じると思います)
2. 何をするのかを決める(言語の決定!)
プログラミングを始めるときにプログラミングで何をしたい、というのがないと続けるのは困難です。プログラミングをある程度身につけるためには時間がかかります。歳をとっていれば、若い頃に比べ残念ながら学習能力は低下していますので、同じことをマスターするにも若いころに比べ、学習時間はさらに増えてしまいます。
それを継続するためには目的がないとできません。なお、プログラミング勉強していくうちにやりたいことが変わっていくのは全然問題ありません。まず最初に、「こういうことをしてみたい!」というものがスタートするには必要です。
プログラミングもいろいろあり、言語そのものを改良していくのような攻めた楽しみ方もありますが、おっちゃんプログラマーは、言語そのものを楽しむのではなく、道具として使って楽しむものだと思います。言語そのものを楽しむようになるには時間と能力が必要ですので。
私の場合は、私はすこし(かなり?)変人なので、AIが流行ってるけどその元になっているディープラーニングって何なんだろう??との思いから、当時話題になっていた「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」を購入して読んでいたときに、Pythonを知らないと実際に動かせない、じゃあPythonはじめてみよう、がきっかけです。一応こういうのもありということで。
何をする(したい)のかが明確に決まってない人は、「退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング」をぱらっと見てみてみると、どんなことができるかを知ることができます。私もPython学習は、これからスタートしました。この本は最初にプログラムの文法があり、その後、いろいろな活用がのっています。
まずはこの本を本屋さんで立ち読みしてPythonを使うとこんなことができるのか、というのみるのがよいと思います。
例えば、次のようなことができます。
・Web スクレイピング: Webを巡回して自分の欲しいデータとってくる
・Excelファイル; Excelのファイルを読んこんだり、処理したり、書き込んだり。
・ PDF、Wordファイル:PDFファイルを読み込んで結合したり。Wordファイルを書き込んだり。
・ SMS、電子メール:発信する
・ GUI処理:プログラムで画面上のポインターを動かしたり、文字を入力したり、クリックしたり。
この本の中かから自分のしたいことに繋がる内容があれば、最初にこの本にそって進めてみるのをお勧めします。
改訂版がでるみたいですが、当初、2021年3月に発売予定ですが、今も発売日がどんどん後ろ倒しになっています。
この本が気に入った人は初版を買って始めましょう!
なおこの本は、Pythonの得意分野である機械学習やディープラーニングについて記載がありません。
私の最も興味ある分野なのですが、最初にPythonとしては、この本から学んで基礎をつけたので、Pythonを始める前の人が読んで、Python を使えば機械学習やディープラーニングでこんなことができるんだ、というのをわかりやすく書かれた本の紹介ができません。
しかし、Pythonで機械学習・ディープラーニング は王道ですので、本屋にいけば簡単なレベルから超専門書まで数多くの本があります。機械学習・ディープラーニング に興味がある人は本屋でいろいろ眺めてみてください。なお、私が実際に実施した機械学習・ディープラーニングの進め方は別記事にかくつもりです。
学習する本を決めて、一旦、はじめると、この本はよかった、または、よくなかったと判断できるようになるまでには、時間をガッツリとられます。はじめる前によく検討した方がよいです。
機械学習とかAI構築とかに全然興味ないのであれば、本当にPython で進めるのかを検討しましょう。若ければ、複数の言語をいろいろやってみて、自分に合うものを深めていくのもよいですが、はたらくおじさんには時間的にも能力的にも厳しいです。まず、言語を決めて走りだしましょう。
ホームページを作りたい!というのであればPython ではなく、html, css, JavaScriptあたり? あとWordPressという裏技ももあるようです(これはプログラミングというものではないようですが、ホームページを作るとの目的達成できるのなら、プログラミングにこだわる必要はないかと思います)。
エクセルをメインに仕事を効率化したい!のであれば、エクセルマクロでしょう。最近はPython × Excelが流行ってるらみたいですが、素直にマクロを使いこなすようになる方が役に立つと思います。マクロを使いこなしてGAFAの部長になった人もおられます?!
もっと統計的な検討となればRの方がよいようですし、競技プログラミングで上を狙うならC++が速いらしい、など、それぞれの得意分野がありますので、よく調べてみてください。
ちなみに私はPython しかやってないので、その他言語についてこれくらいしか書けませんし、その信憑性も??です。
3. パソコンを準備する
Pythonプログラミングをやってみると決めたら、パソコンを準備しなければいけません。Pythonは、Windows10、Mac、Ubuntu(Linux)で動きます。普段使っているパソコンにPythonをインストールすればよいです。普通使いのパソコンで、Ubuntuを使っている人はまれだと思いますので、Windows10かMacになると思います。パソコンはCPUは速くなくても最初は全然問題ありません。私も最初の1年弱ほどは、5,6年落ちのWindowsを使っていましたが、問題ありませんでした。
Pythonはそれを単体でインストールしてもよいのですが、Pythonを含んだパッケージソフトであるAnacondaをインストールするのがお手軽でオススメです。多くの本でもPythonの導入でAnacondaの導入の仕方が説明されています。Anacondaはインストールも簡単で使いやすのですが、容量が大きく、HDD/SSDをそれなり消費するので、そこは注意が必要です。
プログラミング学習を続けていくと、よいパソコンが欲しくなります。私のパソコン遍歴はココにかいてます。
新しいパソコンを買うと気分が上がり、やる気がアップしますので、区切りでパソコンを更新していくのはオススメです。もちろんお金との相談になりますが・・・。
4. 学習方法を決める
どのように勉強するのがいいのかは、個人によって大きく異なると思います。しかし、「はたらくおじさん」は時間が限られていますので、本をベースとして、その他の補足的に使用するのが無難だと思います。
4.1 本
勉強時間の自由度が高く、コストパフォーマンスもよいと思います。近くに品揃えのよい本屋がある方は、買う前にいろいろ確認できるので、とくにオススメです。
ベースの本を学習していき、わからない所やもっと興味がでたところなどを他の本やネットで補完していくのがベストだと思います。
本一冊を通してやるとかなりの時間がかかります。私の場合、「退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング」を一通り終わらせるのに6ヶ月かかりました。
合わないと思った本は見切りをつけてスパっとやめるのも手です。ただ、いろんな本に手を出してどれも最後まで辿り着かない、というのは最悪です。
いかに自分に合う本に出会えるかがポイントです。
本はコスパがよいといっても専門書は値段が高くだいたい3000円以上しますし、高いものになると1万円を超えてきます。私のオススメはメルカリでの購入です。多くの本をメルカリから入手していますが、新品同様品が定価の5〜9割で買うことができます。また、少し古い本や書き込みありなどは、かなり格安で入手できます。
住んでいる地区の図書館も穴場です。最近の市町村の図書館はネットで蔵書を検索できるところも多いですので、欲しい本がないかを検索してみましょう。ちなみに私の地区の図書館はPython で検索すると60冊の蔵書がありました。まず図書館の本で確認してからよければ購入することもしてます。余談ですが、私の地区の図書館はRの本が充実していて羨ましいです。
4.2 Webのコース(有料)
すこし検索するだけで、多くのコースがみつかると思います。私はひとつもとったことがないので、良し悪しの判断はできないです。
お値段が結構するので、お金とやる気がある人向けだと思います。
ただ、Python ではないですが、ネットワークについて知りたいと思い、N予備校を2ヶ月やりました。
N予備校の「プログラミング入門 Webアプリコース」を2ヶ月で実施して、退会しました。1000円/月なので手軽にはじめられました。
N予備校の感想ですが、
【よかった点】
・全然知らない分野だったが初心者が順にできることが増えていくようににコースが作られており、楽しめる。
・ 知らない分野、言語でも、キチンと従えばキチンと動く。
・ひとつだけ動かなかったので質問したら、丁寧に返信があった。
【よくない点】
・退会後は教材にアクセスできないので、あとから参考にすることができない。
・どんな人でも動かせるように、やり方は非常に丁寧に説明されているが、環境設定などについて、なぜそのことをするかなど説明がほとんどない。
4.3 Webのコース(無料)
無料のコースもそこそこあります。しかし、文法のある一部分だけだったり、途中から有料コースに誘導されたりと、これをやれば一通りの基礎を学べるというのは見つけられませんでした。
その中でも、paizaの「Python3入門編」はすべてやりました。これだけでは学習量が少ないですが、本を進めているときに平行してやったら理解が進みやすかったです。
英語ができる方なら、courseraなど、かなりの数のコースがあります。しかし、よほど英語力がないと、はじめてのことを英語で学習するるのはキツいと思います。
5. Python のはじめ方 【参考】
私が実施した経験から、よいと思う方法です。向き不向きは個人差がありますので、参考として書いておきます。
メインテキスト
「退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング」
進め方
「退屈なことはPythonにやらせよう 」 第1部
■ 基礎なので、最初からすべて実施する。
■ わからないところがあれば、「みんなのPython 第4版 」で、該当部分を確認する
■ タイミングをみて、paiza にて復習する
「みんなのPython 第4版 」は表紙だけをみると、初心者向けの簡単な本のようにみえますが、内容がしっかりとした文法書で非常に参考になります。
「退屈なことはPythonにやらせよう 」 では書かれていない、Jupyter Notebookの使い方や、オブジェクト指向の基本であるclassの説明などもあり、よい本です。
この本だけで勉強を進められる人はこの本をマスターすれば基本技術はマスターできます。個人的にサンプルコードが面白くないので、メイン本でわからなかったときの参考書として使っています。
・ひとおり順番に進める。難しくて動かせないかつ興味がないと思った章はとばしてよい。
・おもしろいと思った分野は、サンプルプログラムを改良して、動かしてみる。
・プログラミング力の確認として、「paizaのスキルチェック」にチャレンジする。
Dは時間をかければできるはず。Cは時間があるときに。
・Paizaのスキルチェックが面白いと思ったり、Cがほぼ問題なくできるようになったら、「AtCorderのAtcCorder Beginner Contest(通称: ABC)」の過去問題にチャレンジする。AからCまでよい。
(というかD以降はアルゴリズムを勉強しないと、ほぼ時間内にとけない)
おそらく、ここまでで3ヶ月から1年かかると思います。
ここまでくれば、何ができるか、何をしたいかが自分で検討できるようになると思います。
これ以降はPythonを深めることももちろん重要ですが、それ以外の知識も必要となってきます。
キーワード(私自身が知識を深めたいと思いってるもの)
Git, GitHub, Docker, ネットワーク, シェルスクリプト, 仮想環境,
一緒にコツコツやっていきましょう。
‘—————————— おしまい ——————————‘
この記事が気に入ったらサポートをしてみませんか?