「プログラミングが難しい」と感じる3つの理由と挫折を防ぐために実践すべき9つの戦略

 

当ブログは完全未経験からプログラマーを目指す人のためのブログです

 

f:id:yoshitokamizato:20171119210109j:plain

どうも、アラサー未経験からエンジニアに転職した神里です。

 

最近はますます、プログラミング学習に力を入れる人が僕の周りにも増えてきたように思えます。

今は優れたオンライン学習ツールやプログラミングスクールがあるので、昔よりも遥かに学習を始めやすい環境になりました。

 

しかし、それでもまだまだプログラミング学習で挫折する人は多く、その割合は90%以上と、初心者にとってはかなり絶望的な数字を示しています。

 

f:id:yoshitokamizato:20171119185150p:plain

 

この数字を見てしまうと、初心者の方は「自分にはプログラミングなんてできないんじゃないか?」と思ってしまうでしょう。

  

それほどにまで挫折率が高いプログラミング学習ですが、その原因は個人の能力の有無によるものではなく、まだまだ学習ハードルが高いことにあります。

 

初心者が学習を始める場合、何の考えもなしに始めてしまっては、挫折して当然なのです。

 

だからこそ、プログラミング学習における高いハードルを越えるためには「質の高い学習戦略」が必要不可欠。

 

f:id:yoshitokamizato:20171119185405p:plain

 

戦略次第で確実に挫折は避けられるし、爆速で成長することさえも可能にしてしまいます。

 

4年前、僕はプログラミングに触れた経験が全くないまま学習に挑戦しました。 しかし、それでも挫折することなくプログラミング学習を続けることができ、アラサーからエンジニアへ転職して独立し、沖縄でIT企業も立ち上げることができたのです。

 

アラサー完全未経験から挑戦した僕がどうやってプログラミングスキルを身につけたのか?

 

今回はその方法をお伝えしようと思います。

せっかく大金を使ってプログラミングを学んだとしても、挫折してしまえば意味がないですよね。

お金を1円も無駄にしないためにも、しっかりと戦略を練って学習に臨みましょう。

 

 

プログラミングが難しいと感じる3つの理由

プログラミング学習に関しては未経験者からすると「難しい」と感じる部分がかなり多いです。しかし、こちらに関してもしっかりとした対策があり、考え方次第では簡単にクリアできるようになりますので、焦らず冷静に対処していきましょう!

 

1. プログラミング言語の種類が多すぎる

プログラミングに関しては色んな種類の言語があり、初心者からするとまず何をやって良いのかがわからないでしょう。しかし、この場合だと将来何かしら作りたいものがある人は言語選びに関してもかなり判断がしやすいです。

 

  • 「iPhoneアプリを作りたい」→ Swiftを学びましょう
  • 「Androidアプリを作りたい」→ Java or Kotlin を学びましょう
  • 「Webサイト、Webアプリを作りたい」→ Ruby or PHP or Java を学びましょう

 

このように、自分が作りたいものによって言語を選択すると話はかなりシンプルです。

 

ただ、誰しもが「作りたいもの」を明確に持っているわけではなく、漠然と「エンジニアとして働きたい」と思っている方もいますよね。その場合は「書いてて楽しいもの」を選ぶと良いかと思います。

 

例えば、僕はRubyが大好きです。今までJava、PHP、Swift、VBA、JavaScriptなど色んな言語を触ってきましたがやっぱりRubyが一番楽しかった。だからこそ一番Rubyの学習に力を入れ、それにより挫折せず楽しくプログラミングを学ぶことができました。人は楽しければ勝手に学習するようになります。

 

2. エラー文が読めない

エラー分に関しては、初心者のうちだと無限に色んな種類があるように感じられるかもしれません。しかし、実際にはエラーは数パターンしか存在しないのです。それを何度か経験しているうちに「あそこに原因があるな」というあたりがつけられるようになるので絶望しないでください。

 

で、パターンがある程度決まっているからこそ、エラー文に表示されている英語に関してもよく同じ単語が使いまわされています。そのため、もしエラー文の中でわからない単語があった場合、最初は手間かもしれませんが、意味を一つ一つ調べていくとだんだんとすらすら読めるようになってきます。

 

