メーカーで開発職をしているペイントです。
私は仕事でプログラミングを使って
「ペイントさんすご〜い!!!」
と言われたく、Pythonを勉強し始めて
早くも勉強開始から3ヶ月が過ぎました。
最初は
・どうやって始めればいいんだ…。
・どの本が一番わかりやすい?
・「import」って何?必要?
と言った悩みに苦しめられる毎日…。
ですが、3ヶ月プログラミングに触れ続けることで
初心者がPythonを勉強するベストな方法を悟りました。
それは
「本は要らない!ググるんだ!」
です!
ちょっ!待てよ!
巷では「この本がオススメ!」とか言ってくるじゃん!
と心の中で声をあげてしまったそこのあなた!
今から理由を説明するので、Amazonで本を探しているその手を止めて聞いてくださいまし!
何故ググるのか?
「ググれば良い」と言うには理由があります。それはネット上にPythonの悩みを解決したサイトがありふれているからです!
そのため、あらゆる方がチャレンジし、同じ悩みにぶち当たり、解決方法ををネット上で公開してくれています。
しかもわかりやすく。
事例を一つあげてみましょう。
事例
例えば「エクセルで行データを抽出する」をしたいとすると、下記のワードで検索をしたくなるはずです。
【Python エクセル 行抽出】
上記のリンクをクリックしてみてください。同じキーワードでグーグル先生に質問できているはずです。
そして上位に表示されるサイトを見てください。
どうですか?Google先生が良い記事を選んできてくれるでしょ?
そう、とても分かりやすい記事が多い!!
一方でデータサイエンス分野で使われているR言語で検索すると?
【R言語 エクセル 行抽出】
どうでしょう?何やら難しい記事が多くないですか?
初心者にはキツイ内容で解説されている記事が多いです。
このように他の言語と比較すると、Pythonは分かりやすいサイトがゴロゴロ転がっています。
何故か?それはGoogle先生が検索する人に対して最適なサイトを紹介してくれるからです。
この「最適なサイト」をGoogle先生が選ぶには競合が必要になります。
「競合=沢山のサイト=たくさんの情報」
つまり、たくさん情報が転がっているPython業界は、常に分かりやすいサイトが一番最初に表示されるよう、争っているんです。
ありがたいことに、Pythonで迷い苦しむ私たちに、最適な解をGoogle先生は提供してくれるわけです。
コピペ可能
そしてなんと言っても最大のメリットはコピペ可能なところ。
Google先生が選出した偉人が成し遂げた「悩み解決コード」をそっくりそのまま自分のコードに採用できます。
これ、すごく重要です。
実際、他の人が作ったコードをコピペすると
・そんなのカンニングじゃん!
・私は勉強したいんだ!
・自分で考えてコードを書きたいんだ
という勉強熱心な人が激おこぷんぷん丸になるかもしれません。
ですが違うんです!
プログラミングを勉強するコツは誰かが成し遂げた功績をイジることにあるんです。
初心者の方は正直コードを目の前にして右も左も分からないと思います。
特に「画像を表示させたい」とか「ウェブから情報を抽出したい」とか「100個のエクセルを1つにまとめたい」とか目標があっても、正直どのようにコードを組めばいいか分からないのが現実です。
しかし!偉人は違います!
すでにこの苦労をクリアして、その結果(コード)をサイトにアップしているんです。
そしてそれをコピペした時、新たな学びがあなたを襲います。
そう!「エラー」もしくは「うまくいったけど、このコードの意味なに?」です!
●エラー
前者の「エラー」は偉人が問題なく使えたコードを何故自分ではNGなのか?ということを調べることになります。
これを調べることは、今後死ぬほど出会うエラー情報の対処方法を勉強するにあたり、非常に重要な経験にもなります。
●うまくいったけど、この英語の意味なに?
後者は純粋にコードの意味を理解することができます。
先人は本には書かれていないコードを使用してきます。
例えば【cv2.imshow(引数)】を使用するにしても、引数部分に最適なコードをぶっ込んできます。
この引数は各々の目的によって変わります。
しかし、本では一般的なことしか記載されていないのが大半です。さらには初見では何を使えば良いかよく分からない。。
一方偉人はあなたが検索した課題にクリティカルな引数を使用します。
これは本では得られない情報です。とても貴重です。
結論、コピペはプログラミングの勉強になります。
そして、特に「エラー」が出た時に関しては、自分で考えたコードを書いているときより安心感が100倍あります。だって、他の人は成功しているのだから、絶対できるはずですしね。
と言うわけで、コピペしても十分勉強することができます。
本を買うタイミング
しかしながら、ググるだけでは太刀打ちできなる時があります。そのが
「専門知識×プログラミングを学ぶ時」と
「良いサイトが見つからなかった時」
です。
専門知識
「機械学習」。これはプラミングでよく耳にする言葉ではないでしょうか?
・なんかかっこいい!機械学習をしてみたいからプログラミングを始めよう!
・理系の仕事だし、多分機械学習ができた方が有利だ!
といったモチベーションで始めた場合、かなりの確率でググるだけでは太刀打ちできなくなります。
理由は専門知識が必要になるからです。
それこそ、回帰分析であったり、対象のジャンル(化学、機械、電子)の基礎知識も必要です。
この手の専門知識はネットでは限界があり、情報の信憑性にかけてしまいます。
そのため、本による学習が必要です。
良いサイトが見つからなかった時
もうひとつ、本に頼るべき時が良いサイトが見つからなかった時です。
特に難しいプログラミングにチャレンジする際は、独自性を含んだコードが必要になります。
例えば画像処理なんてのがそうですね。
2値化⇨輪郭形成⇨面積算出
こんなのはググればOKなのですが、例えば取り出した面積を他のデータと照合したりする場合、かなり実務的でその人しか作らないようなコードになってきます。
その場合、専門書(上記の場合、画像×プログラミングとか)を見て、より詳細な勉強をする必要性があると思います。
何故なら、こう言う時は結果の精度が求められることが多いからです。
ここまで応用力が高いコードを作りたいと言うことは、仕事で使う場合が多いはずです。
そうなると、目的達成のためにロジックを組むことになりますが、そのロジックがネット情報だとすっごく不安です。
※ロジック:あれをこうして、そんでもってこれをあそこに入れて、あとはAをBに代入すれば目的が達成できる!みたいな感じで目的を達成するまでの道筋のことです。
プログラミングにおいてロジック組は命です。その命を作る元情報は、著者が責任を持って書いた本から参考にしたほうが良いです。
できたプログラミングを自分だけが使うなら良いですが、他の人も使ったり、プログラミングで得たデータを他の人に見せたりする時、根拠が「ネットです」だと信じてもらえません。
そのため著者が責任を持って買いた本を参考にする必要があります。
こんな感じで難しいコードを作って仕事に生かしたい時は、しっかりとした根拠を書籍から参考にして作ってくことをお勧めします。
(あと、やっぱりここまでくるとネットに載っていないことが多いので、、、)
だから最初は「ググるんだ!」
最適なプログラミング勉強方法は下記となります。
①まずはググってコピペ
②「コードの意味が分からない」「エラーが出た」時、さらにググって調べる
③それでも分からない場合は本屋さんに走って立ち読み
④これだ!となった本をAmazonで買う(安いから)
ちなみに本は立ち読みすることをお勧めします。
Pythonに関する本はたくさんあります。その中で評価が高くても自分に合う合わないがあります。
理由は目的が人それぞれ異なるからです。自分の目的に合った本を選ぶようしましょう。
そして良い本に出会ったら購入しましょう。
今流行りのプログラミング、そして今後は「プログラミングで副業、1万円/月を達成しました!」と当たり前のようにマウントを取られるプログラミング。
やってみたら楽しいので、まずはググって調べましょう!