普段はPythonやStata、Rを用いてデータ分析業務を行っている、Keito(@keito_dilige)です。本稿では、Pythonの初心者向けに、Python習得にかかる期間とその難易度を解説します。学習コストに対して得られる対価が少なければ、Pythonを学ぶ意義は薄れてしまいます。その1つの目安にしてください。
目次
Pythonの基礎習得にかかる期間
本稿では経験的な習得時間ではなく、オンライン学習サービスの「あるコースを修了するのにかかる時間」を基に、Python習得にかかる時間(期間)を推定していきます。初心者の方は、この時間を目安に学習を進め、実際に開発に移ると良いでしょう。
今回使用したオンライン学習サービスは、オンラインPython学習サービス「PyQ™(パイキュー)」です。PyQでは、Pythonを習得したい初心者・中級者向けに、Pythonの基礎文法からデータ分析の作法、PandasやNumpyといった分析ライブラリの作法、機械学習や統計分析まで、幅広い分野をすべてPythonでカバーしています。
本稿では、PyQの学習時間を目安に習得時間を解説していきます。
スポンサーリンク
~Python初心者レベル:40時間
プログラミングを0から始めた状態の初心者が、Pythonの基礎的な文法(if文やfor文など)を理解して使えるようになるまでには、約40時間の学習が必要です。
このレベルで出来ることは、「ネット上の記事を常に手元に置いておけばプログラミングが可能」、「設計書を基に十分な時間をかければ、簡単な計算プログラムが実装できる」、「十分な時間をかければ、ファイルの入出力を伴う簡易的なシステムを実装できる」といった所です。
基礎的な文法を学習しただけであるものの、Pythonやプログラミングの基本を押さえた状態にはレベルアップしているので、ごく簡単なシステムなら実装できると思います。ただし、常に調べながらの作業になるため、十分以上の時間を要することは間違いなく、さらなる学習が必要な段階です。
~Python中級レベル:70時間~100時間
基礎文法を習得した状態からPython中級者を名乗れるまでには、0の状態からトータルで70時間~100時間程度が必要です。
Python中級者のレベル感とは、標準ライブラリやクラスの使いどころを押さえており、適切な設計を行うことが出来るレベルです。他にも、綺麗で他の人が読みやすいコードの作法を心得ていたり、公式チュートリアルを適切に活用出来たりするレベルとも言えます。
つまり、Python中級者とは、Pythonの文法事項や知識面の充実だけではなく、実務面に活かせるスキルを身に付けた状態であると言えるでしょう。中級者を名乗るためには、知識面だけでなく実際の開発経験が必要です。実務では、知識だけでは対処できない事態が頻発するからです。
例えば、開発途中に設計が変わるのはよくあることです。その際に、適切なクラスやメソッドを設定し、設計を立て直すことが出来なければプログラム全体が崩壊しかねません。こうした事項を考慮に入れると、知識面だけの充実だけで70時間、実際の開発経験も含めると100時間程度の学習を要します。
統計分析が可能なレベル:+50時間~
Python中級レベルまで実力を向上できれば、あとは実務経験によってレベルを上げていく他はありません。ただし、Pythonは言語単体で必要とされる機会は多くありません。実際には、統計分析や機械学習、データ分析の分野で多用されています。
本稿では、これらの分野をPythonで学ぶのにかかる時間を推定します。ここからは、Pythonだけではなく統計や機械学習の知識習得にかかる時間も含まれるので、データサイエンティスト等を目指している方は参考にしてください。
統計分析を学ぶのにかかる時間は、初心者レベルで50時間といった所です。
まず、統計学だけでも相当な量のインプットが必要です。正規分布や他の確率分布、点推定や区間推定の方法といった基礎事項だけではなく、実務に応用が可能なモデルを学習する必要があるからです。
Pythonに目を移すと、統計分析の鉄板ライブラリであるscipyを学ぶ必要があり、他にもPandasやNumpyといったデータ分析の基本となるライブラリを学ぶ必要があります。ライブラリとは、Pythonの計算処理を便利にしてくれるツールのようなものです。これを使うのと使わないのでは、プログラムの効率性が大きく異なるため、学習は必須と言えます。
スポンサーリンク
機械学習が可能なレベル:+50時間~
統計分析と同じように、機械学習の勉強にも同程度の時間を要します。
機械学習の習得には、統計学以上の難易度が存在するかもしれません。初心者にとっては機械学習のモデルは分かりづらく、特に数学が苦手な方にはお勧めできません。Python内での計算処理がブラックボックス化してしまう問題もあり、計算結果の解釈が難しいのも、初心者向けではない理由の1つです。
そのため、データ分析の初心者は統計学を先に学ぶと、データ分析の実務に活かせることが多くなるかもしれません。機械学習は、従来の統計学では不可能だった高度な計算処理を、同じく高度に発展したコンピュータで実装したものです。そのため、計算処理は自ずと難解なものになりがちです。
機械学習の勉強でも、NumpyやPandas、データ分析の作法を学ぶ必要があります。ここは統計学と同じであり、統計学を学び終えた後だと効率的な学習が期待できるでしょう。
Webアプリ開発が可能なレベル:+70時間~
最後に、Webアプリ開発にかかる時間は70時間ほどです。統計や機械学習と比べて学習時間が長くなっているのは、Webアプリ開発で学ぶことがPythonの基礎文法と大きくかけ離れているからです。
Pythonを用いてWebアプリ開発を行う際には、FlaskやDjangoといったフレームワークを用いる必要があります。このフレームワークはPythonの基礎文法とは大きく異なるため、フレームワークに慣れるまでに時間を要します。
また、Web開発やWebアプリケーションに対する基礎知識を補う必要があるため、習得期間が長くなっている一面も存在します。例えば、Webアプリの開発にはデータベース(DB)やスクレイピングの知識が欠かせません。
DBの役割は、ユーザーやシステムから発せられたデータを適切に格納しておくことです。商品やアクセス数のデータを格納して分析するためには、データの破損がないようにSQLという言語を用いてデータ操作を行う必要があります。ここで、DBやSQLに対する知識が求められるのです。
スクレイピングは、Web上のサイトから欲しい情報を自動で抜き出す技術のことです。スマートニュース等のニュースサイトがスクレイピングを使用しており、人の手を借りずとも、システムが自動で欲しい記事を検索してWebサイトに掲載してくれています。
こうした知識や技術を考慮すると、Webアプリの開発が可能なレベルには70時間以上の学習が求められるでしょう。
書籍購入よりもオンライン学習サービスがおすすめ
本稿では、Python初心者が初級レベルから中級レベルに、または各分野への知見を得たレベルに到達するまでの目標時間を解説しました。この時間を目安に、実際の開発に加わることをお勧めします。実務経験は、何よりも実力を向上させてくれるはずです。
各分野を学ぶのに必要な参考書は、以下の記事にまとめてあります。併せてご覧ください。
-
参考Python初心者におすすめの参考書を分野別に紹介します。
本稿では、文系でPythonを習得してデータ分析の業務に活かしている筆者が、Python初学者に向けておすすめの参考書を紹介します。レベル別に分けているので、自分に合ったレベルの参考書を使ってください ...
続きを見る
ただし、本稿で紹介した内容をすべて書籍で済ませようとすると、その購入代金は軽く1万円を超えます。さらに、参考書選びも初心者には難しいはずです。
そこで、本稿ではオンラインPython学習サービス「PyQ™(パイキュー)」での学習をお勧めします。PyQであれば、本稿で紹介した内容を網羅できるだけでなく、月ごとに契約が可能なため、好きなタイミングで学習を終了することが出来ます。価格も書籍に比べれば安めです。
ぜひ、PyQを検討してみて下さい。