最大数万円お得になるセール情報まとめ ≫

「目的」はプログラミング学習の成功の秘訣【独学歴約10年】

どうも、パソコンブロガーのケンさん(@pasolog_ken)です。

  • プログラミングをするのに目的をもってやった方が良いの?
  • プログラミングって何を目的に勉強するの?

プログラミングをする上で、事前にプログラミングを学ぶ目的を明確にしておくことが重要です。

 

書籍やWeb学習サイトなどでは勉強しない技術を使う必要が出てきたり、不具合・エラーなど思い通りにプログラムが動いてくれないことは日常茶飯事です。

そのため、行き詰った時に簡単に挫折してしまいますが、挫折をしないようにするために、プログラミングを学習する”目的”が重要になってきます。

 

この”目的“であったり、”目的の先に得られるもの“がモチベーションとなって、行き詰っても解説策を模索するための原動力となります。

 

私は、高校生からプログラミングを独学で始めて約10年経ちます。文系新卒で大手IT企業に就職し、それなりに作りたいものを自由自在に作れるようになりました。

しかし、その10年の間、何度も挫折し失敗を繰り返し、たくさんの遠回りをしてきましたが、諦めなかったのは”目的”があったからです。

 

この記事では、

  • プログラミングを学習する上で、なぜ目的が必要なのか?
  • プログラミングを学習する目的は何があるのか?

を解説してきます。

 

ケンさん

俺は目的が無かったら、プログラミングは早々に諦めてるし、IT企業にも就職せんかったやろな…

 

 

この記事の著者

パソコンブロガー ケンさん

PC歴20年/自作,プログラミング歴10年、文系新卒でSEとしてIT企業に入り、スマホアプリ/Windowsアプリ開発に携わる。 ハード,ソフト面で長年の知識,経験を元に初心者向けにPCを解説 詳細プロフィール

プログラミングを学習するのになぜ目的が重要なのか?【挫折しないため】

書籍やWeb学習などの場合は、1から勉強できるように構成されていることがほとんどなので、さほど行き詰ることは無いかもしれません。

 

しかし、いざ自分が作りたいものを作ろうとすると、ほぼ100%行き詰まる経験をします。

例えば、

  • 書籍やWeb学習サイトには無い技術を勉強するも上手くプログラミングできなかったり
  • 不具合・エラーなどで思い通りにプログラムが動いてくれなかったり

 

書籍やWeb学習サイトでは、基本的に基礎しか学べないので、できることは少ないです。

自分が作りたいものをプログラミングしていく段階で「こういうことをしたいけど、どうやるんだ?」となって、ネット等で調べて、コードを書いていくことが当たり前の世界です。

 

実際にプログラミングをしてみても、何回もエラーを繰り返して、その都度ネットで調べて解決していくことが前提になるので、その過程で解決策が分からず、行き詰って時間が経ってしまうこともあります。

 

ケンさん

プログラミング歴約10年やけど、この繰り返しやで!

 

ここで、ただ何となく”流行ってるから…”、”お金稼げそうだから…”と考えてプログラミングを学習し始めると、おそらく挫折する可能性が高いです。

 

なぜなら、プログラミングでなくてもそれらは達成できるからです。

流行っているから(流行りに乗りたい) ⇒ 別の流行りに乗れば良い

お金が稼げそうだから ⇒ 他にも稼げる方法はある

 

そのため、プログラミングでしか達成できない目的、目標を持っておくべきです。

 

 

プログラミングを学習するための目的

具体的に、プログラミングを学習する上で、どういう目的があるのか解説していきます。

 

自分の作業を効率化するツールを作りたい!

会社や副業での事務処理、単調な繰り返しの作業などをプログラミングを覚えて、効率化するツールを作る場合ですね。

 

人だと数時間かかる作業をプログラムを使うことで、数分で終わり、かつ、プログラム実行中に別の作業ができます。

究極の効率化と自動化と言っても良いでしょう。

 

プログラムを作る段階では、とても時間がかかりますが、完成させしてしまえば、今後その作業はずっと楽になります。

人が作業する場合:作業時間というランニングコストがずっと一定で発生

