「入門レベルの実力は付いたと思います。次に何をしたらいいですか?」
「脱初心者に向けておすすめの学習方法や教材があれば知りたい。」
上記の疑問にお答えします。
Python入門レベルの学習を終えて、次のステップへ進みたい方に向けて、この記事を書いています。
私の独学経験をもとに、初心者からレベルアップする方法をまとめてみました。
この記事を読めば、Python中級者になるための学習方法やヒントがつかめます。
具体的には、次のことを解説します。
- この記事におけるPython中級者の定義
- Python中級者に必要なこと
- 教材ごとの特徴
- 挫折しない勉強法
- Python中級者に向けて最適な分野(テーマ)
「偉そうに語るおまえは誰やねん。」と思われるので、私のことも少し紹介させてください。
たいらーのプロフィール
- 文系四大出身。ソフトウェア開発の経験はなしですが、IT業界に身を置いています。
- 開発者やユーザーとのパイプ役など、業務にプログラミングスキルを活かす。
- Pythonは独学で習得。スクレイピングや作業の自動化などに勤しんでいます。
Python中級者を目指して取り組んでいるあたなに、これから紹介する学習方法&教材が役立てば幸いです。
1. この記事におけるPython中級者の定義
まず、「初心者」と「中級者」の力量が抽象的で分かりにくいので、混乱しないように定義を明確にしておきます。
中級者:やりたいこと・つくりたいものにPythonを活用している方
以上のように定義させて頂きます。
なので、この記事では、「やりたいこと・つくりたいものを実装するために、どんな学習方法や教材が必要か。」について話を進めていきます。
では、続きをどうぞ。
2.Python中級者に必要なこと
Python中級者(=自分で何かつくる)になるためには、次の4つが必要になります。
- 特定の分野での学習と実践
- 入門編にはないテクニカルな文法の習得
- 周辺知識の習得
- 取捨選択
順番に解説します。
・特定の分野での学習と実践
まず、自分のやりたいこと・つくりたいものを棚卸し、それがどの分野に属するか調べてみましょう。
つくりたいものがない人は、少しでも興味がある分野でもいいので、やりたいこと・つくりたいものを決めます。
初心者からレベルアップするためには、具体的なモノを作ることが重要です。
モノ作りをとおして、スキルや知見が広がります。
入門編を何回も繰り返し勉強しても、入門レベル以上の知識や経験が得られません。
とはいえ、ぱっと思い浮かばない人もいると思うので、Pythonが活用されている代表的な分野を以下にまとめておきます。
参考にしてください。
- AI開発
- Web開発
- デスクトップアプリケーション
・入門編にはないテクニカルな文法の習得
プログラミングでは、分かりやすいスマートなコーディングが良しとされています。
入門編では、触れる機会が少ないですが、徐々にテクニカルな文法の習得にもチャレンジしましょう。
例えば、次の文法を知っていると、コード量を抑えつつ、シンプルなコーディングができるようになります。
- 短絡評価
- リスト内包表記
- 三項演算子
…など。
文法は奥が深いです。
ここですべてを紹介するのは無理なので割愛しますが、新しい文法に出会ったら、掘り下げて勉強してみてください。
Pythonの文法を知るには、公式ドキュメントが参考になります。
・周辺知識の習得
薄々、気づかれているかと思いますが、Pythonさえ出来れば何でも作れるというわけではありません。
世に出ている商品は、様々な技術に支えられて出来てます。
モノ作りを実践するためには、自分が作ろうとしているアプリやサービスが、どのような技術に支えられているかは、理解しておく必要があります。
次の周辺知識は、理解しておきましょう。
- 開発環境(Git・GitHubなど)
- ネットワーク
- サーバー
- データベース
- クラウド
ネットワークやサーバー、データベースは、もはやITインフラとして欠かすこのできない存在です。
近年ではこれにクラウドが加わります。
あと、意外に大事なのは開発環境です。
ソースコードの管理や作業効率を良くするためにも、IDEやエディタはもちろん、Git・GitHubは扱えるようになりましょう。
メモ帳でコーディングするのは効率が悪いので、中級者を目指すなら自分が扱いやすい開発環境を導入したほうがよいです。
開発環境にお悩みの方は、『【Python×VSCode】初心者でも分かる環境構築の方法と導入メリットを解説』をご覧ください。
VSCodeはPython対応で、Git・GitHubとの連携が可能なので、開発環境として使い勝手が良いです。
・取捨選択
ここまで中級者に必要なことをいくつか挙げましたが、「いっぺんには無理!」という方がほとんどだと思います。
そこで重要なのは取捨選択です。
取捨選択するためには、繰り返しになりますが、自分のやりたいこと・つくりたいものを、はっきりさせておくことが必須になってきます。
初心者のうちから全部を勉強するのは無理があるので、まずは「自分がやろうとしていることに関係あること」だけに集中して取り組みましょう。
例えばこんな感じです。
やりたいことの詳細 | 学習対象 | やること |
---|---|---|
・ExcelやOffice系ソフトの作業を自動化したい。 ・データ収集や分析を効率よくしたい。 | ・Webスクレイピング ・Office系ソフト操作 ・データ分析 | ・Python基礎学習に加え、以下のライブラリについて学習する。 BeautifulSoup、Selenium Openpyxl、glob Pandas、Numpyなど |
狭くても、特定の分野で専門家になるくらいの気持ちで取り組みましょう。
3.教材ごとの特徴
Python中級者になるために必要なことをひととおり説明しました。
やるべきことが明確になれば、あとは実際に中級者に向けて学習と実践を進めます。
学習と実践を進めるわけですが、着実にレベルアップするためには、自分に合った教材選びが重要になってきます。
Pythonを学ぶ方法としては、次の4つが挙げられます。
それぞれ、メリットとデメリットがあるので、あなたに合った教材を選んでください。
もちろん、一つでなければならない理由はないので、合いそうなものを複数選んでもOKです。
- 本、書籍
- プログラミング学習サービス
- 動画配信サービス
- スクール
・本、書籍
定番の教材で、今でも根強い人気があります。
本、書籍のメリットとデメリットは次のとおりです。
メリット
- 専門的な知識を体系的に学習できる
- 情報の信頼性が高い
- 辞書的な使い方ができる
デメリット
- 情報のアップデートがされない
- 途中で挫折しやすい
本や書籍は、特定の分野で専門性を高めたいときに向いている教材です。
なぜなら、多くの本は、その道の専門家が書いているので、記載されている情報の信頼性は高いです。
そして、特定の分野を幅広く網羅的にまとめているので、専門的な知識を体系的に習得できます。
その分、情報量が多いので、勉強の初期段階では難易度の高い教材とも言えます。
また、本は改版がない限り、情報がアップデートされることはありません。
購入する場合は、最近出版・改版されたものを選んでください。
個人的には、辞書的な使い方ができるのが気に入っています。
分からないことを調べたい&確認したいときに、慣れればサッと見つけることができます。
動画教材は、こうはいきません。パソコンやスマフォは便利ですが、いちいち起動させるのが面倒だったり、手元にないときにも重宝します。
こんな方は向いています
- 体系的な知識や専門的な知識を学びたい人
- 解決策や最新の情報を自分から取りに行ける人
- 自分の力で学習を継続できる人
おすすめの本、書籍
独学でレベルアップに役立った本を1つご紹介します。
退屈なことはPythonにやらせよう ノンプログラマーにもできる自動化処理プログラミング [ Al Sweigart ]です。Excel操作やファイル管理など、日常業務を改善するヒントが散りばめられています。
私にとってこの本は、「自分の仕事をどうすれば楽にできるか?」を考えるきっかけになった本です。
新しい知識やスキルを身につけるには、どれだけ自分事化できるかが肝心です。
・プログラミング学習サービス
ここでいうプログラミング学習サービスとは、Progateやpaizaなどに代表されるWebサイト上でプログラミングが学べるサービスを指しています。
プログラミング学習サービスのメリットとデメリットは次のとおりです。
メリット
- パソコンがあればどこでも学習できる
- 学ぶ範囲が明確で解説が丁寧
- スクールに比べ費用が安い
デメリット
- 質問に制限や条件がある
- 実践に結び付きにくい
プログラミング学習サービスは、ステップアップしたいけど、具体的に何をすればいいか掴めていない人に向いています。
たいていのサービスでは、コースごとにやるべきことがまとまっているので、何から手を付ければいいのか悩むことがありません。
解説も丁寧なので、本や書籍より挫折する確率も低いです。
入門編や初級編の学習でプログラミング学習サービスを利用されていた方は、ワンランク上の講義にチャレンジしてみるのもいいと思います。
費用は、月額で1000円前後から3000円くらいまでのところが多く、プログラミングスクールと比較すると、費用は安いです。
上手に使えば、本や書籍を買うより安く済ませることができます。
また、学ぶ場所を選ばないのでパソコンさえあれば、自分の好きな場所とタイミングで学習ができます。
それでも、基礎部分の学習に終始している感が強いので、実践に直結しにくいです。
知識の積み上げには便利な教材なので、個人的には短期集中的に使い倒すのがいいと思います。
そういった意味では、時間が割と確保できる学生や休職中の人向けの教材といえるかもしれません。
こんな方に向いてます
- 学習範囲が決まっている方が集中できる人
- 費用を安く抑えたい人
- 場所を選ばず学習したい人
おすすめのプログラミング学習サービス
私がおすすめするプログラミング学習サービスは、paizaラーニングです。
レベルアップ問題集やプログラミングスキルチェックなど、腕試し感覚でできるコンテンツが揃っています。
テスト勉強が得意だった方には向いているかもしれません。
paizaのことをもっと知りたいと思ったかたは、こちらの『Python初心者が無料で学習をはじめるならpaizaがおすすめ【Progate他と比較】』が参考になると思います。
ぜひご覧ください。
・動画配信サービス
ここでいう動画配信サービスとは、YouTubeやUdemyなどに代表される講義を動画配信するサービスを指しています。
動画配信サービスのメリットとデメリットは次のとおりです。
メリット
- 専門の講師から繰り返し学ぶことができる
- 実際にコーディングしているところが見れる
- 移動中などの隙間時間で学習できる
デメリット
- 分かった気になりがち
- 視聴、受講しないとコンテンツのレベルや講師との相性が分からない
動画配信サービスは、テキストベースでは、学習内容が理解しにくい人に向いている教材です。
どうしても本などのテキストベースの教材では、プログラミングの動きがイメージし辛いですが、動画だと実際にコーディングしているところやプログラムの動作が確認できるので、理解度が格段とアップします。
そして、動画が視聴できる間は、何回でも同じ講義を受けることができます。
分かるまで繰り返し学習する、忘れたから復習でもう一度講義を受ける、という使い方ができます。
また、専用のアプリを使えば、移動中にスマートフォンなどで視聴することができます。
なので忙しい方でも、隙間時間を利用して学習することが可能です。
その一方で、一度講義を受けただけで、内容を分かった気になりがちです。
講義は一方的なので、聴いている間は理解したつもりでも、実際にプログラムを書こうとすると手が止まることはよくあります。
なので、動画を止めつつ、自分でもプログラミングしてみるなど、アウトプットすることが重要になります。
また、実際に視聴してみないとコンテンツのレベルや講師との相性が分からないのは難点です。
この場合、口コミやコンテンツの評価を頼りに判断するしかありません。
こんな人に向いています
- 書籍やWebサイトの学習で挫折した人
- 学習にまとまった時間がとりにくい人
- コーディングや実技を見て学びたい人
おすすめの動画配信サービス
独学でレベルアップに役立った動画配信サービスを1つご紹介します。
それはUdemy です。
Udemyとは、アメリカ発のオンライン学習プラットフォームです。
近年、進研ゼミで知られるベネッセコーポレーションと資本提携をし、日本語の動画教材も豊富で、Pythonでいえば、Webサイト作成やスクレイピング、機械学習など様々なコンテンツが用意されています。
初回利用者限定の割引サービスや、最大90%オフになるセールイベントが不定期で行われているので、タイミングを狙えば、お得に動画教材がゲットできます。
私もセールを狙って購入し、コツコツと独学してます。
興味のある方は『【自分をスキルアップする】Udemyとは?講座の選び方&使い方を解説』をご覧ください。
・スクール
独学と対照的な学習方法なので、補足というかたちで解説します。
なお、ここでいうスクールとは、オンライン、オフラインを問わずプログラミングスクールのことを指しています。
結論からいうと、初心者からのレベルアップ方法として、スクールは万人向きではないと思います。
理由については、メリットとデメリットを見つつ、解説します。
メリット
- 独学よりも効率よく学べる
- 就職や転職を支援してくれるところもある
デメリット
- 独学に比べ、費用が高額
- 現場(就業先)とのギャップがある
メリットを見て分かるとおり、プログラミングスクールは就職や転職を前提とした人向けのサービスです。
サービス内容を確認すると、特に3~6か月といった短期間で結果を出したい人向けの内容になっているものが多いです。
独学は、寄り道や煮詰まることがありますが、スクールは学習カリキュラムが組まれているので、専門分野を体系的かつ効率的に学ぶことができます。
ただし、その分、費用がかかります。
高い安いは人それぞれですが、費用は20万円前後が相場です。
個人的には、プログラミングスキルを仕事に役立てたいレベルの人にとっては高額なので、無しだと思います。(そもそも前提が違いますが。)
では就職や転職を視野に入れている方ならおすすめかというと、一概にそうもいいきれません。
特にプログラミング未経験者の転職は、結構厳しいです。
仕事場の開発者の方曰く、「人はほしいけど、新人さんはいらない。」というのが現状です。
ITは売り手市場といわれていますが、市場と現場のギャップが見て取れます。
どの仕事でも共通だと思いますが、欲しいのは即戦力なんですよね。
もし、本気で狙うなら、業界研究や求められるスキルの洗い出しは必須で、スクールで教えてもらえないことは、自分で学習するくらいの気持ちと行動力が必要です。
こんな人が向いています
- 職業としてソフトウェア開発などエンジニアを本気で目指している人
- 効率よく学習したい人
- 費用が高くてもOKな人
おすすめのプログラミングスクール
就職や転職でITエンジニアを本気で考えている方は、まずは無料相談や授業の無料体験から始めることをおすすめします。
テックアカデミーは、未経験でも短期間で上達できるプログラミングスクールです。
「Pythonコース」では、機械学習の基礎を身につけることができます。
Pythonからは少し離れますが、未経験からエンジニアを目指す「エンジニア転職保障コース」もあります。
無料相談もやっているので、悩まれているなら、まず気軽に相談してみてはいかがでしょうか。
- 受講者を挫折させないパーソナルメンターによる徹底サポート
- 未経験からエンジニアを目指す「エンジニア転職保障コース」あり
- 「エンジニア転職保障コース」以外でも、求人紹介など無料の転職サポートあり
4.挫折しない勉強法
教材ごとの特徴の整理がついたところで、挫折しない勉強法について解説します。
私の独学経験がベースになっているので、多少、精神論が混じっていますが、お付き合いいただければと思います。
私が独学で重要だと考えているのは、次の2点です。
- 知識の定着
- モチベーションの維持
それぞれ説明します。
・知識の定着
プログラミングだけでなく、どの分野でも学習したことを頭に定着させることが重要です。
ただ、これがプログラミングになると分からないことのコンボ攻撃で、なかなか難しい。
私は次のことを意識して、わからない状態を乗り越えました。
- 調べる+手を動かす
- 学んだことをアウトプットする
・調べる+手を動かす
調べること、手を動かすことの重要性は、よく言われますが、独学をしているのこのことが骨身に染みて分かりるようになりました。
本を読んだだけ&動画を見ただけの「~だけ」学習では、次の日ほとんど忘れてしまいます。
- 自分が何が分からないのか考える。
- 分からないことは徹底的に調べる。
- 調べたら実際にやってみる。
- 教わったことはその日のうちにやってみる。
この繰り返しです。
最近の教材は、講義とともにサンプルコードや演習を解かせるように工夫されていることが多いので、演習問題などは、その日のうちに自分でプログラムを動かすところまでやりましょう。
また、次の日に、自分が組んだサンプルコードを見て、実行させることで、復習にもなります。
これをやると、プログラムの動作を再びイメージできるので、知識が定着しやすくなります。
・学んだことをアウトプットする
インプットと同じくらいアウトプットも大切です。
これもプログラミングだけの話ではないですが、本来、新しいことを学ぶときはインプットとアウトプットを上手に回すことで、はじめて身に付きます。
現代であれば、アウトプットの方法はたくさんあります。
- ノートにまとめる
- 誰かに話す、教える
- ブログやTwitterで発信する
自分のためにノートなどで整理する方法もよいですが、相手に伝えることを意識すると、責任感が働く分、意識的に頭が整理できます。
人に伝える力も身につくので、定番ではありますが、どれか取り入れてみてください。
・モチベーションの維持
独学は孤独になりがちなので、モチベーションの維持に苦労します。
途中で投げ出さないためにも、次のことに取り組んでみましょう。
私は今でもこの2つを意識することで継続できているので、効果があると考えています。
- 難しいと感じたらハードルを下げる
- マンネリ化、嫌気が差したら方法を変える
・難しいと感じたらハードルを下げる
例えば使っている教材のレベルが高いと感じたら、思い切って初心者向けに変えてみましょう。
分からないことが多いと落ち込みますが、「知らないことは恥ずかしいことではない。」と誰か偉い人が言ってたはずです。
変なプライドはゴミ箱へ捨ててしまいましょう。
知識や経験を積み上げれば、後で分かってくることも多いので、まず投げ出さないことが重要です。
・マンネリ化、嫌気が差したら方法を変える
モチベーションの停滞を察知したら、勉強法や勉強する場所を変えましょう。
先ほどは、分からなければレベルを下げるという話をしましたが、例えば、基礎的な内容に飽き飽きしているなら、レベルを上げて専門的な教材に切り替えるのも一つの手です。
興味が刺激されて学習が捗ることがあります。
また、自宅で学習しているのなら、たまに図書館やカフェに移動して学習するのも効果的です。
気分転換になりますし、学習成果は横に置いておいて、頑張ってる感を味わうことができます。
あと、初心を思い出すのも効果的です。
自分はなぜPythonを学習しているのか、もう一度その動機を掘り起こして、達成している未来に思いを馳せるのも良いでしょう。
できなかったことができるようになった喜びや、チャレンジしているわくわく感を取り戻すことができます。
以上、挫折しない勉強法についてでした。
Python中級者を目指すにあたって必要なことが、お分かり頂けたと思います。
月並みな結論になりますが、重要なのはモノ作りの実践と継続です。
5.Python中級者に向けて最適な分野(テーマ)
最後に、Python初心者が中級者に向けて取り組むのに最適なテーマを紹介して終わりたいと思います。
おすすめ教材も併せて紹介しますので、気になるものがあれば是非チャレンジしてみてください。。
・デスクトップアプリ
デスクトップアプリの開発は、Webアプリ開発や機械学習などに比べて難易度は高くありません。
成果物も目に見えるので、作る楽しさを味わうことができます。
何を作るか迷っているなら、まずデスクトップアプリ作成に取り組むのをおすすめします。
おすすめの教材(デスクトップアプリ)
デスクトップアプリ開発におすすめの教材を2つ紹介します。
ひとつめは、『Pythonではじめるデスクトップアプリ開発入門【電子書籍】[ 久我涼子 ]』です。
プログラミングの知識ゼロの方を前提にされているので、解説は丁寧で分かりやすいです。
GUIのライブラリ「tkinter」を使用し簡単なアプリをいくつか作成する内容になっているので、読みつつ手を動かすことでモノ作りが体験できるつくりになっています。
ふたつめは、手前味噌ですが『【Python】デスクトップアプリの作り方(GUI実装とexe化)』です。
GUIのライブラリは「tkinter」の他にPySimpleGUIについても解説しています。
サンプルコードも公開しているので、GUIの実装からexe化までを一通り学びたい方はご覧ください。
・Webスクレイピング
Webスクレイピングとは、Webサイト上の情報を抽出・整形・解析する技術のことです。
仕事でデータの収集や解析をされている方には、非常に役に立つと思います。
上手く活用すれば、データの収集から解析まで自動化することもできるので、業務効率化も可能です。
おすすめの教材(Webスクレイピング)
Webスクレイピングの教材として、おすすめするのは2つです。
これまた手前味噌で恐縮ですが、ひとつは『スクレイピングのやり方&学習方法教えます【プログラミング未経験からできる】』です。
Beautiful SoupやPandasといったライブラリを使用した、スクレイピングの基礎を解説しています。
ふたつめは、PythonでWebスクレイピング・クローリングを極めよう! です。
こちらはScrapyというフレームワークを利用したWebスクレイピングについての講義です。
短期間でWebスクレイピングを身につけたい方向けの教材です。
・Webアプリ
前出の2つよりやや難易度が上がりますが、Webアプリ開発もおすすめです。
Webアプリ開発では、どのフレームワークを扱うが学習のポイントになります。
Djangoはよく使われているフレームワークなので、Webアプリを作成したい方は、このあたりから始めるのをおすすめします。
おすすめの教材(Webアプリ)
PythonでWebサイトを作ってみたい方におおすすめしたいのが『【徹底的に解説!】Djangoの基礎をマスターして、3つのアプリを作ろう! 』です。
実際にコーディングしながら学習していくので、Pythonの基礎知識は求められますが、どうすればWebサイトを構築できるのか丁寧に解説されているので、Djangoの基礎固めに最適です。
6.まとめ
以上、独学でPython初心者からレベルアップする方法でした。
長くなってしまったので、まとめるとPython中級者を目指すうえで必要なのは、次の4つでした。
- 特定の分野での学習と実践
- 入門編にはないテクニカルな文法の習得
- 周辺知識の習得
- 取捨選択
ただ、独学は挫折しやすいので、次の4つを意識する重要性を解説しました。
- 調べる+手を動かす
- 学んだことをアウトプットする
- 難しいと感じたらハードルを下げる
- マンネリ化、嫌気が差したら方法を変える
詰まるところ、現実ではレベルアップに裏技はなく、地道な実践と継続がものを言うというお話でした。
このブログでも、レベルアップのための記事を用意しているので、ご覧いただけると幸いです。
ご清聴ありがとうございました。