プログラミングに挫折しないための学び方

プログラミングに挫折しないための学び方の解説ページアイキャッチ

このページにはプロモーションが含まれています

このページでは、プログラミングに挫折しないための学び方について解説していきます。特に独学でプログラミング学習を始めてみようと思っている方向けへの解説です。

「プログラミング 挫折しない」などで検索すると、検索結果として見つかるページの結論は「プログラミングスクール利用する」になっている場合が多いです。

確かにプログラミングスクールを利用するのが挫折しないための手っ取り早い方法だと思います。もっといえば、企業に就職するのが更に手っ取り早いと思います。

ただ、独学の場合でも学び方を工夫することで挫折する可能性を下げられるのではないかと思います。そのためにはどうすれば良いか?この点について解説していきたいと思います。

教材の選び方

独学でプログラミングを学ぶ場合は参考書やウェブサイト・動画などの教材で学習を進める方が多いと思います。

この教材の選び方も重要で、教材の選び方によって挫折する可能性を低くできるのではないかと思います。

1つ目の教材としては早くモノづくりが体験できる教材を選ぶ

プログラミング(プログラミング言語)入門者向けの教材は、大きく分けると下記の2つに分類できると思います。

  • 幅広い知識が得られる総合型入門書
  • 手を動かしながら学べる体験型入門書

ちょっと分類の仕方がイマイチかもしれませんが、特にプログラミングが初めての方であれば、最初に選ぶのは「出来るだけ早くモノづくりが体験できる教材」が良いです。上記でいうと後者の方ですね。

その理由は、実際に何かを作った方がプログラミングの楽しさを味わいやすいからです。特にプログラミング初心者の方は、まずは「プログラミング楽しい!」という感情を持つのが一番重要だと思います。

楽しいと挫折しにくくなりますし、逆につまらないと学習続けたいと思えないですよね…。

あとは、プログラミングの知識をつけていく上でも、一度プログラミングを体験してからの方が効率が良いです(理由は後述します)。

できるだけ早くモノづくりが体験できる教材の具体例としては、下記の「Pythonでつくる ゲーム開発 入門講座」はオススメです。

おすすめ書籍(PR)

この Pythonでつくる ゲーム開発 入門講座 は、知識を詰め込むような退屈(?)な解説は80ページくらいのみで、後はゲームを作りながらプログラミングを学ぶというスタンスの書籍になります。

なので、実際にプログラミングを体験して楽しさを味わえるまでの過程が短いというメリットがあります。更に作るのがゲームなので、題材としても割と楽しみやすい内容になっていると思います。

上記はあくまでも例であり、自身の目指している職種や自身が作ってみたいものに合わせて、「出来るだけ早くモノづくりが体験できる教材」を選ぶのが良いと思います。書籍にこだわる必要もないです。

ちなみに、Python はゲーム開発やアプリ開発に向いているかというと、そうでもないと思います。ですので、上記の「Pythonでつくる ゲーム開発 入門講座」を読んで学習を始めても、高度なゲームやスマホ用のアプリなどを作る際には他の言語を学び直す必要もあるかもしれないです。そういう意味では遠回りになるかもしれませんが、「プログラミングの楽しさを知る・プログラミングにまず慣れる」という点では上記の書籍は最良の教材の1つだと思います。

本題に戻りますが、上記のような教材で学びながら実際にプログラミングでモノ作りを体験していくとプログラミングにも慣れる事ができ、プログラミングするのに必要な考え方やロジックの組み方なども身についてくると思います。

スポンサーリンク

簡単なモノを自分で作ってみる

プログラミングに慣れてきたら、次のステップとして、書籍で学んだことを活かして自身で何かしらのプログラムを作ってみることをオススメします。簡単なものでも良いです。

教材等に載っているソースコードをそのまま写したり、コピペしたり、ダウンロードしてきたものをそのまま実行して動かすだけでも、特にプログラミング初心者の方であればそれなりの感動は得られると思います。

ただ、やっぱり自分で作ってみたものを動かしてみた方が得られる感動は大きいです。よりプログラミングの楽しさを実感できると思います。