プログラムの場合:開発に時間がかかるためイニシャルコストはかかるが、ランニングコストがほぼゼロ

 

私が、プログラミングを覚えたのもこれが理由でした。

当時高校生だったので事務処理とか単調な繰り返しの作業とかは無かったのですが、このスキルは絶対にそういったことに役立ち、将来アドバンテージになるという確信があったのでプログラミングを始めました。

 

当時は、2chのまとめサイト(正確には、複数のまとめサイトのリンクを集めたサイト)を見まくっていたのですが、そのサイトのリンクが数分単位で更新されていることに気づきました。

 

人がやるにはとても無理な作業量で、きっと裏で何かプログラムが動いているのだろう…と気づきました。

これほどの作業量をプログラムを使えば、効率的、かつ、自動的にできることを知って、これだけの情報量を処理するスキルはきっと将来に役立つだろうと思ったわけです。

 

2chのまとめサイトで気づくというのは何だかなぁ…という感じですが、結果的にIT企業への就職にも繋がりましたし、今ではいくつかのプログラムを定期的に実行して、情報収集やデータ分析などをしており、非常に役立っていますね。

 

ゲームやAIなど興味のあるものを作ってみたい!

作業を効率化する以外にも、ゲームやAIなど自分の好きな分野のものを作ってみたいというのも良いな目的です。

 

作りたいものを形にしてく中で、分からないことや新しく覚えないといけないものがたくさん出てきます。

しかし、その過程で、なかなか思ったようにプログラムが動いてくれず、行き詰まることもあるはずです。

 

でも、「これを作りたい!」という想いがあれば、モチベーションとなって、たとえ行き詰っても続けることができます。

 

IT企業への就職・転職、あるいはフリーランスで稼ぎたい!

将来、IT企業でプログラミングを仕事にしたい!あるいは、フリーランスになりたい!ということでプログラミングを学ぼうという方も最近は多いと思います。

 

上で解説した良くない目的「お金を稼げそうだから」に近いですが、それと同じかそれ以上に、

ITの技術を使って世の中に価値を提供したい

終身雇用が無くなった時代なので、何か今後も需要のある技術を身に付けたい!

と考えている方であれば素晴らしい目的です。

 

また、IT企業に就職を経て、将来的には独立してフリーランスになって、場所や時間に捉われない働き方をしたいという目的も良いですね。

将来の仕事やライフスタイルを見越した上で、その最初のステップとしてプログラミングを学習するのであれば、行き詰っても簡単には折れないと思いますね。

 

論理的思考力・問題解決能力を身に付けたい!

プログラミングを学習することで、論理的思考力問題解決能力を身に付けることができます。

 

論理的思考力

プログラムを1から作る場合、そのプログラムで最終的に何をしたいのかということに対して、どういう処理が必要か細分化して考える必要があります。

この能力は、プログラミングだけでなく、何か目標を達成したい時や仕事など様々なところで活かすことができます。

 

例えば、複数の画像に対して、右下にロゴマークを追加するプログラムを作りたいとします。

この機能を実現するためには、主に次のような処理が必要になります。

  1. 画像ファイル・ロゴマーク画像の読み込み
  2. ロゴマークを追加する位置の算出(画像サイズに対して右下から何%の位置など)
  3. 画像にロゴマークを追加
  4. 画像の出力

※複数の画像に対して行う場合は、2~4を繰り返す。

 

大雑把ですが、1つ1つの処理に細分化して、どういった処理が必要になるか洗い出します。

さらに、この時点で自分に不足している技術があるのであれば、ネットなどで調べたり、実際に使えるか試したりします。

 

このように最終的な目標に対して、必要なものを細分化して1つ1つ実現していく必要があります。

 

問題解決能力

プログラミングをして不具合が発生した時に、コードのどの部分が間違っているのかを分析して特定・修正する必要があります。

その際に、論理的に問題個所を突き詰めていく必要があるので、ここで身についた問題を解決するプロセスは、仕事などでも活かすことができます。

 

例えば、不具合の出かたによって「こういう時にこんな感じで不具合が出るということは、この辺りのコードが悪いのかな…」と目星をつけたりします。

