プログラミング

プログラミングを挫折しないで勉強し続けるために重要な3つの秘訣!

こんにちは!

事業会社でWebマーケ・データ解析屋さんとしてお仕事をしているウマたん(@statistics1012)です。

大学時代に様々なプログラミング言語に挑戦し、挫折を繰り返してきました。

そんな僕ですが、最近になってやっとプログラミングを挫折せず続けて勉強できるようになってきました。

プログラミング言語って独学で勉強するのは難しいな・・・
プログラミングを勉強しようとしても挫折してしまった・・・次こそは挫折せず取り組みたい!

そんな悩みを解決するために、この記事ではプログラミング言語を挫折せず勉強する方法をお伝えします!

ウマたん
ウマたん
プログラミングは挫折して当たり前!それをどう克服していくかが成長のカギだ!

今まで扱ってきた言語は、Java/C+/R/Python/SQL/Ruby/HTML/CSS//Javascript

いわゆる有名どころの言語は大体触ってきましたが、効率よく習得できた言語と習得できず挫折してしまった言語があります!!!

なぜプログラミング言語は挫折してしまうのでしょうか?

自分の経験をふまえてプログラミング言語で挫折しない方法について見ていきたいと思います!

プログラミング言語に挫折した日々

んーーー。正直、一つのことを続けるのは自信ある方なんですよー!!

だけどプログラミングはなかなか続かなかった。

そんなプログラミング続かなかった続いた時系列を見ていきましょう!

大学1~2年生でJava・C+を学ぶ

大学に入って学んだ一番初めのプログラミング言語はJava・C+。一番スタンダードであり、重要なプログラミング言語です。

ウマたん
ウマたん
単位を取るためにやらざるを得ない状況だったなー。

まあそれなりに理解は出来たし、書けるようになったのですが正直興味なかったので習得はできませんでした。

これがJava・C+。もちろんプログラミング言語の土台にはなったと思います。

まあムダだったとは思わないですけど、無理やり行うプログラミングなんてクソ意味ないです。やらない方がまし!!

なんであなたは今プログラミング言語を勉強しているんですか?習得して何がしたいんですか?して意味あるんですか?必ず自問自答しましょう!

それで明確に答えられないなら立ち止まって考えなおしましょう!

大学3,4年生でRを学ぶ

いろんな世の中のわけわからない事象を数理的に解明したいなと思い、統計学という学問に興味を持ちはじめたのが大学生の後半。

統計学の研究室に入り、データ解析言語であるRを勉強するようになりました。

いやー自分の興味のあることなら学習が進む!

結局プログラミングって手段なんです。解析したい事象があるからそれを確かめるためにRを使う。

そんなこんなでRは比較的簡単に習得することができました。

研究室の同期で非常に優秀な友達がいたのも大きいですねー!

シンエー
シンエー
俺のことかい??
ウマたん
ウマたん
シンエーいなくても全然だいじょ・・・お世話になりました・・・

大学院でRuby・Pythonを学ぶ

大学院になって余裕が出てきたため、RubyとPythonを勉強しはじめました。

ウマたん
ウマたん
なぜかって?RubyとかPython出来たらカッコいいんじゃん!

そう、RubyとPythonは非常に汎用性が高いプログラミング言語であり今のうちに勉強しておけば役に立つかなーという安易な気持ちで勉強しはじめました。

結果・・・ほぼ習得できず。

何のために勉強しているのか分からず、目的が曖昧になっているプログラミング言語は習得できません!!!!

社会人になってPython・SQL・HTML・CSS・Javascriptを学ぶ

社会人になって、業務でHTML・CSS・Javascriptを少し触るようになりました。

元々知識はないし、教材等で体系的に学んだことはないのですが、記述は理解できるしある程度なら書けるようなレベルになりました。SQLはゴリゴリ業務で使うのでだいぶ書けるようになりました。

正直プログラミング学習を続ける上で教材の良し悪しってそれほど大きな問題ではないと思っています。どれだけ続けられる環境を作れるかが大事!!

ウマたん
ウマたん
HTML・CSS・Javascriptって実装するとすぐ結果が画面に反映されて面白い!簡単に形にすることができるとモチベーションも上がりやすい!

また業務でAI・機械学習を使ったプロジェクトを行うようになり他ツールとのAPI連携を行う上でPythonを使うようになりました。

学生時代はRで十分だったためPythonを習得することができませんでしたが、今回は必要にせまられてPythonを習得することに・・・

ウマたん
ウマたん
やはり習得目的がはっきりしていて、習得した後のアウトプットイメージが出来ていると効率が良い!

これが自分のプログラミング挫折人生です。まあ、それなりに習得出来たプログラミング言語と全くできなかった言語がありますねー。