例えば上記で紹介した書籍であれば、ゲームや PC 上でアプリを作るための知識が得られますので、オセロのようなゲームであったり、計算機アプリなんかを作ってみても良いと思います。最初なのでまずは簡単なものから挑戦しましょう!

2つ目の教材として総合的に学べる教材で学習する

作ることを体験した後は、次のステップとしてプログラミング言語を網羅的・総合的に学べるような教材を読んでみることをオススメします。最初に挙げた2種類の教材のうちの前者の方ですね。

「出来るだけ早くモノづくりが体験できる教材」の場合、早くプログラミングが体験できることにフォーカスを当てているため、身に付く知識としては少なめです。

なので、プログラミングに慣れてきた際に、あなたがプログラミングで「出来ることを増やす」「知らなかったに気づく」ためにも、網羅的に知識が得られる教材で学習した方が良いです。

この時に、ここまであなた自身が体験したプログラミングの経験をベースに、想像を膨らませながら読んでいくことをオススメします。

おそらく教材で学習していると、知らなかった知識がどんどん得られていくと思います。知らなかった知識が得られた際には、是非自身が以前にプログラミングした経験を思い浮かべ、学んだ知識によって以前作ったソースコード・プログラムを改善できないかどうか、学んだ知識によって以前は出来なかったことが出来るようになっていないかどうかを想像しながら学習していきましょう。

曖昧な例になりますが、例えば下記のような想像です。

  • あの時は xxx な書き方したけど、こっちの書き方の方が簡潔に書けて良かったかも
  • あの時プログラムが上手く動かなかったのは、この手順が抜けていたからかも
  • この関数を使えば、あの時実現できなかった xxx な機能が実現できるかも

想像できたら実際にそれを試してみましょう!アウトプットすることでより深く内容を理解することができるはずです。

また、上記のようにどういう場面で使えそうかを考えながら学習していけば、実際にその場面に直面した時に学んだ内容が思い出しやすくなります。内容まで思い出せないとしても記憶に断片でも残っていれば、教材を見返したりウェブ検索で調べて思い出すことができます。

あと、こういった想像をしながら学んだほうが自身が出来るようになったことが実感しやすいです。出来る事を増やす感じで学んでいけば、より楽しく学習していくことができると思います。

ただ、上記のような想像を行うのはプログラミング未体験者にはなかなか難しい思います。

ですので、知識をつけていく上でも、まずはプログラミングを体験した方が効率が良く、より深く学べると思います。なので1冊目は体験しながらプログラミングを学べる本が良いと思いますし、ある程度プログラミングを体験してから総合型の参考書を読む事をオススメします。

教材での学び方

続いて、教材で学習していくときのポイントをいくつか紹介していきたいと思います。

スポンサーリンク

分からない内容は他の人の説明で補う

学習していて分からない点が出てきた時も、挫折しやすいポイントの1つだと思います。

教材で学習して分かりにくい内容・理解できない内容があった場合は、他の人の説明を読んでみる・聞いてみることをオススメします。他の教材やウェブページの解説でも良いですし、動画などで説明を聞くのでも良いです。

教材によって説明の仕方、前提知識の与え方、図の使い方など様々な違いがあります。そして、人によって理解しやすい説明の仕方も異なります。あなたが使っている教材で分かりにくい内容の解説があったとしても、他の解説の仕方だと理解できるかもしれません。

なので、理解できない内容の解説があった場合、まず理解するのをあきらめるのではなく、他の人の解説を読んでみる・聞いてみることをオススメします。

無理して覚える必要はない

あと、教材の内容は全て無理して覚える必要はないです。

特に重要なことは自然と覚えられる

まず、特に重要なことは自身でプログラミングしているうちに自然と覚えられます。例えば条件分岐や繰り返しなどは多々使用する機会がありますので、何度も書いているうちに自然に覚える事ができるはずです。

調べながらプログラミングすれば良い

また、プログラミングは必要に応じてウェブや書籍等で調べながら行うことができます。これは実際に企業などに就職してからも同様です(少なくとも私はウェブで検索は多用してます)。

