プログラミング初心者が独学でPythonを勉強する話

6月 7, 2020Python

2020年最初の難関として目標設定していた、プロジェクトマネージャ試験が中止となりました

次の受験予定の試験は「工事担任者AI・DD総合種」ですが、まだ時間がありますし、こちらも新型コロナウイルスの影響で、試験中止の可能性が高いと考えています。

そんなわけで、Pythonの学習を始めることにしましたので「独学でPythonを学習する方法と計画」を中心について、まとめておきたいと思います。

結論。初心者(私)が独学でPythonを勉強する話

初心者(私)が独学でPythonを勉強する話

  • 前提として、Pythonは未経験だが、プログラミングの基礎はやったことがある
  • 中級の入門レベルまでなら「PyQ」がいいと思った
  • 「PyQ」と並行して「現役シリコンバレーエンジニアが教えるPython 3」で実践的な視点を身に着ける予定
  • 初心者が通勤に使うのならProgate」がよさそう…だった
  • 新型コロナウイルスの影響で、今後の学習予定はだいぶ変更が出そう

それでは、詳細について解説していきたいと思います。

前提:私はどの程度プログラミングができるか?

前提条件として、どの程度プログラミングができるか? という話。以下の通りです。

狒々山のプログラミング歴

  • Pythonは未経験
  • 12年ほど前、大学でプログラミングを勉強(Java、C、アセンブリ言語を少しずつ)
  • 11年ほど前、大学在学中にJavaで基本情報技術者試験に合格
  • 9年ほど前、アセンブリ言語をちょっとやったのを最後に、プログラミングをやめる
  • 在学中のプログラミングの成績は良かった(とはいえ、偏差値50未満の大学)
  • 2015年12月~2016年2月頃、就職のために独学でJavaを学習(結局ノンプログラマーだけど!)
  • 半年前(2019年10月頃)から、VBAとUWSCで初歩的な自動化をやってる

全くの未経験よりはましですが、実務で役立つレベルからは乖離しています

強いていえば、VBAは仕事で、UWSCは自宅で実際に役立っていますが、それも「専業のプログラマがいない職場だから」という理由。本当の意味での「開発現場で役立つ力」は身についていません。

なぜPythonなのか? 他の言語を学ばないのか?

Pythonを選んだ理由にあまり深い意味はありませんが、大体以下のとおりです。

なぜPythonを学ぶのか?

  1. 記述が楽だったから
  2. 色々なことができそうだから
  3. シスコ技術者認定の改定に伴い、必要な能力となったから
  4. 周囲に学習している人が多かったから

1番目の理由は、けっこう重要。在学中、Javaは書くのがめんどくさく、なんとなく好きになれませんでした(かなり浅い内容しかやってない影響が大きいですが)。また、1番目の理由と近い理由で、最近はPythonをプログラミングの学習に取り入れている大学多いそうです(私の出身大学もいつの間にかPythonを教えるようになっていました)。

2番目の理由もそこそこ重要。せっかく学ぶのだから、自分の仕事・生活に役立てたいのは当然です。とくに自分の場合は、プログラマとして働く予定がないので「個人的な趣味や私生活の効率化で利用できそうか?」という基準で選びました。

とはいえ、ネット上でよくいわれてる「Pythonならできること」が、他の言語で本当にできない・やりにくいのかは、結構疑問なのですが…。

3番目は仕事上で重要。シスコ技術者認定で必要ということは、ネットワークエンジニアとしても重要であることを意味します…が、今の仕事のままでは、転職しない限りPythonが必須になることはないかと思っています。

最後に4番。私の職場はネットワークということもあり、プログラミングができる人は少なめです(簡単なVBAレベルでも半数程度)。しかしながら、その内でPythonに興味を持って学習している人は少なくありません。そういう意味で、勉強するのに最も環境面で向いている言語がPythonでした。

ちなみに、Python以外にもWebデザイン関係で色々学習したいと思っています。できれば2020年の内には手を付けたい!

初心者が独学でPythonを学習する上で選んだ手段

序盤のメイン:PyQ

メインに選んだのは「PyQ(パイキュー)」です。PyQを序盤の学習でメインに選んだポイントは以下の3点。

PyQをメインに選んだポイント

  1. 初歩的な内容から中級者の入門レベルまでは対応できる
  2. ほどほどの料金で手を出しやすい
  3. 仕事をしながらでも2~5カ月くらいで基礎を固められそう

初歩的な内容から中級者の入門レベルまで対応できる

まず難易度。私はPythonについて初心者ですし、プログラミングについてもほぼ初心者です。ですので初歩的な内容から学習ができる必要があります

その一方、初歩しかできないのでは実際に役立つレベルには到達できません。ですので、ある程度幅広く、中級者のレベルに入れる手前までは導いてもらえる必要がありました

PyQの場合、私よりもプログラミング経験がある人でも、週20~30時間ペースで全コース修了までに実質2カ月半かかっているそうです(詳細はこちらのインタビュー)。

つまり、初心者なら200~300時間程度は勉強できるボリュームと考えられますので、他のオンライン学習サイトよりも、かなり深く学習できることになります。

料金が中間レベルで手を出しやすい

PyQの料金は、他のプログラミング学習サイトと比べるとやや高め、プログラミングの学習講座と比べるとかなり低めです。

例えば、有名どころのプログラミング学習サイトであれば(2020年4月8日時点)

有名なプログラミング学習サイト