これらを振り返った時にプログラミング言語を挫折してしまうパターンが見えてきました。

プログラミング言語を勉強する上で挫折してしまうパターンって?

プログラミング言語を勉強しようとして挫折してしまうパターンは3つ。

■目的がない
■分からないことを聞ける環境がない
■仲間がいない

当たり前じゃん!って思うかもしれませんが、意外とこれを考えずにインプットの質を上げようとする人が多いんです!

インプットの質も大事ですが、それ以前にインプットする環境作りとアウトプットイメージを持つことが大事なんです!!!

目的がない

これが一番の挫折の原因だと思っています。

なんとなくプログラミング流行っているから勉強してみようと思っていませんか?プログラミング言語は、まず目的がないと続きません。

プログラミングはあくまでも手段なんです。

本来、「何かWebアプリケーションを作りたい!」とか「株価の動きを解析してみたい!」という目的があり、それを成し遂げるための手段としてプログラミング言語を使うべきです!

とりあえず、プログラミング言語を勉強しておけば手に職が付くからーと思って勉強してもなかなか身に付かないし、効率が悪いです。

まずは、自分の中でプログラミング言語を使って成し遂げたいことをイメージしましょう!

僕の場合、自分の研究を達成するために用いていたRや、Webアプリケーションを作るために勉強したPython・Javascript、データ抽出・集計のためのSQLは効率的に習得できました。

ただ、なんとなく勉強させられていたC+、Javaや流行っているから使ってみようと思ったRubyなどは、全く習得できず・・・

僕の場合研究や仕事に紐づいて習得することが多かったですが、趣味で勉強する際も

■何か自分で成し遂げたいこと
■そのプログラミング言語を習得したら何が出来るようになるのか

をイメージして勉強に臨むと良いでしょう!

分からないことを聞ける環境がない

ある程度まで出来るようになると自走できますが、やはり分からないところを教えてもらう環境がないと挫折しやすいですよね。

現代ではネットに情報が溢れているので調べると大体出てきますが、それでもなかなか解決しないことは多い。

そんな時に、さらっと聞ける人が周りにいるかいないか。非常に大きな差ですよね。

ただ、そんな恵まれた環境があるとは限らない。後ほど分からないことを聞ける環境を作る方法をお伝えしますね!

仲間がいない

もう一つ挫折してしまうパターンがこれ。

仲間がいない。

ただこれは先述の二つに比べるとそんな大きな要因ではないかも。

まあでもやっぱり、一緒に勉強して切磋琢磨する仲間がいないとどうしても勉強は続きません。

教えてもらう人も大事ですが、同じレベルで一緒に勉強していける仲間も大事。

一緒に勉強する仲間がいると、分からないところを共有してお互いに教え合えますし、モチベーションも高まります。

プログラミングスクールやハンズオン勉強会で作っても良いし、TwitterなどのSNSを使っても良いでしょう!

ウマたん
ウマたん
みんな!是非是非一緒にプログラミングを学ぼう!
シンエー
シンエー
仲間を作ってプログラミング言語を加速させよう!

プログラミングを挫折しないで勉強し続ける方法

それでは、どのようにすれば挫折せずプログラミングの勉強を続けられるのでしょうか?

それは先ほどの挫折してしまう3つの原因を出来るだけ排除すること。

■目的がない→目的を作る
■分からないことを聞ける環境がない→聞ける環境に飛び込む
■仲間がいない→仲間を作る

目的を作る

最重要課題なのが、これ!

特に目的がない状況は避けたい。

漫然と勉強するのではなく「XXX」を作りたいから勉強する、「XXX」を解析したいから勉強する、とイメージして学習を行うと効率良く学べるでしょう!

結構ドリーミーな目的でも良いと思います。いきなり具体的なWebアプリケーションを作る!など!

そんなの無理!と思うかもしれません。

しかし、僕自身Python・Javascriptを習得するために「Webスクレイピングをして文書類似度を算出するWebアプリケーションを作る」という目的を持って勉強していました。←割とこのWebアプリケーションは難易度的にちょうど良いと思います

以下の記事で紹介していますのでよければご覧ください。

PythonのFlaskで簡単なWebアプリケーションを作ってみよう!こんにちは!デジタルマーケターのウマたん(@statistics1012)です! WebブラウザでアプリケーションのことをWebア...

細かい文法が分かっていなくても、ネットで調べると情報があふれているので、色んなコードを組み合わせて、なんとか作り上げました。

そして、その後に体系的な学習を行うと、あの時のあの文法はこういう意味があったのかーと経験と知識が紐づいて吸収しやすいです。

