プログラミング

【Udemy】オンラインのプログラミング独学で挫折しない手順+マインド

プログラミングは挫折率が高いことで知られています。そこで、今回はオンラインでのプログラミング独学において、挫折しない学習手順を解説していきます。

はじめに : なぜ独学のプログラミング学習で挫折するのか

まずは問題点を洗い出しましょう。オンラインでのプログラミング独学で挫折する原因は主に3つです。

  • つまらない
  • 学習方法の誤り
  • 難易度の跳躍

つまらない

この記事を読んでいる方の中には、これからプログラミングを始めようとする方もいれば、すでに学習を始めていて今にも挫折しそう(or 既にした)な方もいらっしゃると思います。

つまらない原因は様々ありますが、

  • なんか思っていたのと違う
  • そのプログラミング言語で出来ることに興味がない

などが主でしょう。最悪学習方法が多少間違っていたり、学習難易度で飛躍があったりしても、この「つまらない」を解消できれば挫折率を落とすことができます。

学習方法の誤り

一番よく言われる学習方法の誤りの例としては、

  • 初歩的な部分を過度に繰り返す
  • アウトプット量が絶望的に少ない

のようなものがあります。僕の勝手な予想ですが、学校の勉強とかなら上でもそれほど問題ないかもしれません。「基礎が重要だ!」とどこかにタコができるくらい言い聞かされ、インプット重視の学習でもそれなりに結果が出るためです。

しかし、プログラミングと受験勉強などの学習では

  • 受験などの勉強 : 与えられた問題を解くだけ
  • プログラミング学習 : モノを作る。問題を解くだけではない。

といった大きな違いがあります。

難易度の跳躍

また、よく難易度の跳躍でプログラミング学習に挫折してしまうパターンがあります。

「難易度の跳躍」とは、具体例をあげると、

  • それまでせいぜい5〜15行程度のプログラムしか書いてなかったのに急に演習や練習問題で100〜200行のプログラムを書く

といったものです。これ実は大学の授業でもありがちなパターンで、僕は大学1年の頃C言語で400行、大学2年の時にJavaで1000行程度のプログラムを演習課題として書きました。それまではせいぜい20行くらいのコードしか書かなかったにもかかわらず...

こんな感じで急に書くコード量が増えたり、インプット→アウトプットの急な展開があるとついていけなくなってしまいます。

これはインプット段階で順調にプログラム学習が進んでいる人ほど挫折の原因になりやすいです。

オンラインの独学プログラミング学習で挫折しない手順

さて、これまでプログラミング独学の3つの挫折ポイントについてお話しました。

ここからは、それらの挫折ポイントを上手く乗り越える為の学習手順と独学する時のマインドの持ち方を解説していきます。

無料から卒業する

もしいまだにProgateの無料部分だけ繰り返し勉強しているようであれば今すぐ卒業しましょう。

無料にはそれなりの理由があります。プログラミングは将来稼げる代わりに、それまでの期間は学習環境に投資する必要があります。

適切な学習環境を用意する

ではどんな学習環境を用意するかですが、オンラインでのプログラミング独学に関していえば

  • オンライン完結のプログラミングスクール
  • オンライン学習サイト

などがありますが、上については独学かどうか微妙なので、下の「オンライン学習サイト」を学習環境として用意します。

今回はUdemy での学習手順を解説していきます。Udemy はシリコンバレー発の世界最大級オンライン学習プラットフォームです。僕自身もここでのコースをとった経験があるので学習のポイントは掴めています。

ちなみに、Udemyで受講する場合、プログラミングスクールに行くよりも大体10〜20分の1程度の価格でプログラミングを学習することができます。

その分挫折率が上昇するので、今から解説することを是非念頭に置いてみてください。そうすれば金銭的な負担が少ないまま効率よく学習ができます。

>>Udemy (30日間返金対応可)

Udemyでの挫折しないプログラミング学習法

