爆速で成長する王道のプログラミング学習法を紹介!プログラミングにはやってはいけない勉強法がある!?こんにちは、プログラマーのとだこうきです。本記事ではプログラミングの効率的な学習方法について説明していきます。受験勉強は得意だったのに、プログラミングとなると全然上手くいかないという人をよく見ますね。これはこれまで皆さんがされていた勉強と比べるとプログラミングの学習は異色だからです。実際、Twitterを見ていると「あー能力がある人が間違った勉強している...残念だ...」と思うことが多いです。いう方が「〇〇という教材は悪い!これだと成長できない!」と他人のせいにしているのを見かけます。いう方はまた違う教材を購入しますが、勉強方法が間違っているので成長せず、いたずらに時間を失います。彼らがやるべきことは、教材を変えることではなくて「勉強方法」を変えることです。この記事を通してプログラミングの学習を圧倒的に効率的に行うことができる方法を紹介していきます。教材を買う必要性を最低限にし学習時間を大幅に短縮できるでしょう。プログラミング学習について以下の2つの観点から話していきます。プログラミングスキルを伸ばす5つのステッププログラミング学習方法に関する一般的な話を先に行います。その次にその考え方を元に具体的に何を勉強すればよいのか話していきます。プログラミング学習は応用力を身につけるのがゴールプログラミング学習三大鉄則まず、プログラミング学習する上での重要な考え方をシェアします。いうめんどくさい話をするかというと「プログラミング学習は異色」だからです。学校で培ってきたこれまでの勉強法はいったん忘れてください。学校の自分の勉強法に自信を持っている人ほど、「頑張っても全然身に付かない」という落とし穴にはまる恐れがあります。暗記教育から脱却プログラミング学習と義務教育での学習の大きな違いは「暗記の有無」です。僕も独学時にこれに気づけずに失敗しました。以下のようなことやっていませんか?暗記しようと思ってやりがちなことググらないと分からないと「自分はまだまだだ」と思うProgateのスライドを完璧に覚えようとしている単語帳を作るカラフルで綺麗なノートを作るこれらをもしやっているなら、早急に意識を変える必要があります。プログラミング学習に暗記は必要ありません。言うとカンニングOKだからです。忘れたことは書籍を見ればいいですし、調べ物はGoogleを使えばよいでしょう。プログラムの基本文法を忘れたらツールに補助してもらえばよいのです。暗記する必要は全くありません。暗記をする必要がないのに、必死に暗記していたらめっちゃ効率が悪いですよね。暗記って大変な作業なのに成果が出ないのですから。「頑張ったのに全然プログラミングできるようにならない」と自己嫌悪に陥るわけです。暗記」という思考を持っている方は、プログラミング学習を行うと失敗する可能性が高いです。「暗記よりも思考」です。プログラミングの考え方を理解して、それを元に問題をいかに解決するのか考えるのかが重要です。プログラミングはカラダで覚えるもの。プログラミングを暗記している人は図書館で泳ぎ方を勉強しているようなものです。泳ぎ方を学ぶよりも泳いだほうが上達します。インプットしたらすぐにアウトプットすることを意識するでは、実際に「どうプログラミング的思考を身につけることができるのか」について説明していきます。プログラミング的思考を身につけるには、プログラムを書くのが大事です。これ以外はないでしょう。自分で考えてコードを書くことで成長できます。言うと「そりゃそうだ!」と思う人もいるかもしれません。たしかに、当たり前すぎるほど当たり前なことを言っています。プログラミングを勉強していると「プログラミングを書きたくない」という心理状態に陥ります。「嘘だろw」って思うかもしれませんが、本当です。言うと「プログラミングの文法を学ぶ」と「プログラムを書く」には大きな隔たりがあるからです。プログラムを書くというのは非常に難しいのです。心が折れるほど難しいこともあります。何時間も同じ問題を解決する手立てもなく考え続けるという地獄みたいな体験を繰り返すこともありえます。そのような体験を繰り返すと「プログラミング書くの嫌だ」という思考になります。それでも「プログラミングを勉強しなきゃッ!」と思うので、多くの人は暗記に走ったり同じことを何度も学習するという行為を行います。プログラミングは自分で書かないと成長しません。勉強しているけど全然成長しないという悲しい結果が訪れます。「アプリを作る前からifやswitchなどの条件分岐の書き方を全部覚えようとしている人をよく見ます。「ああ、そんな書き方があるんだな」と覚えておくだけで大丈夫です。プログラマーの僕ですら言語別のif文の書き方なんてちゃんと覚えていませんよ。2018「学んだら自分でコードを書く」これを行うだけで周りと圧倒的な差をつけられます。コードを自分で書くコツは次の章で具体的に説明していきます。必要な分だけを学ぶ最後の重要な考え方は、「必要な分だけを学びましょう!」というものです。「必要な分だけを学ぶ」という非常に効率の良い学習方法です。2019暗記の件もそうですが、無駄な努力をしている人が非常に多いです。いう方は「完璧にしないといけない!」という考えを根底に持っている場合が多いです。これはプログラミング学習においては非常に危険と言えます。完璧というのはプログラミングにおいてやってこないからです。無限に学ぶことがあるので完璧は一生やって来ません。プログラミングを学ぶ上では「必要な分を必要なだけ学ぶ」という考えです。おいらの言葉で言いなおすと「必要になったら、必要なところだけ勉強する」です。プログラムを勉強するときに、「書籍を1ページ目からやる」のではなく「2ch型掲示板が作りたいから必要なところを勉強する」のが遅延評価勉強法になります。通常の勉強法と比べて、モチベーションが高く保てます。インプットとアウトプットがほぼ同時になされるので理解度、定着率がダントツに違います。けんすう日記この考えを常に勉強するのが非常に大事です。何か学習しようとしたときに「あれ?これって本当に必要かな?」と自答しながら取り組むと無駄を省けます。アウトプット前提の学習方法なのでスキルアップ出来ます。プログラミング初心者が基本文法をすべて覚えようとか理解しようとするとかは、あまりオススメできないのはこれが理由です。「なんとなくこういう考え方があるんだなー」とさえわかっていれば、詳しいことは必要になったときに学べばよいです。プログラミングスキルを伸ばす5つのステップ学習のマインドをお伝えできたので、具体的にどう勉強するのかを説明していきます。開発したいものを考えるまず将来的に開発したいものを決めます。これはすごく重要です。言うと目標がないのにプログラミングを続けるのが難しいからです。作るものがないのに作る技術(プログラミング)を学ぶというのは非効率と言えます。作るものが決まっていれば、それに必要な技術も見えてきます。してその必要な技術を一つ一つ学んでいくうちに、自分の実装できる幅が増えていきます。本を読んで何のために使うかわからない技術を眺めるよりも100倍身に付く勉強になります。それに、こうした逆算的な勉強法に慣れていると問題解決力が上がるため、現場に入ってからも絶対に役立ちます。遅延評価学習法を実践するにも開発したいものが必要です。開発したいものはイメージで良いとはいえ、多くの人は「何作ってよいか分からない」と思います。開発したいものは適当でいいです。「サービスを作って世界を変えたい!」なんて大それた目標なんてなくていいです。自分の生活に役立つツールを作ろうとしなくてもいいです(もちろんあるほうがよいですが)。なんでもいいのですよ。みたいなサービスをなんとなく作ってみたいとか、かっこいいホームページを作ってみたいとか、楽しいゲーム作りたいとか...意識は低くても良いのです。自分が興味があるものを目標にすればいいです。ちなみに僕が未経験のときに作ったものは以下です。自分が持っている書籍を管理アプリケーション大したものではないですが、そのときに少し興味があったものを作っただけです。大きな目標を持ってアプリケーションを作ろうとしたら手が動かなくなって時間を無駄にしていましたが、目標を下げたらいろいろ作ることができますよ。開発に必要な技術を調べる開発したいものが出来たら、それを実現するにはどういう技術が必要なのか調べましょう。開発したいものを作るにはどういう技術を勉強するべきか調べます。基本的にググれば問題ないです。本屋に行けばたいてい「〇〇の作り方」みたいなものがあります。それをもとに何を学ぶべきなのか知ればよいです。特殊なものだったりすると簡単に情報を見つけられない可能性があります。その際はプログラマーに話を聞くのがいいです。Yahoo知恵袋のような質問サービスを利用することで確認できます。エンジニアが集まる勉強会に参加するのも良いです。僕も開催して、いろいろ相談に乗っています。横浜で朝活してますいろんな業界のIT関係者が集まったので転職の相談に乗りつつ勉強してます。2019他にもメンターを雇って相談にのってもらうこともできます。Mentaというサービスを利用してメンターを見つける事もできますし、プログラミングスクールに通って講師の方に見てもらう手法もあります。ハードルが低いものからチャレンジ学習に必要な技術が明らかになったら、まずは基礎を抑えていきましょう。開発を始めてもいいのですが、最初はかなりハードルが高いです。基礎をおさえておきましょう。学習サービスを利用することをオススメします。これらのサービスはプログラミング学習のハードルを下げてくれています。深く学ぶことはできない場合が多いですが、基礎を学ぶにはちょうどよいです。注意が必要なのは、ここでインプットを過多にならないようにするということです。人は不安になると慣れている行為に走ります。インプットは失敗することがないので心地よいですし、勉強した気になります。繰り返してやってしまいます。それは往々にして無駄な時間なのでここは最小限にしましょう。「よくProgate~周やった」と自慢げな人を見かけますが、ちょっともったいないように感じます。その情熱と時間を自分のサービス開発にあてていたら、もっと効率的に勉強できたでしょう。遅延評価学習法に則り、学ぶべきものを必要最低限学びましょう。実際に開発する基礎をある程度身につけることが出来たら、実際に開発してみましょう。何かを理解するには、その前にちょっとした成功体験が必要なんだと思った。いくら、先々を予想してインプットしても身につくには時間がかかるわけで...。仕事などで理解がなかなか深まらないなら、それは自分が興味を持てていない、それか小さな成功体験を生めていないことなのかも。2019正直めっちゃ大変だと思います。「何やったらいいんだろう?」とか「全然覚えていない...」と絶望することになるでしょう。それは普通なことです。分からなければ調べればよいのです。今まで学んだことをカンニングしてチャレンジしましょう。僕の勉強法もこれだなー。2019そして、最悪開発できなくてもいいです。背伸びしすぎたのかもしれません。いえ、背伸びしたとしても自分で考えてコードを書いた経験こそスキルアップに重要です。インプットばっかりしていた人に比べたら確実に成長しています。目標を下げて、またチャレンジすればいいだけです。開発したいものを見つける無事開発できたら、また新たに開発したいものを見つけましょう。一つ出来たら終わりじゃなくて何個も作りましょう。前作ったものとは違うようなものを作ると良いです。作って作って作りまくることでアウトプット量が圧倒的に増えますし、それに伴ってインプット量も増えています。一度作ってそこからチャレンジしなくなる人がいます。それをやると成長がそこで止まります。同じようなアプリケーションばかり作っている人も同じです。やっているようで全然伸びません。プログラミング学習は応用力を身につけるのがゴール実は、プログラミング学習は応用力を身につけるのがゴールです。プログラミングはエンジニアリングです。技術を使いこなすことに価値があります。プログラミング学習とは使いこなすための練習と言えます。使いこなす練習をせずに知識ばかりを詰め込んでいる人は猛省しましょう。勉強した気になっている可能性が高いです。努力し勉強した気になりそれでも成長していないときに人は、自分の努力を否定せずに「自分は向いていないんだ」と都合の良い考えを受け入れようとします。シンプルに自分のやり方が間違っていたことを認めしょう。辛いでしょうが、これが成長のために必要です。この記事をきっかけに勉強法を見直せば、今からでも成長できるので今日から意識と気持ちを切り替えていきましょう。......とはいえ、「作りたいものなんか全然ないし、イメージがつかない...」という人もいるでしょう。そんな人はプログラミング学習サイトを除いてみるのもおすすめです!今はとても簡単・手軽にプログラミングを勉強できるサイトがたくさんあります。その中には「こんなものを作ってみましょう」と、実際の成果物とその作り方をわかりやすく説明しているものもあります。↓の記事ではプログラミングを勉強するなら絶対に知っておきたいおすすめサービスを紹介しています。2019.08.14知らなきゃ損する!おすすめプログラミング学習サイト5選+αを徹底紹介!「プログラミングを勉強したいな。これからプログラミングを始めようと思っていても、こんな悩みに当たる人は少なくありません。インターネット上には、プログラミングのオンライン講座やスクールの情報...「成長できる勉強法を身につけたい」「そのためにアウトプット中心の勉強をしたい」と思っている方はぜひ見てください。いう要望を持っている方向けに、週に1度リアルなお役立ち情報を配信しています。営業から転職し、6ヶ月でリードエンジニアになったフルスタックエンジニア。その後半年でフリーランスとして独立し、ブロックチェーン・機械学習の案件に携わる。現在はフリーランスエンジニアの経験を活かして、ブログやYouTubeにて情報発信をしている。2019.06.12この記事では、こんな疑問にお答えします。こんにちは、りか(@kei_freedomer)です。2019.06.13高い給料を貰い、残業もせず悠々自適に暮らす。そんなフリーランスエンジニアには、誰もが羨ましくなりますよね。USイメージキャラクター『Freena』フリーランスの羅針盤となるメディアサイト『東京フリーランス』。フリーランスの皆さんに役立つコンテンツを配信しています。