さらに場所を特定するために、変数の中身を見て、計算、条件分岐(if文)や繰り返し(for文)などが意図通りに動いているかなどを確認します。

 

このように、プログラミングは何かを作るだけでは無く、仕事など様々な場面で活かすことのできる能力を身に付けることができます。

また近年、小学校でプログラミングが始まったのも、この辺りの能力を身に付けるためですね。

 

IT企業へ発注する側だけど、プログラミングを知ってやり取りをスムーズにしたい!

何も自分でIT企業に就職して開発するだけが、プログラミングを覚える目的ではありません。

 

中には、ITとは全く関係ない企業で、効率化のためのツールをIT企業に発注する側の方もいると思います。

その際に、プログラミングについて何も知らないのと、知っているのとでは、IT企業側の開発のスムーズさが全然違います。

 

IT企業側のスムーズさなんて、こっちには関係ないし…

と思われるかもしれませんが、最終的には、

  • 不具合対応で納期が延長したり
  • 余計の費用が掛かったり

することで自社にも影響する場合があります。

 

また、進捗報告の会議などでは、IT企業側もITが分かる人、分からない人で説明の仕方を変えるので大丈夫ですが、やはり、プログラミングをことを分かった上で話せる方が、祖語が発生しにくいので、メリットは大きいです。

 

とは言え、プログラミングのことが分かるからと言って「俺だったらこの機能、このくらいの時間でできるから納期はここまでな!」というのは絶対にNGです。

週末の休みにDIYをする人が、家を建ててくれている大工にそんなことは言わないと思いますが、それと同じですね。

 

 

【注意】目標達成後も学習を継続することは忘れてはいけない

色々な目的でプログラミングを始めるかと思いますが、ITやプログラミングの世界では、新しい技術が次々に登場し、仕事で使うのであればプロジェクトに応じて勉強する必要があります。

おそらくですが、他の業界と比較しても、新しいことを覚える頻度は非常に高いと思います。

 

ケンさん

俺はプロジェクトが変わる度、新しい技術覚えてたで!

ただ、趣味や事務作業の効率化(ExcelのVBAなど)で使う分には、それほど大変では無いですね。

 

プログラミングを書籍やWebサイト、スクールなどで学習して、一通り自分の作りたいものを作れたとしても、それでプログラミングを全部学習できたというわけではありません。

仕事で使うのであれば、必要に応じて新しく学ぶことが当たり前になってきます。

 

そのため、プログラミングを”勉強し続ける“ことができる方でないとおすすめできませんし、その“勉強し続ける”ためのモチベーションを持っておいた方が良いです。

 

一通り作りたいものは作れたけど、勉強や不具合解決などが苦痛だった…という方は、今後もそれが続くのでIT企業に就職して仕事としてやっていくのは厳しいかもしれません。

 

とは言え、趣味や事務作業などの効率化ぐらいであれば、ある程度学習してしまえば新しいことを覚えることも少ないので、どこでプログラミングを使うかによっても変わってきますね。

 

 

まとめ:私が約10年間独学し続けることができたのは”目的”のおかげ!

  • プログラミングを学習する上で、なぜ目的が必要なのか?
  • プログラミングを学習する目的は何があるのか?

ということを解説しました。

 

プログラミングは学習する中で、何度も行き詰り、挫折しようと思ってしまうのは当たり前と思っていた方が良いです。

しかし、そんな時も挫折せずに続けられるのは、”目的”を持っていて、それがモチベーションとなるからです。

 

目的は人それぞれですが、何か目的を持った上で、プログラミングを学習するのが重要ですね。

 

私もそれで、挫折せずに勉強を続け、一通り作りたいものは何でも作れるようになり、気づけば約10年になっていました。

 

今でも覚えていますが、プログラミングを始めたての時は、不具合をどう解決すれば良いのかもわからず、1週間放置したことも何回もあります。

もし、目的がなければ最初の1ヶ月で確実に諦めていたし、今の人生は無かったですね。

 

プログラミング自体は、覚えておいて損のないスキルなので、ぜひ挫折することなく学習を進めて欲しいです。

そのためにも、自分がプログラミングを学ぶ”目的”も考えてから始めてみて下さい。

 



どうも、ケンさん(@pasolog_ken)でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です