もちろん、調べる手間がなくなるので、完全に暗記している方がプログラミングの速度は速くなります。なので暗記していることに越したことはないです。

ただ、「うろ覚え」でプログラミングを記述するのは危険なことが多いので注意が必要です。動作確認して上手く動作したとしても、状況等によっては危険性を含む書き方になっているような場合もあり得ます。

で、特に関数やメソッドの使い方はうろ覚えになっていることが多いので、結局ウェブで検索して確かな情報を確認しながらプログラミングすることが多いです。少なくとも私はですが…。

開発環境を整えればヒントを得ながらプログラミングできる

また、わざわざウェブで検索しなくても、開発環境を整えることで構文・文法・関数やメソッドの情報のヒントを得ながらプログラミングすることも可能です。

例えば下記は Python スクリプトの間違った例になりますが、4行目の 1 の部分に赤の波線が表示されていることが確認できると思います。

間違った書き方をの指摘例1

これは「書き方が間違ってるよー」という指摘であり、赤の波線部分にマウスカーソルを合わせると、どう間違っているかのヒントを得ることができます。

どう間違っているかの説明文の表示

Expected ":" と指摘されており、この指摘により条件文の後の : が抜けていることに気づけますね!

こんな感じで、開発環境を整えることによりソースコード記述のヒントが得られ、間違い等に気づきながらプログラミングすることもできます(ちなみに上記の例では VSCode の Pylance プラグインの機能を利用しています)。

例えば関数の引数等も教えてくれる機能もあります。

関数の引数が表示される例

こういった開発環境を利用することで、間違った構文や文法に気付きながらプログラミングすることもできますし、ウェブ検索する手間を省くこともできます。

実践の仕方

ここまでは挫折しないための教材の選び方や教材での学び方について解説してきましたが、ここからは実践で挫折しないためのコツについて解説していきます。

スポンサーリンク

エラーを怖がらない

まず心構え的な点になりますが、エラーを怖がらないようにしましょう!

プログラミングしていると、エラーが発生してコンパイルできないことや、プログラムが途中で止まってしまうような事が必ず起こります。

そんな時に絶望する必要もありませんし、自分がプログラミングに向いていないと考えてプログラミング学習を挫折する必要はないです。

プログラミングに慣れてくると、このエラーが怖くなくなります。私もプログラミングしていてエラーはよく発生しますが、チッ!と軽く舌打ちするような事があっても落ち込むようなことはありません。

では、プログラミングに慣れてくると、なぜエラーが怖くなくなるのでしょうか?

私自身の経験からすると、1つ目の理由は「既に体験したことのあるエラーが多いから」です。この場合、一度解決したことのあるエラーなので解決方法も知っている事が多く、淡々とその解決方法に従って修正すれば良いだけです。

同じミスを繰り返すな!という指摘もあるとは思いますが、重要なのは、一度体験して解決したことのあるエラーは怖く無いという点です。

2つ目の理由は「どうすれば解決できるか大体分かっているから」です。まず、出力されたエラー文には「エラーが出ている行」と「エラーの原因」が記述されている事が多いはずです。なので、記述されている原因とエラーが出ている行の情報から解決方法を自分で見出す事ができることもあります。

ただ、自分で解決方法が見出せない場合も多いです。そんな場合でも、出力されたエラー文をコピペしてググれば大体解決方法が見つかります。あとはその解決方法に従って修正すれば良いだけです。

で、この2つの理由から分かる通り、エラーが解決できるからといって私自身は全く凄くないですよね…。だって「エラーをたくさん経験しているだけ」&「多くの場合、エラーの解決方法はググって調べる」だけなんですから…。

これならあなたでも出来そうですよね…?

ここで私が言いたいことは2つで、1つ目は「エラーは経験すれば経験するほどエラーに慣れる」という事です。

体験したことがあるエラーであれば、それを以前に直した時と同様の方法で修正すれば良いだけです。エラーは経験すればするほどエラーの解決策の知識が増えます。

言いたいことの2つ目は、「ググること・ウェブ検索が重要である」ことです。大体出力されたエラーの文言で検索すれば、解決方法をまとめているブログや記事を見つける事ができます。

