Pocket

過去に様々なプログラミング学習方法を実践してきて、今振り返ってみると、覚えられないと悩み、簡単に覚えるコツを探す前に

avatar
『あの時こうしてればもっと効率よく学習できたな〜』

と思うことがたくさんあります。

私の場合、そこまで勉強ができる人間ではなかったため、プログラミングを学ぶときも、1つの勉強法にこだわらずに浮気ばかりしていました。

プログラミング学習での失敗

本来やるべき勉強法はあったのに、なかなかそれを信じ切れずに無駄なことをやり続けた結果、数ヶ月もの時間を失ってきました。

過去の私のように、今現在なかなかプログラミングを覚えられずに苦戦している人もたくさんいると思います。

なのでここでは

『プログラミング学習において活用すべきいくつかの要素』

を具体的にお伝えしていきます。

以下の内容を理解することで、無駄な遠回りをせずにプログラミング学習ができるようになるはずですよ。

この記事は

『プログラミング学習に苦戦していた過去の私』

に向けて書くことを意識しています。

ぶっちゃけ最初は99%の人がプログラミングを覚えられない

どんなに高い志を持ってプログラミング学習を始めたとしても、最初からスムーズに全てを理解できる人なんていません。

一部の天才を除いてしまえば、誰もがプログラミングの壁にぶち当たることになります。

この壁を高いと感じる人は挫折してしまうし、逆に

『俺なら余裕で乗り越えられるな』

と思える人たちは壁を突破してどんどん成長していきます。

avatar
圧倒的なスピードで成長していく人は、壁だと思っていないのかもしれませんね。

この最初の段階で、ほとんどの人たちはプログラミングが難しいと感じてしまいますが、実際のところは難しいわけではなく、ただ

『知らないだけ』

なので挫折という言葉を使うことは少しおかしいのです。

本当の挫折というのは

『頑張って頑張って頑張り抜いて上手くいかなかった時に起こること』

ですからね。

avatar
確かに。軽々しく使う言葉ではないかもしれませんね。
avatar
そうなんです。多くの人は『挫折する前の段階の話』をしているだけなのです。

▼挫折

ヤスパースの哲学における基本的概念で、人間がもはやその悟性や意志によって離脱することのできない限界状況、すなわち死、苦悩、闘争および責任などに直面する際に出現する宿命的な経験。

プログラミングを覚えられない原因

このプログラミングに関しては、全く知識のない状況から抜け出すことができれば、覚えられないという悩みを抱えることはありません。

avatar
一度覚えることができれば、あとは知識を後付けしたり、他の言語を同じ要領で覚えるだけなので、そこまで大変な作業ではないのです。

そのため、プログラミングを覚えられないということは

『0→1を理解できていない』

ことを指すのです。

では初期の段階でなぜプログラミングを覚えることができないのでしょうか?

その点に関しては

『プログラミングを覚える』

という概念をぶち壊す必要があります。

そもそも全体像を把握してない

まず最初にあなたに問いたいことがあります。

それは

『なぜプログラミングを勉強しているのでしょうか?』

ということです。

avatar
この分野の知識を頭に入れたいということは、少なくとも何かしらの目的があるはずです。

転職したい・自分のサービスを作りたい・起業したいなど、様々な目的があると思いますが、これらの目的を達成するためには

『プログラミングを覚えるという考え方は必要ない』

のです。

なぜならテストで100点を取る必要がないからです。

どういうことかというと、プログラミングというのは覚えなくてもググればほとんどの情報が出てきます。

なので知識はgoogle先生に頼ってしまえば事足ります。

私たちがやるべきことは

『全体像を把握してプログラムを作ること』

ですから、どれだけ知識を入れても全体像が理解できていなければ、現場で活躍できるスキルは身につかないのです。

avatar
確かにgoogleで検索すれば、あらゆる情報は得られますからね。
avatar
そうなんです。私たちがやるべきことは『覚えることではない』のです。ここはちゃんと理解しておいて欲しいところです。

プログラミングの本質が何なのかがさっぱり分からない

そして全体像が分かっていないと、具体的な勉強を始めた時に

『なぜ自分が今これを勉強しているのか?』

が分からなくなります。

そうなると

▼頭の中

なぜこんなことを勉強しているのか?

今やっていることは意味がないのでは?

もっと効率よく学べる方法があるはず

勉強法を模索することに時間を使ってしまう

このような流れで、過去の私のように無駄な時間を使ってしまうのです。