まずはゴールを見る

以下のツイート(僕のツイートではありません)では実際にUdemyの講座で習得したことを使ってGoogleの株価予想をしています。

 

このようにゴールを見ることによってやる気が上がるだけでなく、プログラミング学習によって自分がどう変化するかがぼんやりと想像できるようになります。

ちなみに上の講座は酒井潤さんのPython講座で僕もこの記事を書いている時点で受講しています。

受講者数が非常に多く人気な講座です。気になる方は是非チェックしてみてください。

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

MacのターミナルやWindowsのコマンドプロンプトの使い方を理解する

MacのターミナルやWindowsのコマンドプロンプトを使ってプログラムを実行することがあります。

その時によくあるのが「画面の通りにコマンドを打ったのに"ファイルがない"って表示される」といったようなエラーです。

そういうちょっとしたところでつまづいてしまうと途端にやる気が失せてしまうので気を付けましょう。

コマンドに関しては、プログラミングの学習を始める前に最低限、

  • cd
  • ls
  • pwd

の3つは必ず概念+使い方をセットで覚えておいてください。といっても3〜10分程度で理解できるかと思うので安心してください。

ここで一瞬だけ説明すると、例えば「DesktopのAというフォルダにあるBというフォルダの中にあるCというpythonプログラムを実行したい」みたいなときは、ターミナル(コマンドプロンプト)上で

  • cd Desktop/A/B →Enterキー
  • python C.py →Enterキー

のように打ちます。「python C.py」のところはプログラミング言語やファイル名で変わってくるのでご了承ください。

"No such file or directory"と表示されたら上のコマンドを実行してみてください。

Mac、Windowsのショートカットキーを覚えておく

コマンドの次はショートカットキーを覚えましょう。これも全て覚えるのは時間がかかるため、主要なものだけで大丈夫です。

結論、ショートカットキーが一切分からなくてもコードを作成する上では問題ありません。しかし、ショートカットキーを覚えることによってマウスとキーボードを行き来する必要がなくなるため、作業効率が格段に上がります。

調べ方は、実行するIDE(プログラムを書いて実行するソフト、アプリ)によって少し異なりますのでご注意ください。

例としては以下のような感じです(例 : Visual Studio CodeのMac版ショートカットキー)

https://qiita.com/naru0504/items/99495c4482cd158ddca8

インプットの部分は軽く流していく

さて、必要最低限のコマンドとショートカットキーを覚えたら(覚えながらでもOK)いよいよ実際に講義を受けます。

どの講座でもそうですが、最初はどうしてもインプット重視にならざるを得ません。正直それほど面白みを感じられないかと思います。

性格にもよりますが、「基礎が大事だ!応用に行く前に抜け漏れを完全に潰さなきゃ」というスタンスでいくとすぐに息切れしてしまいます。それよりも以下で説明することの方が何倍も重要です。

【超重要!】新出事項を必ずまとめる

Udemyなどでのオンライン学習の大まかな流れは、

  • 入門→基礎→基礎確認(演習)→応用

のような一見するとよくある形となっています。

しかし、基礎確認(演習)の部分は概して難易度が飛躍している場合が多いです。

そして、その時必ず基本的事項の復習に入ります。ここでは「いかに素早く正確に知りたい基本事項に辿り着けるか」が重要です。

理由は単純で、これができないとやる気が急激に下がってしまうからです。

まとめ方 : 役割のみを書けばOK

Udemyでは以下のように「番号. 講義内容」のセットで表示されます。ただしこれだけでは広義で使用されているメソッドや関数とその内容が分かりづらいです。

後々知りたい情報に素早くたどり着くためには、メモ帳(PCでも紙でもOK)やExcelなどのテキストが入力できるものを用意しましょう。

そこで、

  • 9. print : 出力
  • 〇〇(番号) . with : 〇〇(withの役割)
  • 〇〇. input : 〇〇