エラー文を覚えるべき単語の種類もそんなにないのでぜひちょっとずつ意味を理解していってください。そこから先、パッとエラーを解決できるようになるにはしっかりと基礎を鍛える必要がありますが、エラー文を読むだけなら割とすぐにできるようになりますよ。

 

3. 奥が深すぎる

エンジニア関連のスキルに関しては本当に奥が深く、学問の追求に終わりはないです。これは果てしない勉強が必要なように思われますが、実際はそうではなく、基礎をしっかりと抑えることで最新のスキルに関してもキャッチアップをかなり早めることができるようになります。

 

なので、「あれもこれもやらなきゃいけないのか、、、」と絶望せず、まずはないよりも基礎スキルを身につけることに力を入れてみてください。そうすると、だんだんと新しい技術を学ぶときにもスラスラとインプットできるようになります。

 

また、エンジニアのスキルに関しては暗記は不要です。なぜなら「不明点はネット上で調べて解決する」というようにいくらでもカンニングOKだからです。現役のエンジニアで、カンニングせず仕事をしている人はいません。みんな、タスクをこなすときは公式サイトやブログ記事など、色んな情報を参考にしながら仕事を進めていきます。

 

なので「何も参考にせず自分の頭だけで完璧に開発をこなさないといけないんだ」と思わなくても大丈夫です。暗記が得意なのは人間よりもコンピュータの方なので、そっち系はコンピュータに任せましょう。私たちは考えることに力を注げば大丈夫です。

 

プログラミングスキルが伸びない人の7つの特徴

冒頭でも書きましたが、プログラミング学習が挫折するかどうかは能力の差によるものではありません。 僕はプログラミングを500人以上に教えてきた中で、以下の特徴に当てはまる人はスキルが全く伸びないということに気づきました。

 

f:id:yoshitokamizato:20171119185914p:plain

 

これらの特徴は能力の差ではなく、プログラミング学習に取り組む姿勢によるものが大きいです。

つまり、これらの問題を解決する方法さえ分かっていれば、誰でも挫折は避けられるということ。

 

だからこそ大切なのは、戦略を練って学習を進めることなのです。 センスの問題でもなければ、文系理系などの得意分野による違いでもない。 だれでも挫折せずにプログラミングスキルを伸ばすことは可能です。

 

プログラミング学習の挫折を防ぐために実践すべき9つの戦略

プログラミング学習の挫折を防ぐために実践すべき9つの戦略についてこれからご説明させていただきます。

 

1. 目標と期限を明確にする

f:id:yoshitokamizato:20171119190117p:plain

なんとなくで行動していてはいつまで経っても成長することはできません。

 

人間は明確な目標とそれに対する期限を設けなくては怠けてしまう生き物です。

だからこそ、「いつまでに」「何をしたいのか」を考える必要がある。

 

しかし、多くの初心者は、「プログラミングをやりたいから学ぶ」という状態になっています。

それではどうしても「勉強しただけで終わり」になってしまう。

 

大切なのは、「プログラミングを通して何をしたいか?」を考えること。

目的意識を持って初めて、勉強するモチベーションは上がります。

 

しかし、初心者の場合はそもそもプログラミングに関する知識がないため、それを使って何が出来るのかもわからないという状態にあります。

僕自身もその状態からスタートしたので、目標設定が曖昧になってしまう気持ちはよくわかる。

 

しかし、やはりそれではプログラミングスキルは伸びません。

まず、初心者が最初にやるべきなのは情報収集です。

 

「プログラミングで何が出来るのか?」をよく把握すること。

 

 

  • 機械に組み込むプログラムを作りたいのか?
  • Webサイトを立ち上げたいのか?
  • スマホアプリを作りたいのか?

 

 

それによって学ぶべき言語は大きく変わってきます。

参考までに、目的別で学ぶべき言語をまとめてみました。

 

f:id:yoshitokamizato:20171119190554p:plain

 

プログラミング言語によって何ができるかを知らなければ、明確な目標なんてたてられません。

せめて、自分が何をやりたいのかを考え、それに沿った言語を選べるようにしましょう。

 

目標が明確でないまま行動するのは、地図を持たずに旅をするのと一緒です。