たくさんエラーを体験し、そのエラーの解決策を調べることを繰り返していくことで、エラーの解決策の知識も増えますし、エラーに慣れていく事ができます。

エラーを怖がらず、エラーが出たら、むしろあなたの知識を増やすチャンスであると考え、ポジティブな気持ちで修正方法を考える・調べるようにしましょう!

ただ、マイナーなプログラミング言語の場合はウェブで検索しても情報が見つからない場合もあるかもしれないです。マイナーなライブラリを使用している場合も同様です。特にプログラミング初心者の方は、エラーが簡単に解決できるよう、まずはメジャーなプログラミング言語から初めてみることをオススメします。

できるだけ小さな単位で動作確認を行う

またエラーが出なくても、バグがあってプログラムが思った通りに動作してくれないような場合もあります。

このバグを解決できなくて挫折した人も多いと思います。

が、このような現象もエラー同様に怖がる必要がなく、むしろあなたの力を伸ばすチャンスと考えて付き合っていくのが良いです。

ただし、エラーよりも、あなたが作成したプログラムが思った通りに動作してくれない場合の原因調査と対策の方が難易度が高い場合が多いです。

その理由は、エラーと違ってウェブ検索すべき文言がすぐには分からないからです。

エラーの場合はエラー文が出力されるので、そのエラー文でウェブ検索すれば良いです。ですが、エラーが出ていないにも関わらずプログラムが思った通りに動作してくれない場合、エラーが出ていないので何をキーワードにして検索すれば良いかが分からないですよね…。

ですので、プログラムが思った通りに動作してくれない原因は自身で特定していく必要があります。もしくは、何をキーワードにウェブ検索すれば良いかが分かるまで、原因を絞り込んでいく必要があります。

このプログラムが思った通りに動作してくれない場合にやるべきことは下記ページでもまとめているので是非参考にしてください。特に、期待する動作を意識しながらプログラミングする&原因調査する事が重要です。

プログラムが上手く動作しない場合にやるべきことの解説ページアイキャッチ プログラムがうまく動作しない時にやるべきこと

原因特定を簡単にするためのポイントの1つは、この節の見出しの通り、「できるだけ小さな単位で動作確認を行う」です。

例えば一行のソースコードのプログラムが思った通りに動作してくれない場合、一行しかないので問題のある行は簡単に特定できます。

そのため、その一行だけを見て、その行の書き方に問題がないか、例えば演算を行なっているのであれば演算子の優先度が正しいのかを確認したり、関数呼び出しを行なっているのであれば、その関数名でググって正しい使用例を調べ、自身の使い方に問題がないかどうかを確認したりすることで原因調査を行う事ができます。

ただ、一度に大量のソースコードを記述してしまうと、どの部分に問題があるのかが分からなくなってしまいます。そのため、その大量のソースコードの中から問題のある部分を特定する作業が必要になります。行数が多ければ多いほど大変です。

さらに行数が多ければ多いほど、問題のある部分が多数存在する可能性も高くなります。直しても直してもプログラムがうまく動かないという現象に陥ります。多くのプログラミング初心者の方は、ここで心が折れると思います。

こういったことにならないよう、できるだけ小さな単位でこまめに動作確認しながらプログラミングしていくことをオススメします。

流石に一行書くたびに動作確認するとなると大変なのでむしろ心が折れると思いますが、区切りの良いところまで書けたら動作確認関数を1つ書いたら動作確認といった感じで、できるだけ小さな単位で動作確認を行うようにしましょう。

そして、その時点で思った通りに動いていない場合は原因を調査して修正しましょう。行数が少ない分、原因の調査は楽になると思います。

こまめに動作確認を行うので大変そうにも思えますが、経験的には一気にソースコードを大量に書くよりも、こまめに動作確認を行う方が最終的なプログラムの出来上がりが早い場合が多いです。

デバッガーを導入する

プログラムが思った通りに動作しない場合にはデバッガーを導入することもオススメします。

デバッガーを使えばプログラムを一行ずつ停止させながら動作させることもできますし、停止した時点での変数の中身の確認も行う事ができます。

