趣味や仕事・副業のためにプログラミングの学習を始めてみたものの、思うように進まない人が多く、よく相談を受けることがあります。
多くの場合は「テキストに書いてあることが覚えられない」「そもそもプログラミング楽しくない」といったメンタル面の不安を抱えています。
現役のフリーランスエンジニアとして活動する私が、そんな悩みを抱える人がプログラミングの学習をより楽しく・効率的に進められるよう、問題点の分析と整理をして、対策をまとめました。今日からネガティブな思考を一掃できる記事に仕上がったと思います。
プログラミングの勉強が思うようにできないのは何故か?
プログラミングの勉強がはかどらない理由は、大きく分けると2つあると思います。
- 「プログラミングをうまく覚えられない」という意識
- 「プログラミングが楽しくない」という意識
一つずつ見ていきましょう。
「勉強しても内容を覚えられない」
プログラミングの学習しても覚えられない、という意識になってしまうことです。
内容を覚えられないから「自分にはプログラミングは無理かも」という諦めの感情が生まれてしまい、勉強がはかどらなくなることはよくあること。
実際に人より遅れているわけでもないのに、感情面でブレーキをかけてしまいます。
「楽しくない」
もう一つの理由が、プログラミング自体が楽しく感じられないから、というものです。
多くの人が「プログラミングを仕事にしたい」など、さまざまな目的からプログラミングの勉強を始めると思います。
ですが、勉強に飽きたり、内容が思うように頭に入ってこなかったりすると「楽しくないじゃん」と感じ、モチベーションが下がっていくことは珍しくありません。他にもっと楽しいことがあるなら、なおさらなりがち。
では、こんな状況になったとき、どうすればいいのでしょうか?
プログラミング自体を諦めてしまった方がいいのでしょうか?
「プログラミング覚えられない!」知っておきたい3つのこと
プログラミングを覚えられないのは当然のこと
プログラミングの内容を覚えられないことに焦ってしまう方は少なくないですが、覚えられないのは何もおかしなことではありません。
どのような言語にせよ、プログラミングで覚えるべき内容は1つや2つではないですよね。
例えばJavaでは基本的な型名や関数の種類を挙げるだけでも大変ですが、既存のクラス関数なども含めると数百以上の言葉が存在します。
膨大な名称があるのは、他の言語も似たようなものです。
実際、「プロ」と呼ばれるプログラミング上級者でも、必要な知識をすみずみまで理解してる人はほぼいません。一度学習した内容を忘れてしまうことは自然なことですし、むしろ忘れる事を前提に勉強した方が得策です。
どちらかといえば、知識を詰め込むというよりも、時間をかけて理解を深めていくことが大切です。手前味噌な知識よりも、プログラマーとしての土台となる思考パターンを育てる方が、長期的には役立ちます。
どちらかといえば、「調べるスキル」が重要
それでも内容を覚えようと頑張っている人の中には、このように思っている方もいるのでは?
「優秀なプログラマーは自分の知識だけでプログラムを作ることができる」と。
ですが実態は、優秀なプログラマーほどインターネットなどで、分からない部分をその都度調べています。
上で解説したように、すべての知識を覚えておくのは生理的に不可能ですし、学習で詰め込むのは非効率です。
そして、自分が習得している知識だけでプログラミングをしていくと、プログラミングの幅が狭まってしまいます。
プログラム言語は常にアップデートされ、新しい機能が追加されたり、逆に今ある書き方が使えなくなることもあるのが常です。仕事などでプロとしてプログラマーをするなら、そうした情報は常にキャッチアップしなければなりません。
そういう意味で、今持っている知識だけで勝負しようとするのは、最初から負けています。知らないこと、分からないことができたら、どんどん検索して「調べるスキル」を身に着けていきましょう。
インターネット上では、私たちの知らないさまざまな観点や考え方を持ち、コードを書いている優秀なプログラマーが、知識やノウハウを公開してくれています。
「自分が持っていなかった視点」を参考にすることで、プログラミングスキルがさらに上達し、新たな知見の獲得に繋がっていくのです。
全部を暗記してプログラムを書くだけよりも、こちらのほうがすごいと思いませんか?
覚えるなら、土台となる思考パターン
プログラミング学習では、「特定の言語をすらすら書けるようになる」よりも、プログラムの構造、いわゆるアルゴリズムの部分を理解することが重要だと思います。ここでは思考パターンと呼んでおきましょう。
思考パターンにはいくつかのセットがあって、どれも重要です。
- 入力、記憶、処理、出力、といったパートの今どこにいるか
- くり返し、条件分岐はどんなときに使うと便利か
- 関数などにまとめるのはどうしてか、どんな時に便利か
- プログラムがあって、データをデータベースに書き込んで、サーバーでページを表示して…という流れで今なにをしているか
プログラミング言語には数多くの種類がありますが、こうした思考パターンはどの言語にも応用できます。
逆にいえば、こうした思考パターンをしっかり身につけておけば、プログラミングの上達は早いですし、さらに他のプログラミング言語を学習するときの理解が超高速化されます。
プログラミング学習の本質、骨格はこの思考パターンの取得にあると思っています。
「プログラミングが覚えられない」のは、この思考パターンができあがっていないときに、応用的な部分にチャレンジしているから。
それ自体は成長のためにいいことですが、まずは基礎部分をしっかり固めることで、「覚えられない」ことも「分かる」ことに変わっていくはずですよ。
プログラミングの学習を進めていけば、思考パターンは勝手に身に付いていきます。焦らず、攻略していきましょう。
プログラミングが楽しくないときの原因と対策
楽しめない理由は何?
プログラミング学習を楽しく感じられない原因を整理すると、大きく2つの要因があると思っています。
- 自分が心から求める内容じゃない
- (小さな)達成感を得られていない
自分が心から求める内容じゃない
つまり、なんとなくやっている状態です。
「プログラミングができたらいいな」とか「プログラミングで稼ぎたい」と思って始めた状態。もしくはキャリアップのために、プログラミングを身に付けたいと考えている人もいるでしょう。
プログラミング言語といっても、Web開発に向いているもの、スマホアプリなどのソフト開発に向いているものなど、得意なジャンルが異なります。
例えば、「何かをデザインすることが趣味」という方が数字の演算処理を得意とする言語を学んでも、あまり楽しく感じられないでしょう。
自分の趣味・嗜好に合っているかどうかももちろんですが、さらには、仕事や業種、目標に関係のない言語を選んでしまっている人の多さにはびっくりします。
「将来は自分でWebサービスを作りたい」という人が、ExcelのVBAマクロを勉強していても(仕事で多少は役立つかもしれませんが)ほとんど楽しさは感じないでしょう。それなら最初からPHPやPython、HTML・CSSなどを勉強した方が、自分のやりたいことのイメージが色付くと思います。
(小さな)達成感を得られていない
人は何か「ひと仕事終えた」感覚があると大きな幸福感を覚えますし、逆にそれが無ければ目標に向けての努力が続かない生き物です。
プログラミングが続かない、楽しくない、という人は、おそらく達成感を感じる瞬間がほとんどないのではないでしょうか?
何かができた、成し遂げた、という達成感がない状態が長く続くと「プログラミングは楽しくない」という思考ができあがってしまいます。
どうやったら達成感を得られる?
達成感と書くと、何か大きなプログラムを完成させたとか、フリーランスとして受注できた、とか色々考えてしまいますが、そうした瞬間はほとんど経験できませんよね。
でも達成感というのは、ほんのちょっとしたものでいいんです。むしろ、ちょっとした小さな達成感が積み上がっていくことで、毎日を楽しく幸せに過ごすことができるわけです。
例えば、こんな感じです。
- 開発環境をつくって、プログラムを実行できた
- テキストの章を読み終わった
- クラスとは何か、を何となく理解できた
- 今日学んだことを自分の言葉で説明できた
そうした毎日感じることができる、ちょっとした目標達成の積み重ねで、プログラミングは楽しいものになっていくはず。タイトルで(小さな)と書いたのは、そうした理由です。
こんなとき、プログラミングが楽しい
プログラミング学習を楽しく感じるのは、自分で「プログラミングをちゃんと理解できている」と実感できたときでしょう。
例えば、HTML・CSSについて学習する際、自分でオリジナルのWEBページをHTML・CSSでデザインし、インターネット上のサイトと同じようなものが作れると「よし、いい感じ!」となりますよね。
また、自分のアイデアを具体的にプログラムに落とせるようになると、日々の勉強がスキルアップに繋がっていると実感できるはず。
着々と自分が成長していることを実感できれば、プログラミング学習を楽しく感じられるだけでなく、「こんなこともやってみたい!」とモチベーションもアップしていきます。
また、自分が作ったものを他人から褒められたときも、楽しいと感じられるでしょう。身近な人やSNSで紹介して、フィードバックをもらうのも成長につながっていきます。
楽しむために行動する
以上のことをまとめると、プログラミング学習が楽しくないと感じている人はこんなところをチェックしてみましょう。
- 一度立ち止まって、自分のやっている学習の方向性が合っているか確認する
- 小さな目標を立てて、とりあえずやってみる
まず自分が勉強しているプログラミング言語が、自分に合ったものかどうか考えてみると良いでしょう。
数字の演算や数式を考えるのが好きな方はJavaやC言語、デザイン系の趣味がある場合はHTMLなどフロントエンドに適した言語を学習するなど、自分の趣味に合わせて学習する言語を選ぶことも、楽しくプログラミングを勉強する上で大切なことです。
また、自分が理解できている範囲のスキルを用いて、何か一つ動作するプログラムを作ってみるのもおすすめです。
自分のスキルで何かを作ることができれば自信に繋がるだけでなく、「次はこんなものが作りたい」とプログラミング学習へのモチベーションを上げるきっかけにもなるかもしれません。
まとめ
プログラミング学習において、「内容が覚えられない」と感じる人は少なくありません。
また、これから学習を始める人の中には、内容を覚えられるか不安で一歩がふみ出せないという方人もいるでしょう。
しかし、プログラミング学習はただ単調な暗記ではなく、考え方を身につけることが目的ということを解説しました。また、小さな達成感をつくっていくことで、工夫次第で楽しめるのもプログラミングのいいところです。
気軽にいろいろチャレンジしてみるのが、プログラミング上達への近道でしょう。