第三十四回:プログラミングの知識を増やすには2通りのやり方があるよ
今日は平成31年の4月25日です。あと1週間弱で平成が終わります。つまり、平成最後のコラム更新です。……と言いたいがために良いネタが思い浮かばないけどコラムを書くことにしました。それでは今回もゆるく行ってみましょう。超不定期連載「分かりそう」で「分からない」でも「分かった」気になれるITコラムでございまぁす。このコーナーでは、各用語の説明ページでは取り上げにくいIT関連のネタをテーマに、だらだらと思いついたことを書いていきます。みなさんが「あぁ、なんか役に立ちそうな気もするけど、役に立たないかなぁ。でも、もしかしたら役に立つかも」と思える情報を発信できるように頑張ります!
はじめに
栄えある三十四回目のテーマは……ピヨピヨピヨピヨ(ぴよぴよ的ドラムロール)……じゃん!
プログラミングの知識を増やすには2通りのやり方があるよ
です。
今回は「スクールでプログラミングをマスターしてフリーランスになって在宅でバリバリ稼ぐぞー!」とか思っている人たちに向けて書いていきます。
スクールや通信教育などでプログラミングの「勉強」を頑張っている人たち、ですね。
ちなみに、お忙しい人向けに先に結論を書いておくと
プログラミングの知識を増やす方法は「勉強する」と「調べる」の2つがあって、経験を積むほど「調べる」の方が重要になってくる
です。
「勉強するときも調べるじゃん?」と思うかもしれませんけどね。
今回は
勉強する:知識を得るのが目的
調べる:問題を解決するのが目的
という位置付けです。
最後まで読んでくださる方は、この結論を知らないことにして読み進めてください。
「勉強する」と「調べる」
プログラムを作る際のアプローチの仕方は
1.知識を蓄えて、得た知識でやれることをやる
2.まずはやってみて、必要になった知識を補完する
の2つがあります。
実際には、もっとあるかもしれませんけどね。
そこら辺を考え始めるとキリがないので今回は2つしかないことにします。
「1.知識を蓄えて、得た知識でやれることをやる」のやり方では「勉強する」ことで知識が増えます。
「変数とは何か?」「配列の使い方は?」「オブジェクト指向って何だろう?」などを勉強して、脳みそに知識を蓄えます。
脳みそに蓄えた知識を使って、脳みそに蓄えた知識で作れる範囲で、実際のプログラムを作ります。
これが前者のアプローチです。
まず知識を増やすための勉強があって、その後で得た知識を活用して何かやります。
一方「2.まずはやってみて、必要になった知識を補完する」のやり方では「調べる」ことで知識が増えます。
最初にあるのは「これがやりたい!」です。
「こんな機能をつけたい」「ちゃんと動かないのを動くようにしたい」「もっと見栄えをよくしたい」などの「これがやりたい!」があって、それを実現するためにいろいろ調べます。
その結果、おまけ的に知識が増えます。
これが後者のアプローチです。
まずやりたいことがあって、それを実現するために調べることで、結果として知識が増えます。
どっちが大事なの?
プログラミングを始めたばかりのころは、前者の「勉強する」が大事です。
基礎力がない段階で何かやろうとしても何もやれないでしょう。
必要最低限の基礎力は「勉強する」ことで養う必要があります。
ただし、ですね。
お仕事とかでプログラムを作るようになると、後者の「調べる」の方が圧倒的に大事ですし機会が増えます。
何故かというと、お仕事の目的は知識を増やすことではないからです。
お仕事では何らかの成果を出して対価をいただきます。
その「何らかの成果」を出すために必要なことを調べて、結果として知識が増えるのです。
知識が増えるのは、あくまで付加的な要素です。
よって「勉強する」で知識を増やすのは最初のうちだけです。
経験を積めば積むほど、知識が増える機会は「調べる」をやったときです。
スクールとかでやるのは「勉強する」だよ
さて、ここでスクールや通信教育を振り返ってみてください。
スクールや通信教育で経験できることは、基本的に「勉強する」です。
もちろん細かく見ると「調べる」機会はあるでしょうけどね。
大枠では「勉強する」になるはずです。
スクールで出される課題は、ほぼ間違いなく答えがあります。
その答えにたどり着く過程で勉強して知識を増やすことが目的だからです。
一方で、仕事でブチ当たる問題は、答えがあるとは限りません。
もしかしたら前提条件を変えない限り解決不可能な場合もあるでしょう。
スクールや通信教育で学べるような内容は、あなたがフリーランスでやっていくためには絶対に必要な知識です。
スクールや通信教育で学べるような内容すら知らないで、お金をもらえるプログラムを作ることは難しいでしょう。
だから、スクールや通信教育で学ぶことが無駄とは言いません。
ただし、それさえクリアすればフリーランスでやっていけるようなものでもありません。
スクールや通信教育で経験できるのは主に「勉強する」だからです。
「調べる」ができなかったらフリーランスでなんてやっていけません。
「調べる」も経験しておこう
スクールや通信教育で学んだだけではフリーランスでなんてやっていけません。
それでは、どうすれば良いのでしょうか?
簡単です。
実際に自分でプログラムを作ってみれば良い
のです。
これが「調べる」の経験値を増やすために一番?手っ取り早い方法です。
注意点として「今の自分で作れそうなもの」という制約は外してください。
「自分が欲しいもの」という観点のみで作るものを決めます。
そうすると、分からないことや上手くいかないことが腐るほど出てくるはずです。
答えを教えてくれる人も当然いません。
涙目になりやがれ、ぐへへへへ。
ただ、ですね。
あなたがフリーランスになってお仕事でプログラミングをするようになったら、それは当たり前に経験することです。
いちいち涙目になる暇もないくらい日常的に直面します。
だったら早めに経験しておいた方が良いじゃないですか。
ある程度の基礎力が「勉強する」でついたら、次は「調べる」も経験してみてください。
その手段は作ってみたいプログラムを心の赴くままに作ってみるのが手っ取り早いです。
まかり間違って完成しちゃったら、超・感動しますよ。
まとめ
今回は
プログラミングの知識を増やすには2通りのやり方があるよ
というテーマで好き勝手に語ってみました。
結論としては
プログラミングの知識を増やす方法は「勉強する」と「調べる」の2つがあって、経験を積むほど「調べる」の方が重要になってくる
です。
「勉強するときも調べるじゃん?」と思うかもしれませんけどね。
勉強する:知識を得るのが目的
調べる:問題を解決するのが目的
と解釈してください。
やり始めは「勉強する」が大事でしょう。
基礎力がないと話は始まりません。
その基礎力をつけるためには勉強が必要です。
ですが、経験を積めば積むほど「調べる」の方が重要になってきます。
知識を増やすことを目的にあれこれするのではなく、問題を解決するために調べ、結果として知識が増えることが多くなるはずです。
スクールや通信教育で経験できることは「勉強する」が主です。
もし、あなたが「フリーランスのエンジニアになって在宅でバリバリ稼ぐぜ!」みたいな野望を抱いているのであれば「調べる」の経験も増やしておいてください。
そのために個人的にオススメなのは、
実際に自分でプログラムを作ってみる
です。
「今の自分で作れそうなもの」という制約を外して「自分が欲しいもの」という観点のみで作るものを決めると、きっと涙目になれます。
それが良い経験になるはずです。
余談なおまけ
IT関係が盛んになることは喜ばしいと思うのですが、個人的にはプログラミングの「勉強」をする人が増えていることに少しだけ思うところがあります。
やってる本人が楽しいなら良いのですけどね。
やりたくないなら無理して「勉強」する必要はないんじゃないかなーと思うのです。
私もプログラミングの基礎は会社の研修とかで学びました。
実際にプログラムを作ることで対価をいただいたりもしています。
だから大きな声では言えないのですが……プログラミングなんて遊びの延長にあって良いと思うのです。
ロジックを組むのはパズルを解くのと似たようなものです。
エラーの原因を探すのは推理ゲームです。
丸パクリできるコードを探してくるのは宝探しでしょうか。
仕事でやっていると「こんちくしょーがぁ!(#゚д゚)」と思うことも少なからずありますが、根底には「プログラミング楽しいなぁ(*´ェ`*)」という気持ちがあります。
反対に、どうやっても「プログラミング楽しいなぁ(*´ェ`*)」という気持ちが持てないなら、無理にやる必要もないと思うのです。
あくまで個人的な考えですが、プログラミングが「一般教養」である必要はないと思っています。
やりたい人がやって、やりたくない人はやりたい人にやってもらえば良いんじゃないかな(--?
余談なおまけ2
私の友人K君は大学生時代に「メモリって何?」みたいな状態で自作パソコンを作り始めちゃいました。
自作パソコンって難しそうなイメージがあるじゃないですか。
「無謀な挑戦をするね~」みたいなことを言った友人がいるのですが、それに対して彼は
10万のプラモみたいなものだよ
と返していました。
詳しいことは知りませんが、自分なりにいろいろ調べたのでしょう。
最終的には、まがりなりにも動く物が完成しました。
自作パソコンを「10万のプラモ」と言い切ったK君の男前っぷりには今でも尊敬の念を禁じ得ません。
それくらい男前なチャレンジをしても良いんじゃないですかね?
プログラミングなんて(仕事じゃないなら)好きなものを好きなようにやってみれば良いのです。
「プログラミングの勉強、面白くないな~」と感じたら、勉強なんて止めちゃって良いので、実際に何かプログラムを作ってみてください。
書き方とかメチャクチャでも良いです。
他人の作ったやつを丸写しとかでも構いません。
プログラミングの楽しさを実感できるのは、作りたいプログラムを作って、それが動いたときですよ。
思いつきで始めて惰性で続けている「分かりそう」で「分からない」でも「分かった」気になれるITコラムですが、いかがでしたでしょうか。また何かネタがあったら、ちまちまと更新していきます。コンゴトモヨロシク。