これを利用するだけで、自身の作成したプログラムが思った通りに動作しない原因調査がかなり楽になります。

デバッガーには有料のものもありますが、VSCode などの開発環境であればプラグインを導入するだけで無料でデバッガーが利用できます(少なくとも私は無料のものを利用しています)。

VSCode での Python や C言語 でのデバッガーの利用方法については下記ページで解説していますので、詳しく知りたい方は是非読んでみてください。

VSCodeでMacOSにC言語デバッグ環境を構築する方法の解説ページアイキャッチ VSCodeでMacOSにC言語デバッグ環境を構築 Visual Studio Code で Mac に Python 開発環境を整える

プログラムが思った通りに動作しない現象は、どれだけプログラミングに慣れても起こりうることですし、プログラミングを続けていく限り何度も何度も原因調査を行う必要があります。

毎回調査に苦労するとプログラミングに挫折したくなってしまうと思いますので、できるだけ楽に調査できるよう、デバッガーが利用できる環境は整えておいた方が良いです。

スポンサーリンク

楽できる・ミスを防ぐ環境や仕組みを整える

デバッガーだけでなく、とにかく楽にプログラミングができる環境は整えておいた方が良いと思います。

例えばですが、前述でこまめに動作確認する事が重要と述べましたが、特にコンパイラ言語の場合、動作確認を行うためには「コンパイル(リンク等も含めて)」と「プログラム実行」の手順が必要であり手間がかかります。

手間がかかると動作確認を行うのが面倒になって疎かになりがちです。ただ、面倒だからといってソースコードを大量に書いた後にまとめて動作確認すると、思った通りに動作しなかった場合に「どこが原因か分からない…」「直しても直しても思った通りに動かない…」「諦めよう…」なんてことになりかねません。

かといって、やっぱり「コンパイル」と「プログラム実行」の2つの手順を毎回繰り返すのも面倒です。それこそ「疲れたからやめよう…」ってことになる可能性も高いです。

面倒な手順はプログラミングするにおいても効率が悪いですし、それがプログラミング学習の挫折の要因の1つになる可能性もあります。

なので、面倒な手順は出来るだけ無くすための工夫もした方が良いと思います。例えば上記の例であればスクリプトを作って「コンパイル」と「プログラム実行」を1つのコマンドで実行できるようにすると楽できますよね。こんな方法も「コンパイル 実行 同時」などでウェブ検索すれば簡単に解説ページを見つける事ができます。

また、前述でも紹介した VSCode であれば、事前に適切な設定さえ行なっておけば再生ボタン1つクリックするだけで、コンパイルからプログラム実行まで自動的に行う事が可能です。

こんな感じで、手順などは出来るだけ楽にしてプログラミングやプログラミング学習に集中できる時間を増やすようにした方が良いと思います。

また、同じミスを何回も繰り返すのも非効率ですし、同じミスを繰り返すことで気も滅入ります。こういったミスも環境や仕組みで防ぐ事ができるかもしれません。

例えば変数名や関数名のスペルミスであれば、自動補完(オートコンプリート)機能を使えば防ぎやすくなります。例えば VSCode であれば、この自動補完機能もプラグインをインストールすることで利用できます(C言語 や Python には確実にその機能が利用できるプラグインがある)。

変数名や関数名のみでなく、英単語としてスペルが正しいかどうかをチェックするプラグインなどもあります。

また、例えば余計な空白文字があったミスのせいで上手くプログラムが動作しなかった経験があるのであれば、余計な空白文字が見つけやすくなるような仕組みが導入できないかを考えてみるのも良いと思います。これも VSCode であれば空白文字に色を付けてくれるプラグインが存在しますので、余計な空白がないかどうかが確認しやすくなり、ミスを減らす事ができます。

ここで紹介したのは単なる例で、面倒と感じる手順、何回も発生するミス等を経験した場合は、それらを解決するための環境や仕組みが導入できないかを考えてみると良いと思います。

あなたが経験した面倒と感じる手順やミスは他の人も経験している可能性も高く、検索するだけで解決する手段が簡単に見つかることも多いです。