と、1,000円程度で学習が可能です。

しかしながら、この価格帯の有料会員サービスでは、学習できる範囲がけっこう限られます。例えば、ProgateではPythonのレッスンは5つありましたが、私のレベルでも往復の通勤で終わるボリュームです(もちろん、身に着けるには復習が必要ですが)。

一方、本格的に転職を目指すようなプログラミングの学習講座では、学習範囲が実践的なレベルまで対応していますが、10万円以上は当たり前です。高いと数十万円になりますので、本格的な講座を利用するのは、料金のハードルが高い

PyQの場合、月額は3,040円(税込み)です(学習サポート付きで8,130円もある)。その上で先に記載した通り、「初心者なら200~300時間程度かけて学習するボリューム」ですので「中級レベルまで到達するなら料金的に手ごろ」といえます。

仕事をしながらでも2~5カ月くらいで基礎を固められそう

私の場合、仕事をしながらでも月100時間くらい勉強しているのが普通なので、最短で行けば2カ月、他の勉強を並行して行っても、5カ月くらいで200~300時間の学習が完了する見込みです。

つまり、料金的に見れば6,000~15,000円です

安いか高いかでいえば、人によって判断が分かれるところですが、私としてはこの程度の出費で新しいスキルの基礎が固まるなら、かなり安いと考えています(月3万円は勉強に使うつもりなので)。

また、仕事をしながらでも半年以内で新しいスキルの基礎が身につくところもポイント。2020年中にはPythonで業務か私生活の効率化する予定なので、その目標も満たせます。

序盤のサブ:現役シリコンバレーエンジニアが教えるPython 3(Udemy)

ややべた褒め的だった「PyQ」ですがデメリットが一つ。

「PyQ」はブラウザだけで簡単に学習を始められますが、それだと実践的な環境でのプログラミングが行えません。一応、環境構築の方法については、PyQのブログでも紹介されていますが、できれば実践的な環境で学習したいところ。

そこで利用するのが現役シリコンバレーエンジニアが教えるPython 3です。


この講座は、その名の通り、現役のエンジニアが教えるPython3の入門+応用の講座です。

動画だけで28.5時間あるので「実際に自分のスキルとして身に着けるのであれば、60~90時間分くらいは学習できるのでは?」と考えています(実際に学習して測定してみたいと思います)。

この講座では、開発環境のインストールから学習できますし、プログラミングにおける実践的な内容も現役エンジニアの視点で学習でき、コーディングスタイルについても言及されています。

ちなみに、その他にもUdemyにはPython関連の講座があります。PyQの学習がひと段落したら、「現役シリコンバレーエンジニアが教えるPython 3」以外にも、色々な講座に取り組めればと思います(今年の後半から試験が通常通り実施されれば、来年まで時間がない想定ですが)。

通勤中:Progate

これは本当に初期のほうだけのつもりですが、通勤中はProgateを利用します。

なぜ「通勤中」に「Progate」かというと、理由は以下の3点。

通勤中にProgateを使う理由

  • スマホアプリでPythonを学習できる(最重要!
  • 料金が月額1,000円程度と比較的安い
  • Python以外も基礎を学べる(Webデザイン系をかじりたい)

何よりも、「スマホアプリで学習できる」ところが最大のメリットです。私が確認した限りでは、他のオンラインのプログラミング学習サイトは、スマホ用には作られていません(利用しようとすれば利用できるものもありますが、やや使いにくい)。

Udemyもスマホで利用はできますが、実際にプログラミングしながら学習するのであれば、やはり自宅でのPC環境が必要かと思います。

残念ながら、Progateもスマホ版よりはPC版の方がやや内容が充実していますが、それでも通勤電車でスマホ環境に特化して学習できると点はかなりのメリットです。余計な荷物を持つ必要もありませんし、満員電車の狭いすきまでも大丈夫!

…と、思って会員登録したのですが、新型コロナウイルスの影響もあり、4月以降の電車は体感3割以上空いている感じです(夜勤や休日の通勤なんか50%減くらい)。頑張れば椅子に座ってノートPCで学習できるレベルです。

最近腰を痛めているので、あまり椅子に座ってノートPCというのはやりたくないですが、それでも書籍での学習が苦になるほどに、電車が混雑していないのも事実です。

通勤時間の勉強については、Progateをある程度やりこんだら、書籍や「現役シリコンバレーエンジニアが教えるPython 3」の復習に切り替えていこうと思います。

今後の学習計画

ザっとですが、今後の学習予定についてまとめてみると、こんな感じです。

今後の学習予定

「PyQ」メインで学習すると先に解説しましたが、直近では1カ月まとめて勉強できる時期がないため、本格的にPyQを利用するのは5月以降の見込みです。

また、前からビジネススキルを一度真面目に勉強してみたいと思っていたので、GWの期間を利用して、【グロービス学び放題】の無料トライアルを利用してみたいと思います。有料半年プランも、月額で2000円弱なので、気に入ったら有料化する予定です。

5月受験予定であった工事担任者試験は、4月8日に中止の発表がありました。

2020年は新型コロナウイルスの影響もあるので、今後も予定が大きく崩れる可能性もあります。もしも早期に試験が実施できる状態になれば、上の予定の途中で、1カ月くらい「プロジェクトマネージャ試験」の勉強もするかと思います。

計画通りに動くことよりも、柔軟に目標を達成することを意識して行動する必要がありそうです。