英語も、最初から体系的に文法・単語を身に付けても実践しないと習得できないですよね?いきなり何も分からない状況で英語圏に飛び込んで、実践的に英語を使ってから、文法や単語を勉強した方が効率良かったりしますよね?

プログラミングも一緒なんです。だからまずは、「何を作りたいか」目的を持って取り組みましょう!

分からないことを聞ける環境に飛び込む

今すでに周りに聞ける環境がある人はよいでしょう。だけどなかなかそんな環境ないですよねー!

分からないことを聞ける環境に飛び込むには4つの方法があると思っています。

ハンズオン勉強会に参加してみる

【手軽さ】
【学習効率の良さ】
【オススメ度】

ハンズオン勉強会は頻繁に行われていて価格の幅は広いですが無料なモノもあり一番気軽に参加できますね!

ここで同じレベルの仲間を作るのも大切です。

ただ恒常的に聞く環境は作れず、さらに自分のレベルに合ったハンズオンを見つけるのが難しいので学習の効率はそれほど良くないです。

プログラミングスクールに通う

【手軽さ】
【学習効率の良さ】
【オススメ度】

プログラミングを本気で勉強しようとするならスクールに通うのは一つの手です。ただ、価格がそれなりに高いので選ぶ際は慎重に。

有名どころだとTechAcademy、TechCampなどがありますが、僕はTechAcademyを選びました

基本的にはオンライン学習コンテンツを進めていくものになりますが、現役エンジニアのメンターがついて分からないことは素早く対応してくれます。

TECHACADEMYのAIコースを受講しましたが、現役エンジニアの方の説明が分かりやすくかつノルマを与えられるのでお尻に火がつきます。

テックアカデミーを体験記事を挙げているのでよければご覧ください!

【感動】テックアカデミーの評判は?実際に受講してみて良かった6つのことこんにちは!消費財メーカーでデジタルマーケ&データサイエンティスト的なお仕事をしているウマたん(@statistics1012)です。 ...

教材のレベルも高く、本気で実践的なプログラミング学習ができます。

テックアカデミー公式サイトをチェック

エンジニアへ転職・企業でインターンシップ

【価格の安さ】 逆にもらえる
【手軽さ】
【学習効率の良さ】
【オススメ度】

社会人なら転職!学生さんならエンジニアインターンシップなどを考えてもよいでしょう!

こちらは、上手くいけばお金をもらいながら効率よく勉強できます。エンジニアになると半ば強制的に目的がつくられるので、最重要の項目「目的を作る」も達成できちゃいます。

プログラミングが出来ない状態からエンジニアに転職するというのはリスクが大きいかもしれません。

それでもやる気さえあれば受け入れてくれるところはいくつかあるそうです。友達で未経験からエンジニア転職した人もいます。

僕自身転職したことがないのでなんとも言えないですが、ITエンジニア専用の転職サービス「レバテック」はオススメ!(※レバレジーズでインターンしてました笑)

質問サービスを使う

【価格の安さ】
【手軽さ】
【学習効率の良さ】
【オススメ度】

今ではネットで聞けば誰かが何でも応えてくれる時代ですので、そちらを利用するのも1つの手です。

プログラミングのQ&Aサービスだとterateil(テラテイル)が圧倒的にオススメ!こちらもレバレジーズのサービスですが、回答率が高く盛んにやり取りが行われています。(※レバレジーズの回し者ではありません笑)

仲間を作る

最後に「仲間を作る」方法。

新しく知り合うパターンと、既存の友達をプログラミング学習に引き入れるパターンがあります。

ただ、無理にプログラミング学習に引き込んでもなかなかモチベーションが上がらず途中で離脱してしまうことも多いので出来るならプログラミング学習に意欲的な友達を新たに作る方が良いでしょう。

そのためには、ハンズオン勉強会やプログラミングスクールなどに通って作るリアルを起点にした方法と、SNSなどで繋がるバーチャルを起点にした方法があります。

是非リアル・バーチャルを上手く利用して一緒にプログラミングを学ぶ友達を作りましょう!

ちなみに僕のTwitterのアカウントは@statistics1012です!

ウマたん
ウマたん
フォローしてくれると飛んで喜ぶよ!!

プログラミング学習を加速させるサービス・教材

プログラミング学習を挫折しないためには、まずインプットの環境作りが大事だよという話をしてきました。

環境作りが一番大事だと伝えた上でインプットの効率を上げるサービスや教材についてまとめていきたいと思います!

書籍でインプット!

本からのインプットは、手っ取り早く始めることができ、かつ安く済みます。

しかし、継続しない確率が高い。特に図や絵のない文章ばかりの堅苦しい本は問題外!

分からなかったらそれを解消する手段がないので、頓挫しやすいです。