もちろん環境や仕組みの導入も大変ですが、長い目で見ればプログラミング学習の効率は上がると思います。また、こういった仕組みで解決する考え方は社会人になってからも要求されることが多いので、この考え方に慣れておいて損はないと思います。

また、ドラクエなどのロールプレイングゲームで喩えるとすれば、エラーやバグやミスはあなたにとっての敵です。より解決が難しい敵を倒すためには、経験値を積んであなたのプログラミングレベルを上げておく必要があります。

ですが、レベルがそこまで高くなくても「装備」を整えておけば自分のレベルよりも高い敵を倒すこともできますよね!その装備が、ここまで紹介してきたデバッガーや開発環境になると思います。しかも無料でゲットできる装備も多いです(少なくとも私は家でプログラミングする際には無料のものしか使っていません)。

自身の実力・レベルが足りなくて解決できないエラーやバグやミスであっても、装備を整えることで解決できる可能性がある事は是非覚えておいてください!

できるだけ簡単なものから開発に挑戦する

あとは、プログラミングで何か作る際には、できるだけ簡単なものから開発に挑戦することをオススメします。

すごく難しいアプリやサービスをいきなり作ろうと思うと、プログラミングが全然終わらなくて挫折しがちです。私は家計簿アプリを作ろうとして挫折した経験があります…。そんなに大規模なアプリでもないはずなのに…。

もちろん、作りたいものがあるのであれば、いきなりそれに挑戦するのでも良いと思います。が、その際にも簡単なものから徐々に機能を充実させていくやり方で開発していく方が良いです。

例えば私は最近 2D 横スクロールゲームを作ってみたのですが、下記のように簡単なものから徐々に機能(出来ること)を充実させていくことで作成しました。

  • ゲームの背景を表示する
  • 操作キャラクターを表示する
  • 操作キャラクターを横方向に移動できるようにする
  • 操作キャラクターをジャンプできるようにする
  • ゴールを表示する
  • 操作キャラクターとゴールとの当たり判定を行う
  • 操作キャラクターとゴールが当たった際にゲームクリア画面を表示する
  • 敵キャラクターを表示する
  • 敵キャラクターが自動的に移動するようにする
  • 操作キャラクターと敵キャラクターとの当たり判定を行う
  • 操作キャラクターと敵キャラクターが当たった際に当たっ時の処理を行う
    • 操作キャラクターが敵キャラクターを踏みつけた際には敵キャラクターを画面から消す
    • 操作キャラクターが敵キャラクターを踏みつけられなかった際にはゲームオーバー画面を表示する
  • 当たり判定をより詳細に行うようにする

まぁ、このゲーム自体すごく簡単なものなのですが、いきなり全体を作るとなるとそれなりに大変です。簡単なものから徐々に機能(出来ること)を拡張していくことで楽に開発できますし、1つ1つの機能の実現が目標となり、目標が細かく設定されることでモチベーションも保ちやすくなるというメリットもあります。

しっかりリフレッシュする・休憩する

あとは無理せず、しっかりリフレッシュや休憩をしながら学習やプログラミングを続けていくことも重要です。

まず疲れている時にプログラミングすると、集中力が切れてミスも発生しやすいです。なので、しっかり休憩しながらプログラミングした方が効率が良いです。

あと私の経験談ですが、どうしてもプログラムが思ったように動作しない・バグの原因が分からないような場合でも、寝て起きて次の日に考えてみたらサクッと原因が判明することが多かったです。

プログラマーの方であれば、これ経験したことある人多いんじゃないかなぁと思います。

正直、何故あんなにサクッと解決できたのかが不思議ではあるのですが、寝て集中力が回復した・寝ることで考えが整理された、等の要因があったのではないかと思います。受験勉強でも睡眠は重要と聞きますし…。

もちろん寝れば確実にバグの原因が分かるというわけではないですが、考えても解決できなかったバグがあった場合でも、寝てから or 日にちを空けてから再挑戦することでサクッと解決できる場合もあるかもしれないです。

