読者の悩み
- プログラミングの勉強を始めたけど、全くわからない
- どうやって勉強を進めていけばいい?
- わからない状況をどうやって打破すればいい?
こんな悩みに答える記事になっています。
私がプログラミングを始めたとき(大学生の時)は「うわ、自分には向いてないんだ・・・」と思うレベルで難しいと感じました。
周りの人はスイスイ進んでいるし、なおさらです。
そんな私でも、今ではWeb系のエンジニアです。
私も過去、同じ悩みを抱えていましたので、プログラミングがわからない!と悩んでいる人がこの記事を読めば、わからない状況への解決策が見つかります。
1.プログラミングがわからないのは当たり前【慣れが必要】
プログラミングを始めた際、最初はだれでもわからないのは当たり前です。
最初にありがちなのが、勉強を積み重ねて、コードを読んだら分かるけど、書けはしない・・・という状況。
この悩みの対処法として、最初に一気に勉強などをやり切って、コツを掴んでいくことが大切になります。
そのうち、段々と「プログラミング的な考え方」が分かるようになってきます。
なかなか前へ進めない・・・という人は、学習期間が短いのも原因の一つだと思います。
私は、どういう考え方をしつつコードを書き進めていくか、慣れるのに大体1年くらいはかかりました。最初に一気に進めると半年くらいには短縮できると思います。
2.学習している言語が難しすぎるのかも【方向転換も大事】
初学者向けの記事なので、あなたが勉強している言語はきっと1つ目の言語のはず。
実は、言語によって習得難易度が相当違ってきます。
例えば、あまり使われていない言語はググっても解決策がなかなか出てきません。
その結果、延々と試行錯誤しつつ進める必要があるので、時間がいくらあっても足りません・・・。
また、そもそも理解するのが難しい言語がいくつかあります。
私が最初に習ったのはC言語で、難しい言語のひとつです。
maipyon
有名な言語なだけあって、最初にC言語から・・・という人は多いと思いますが、おすすめはしません。
授業でC言語を習っていますという人が多いと思いますが、あれでプログラミングにハマる人よりも絶望してしまう人の方が多いんじゃないかなぁ、と思います。
わからないときは難易度が低い言語に変更するのも手
プログラミングを続けられている人って、結局「楽しいから」続けられていると思うんですよね。
難しい言語で頻繁に行き詰まりつつも試行錯誤し続けるより、思った通りの動きにサクサク作っていける方が楽しいと感じられるはず。
つまり、難易度が難しすぎる場合は難易度の低い言語に落とすのも手です。
では、逆にとっつきやすい言語はなにか?と言われると、pythonやphpやrubyあたりですね。
情報量も多く、わからないことがあれば検索すれば大抵のことは解決します。
もし、初心者だけどC言語を頑張っています!難しいです・・・なんて人がいれば、他の言語を学習してみるのも良いと思います。
また1からプログラミングの勉強を再スタートしなければならないのか・・・と思うかもしれませんが、どの言語にも基本的なループ文や条件分岐文などがあり、1からの学習には決してならないのでご安心を!
3.プログラミングがわからないときは直ちにググろう&人に聞こう
プログラミングで立ち止まってしまう場所って、「エラーが出ているけど、なんでエラーが出たのかがわからない」という部分です。
エラー文も英語なので、内容を読まずに「なんかエラー出たわ」だけで進めようとする人も中にはいると思いますが、まずはエラー文を読む、もしくはググることから始めましょう。
と出た場合には、「php Invalid argument supplied for foreach」とかで検索するとヒットします。
「言語名 エラー内容の一部をコピペ」という感じ。
難易度の低い言語と言われているものは、解決方法がサクッとヒットしますね。
ググっても、英語だらけのページばかり・・・という時も多々あって萎えるのですが、そんな時はgoogle翻訳で突き進むか、サイトに掲載されているコードだけを読んで理解して進んでいくしかありません。
また、これは脱初心者向けの方法ですが、別のアプローチで同じ機能が実装できないかを模索することも大切です。
エラーをググっても理解できなかったときは
エラーをググっても理解できないとか、直せたけどなにが駄目だったか説明できないという人は、厳しい言い方になりますが、基礎がまだまだ足りていません。
本をもう一度読むなりして、初心に返ると頭に入っていなかった部分が見つかり、進めることもあります。
残念ながら、全然別のページにヒントとなることが書かれていることもしょっちゅうあります・・・。
独学で進めているのならば、基礎部分が抜けがちなので、基本的な部分に戻って学習を進めるべきです。
知識が抜けている部分が多く見つかると思いますので、それを埋めていくのが先決ですね。
人に聞くのもオススメ
聞けば教えてくれる人が近くにいるのが一番いいのですが、なかなかそうはいきません。
ですが、聞かずしてプログラミングをするのはもはや無理ゲー。
そのため、プログラミング専用の質問サイトに質問するのが返信も返ってきやすくオススメです。
おすすめ質問サイト
初心者なら、どっちかといえばteratailがオススメかもしれないです。
とにかく、質問をするなら誰にでもわかるように状況説明をするよう心掛けて質問するようにしましょう。
maipyon
回答で煽られるかもですが、解決するのなら気にせずにガンガン質問しましょう。
4.何らかの目的意識を持ってプログラミングをやろう
「わからない」を解決するというより、「プログラミングがわからなくてどうしようもない・・・」という初心者の時期を早めに、かつストレスなく切り抜ける方法になりますが、プログラミングは目的意識を持った状態でやる方が良いです。
あなたがプログラミングを学習した理由はなんでしょうか?
たぶん、なんとなくで始めたという人も多いと思います。
それは全然いいことなのですが、どうせなら〇〇を作りたい!でプログラミングを始めるのが良いです。
それがたとえWebサイトを1から組み立ててみるとかでも格段に成長できるでしょう。
とにかく、0ベースで始めないと、脱初心者は難しいんじゃないかな・・・と感じます。
逆に、なにかを0から作り上げることができたなら、気づいたら脱初心者になっているという感覚が強いです。
maipyon
作るものが見つからない人へ
といっても、作るものが見つからないという人が大半だと思います。
こんな人はプログラミングスクールを補助として使って、0から何かを作る過程を学ぶのが良いでしょう。
TechAcademyの無料体験なら、0から一通り作る過程を学ぶことができますし、それを応用すれば自分で作れそうなものの幅もグンと広がるでしょう。
私も一通り作って、ようやくバラバラだった知識の点と点が繋がった感覚がありました。
そもそも0からコードを書いていかないと、成長できません。
よくあるのが、コピペでとってきたコードを改善してできたーで終わらせること。理解はできているけど、1から書けない・・・という現象が起きやすくなるんじゃないかなと思います。
それもあって、0から教わりつつコードを書いていけるオンラインスクールはオススメです。
Web系以外だと残念ながら有料になりますが、基礎が全然できていない!と感じている人は必ずタメになりますので、TechAcademy [テックアカデミー]での学習を考えてみるのもいいでしょう。
5.【おわりに】プログラミングが向いているか判断するのはまだ早い
プログラミングがわからないと嘆いている人(習いたての人)が、「あぁ、自分には向いてないわ」と判断するのはまだ早いんじゃないかな、と個人的には思います。
数ヵ月やっただけの自分だったら、「向いてないわ」で終わってたのですが、成長していく過程でできないなりに面白さがありました。
試行錯誤するのが好きなんだろうな、といった感じで、できないから向いていないと決めつけるのではなく、別の観点で向き不向きがあるはずなので、それがわかるまで続けたほうがいいと思います。
数か月で諦めると、「向いてないわ!」で終わる可能性大。
プログラミングをやっていて楽しいか楽しくないかを自分に聞いてみつつ、モチベーションを保ちつつ分かることを増やしていくのが一番の成長の近道でしょう。