プログラミングを勉強する上で本は3つの役割に分かれると思います。

1つは概念的な超初級者向けの本。「プログラミングを勉強したら何ができるようになるか~基本的なプログラミング」までを網羅した本。

2つ目はリファレンス用の本。読み通すことを目的としているのではなく、必要な時に逆引きで調べられるような手元に置いておく本。

3つ目は読むことによってプログラミングが習得できるようになると謳った本。

圧倒的に多いのは3つ目ですが、それをいきなり購入して勉強しようとするのは間違い。

本に関しては1・2をメインに購入を検討すると良いと思います。本は、プログラミング勉強への架け橋と、勉強を進める上での補助としての役割が向いています。

もし、3つ目を読破するなら、一人ではなかなか難しいです。よっぽどの天才か、よっぽどの熱量がないと無理。少なくとも僕は無理。

3つ目の類の本を読破するなら、勉強会に参加したり、一緒に読み進める仲間を作って進めていきましょう。1人でやると効率悪いです。

目的を持つのは必須です!

ちなみにR・Python・SQLに関してはオススメの本をこちらに挙げているのでご参考までに!

厳選10冊!データ解析(R・Python)の勉強におすすめな本こんにちは!デジタルマーケターのウマたん(@statistics1012)です 統計学を勉強する学生やデータ解析を行う方々が良く使...
SQLを最速でマスターできるオススメ本と勉強方法!こんにちは! 都内でデジタルマーケターとして働くウマたん(@statistics1012)です。 大学院時代はRで主にデータ...

プログラミング学習サービスを使う

ネットには手軽に体験できるプログラミングサービスが多数存在します。

無料なものから有料なものまでありますが、動画などで説明してくれるので本より分かりやすく継続しやすいのが特徴的です。

また、レッスンごとに分かれているので、友達といつまでにここまでやろうと決めて一緒に進めていくとモチベーションも保ちやすく良いと思います。→結局これが大事。僕自身、大学時代は研究室の同期と同じペースで進めるようにしてモチベーションを保っていました。

それではオススメのサービスを見ていきましょう!

ドットインストール

まずはこちら!

ドットインストール

動画で丁寧に教えてくれるので非常に分かりやすく初心者でもつまずかず勉強することができます。無料で視聴できる動画も多数あり、十分無料でも勉強できます。

最初に無料ではじめて、もっと深く勉強したいなと感じたら有料プランに変えると良いでしょう!

他のサービスとの違いは、完全に環境構築からやる、というところ。他のサービスは良い意味でも悪い意味でも環境構築する必要がなかったりします。

コーディングしてデバック回してくれてアウトプットが出てくるツールが標準装備されていると、簡易的に始めることができますが、実際にビジネスや研究に使おうとすると環境構築でつまづいてしまう可能性が高いです。

言語を勉強するだけでなく、それを実践で活かせるレベルまでもっていけるのがドットインストールなのです。

ただ、その分最初の環境構築の動画の段階で分からなくて頓挫してしまう可能性もあります。他のサービスよりも継続性が低いです。続けるためにも友達と一緒に進めることをオススメします。

PyQ

Pythonってめちゃくちゃ需要あるのになかなか深く学べるツールがないんです!さきほど紹介したドットインストールもPythonに関しては本当に基本的なことしか学べません。

そこで、Pythonに特化したこちらのサービスPyQを利用してみましょう!

非常に分かりやすく、Pythonの基礎から、開発までできるようなレベルまで教えてくれるのでオススメです。

料金は月額3000円ほどですが、それくらいの価値があります!!!開発環境を整えなくても登録してからすぐにPythonをカタカタと打ち込めます。

PyQについては以下の記事で詳しくまとめています!

Python学習に特化したPyQをレビュー!初学者にオススメ!こんにちは! デジタルマーケターのウマたん(@statistics1012)です。普段は、Python・R・Javascriptな...

プログラミングを挫折しないで続ける方法 まとめ

長々とプログラミングを挫折しない方法についてまとめてきましたが・・・・一番伝えたかったのはプログラミングを挫折しない3つの重要なコト!

■目的を作る
■分からないことを聞ける環境に飛び込む
■仲間を作る

これで、プログラミングも挫折せずに習得できるはず!

プログラミングの勉強方法に関してはこちらの記事でもまとめています!

Pythonに関しては学習方法を以下に簡単にまとめています!もしPythonを習得したい人は以下の記事も合わせてご覧ください!

【入門】初心者が短期間でPythonを習得できるようになる勉強法!こんにちは!デジタルマーケターのウマたん(@statistics1012)です。 大学院時代は統計学を専攻していたのですが、ほぼR...