それはそれで楽しいのかもしれませんが、成長スピードは著しく落ちる。

 

2. 理解しやすい言語を選ぶ

f:id:yoshitokamizato:20171119190703p:plain

転職を目的とした場合、最も需要があるのはJavaです。

しかし、Javaはコードがかなり複雑で、フレームワーク(Javaを使ってサービスを構築する時に使う)に関してもかなり扱いが難しいです。

 

その点、Rubyであればコードがシンプルで理解しやすく、フレームワークであるRuby on Raisも環境構築やエラー解決に関する情報がたくさん!

初心者でも比較的簡単にWebサイト立ち上げられるようになります。

 

この言語を通してプログラミングの基礎をある程度身につければ、他の言語を学んだ時にもスムーズに理解ができるようになる。

僕自身も、プログラミングを学習するときはRuby→Javaの順番で学びました。

 

もし、Web系のプログラミングをやりたいのであれば、Rubyはかなりオススメですよ。

 

3. 人から教わる

f:id:yoshitokamizato:20171119190839p:plain

いくら参考書を買ってその通りに書いたつもりでも、初心者の場合はほぼ100%エラーを出してしまいます。

 

大文字が小文字になっていたり、半角スペースが全角スペースになっていたり。

そして、そのエラーを自力で解決するために、慣れないうちは何時間もかかってしまう。

結局、そうなってくると勉強をするモチベーションを無くしてしまうことがほとんどです。

 

それに対し、プログラマーは初心者が出すようなエラーならほんの一瞬で解決してしまいます。

ぱっとコードを見ただけで、何となくどこがおかしいかがわかるから。

だからこそ、知っている人に教えてもらうのが一番の成長への近道なんです。

 

そもそも、プログラミング学習を始める際は環境構築からやらないといけないのですが、その時点で初心者の人にはチンプンカンプンでしょう。

 

 

まずはできる人に教わり、目の前でエラー解決する過程を見て、どういう点に目をつければいいのかを学ぶべきです。

 

4. エラー解決がプログラマーの仕事だと心得る

f:id:yoshitokamizato:20171119191431p:plain

なんとなく、プログラマーって「プログラムを書くのが仕事」ってイメージありますよね。

でも、実際は違います。

 

プログラマーの仕事は「エラーを解決すること」です。

 

色んな機能を実装しようとすると、どれだけ慣れててもエラーは出てくる。

それは、パソコンによって環境が異なることが原因だったり、機能を実装する手順をちょっと変えたことが原因だったり。

もはや、プログラムを組む上でエラーは必ず出てしまうものと考えても良いくらいです。

 

だからこそ、エラーを怖がってはいけない。

拒絶反応を示してはいけない。

 

大切なのは、エラーが出た時に「勉強をする良い機会だ」と捉え感謝することです。

実際に、エラーを1つ解決できるようになるだけで、プログラマーとしてはだいぶ成長することができますからね。

 

5.必ず自分のパソコンでコードを書く

f:id:yoshitokamizato:20171119191722p:plain

今は、オンラインでもプログラミングを学べるProgateというサービスがあり、自分のパソコンでコードを書かなくてもプログラミングを学習できるようになりました。

しかし、それでも出来るだけ自分のパソコンでコードを書くようにしたほうがいいです。

 

というのも、自分でコードを書いてその中身を色々いじってみないと「これは値を変えても良い部分なんだな」とか「この文法は絶対に形を変えてはいけないな」といったことが理解できないのです。

どういう場面でどういうエラーが出るのか、そしてそれをどう解決するのかがわからないとプログラミングスキルは伸びません。

 

しかし、自分のパソコンでコードを書けるようにするためにはまずは実行環境を整えなければいけない。

初心者の場合、そのやり方がわからない人が多いかと思いますので、「MacやWindowsでRubyの実行環境を構築する方法」「HTMLやCSSの練習をする方法」を載せておきます。

以下の記事を参考に自分のパソコンでもプログラミングの練習ができるようにしてみてください。

 

Rubyの実行環境構築(Mac編)

Rubyの実行環境はMacでは最初から用意されている件 

 

Rubyの実行環境構築(Windows編)