のような、「講義の番号. 関数名 : 大まかな内容」といった形でまとめていくと良いでしょう。

こうすることで、演習に入った時に「〇〇という操作をしたいから〇〇番の講義内容を復習しよう」といったことが簡単にできるようになります。メモを確認すれば良いですからね。

逆にこれができないと、「あれを知りたいんだけどどこだっけ...」と無駄な時間を過ごしてしまい、やる気が急激に下がってしまいます。

といっても、このまとめも詳細に書きすぎると時間がかかってしまうため、ざっくり10〜20文字程度でまとめていくのが良いでしょう。

必ず手を動かす

先ほど「最初の方はインプット重視になる」という話をしましたが、そういう基礎的な部分の学習の時はただボーッと画面を眺めているのではなく、必ず手を動かしましょう。

手の動かし方については人によりますが、おすすめは

  •  画面での操作が一通り終わったら自分で講義の画面を見ずに同じコードを書いてみる

ことです。これがなかなか一発ではできず難しいのですが、これをすることによって、アウトプット比率が増え、学習効率が上がっていきます。

ただし、先ほど言った通り、インプットは流す感じで良いので、同じところを何回も繰り返す必要はありません。

演習は時間を決めてやる

Udemyで講義を受ける際、何回か自力でコードを書く演習の時間があるかもしれません。

そういった時は、すぐ答えをみるのもよくないですが、何十時間も考え続けるのは少し効率が悪いかもしれません。

そのため、「3時間やって分からなそうだったら答えを見る」など時間を決めてやっていくと良いです。時間を決める目安ですが、プログラミング初学者なら最大3〜5時間で設定してみると良いでしょう。

演習はせっかくのアウトプットの機会なので無駄にしたくないですね。

【重要】「基礎=簡単ではない」と認識すること

最後にプログラミング学習の際のマインドの持ち方ですが、受験勉強などを経験していると、人によっては

  • 基礎=簡単

みたいなイメージがあるかもしれません。しかし、基礎なら簡単だというモチベーションでいくと、初めてプログラミングに触れる人だとその難しさに辟易してしまう可能性が高いです。

基礎は簡単とは限らないので、つまづいてもそれは理解力がないとか、学習要領が悪いわけでは全くないので自信を失う必要はありません。

最後に : プログラミングの上達には時間が必要

プログラミングは音楽やスポーツと同じ感じで「才能」が大きく左右すると感じている人は少なくないかと思います。

もちろん才能が全く関係ないわけはないのですが、やはりプログラミング学習にかける時間が重要です。

面白いことに、プログラミングに限った話ではないですが、ある時急に「伸びるポイント」がやってきます。それまではどんなに考えても上手くコードが書けず、もはや自分がプログラムを考えているのか否かも分からないような状態でも、突然「分かる」時がやってくるのです。

この「分かる!」状態が何回も繰り返されることによって成長していきます。そのためには必ず「壁」が必要です。

本記事で紹介したもの
  • この記事を書いた人
おととらべる

おととらべる

現役理系大学生。 Programming : Java, Python 音楽活動名義はRoot Introvertです。 音楽制作でのリリース、プロモーション ByeByeCopyright -> Root Introvert - Between Our Hearts (2019年3月) AirwaveDubstepTV -> SHADOWKEY - Kiss Me(feat. Jellow) (Root Introvert Remix) (2019年10月) NoCopyrightNation(NCN) -> Root Introvert - You Don't Wanna Be Lonely(2020年2月) 7even EDM -> Root Introvert - You Don't Wanna Be Lonely(Promotion) (2020年3月、4月) InspiredByInspired -> Root Introvert - You (2020年2月) AshesToFlame Records -> Root Introvert & Isura - Reminiscent (2020年4月) 一人旅 : タイ、ラオス、ベトナム、マレーシア

-プログラミング
-, , , ,

© 2020 おととらべる Powered by AFFINGER5