avatar
本質を理解してから勉強をするのと、本質を知らずに勉強をするのとでは結果的に大きな差が生まれてしまうのです。

プログラミングというのは

『プログラミング言語を覚えること』

本質ではありません。

私たちがやるべきことは

『プログラミングを学ぶこと』

です。

この点に関しては次で詳しく解説していきます。

プログラミング言語自体を勉強しようと思っている

ちょっと違和感のある内容かもしれませんが、ここは正しく理解していただきたいポイントでもあります。

そもそもプログラミング言語自体を勉強しようとすると、脳が

『プログラミング言語を覚えること』

に意識を集中します。

avatar
ですがこれは途中でもお伝えした通り、ただの暗記となってしまいプログラミングを学んでいることにはなりません。

私たちがやるべきことは

『プログラミングを学ぶこと』

です。

プログラミングというのは

『人間がコンピュータに指示をする行為』

ですから、暗記ではなく

『コンピュータに指示する方法を学ぶ』

というのが正確な表現です。

avatar
例えば『フライパンの使い方』を覚えた場合、フライパンを使って料理はできますが『料理のやり方』自体は正しく理解できていません。しっかりと料理のやり方さえ覚えてしまえば、フライパンを使わなくても料理はできてしまうのです。それと同じ考え方ですね。
avatar
なるほど。確かに料理は鍋でも網でもできますからね。
avatar
『プログラミングを理解する』というのはそういう意味です♪
avatar
分かりやすいです!ありがとうございます!

【即実践可能】初心者でもできるプログラミングの覚え方・理解するコツ!

プログラミング 学習を始める場合

『間違いなく失敗する典型的なパターン』

がいくつかあります。

プログラミングを覚えられない人がやる失敗例

・コードを暗記しようと頑張る
・自分一人で学習しようとする
・学習時間が足りないのに諦める

プログラミング学習の目的は、コードを覚えることではなく

『プログラミング技術を使ってサービスを生み出す』

ことにあります。

その前提を踏まえた上で、どのように学習を進めれば効率良く学習できるのかを考えましょう。

1,完成度の低いサービスでもいいのでとりあえず作る

いくらプログラミングのコードを覚えても、それを実際に使えなければ何も意味がありません。

プログラミングは学校のテストとは違い、知識の量が点数になるわけではありません。

簡単なコードしか覚えていない状態でも、とりあえず何かしらのサービスを作ることで

avatar
『あ〜、これをやればこうなるのね!』

と、腑に落ちる瞬間がやってきます。

コードを徹底的に覚えるだけの人と、サービスを開発しながらコードを覚えていく人とでは、成長スピードは雲泥の差になります。

2,手を動かしながら足りない知識を取り入れていく

サービスを開発するというゴールを設定すると、必ず足りない知識が出てきます。

そのゴールにたどり着くためにどんな知識を取り入れれば良いのか?を手を動かしながら考えることで、自然と知識は身につきます。

凄腕のエンジニアやプログラマーのほとんどは、自分でサービスを開発しながら足りない知識を取り入れて成長しています。

手を動かさず教材や本を読んでいるだけでは『知識を持っているだけ』で結局何も作れずに挫折するので注意が必要です。

3,プロに頼る

何事にも言えることですが、その道を知りたければその道のプロに聞くのが一番。

一人でパソコンの前で頭を抱えながら

『このエラーどうやって解決するんだよ‥』

と悩んでいる裏で、プロに頼っている人はその場でエラーの原因・解決方法を教わっています。

初心者のプログラミング学習は、正直エラーとの戦いです。

知識のない初心者だと何時間もかかるエラーの解消も、プロがそばにいれば1分2分程度で解決できることもザラ。

avatar
プロからしたら『なんでこんなことで悩んでんの?』くらいのレベルです。

時間は有限なので、プログラミング学習をする際には、必ず誰かしらプロのエンジニアのサポートを受けるようにしましょう。

プログラミングを理解するスピードを加速させる要素

『プログラミング言語を覚えること』

『プログラミングを理解すること』

の違いを正しく理解したところで、この先どのような学習方法を取り入れれば挫折することなく学習を進められるのか?

そのポイントは

『活用できるものを徹底的に活用すること』

です。

過去の私のように、意地を張って独学を続けるのではなく

『積極的に取り入れるべき要素を活用する』

ことで、短期間で大きな成長を遂げることができます。

avatar
意地とプライドほど邪魔なものはありませんからね。
avatar
確かに笑。気をつけなきゃ。

意識の高いコミュニティに所属する