しっかりリフレッシュ・休憩をとりながらじっくりプログラミング学習をこなしていきましょう!

スポンサーリンク

作りたいものが無い場合のアウトプット

また、プログラミング学習の挫折の理由として割とありがちなのが「作りたいものがない」です。一通り入門用の教材はマスターしたけど作りたいものがないから結局プログラミングやめちゃったというパターンですね。

目的によっては、その時点でプログラミング学習をやめてしまうのも正解だと思います。ただ、とにかくプログラミングのスキルを付けたいのであれば、何かしらの方法でアウトプットしていく方が良いと思います。

そのアウトプットの例として、作りたいものがない方でもチャレンジできそうなものを紹介していきます。

何かを真似て作ってみる

まず、何かを真似て作ってみることをオススメします。

プログラム作成は、作成するものがどんなものであるかをしっかりイメージできた方がやりやすいです。なので、自身が使ったことのあるもの遊んでみたことのあるもの等の方が作りやすいかなぁと思います。

真似る対象としては例えば下記のようなものが挙げられるかなぁと思います。

  • PC に入っている簡単なアプリ
  • プレイしたことのあるゲーム
  • あなた好みのデザインのウェブサイト

特にアプリやゲームは真似る対象が思いつきやすいと思います。例えば計算機アプリや簡易版のペイントアプリ、ブロック崩しやモグラ叩きなど、真似る対象はどんどん思いつくと思います。

実現するために必要な知識等もどんどん補いながらプログラミングしていくことで、知識も増えますし、作っていくうちにロジックの組み立て方を考える力も養われていくと思います。

公開されているプログラムの改造に挑戦してみる

また、公開されているプログラムの改造に挑戦してみるのも良いと思います。

ウェブ上には多くのプログラムのソースコードが公開されていますので、それをコピペしてきて改造してみる感じですね。

特に、他の人が作成したプログラムの改造は難易度が高いです。改造するためには既存のソースコードに悪影響がないようにプログラミングを行う必要があります。下手に変更すると元々動作していたものがうまく動かなくなる可能性もあります。

悪影響がないように変更するためには、まず他の人が作成したソースコードをしっかり理解する必要があります。基本的に、自分が書いたソースコードよりも、他の人が作成したソースコードを理解する方が難易度は高いです。

こういった難易度が高い作業を行うことで、ソースコードを読む・理解する力も養えますし、実際に改造することでプログラミングする力も養えると思います。

また、実際の開発の現場においても、こういった改造を行うことでソフトウェアのバージョンアップを行うことも多いので、実践的な取り組みの経験もできると思います。

スポンサーリンク

業務改善に挑戦してみる

自身が面倒だと思うこと、不便だと思うことをプログラミングで解決してみることに挑戦してみるのもアリだと思います。

例えば会社にお勤めの方であれば、単純作業やミスの起こりやすい作業などをプログラミングで自動化することにより、もちろんプログラミングの力を伸ばすこともできますし、それだけでなく業務効率・生産性向上に貢献することもできます。自動化によって残業時間を減らしたり、もっと重要な仕事に費やす時間を増やして成績アップしたりすることができるかもしれません。また、同じことで困っている人にも展開してあげれば喜ばれると思います。

また会社でなく自宅であっても、面倒なことや不便なことをプログラミングで自動化してやれば PC での作業等の効率が上がりますし、それを他の人にも提供することで新たなサービスを構築することができる可能性もあります。

Paiza スキルチェックや AtCoder に挑戦してみる

あとは、Paiza スキルチェックAtCoder に挑戦してみるのも良いと思います。

特に自身で考えてプログラミングする力を育むことができますし、アルゴリズムを学ぶきっかけになると思います。

例えば Paiza スキルチェックは、簡単にいうとコーディングテストが受けられるサービスです。会員登録は必要ですが、無料でコーディングテストは受けられます。講座を受ける場合は確か有料だったと思います(無料のものもあるかもしれないですが)。

出題された問題を解くプログラム(提示された仕様にあったプログラム)を作成して提出すれば、プログラムが正しく動作するかどうかがチェックされ、正しく動作していればレートが上がる・正しく動作しなければレートが下がるみたいな感じですね。