初心者でも1分以内で完了!WindowsでのRubyの実行環境構築は拍子抜けするほど簡単にできる

 

HTMLやCSSの練習をする方法

「どんなに」初心者でもWebデザインの勉強法が一瞬で確立できてしまう超簡単な方法

 

6. 習ったことを元にオリジナルのプログラムを組む

f:id:yoshitokamizato:20171119194255p:plain

ある程度知識が身についたら、それらの知識をつかってオリジナルのプログラムを組んでみましょう。

 

といっても、最初はそんなに難しく考えなくて大丈夫です。

ただ単に自己紹介文を出力させるだけのプログラムでも良いし、if文を使って単純な条件分岐をさせるだけでも充分です。

 

色々アイデアを出し、それをプログラムに落とし込む過程の中でどんどん理解を深めていってください。

それに慣れてくると、「おみくじアプリ」や「ドラクエの戦闘シーン」を自分のプログラムで再現できるようになります。

 

参考までに、おみくじアプリのコードを載せておきますのでやってみてください。(Rubyのコードです)

 

 

 

7.不明なワードはすぐにググる

f:id:yoshitokamizato:20171119194728p:plain

めんどくさいかもしれませんが、プログラミング学習を進める中で理解できないワードは すぐにググったほうがいいです。

調べることをめんどくさがると、後でそれらの知識に関連するエラーが出た時に、余計めんどくさい思いをすることになる。

 

だからこそ、学習の効率を上げたいのであればわからないワードは徹底的に調べましょう。

英単語がわからないと英文を読めないのと一緒で、プログラミングの専門用語がわからないとテキストを読んでも理解することはできません。

 

学習の効率を最大限に高めるには、不明なワードを出来るだけ無くすことが大切です。

 

8. 何よりも「復習」を大切にする

f:id:yoshitokamizato:20171119194844p:plain

プログラミングスキルが伸びない人に多いのが、「やりっぱなし」で終わってしまっていること。

人は一回学んだだけでは絶対に覚えることはできません。 だからこそ、復習を大切にする。

 

そうすることで初めて、一度習ったことが記憶として脳に定着するのです。

ましてや、初心者の場合は習うこと全てが新しい情報。

 

復習をしなければ、覚えられるはずがありません。

これを怠ると、決してスキルが上達することはないでしょう。

 

9. 学んだことを人に教える

f:id:yoshitokamizato:20171119195448p:plain

習ったことを人に教えるためには、プログラミングをよく理解し、オリジナルの教材を作り、それをわかりやすく説明する必要があります。

その過程を経験することで、驚くほど成長することができる。

僕自身も人に教えるようになってから成長スピードが急激に上がりました。

 

自分のためだけではなく、人のために頑張ることで意識はもう一段高くなります。

どうせプログラミングを学ぶなら、人の役に立ちながら学んだ方が楽しいですよね。

 

ぜひSNSやブログを通してプログラミングに興味がある人を捕まえてみてください。

僕はプログラミングを学び始めて1ヶ月後には、1時間500円で人に教えてました。

お茶やケーキ奢ってもらったり、わりといい思いできましたよ。笑

 

学習戦略次第で挫折は避けられる

プログラミング学習で悩んでいる人が実践すべきなのは以下の9の戦略です。

 

  • 1 目標と期限を明確にする
  • 2 理解しやすい言語を選ぶ
  • 3 人から教わる
  • 4 エラー解決がプログラマーの仕事だと心得る
  • 5 必ず自分のパソコンでコートを書く
  • 6 習っとことをもとにオリジナルのプログラムを組む
  • 7 不明なワードはすぐにググる
  • 8 何よりも「復習」を大切にする 
  • 9 習ったことを人に教える

 

プログラミング学習で挫折するのは戦略に問題があるからです。

しっかりと戦略を練れば挫折は避けられるし、爆速で成長することもできる。

 

現に、プログラミングに全く触れた経験がない僕でも、今はWebサイトを立ち上げられるようになっています。

 

 

プログラミングスキルを習得すれば、アラサー&未経験からでも人生の選択肢を広げることができる!

今の働き方や人間関係、収入に悩みを抱えているのであれば、まずはプログラミングスキルを身につけて人生の選択肢を増やしましょう!!!