こんにちは。渡辺です。
プログラミング言語を学ぶのに、どのような学び方があるか、考えてみたいと思います。
目的は?
まずプログラミング言語を学ぶ「目的」を明確にしてください。
何か、楽しみながら便利なツールを覚えて、自分の仕事や趣味に少しずつ活かして、もっと便利にして行きたいという軽いレベル。
このサイトがまずは目指すところでもあります。
何か便利なアプリを開発して、世の中の人に使ってもらいたい、という、急ぎではないけど、けっこういろいろ学んでおきたいレベル。
仕事でまずは急いで言語の全体像を掴み、自分の担当する機能だけでもしっかり作れるようにしておくレベル。
この場合は、まずは短期間で概要を把握する必要があるでしょう。
その上で、自分が担当する箇所で使っているライブラリ(あらかじめ用意されている便利な機能。プログラムから呼び出して使える)の機能や使い方を深掘りしていくといいでしょう。
関係ない情報は、後回しにする「捨てる勇気」も必要です。
経験は?
プログラミング言語を学ぶといっても、3種類あるかと思います。
まず、普通にWordやExcelとかは使えるけど、プログラミングの経験はない場合。
この場合は、プログラミングの基本となる考え方や枠組みから学んでいかないといけません。
次に、すでに何か1つの言語は習得している場合。
すでにプログラミングの土台となる考え方、たとえば数値は変数を使うとか、変数の値を見ながら if 文で処理を選択するとか、繰り返しのやり方とか。
それらが分かっていれば、あとは他の言語のやり方やお作法を学べば良いのです。
ただ、最初に学んだ言語のやり方に慣れていると、他の言語のやり方に違和感を感じることはあります。
(こういうやり方もあるんだな)と発想を切り替える必要があります。
動機は?
もう1つ、なんでこの言語を学びたいのか、「動機」を明確にしておくといいです。
Pythonの場合、こんなところでしょうか。
- 便利なツールの使い方を学んで、自分の幅を広げたい
- 自分の専門(例:数学や技術、社会統計など)分野でコンピュータを活用して効率化したい
- 面白いゲームのイメージがあるので、Pythonで実現して見たい
- 便利なソフトウェアツールを作って、多くの人に使ってもらいたい
- 人工知能の開発に挑戦してみたい
- 就職・転職に有利な知識・技能を身に付けたい
これ以外でも、単純に面白そうだから、遊んでみたいとかでも全然OKだと思います。
いずれにせよ、どう勉強するか迷ったら、動機を思い出し、その動機に合うか合わないかで判断するといいでしょう。
たとえば、数学プログラミングを学びたい人が、ゲームプログラミングを学ぶことは、(無駄にはなりませんが)やや回り道といえます。
実際に勉強方法を見てみる
それでは、実際にどんな勉強方法があるのか見ていきましょう。
・入門書で学ぶ
費用:○(2,000〜3,000円)
効果:△(分からないところでつまずくことも)
備考:コストも掛からず、全体像を学べる手軽な手段。ただ分からないところを補足しづらく、入門レベルから実践レベルに行くまでが大変である。
一番手軽なのは、今も昔も本で学ぶことでしょう。
入門書にも2種類あり、その言語の開発者や、それに近い(普及団体の役員とか)方が書いた、隅々まで説明した分厚い本と、普通に入門書として書かれた、土台となるエッセンスだけを説明したものと2種類あります。
学生の方、他の言語を1つ以上しっかりマスターしている方は前者でいいでしょうが、あまり経験のない方や急いで一通り学びたい方は後者でしょうか。
参考までに、編集人が選んだそれぞれの入門書をご紹介します。
・WebサイトのPython入門で学ぶ
費用:◎(無料)
効果:△
備考:安いし、いろいろなサイトがあって選べるが、書き手は上級者も多く(うちは難しくならないよう、注意していますが・・・)、容赦なく出てくる専門用語など初心者にはハードルが高いことも。
このサイトもそうですが、経験者がWebサイトで入門から、使い方から、ちょっと便利な小技、またやや複雑なテクニックなどを紹介しています。
検索してみると分かりますが、非常にたくさんあります。
とても便利ですが、中には現役ばりばりのエンジニアの方が、自分の学習メモを公開しているような、初級者にはハードルが高いものも多いです。
ただ、基本が身に付けば、とても便利な情報源なので、ぜひ活用するといいでしょう。
・オンラインのPython入門で学ぶ
費用:△(2,000〜20,000円程度)
効果:○
備考:少しコストはかかるが、実際に講師の説明やアニメを見ながら、本や文字だけのWebサイトよりは頭に入りやすい。また内容も入門書1冊分を短時間で学べる。さらにコースによっては、メールや掲示板などでQ&Aコーナーが用意されているものもある。
急いで学びたい場合、オンラインのPythonコースは本よりも手っ取り早いです。
オンライン学習は、e-learningとも呼ばれ、ビデオや図版、アニメなどで本よりもビジュアルに学べるのがメリットです。
本による自習だと、どうしても自分のやる気に左右されますが、オンラインだとビデオやアニメがどんどん進行していくので、専門学校で講師について学んでいるような気分で、効率よく学習を進めることができます。
ただし、画面見ていても、実際にどういうコードを書けばどう動きのかが分かりますが、できれば単元ごとにビデオを止めて、手を動かして学んでいくといいでしょう。
古典的ですが、やはり見るだけと実際に動かして体験するのでは、理解が違ってきます(きっぱり)。
いろいろな講座がありますが、コスパでは、オンライン教育のUdemyが一番いいかと思います(以下、サイトへリンクします)。
定期的にキャンペーンをやっているので、そのタイミングで登録すると、1,400円とか入門書並みの価格で受講できます。
その場合は、実は入門書を買うよりやすかったりしてかなりのコスパになります。ぜひ定期的にチェックしてみてください。
またオンラインの家庭教師形式で、現役のエンジニアからマンツーマン指導を受けられる、こんなサービスもあります。
実際に指導を受けつつ、どんなコードを書けばいいのか、どこをどう改善するといいのか個別に指導を受けられるので、一方的なオンラインコースよりも早く、高い学習効果が得られます。
・専門スクールで学ぶ
費用:×(数万円〜20万円くらい)
効果:◎
備考:受講料はそれなりに掛かるが、経験者に対面でしっかり学べて、短時間で使えるレベルになる。また授業に通う時間を捻出する必要があるのはちょっと大変
趣味で、あるいはちょっとしたツールを作れれば、という理由であれば、ここまでお金を使う必要はありません。
でも、プロになってキャリアアップを図りたいとか、ゲームやフリーウェア(あるいは有料ソフト)を作って、多くの人に使ってもらいたいとか。
経験者から直接学ぶことで、プロの開発者の考え方やお作法も教えてもらえるので、しっかり学べば即戦力のスキルを身に付けることも可能です。
それなりのソフトウェアを作りたいなら、ある程度投資した方が、結局はリターンも大きいです。
あと、認可を受けたコースであれば、「教育訓練給付金」ということで、厚生労働省所管の助成金の対象になる場合があります。
その場合は受講料の何割かを負担してもらえるので、安く受講できます。
逆に短所は、決まった場所(スクール)に決まった時間に行く必要があるので、移動の手間や時間の捻出がネックになります。
近くにスクールがなければ、上でご紹介したオンライン家庭教師(オンラインプログラミング研修のCodeCamp)が一番コスパがいいかもしれません。
これらの学び方の中では、高い投資なので、やり切ろうというモチベーションは出るのですが・・・・。
たとえばIT業界に就職してこのくらいの収入を実現するとか、ソフトウェアをオンラインで販売してこのくらいの売上を上げるとか、直接的に収入につなげる見込みや計画があるなら。
言い換えれば、投資した金額より大きい収入が見込めるなら、一番効率良い学び方でしょう。
番外編
もう1つ、もしまだ若い方で、コンピュータが好きで、元気があれば、Pythonでシステム開発している会社にアルバイトでもいいから飛び込むという手もあります。
そして、現場で現物と取っ組み合いしながら、必要があれば先輩に聴いたり、本やネットで調べながら学んでいくという手もあります。
もちろん、全く分かっていないと話にならないので、↑で説明したように、本やWeb講座などで一通り学んでおいた方がいいです。
それなりに使えるようになれば、正社員として登用されたり、それが無理でも、その会社で積んだ経験とスキルを武器に、他のIT会社(や一般企業のIT部門)にチャレンジするという手もあります。
人工知能に関連するシステム開発の機会が増えるでしょうから、Pythonのニーズはしばらくは高まる一方だと思います。
まとめ
2〜3千円くらいの投資で、趣味として楽しむのか、もう少しお金を出して深掘りしてみるのか、数万〜20万円くらい投資して本気でプロを目指すのか。
それぞれの方の目的や人生設計、希望によって学び方はさまざまです。
でも、いろいろな学び方があることを理解して、自分の希望に合った方法、やりやすい方法で取り組んでいただければいいと思います。
このサイトは初級者向けですが、分かりやすく、初級の方が中級の入口くらいにはたどり着けるお手伝いができるよう、引き続きがんばりたいと思います。
コメント