問題を解くためにどのようにロジックを組み立ててプログラミングしていく必要があるかを考えていく必要があるので、自然とプログラミングする力を育てていくことができます。

私も Paiza スキルチェックはやったことありますが、ゲーム感覚でテストを受けることができてめちゃめちゃ楽しかったですね。レートがあるのでモチベーションも保ちやすいです。

問題を解けば良いだけですので、作りたいものがなくてもプログラミングの力を育てることができる良いサービスだと思います。本来は転職向けのサービスらしいですが、転職する意思のない人やまだ就職していない人でも利用できます。

「模範解答がない」のが嫌という方も多い印象ですが、”自身の力だけで考えてプログラミングせざるを得ない環境” という点も、個人的にはプログラミングの力を養うのに向いていると思っています。

技術ブログを作成してみる

あとは技術ブログなど作って自身で学んだことや作ったものを発信してみるのも良いと思います。

学んだことの解説記事などを作成すれば説明するスキルも向上しますし、解説した内容に関する知識も定着しやすいです。また、記事を書いていると自身に不足している知識や自身が曖昧に理解している点が浮き彫りになるので、それを補いながら記事を書いていくことで理解を深めることもできます。

あと、ウェブ上に公開することで Google 等の検索結果にも表示されるようになります。上位に表示されたりすると嬉しいですし、もっと上位に表示されるような記事が書きたくなると思います。

ブログによっては広告を貼り付けることで収益化させることもできますし、割と記事を書くモチベーションは上がりやすいので、記事を書くために知識を増やしたり新たに何かを作ったりしたくなるような好循環が生まれやすいというメリットがあります。

はてなブログQiita などのサービスを利用すれば無料で技術ブログが作れますし、ウェブサーバーのレンタルとドメインの取得さえすれば、自身のウェブサイトを作成し、そこから技術ブログを発信していくこともできます。

おすすめサーバーなど(PR)

ちなみにですが、私は エックスサーバー でウェブサーバーをレンタルし、

お名前.com でドメインを取得しています。

さらに、ワードプレスのインストール及びあなた好みのテーマのインストールをすれば、ウェブサイト自体はすぐ作ることができます。あとは記事をどんどん書いていけば良いだけです。

ウェブサーバーのレンタルやドメインの取得には費用がかかりますが、私自身は費用が発生した方がモチベーション上げやすいですし、自分で好きなようにサイトもカスタマイズしたかったので無料ブログではなく、この方法でウェブサイト運営をしています。

割とプログラミングを学ぶモチベーションも上げやすいですし、ウェブの知識も身につくので、技術ブログを始めてみるのも結構オススメです。

スポンサーリンク

まとめ

このページでは、特に独学でのプログラミング学習者に向けて、「挫折しないための学び方」について解説しました。

プログラミング入門者の方は、まず知識をつけるのではなくプログラミングを体験することを重視しながら学んでいくのが良いと思います。

ある程度プログラミングを体験し、楽しさを味わってから知識を拡充していく方が挫折しにくいと思いますし、知識もつきやすいと思います。

また、プログラミング学習の本質ではないので疎かになりがちですが、開発環境をしっかり整え、できるだけ楽にプログラミングできるようにするのも大事だと思います。

手順が面倒だったり、何回も同じミスを繰り返したりするとプログラミングするのが嫌になってしまう可能性が高いです。やっぱりこういった要素は出来るだけ排除しておいた方がプログラミングは続けやすいと思いますので、ちょっとでも面倒と感じたことや解決するのに困ったミスがあれば、それらを仕組みで改善できないかどうかを調べてみると良いと思います。

特にデバッガーが使える環境はあった方が良いと思います。プログラムが上手く動作しないことは多々ありますし、他の人の書いたソースコードなどを理解する際にも役立ちます。

あとは困った際にそこで思考停止するのではなく、ウェブ等で調べて解決していく癖をつけるのも大事です。あなたが困ったことは他の人も経験している可能性が高く、既に解決方法をまとめてくれていることも多いです。

同じカテゴリのページ一覧を表示