『環境が人を育てる』

この言葉は必ず1度は聞いたことがあると思いますが、プログラミングの世界でも同じです。

avatar
意識高い系の人たちと一緒にプログラミングを学習することで、かなりの刺激をもらうことができます。

重要なポイントとしては

『素人ばかりではなく、プロのエンジニアが所属する環境に身をおくこと』

です。

補足

初心者ばかりだと傷の舐め合いになりがちですから、そこでビシッと喝を入れてくれる存在を置くことはとても重要です。

最近では日本だけではなく、海外にシェアハウスを構えてプログラミングを教えている人たちもいます。

自分が面白そうと感じた仲間が見つけられそうであれば、なるべく早い段階で行動に移しましょう。

マジで人生変わるレベルで刺激になりますから。

逃げられない状況を作る

そして本気の覚悟を持っている人に関しては、この方法はめちゃめちゃおすすめです。

例えば私の知り合いの話で言うと、今の仕事(営業さん)が嫌すぎて、どうしても仕事を変えたい人がいました。

その人は次の仕事が決まっていない状態で退職届を出し、翌月にプログラミングスクールの申し込みをしたそうです。

この行動を起こすと、もしプログラミングから逃げてしまえば

『未来はニートの生活』

しか待っていません。

まさに逃げられない状況ですね。

avatar
もちろん半端な覚悟の人にはオススメできない方法ですが、プログラミングを学んで本気で人生を変えたいという人は、あえて自分を追い込んでみるのも一つの手です。

ちなみに私の場合は、娯楽を全て遮断するために

『あえて田舎に引っ越して勉強する』

方法を選択したことがあります笑。

自分が無知であることを受け入れる

プログラミングは40代・50代の方でも使えるスキルです。

なので最近では年配になってからプログラミングを学んで、自分のサービスを作ったり、フリーランスとして活躍している人も増えてきました。

ですが人間というのは

『年齢を重ねれば重ねるほど相手の話を聞けなくなる』

ようになります。

例えば今重役として会社に勤めている人が、ある日突然年下のエンジニアにプログラミングを教わるとします。

そうなった場合、子供の頃のように純粋な気持ちで勉強することはまず不可能です。

むしろ

『なんでこんなやつに教わらなければならないんだよ』

とネガティブな感情が生まれることが大半です。

avatar
その理由としては、自分が今まで生きてきた人生経験がバックボーンとしてあるため、人にものを教わることがほとんどなくなってくるからです。

しかし自分が無知であることを受け入れなければ成長はありません。

私が尊敬する知り合いの起業家さんは、私が年下なのにも関わらず

『これはどうやるの?』

と子供のような好奇心でものを聞いてきてくれます。

結局成功する人たちは

『常に学びを怠らない』

ため、自分が無知であることを受け入れることは成長スピードを加速させるために大切なポイントとなるのです。

ガチのエンジニアさんの知り合いと関わる

プログラミングを学ぶ方法としてベストなのは、結局

『ガチのエンジニアさんから教わる』

以外ありません。これは断言してしまいますね笑。

たとえプログラミングに詳しい人がいたとしても、その人が現場で活躍しているエンジニアでない場合、ただ知識を伝えられるだけで

『現場で使えるスキルが身につかない』

ことがほとんどです。

本気でプログラミングを教えている一部の優秀なエンジニアさんは、無駄な部分を省いて

『実務で必要な部分を徹底的に教える』

ことを意識しているため、そのようなコミュニティに所属すると、まぁ成長スピードが早くなります。

avatar
ちなみに私がオススメするプログラミングスクールやコミュニティは数少ないです。

その中でも

『現場で使えるプログラミング』

を教えている一部のサイトをまとめておきましたので、興味があればこちらからチェックしておいてください。

関連記事
プロの手厚いサポートが受けられるサービスを厳選してます

まとめ

短期間でプログラミングを学習できる方法があれば、誰もがそれを実践したいと考えるはずです。

しかし短期間で学習できる方法を検索している時間ほど無駄なものはありません。

avatar
過去の私に伝えたい笑。

意味のないことに時間を使うのではなく、すでに成功している人たちがどのようなルートで学習したのか?ここを知り、さらにプログラミング言語ではなく

『プログラミングを理解すること』

を頭に入れておけば、まず挫折を経験することはなくなるでしょう。

最初からプログラミングをできる人なんていません(一部の天才を除いて)。

重要なのは

『ちょっとした壁にぶつかった後に何をするか?』

ですからね。

Pocket