こんにちは!
データサイエンティストを経て現在はデータ分析系の会社を経営しているウマたん(@statistics1012)です。
大学時代に様々なプログラミング言語に挑戦し、挫折を繰り返してきました。
そんな僕ですが、最近になってやっとプログラミングを挫折せず続けて勉強できるようになってきました。
そんな悩みを解決するために、この記事ではプログラミング言語を挫折せず勉強する方法をお伝えします!
今まで扱ってきた言語は、Java/C+/R/Python/SQL/Ruby/HTML/CSS//Javascript
※厳密にはSQL/HTML/CSSはプログラミング言語ではありません
いわゆる有名どころの言語は大体触ってきましたが、効率よく習得できた言語と習得できず挫折してしまった言語があります!!!
なぜプログラミング言語は挫折してしまうのでしょうか?
自分の経験をふまえてプログラミング言語で挫折しない方法について見ていきたいと思います!
目次
プログラミング言語に挫折した日々
んーーー。正直、一つのことを続けるのは自信ある方なんですよー!!
だけどプログラミングはなかなか続かなかった。
そんなプログラミング続かなかった続いた時系列を見ていきましょう!
大学1~2年生でJava・C+を学ぶ
大学に入って学んだ一番初めのプログラミング言語はJava・C+。一番スタンダードであり、重要なプログラミング言語です。
まあそれなりに理解は出来たし、書けるようになったのですが正直興味なかったので習得はできませんでした。
これがJava・C+。もちろんプログラミング言語の土台にはなったと思います。
まあムダだったとは思わないですけど、無理やり行うプログラミングなんてクソ意味ないです。
やらない方がまし!!
なんであなたは今プログラミング言語を勉強しているんですか?習得して何がしたいんですか?して意味あるんですか?必ず自問自答しましょう!
それで明確に答えられないなら立ち止まって考えなおしましょう!
大学3,4年生でRを学ぶ
いろんな世の中のわけわからない事象を数理的に解明したいなと思い、統計学という学問に興味を持ちはじめたのが大学生の後半。
統計学の研究室に入り、データ解析言語であるRを勉強するようになりました。
いやー自分の興味のあることなら学習が進む!
結局プログラミングって手段なんです。
解析したい事象があるからそれを確かめるためにRを使う。
そんなこんなでRは比較的簡単に習得することができました。
研究室の同期で非常に優秀な友達がいたのも大きいですねー!
大学院でRuby・Pythonを学ぶ
大学院になって余裕が出てきたため、RubyとPythonを勉強しはじめました。
そう、RubyとPythonは非常に汎用性が高いプログラミング言語であり今のうちに勉強しておけば役に立つかなーという安易な気持ちで勉強しはじめました。
結果・・・ほぼ習得できず。
何のために勉強しているのか分からず、目的が曖昧になっているプログラミング言語は習得できません!!!!
社会人になってPython・SQL・HTML・CSS・Javascriptを学ぶ
社会人になって、業務でHTML・CSS・Javascriptを少し触るようになりました。
元々知識はないし、教材等で体系的に学んだことはないのですが、記述は理解できるしある程度なら書けるようなレベルになりました。
SQLはゴリゴリ業務で使うのでだいぶ書けるようになりました。
正直プログラミング学習を続ける上で教材の良し悪しってそれほど大きな問題ではないと思っています。
どれだけ続けられる環境を作れるかが大事!!
また業務でAI・機械学習を使ったプロジェクトを行うようになり他ツールとのAPI連携を行う上でPythonを使うようになりました。
学生時代はRで十分だったためPythonを習得することができませんでしたが、今回は必要にせまられてPythonを習得することに・・・だいぶ習得できるようになりました。
これが自分のプログラミング挫折人生です。
まあ、それなりに習得出来たプログラミング言語と全くできなかった言語がありますねー。
これらを振り返った時にプログラミング言語を挫折してしまうパターンが見えてきました。
プログラミングを挫折しないで勉強し続ける方法
それでは、どのようにすれば挫折せずプログラミングの勉強を続けられるのでしょうか?
プログラミング言語を勉強しようとして挫折してしまうパターンは3つ。
■目的がない
■分からないことを聞ける環境がない
■仲間がいない
そしてこの挫折してしまう3つの原因を出来るだけ排除すること。
■目的がない→目的を作る
■分からないことを聞ける環境がない→聞ける環境に飛び込む
■仲間がいない→仲間を作る
目的を作る
これが一番の挫折の原因だと思っています。
なんとなくプログラミング流行っているから勉強してみようと思っていませんか?
プログラミング言語は、まず目的がないと続きません。
プログラミングはあくまでも手段なんです。
本来、「何かWebアプリケーションを作りたい!」とか「株価の動きを解析してみたい!」という目的があり、それを成し遂げるための手段としてプログラミング言語を使うべきです!
とりあえず、プログラミング言語を勉強しておけば手に職が付くからーと思って勉強してもなかなか身に付かないし、効率が悪いです。
まずは、自分の中でプログラミング言語を使って成し遂げたいことをイメージしましょう!
僕の場合、自分の研究を達成するために用いていたRや、Webアプリケーションを作るために勉強したPython・Javascript、データ抽出・集計のためのSQLは効率的に習得できました。
ただ、なんとなく勉強させられていたC+、Javaや流行っているから使ってみようと思ったRubyなどは、全く習得できず・・・
僕の場合研究や仕事に紐づいて習得することが多かったですが、趣味で勉強する際も
■何か自分で成し遂げたいこと
■そのプログラミング言語を習得したら何が出来るようになるのか
をイメージして勉強に臨むと良いでしょう!
漫然と勉強するのではなく「XXX」を作りたいから勉強する、「XXX」を解析したいから勉強する、とイメージして学習を行うと効率良く学べるでしょう!
結構ドリーミーな目的でも良いと思います。いきなり具体的なWebアプリケーションを作る!など!
そんなの無理!と思うかもしれません。
しかし、僕自身Python・Javascriptを習得するために「Webスクレイピングをして文書類似度を算出するWebアプリケーションを作る」という目的を持って勉強していました。←割とこのWebアプリケーションは難易度的にちょうど良いと思います
以下の記事で紹介していますのでよければご覧ください。
細かい文法が分かっていなくても、ネットで調べると情報があふれているので、色んなコードを組み合わせて、なんとか作り上げました。
そして、その後に体系的な学習を行うと、あの時のあの文法はこういう意味があったのかーと経験と知識が紐づいて吸収しやすいです。
英語も、最初から体系的に文法・単語を身に付けても実践しないと習得できないですよね?
いきなり何も分からない状況で英語圏に飛び込んで、実践的に英語を使ってから、文法や単語を勉強した方が効率良かったりしますよね?
プログラミングも一緒なんです。だからまずは、「何を作りたいか」目的を持って取り組みましょう!
分からないことを聞ける環境に飛び込む
ある程度まで出来るようになると自走できますが、やはり分からないところを教えてもらう環境がないと挫折しやすいですよね。
現代ではネットに情報が溢れているので調べると大体出てきますが、それでもなかなか解決しないことは多い。
そんな時に、さらっと聞ける人が周りにいるかいないか。非常に大きな差ですよね。
ただ、そんな恵まれた環境があるとは限らない。
分からないことを聞ける環境に飛び込むには大きく分けて2つの方法があると思っています。
プログラミングスクールに通う
【手軽さ】 | |
---|---|
【学習効率の良さ】 | |
【オススメ度】 |
プログラミングを本気で勉強しようとするならスクールに通うのは一つの手です。ただ、価格がそれなりに高いので選ぶ際は慎重に。
僕はTechAcademyを選びました。
公式サイト:https://techacademy.jp/
基本的にはオンライン学習コンテンツを進めていくものになりますが、現役エンジニアのメンターがついて分からないことは素早く対応してくれます。
テックアカデミーのAIコースを受講しましたが、現役エンジニアの方の説明が分かりやすくかつノルマを与えられるのでお尻に火がつきます。
テックアカデミーを体験記事を挙げているのでよければご覧ください!
教材のレベルも高く、本気で実践的なプログラミング学習ができます。
無料体験もやっているので不安な人は無料体験がオススメです!
とは言え、プログラミングスクールって複数あって違いが分かりずらいですよねー・・
以下の記事で言語別のおすすめプログラミングスクールについてまとめていますので是非にしてみてください!
また、プログラミングスクールの比較が「WebReach」というサイトのおすすめプログラミングスクールの記事で詳しく紹介されています。
とてもわかりやすいので、ぜひご参考ください。
エンジニアへ転職・企業でインターンシップ
【価格の安さ】 | 逆にもらえる |
---|---|
【手軽さ】 | |
【学習効率の良さ】 | |
【オススメ度】 |
社会人なら転職!
学生さんならエンジニアインターンシップなどを考えてもよいでしょう!
こちらは、上手くいけばお金をもらいながら効率よく勉強できます。
エンジニアになると半ば強制的に目的がつくられるので、最重要の項目「目的を作る」も達成できちゃいます。
プログラミングが出来ない状態からエンジニアに転職するというのはリスクが大きいかもしれません。
それでもやる気さえあれば受け入れてくれるところはいくつかあるそうです。友達で未経験からエンジニア転職した人もいます。
僕自身転職したことがないのでなんとも言えないですが、ITエンジニア専用の転職サービス「レバテック」はオススメ!(※レバレジーズでインターンしてました笑)
仲間を作る
もう一つ挫折してしまうパターンがこれ。
仲間がいない。
ただこれは先述の二つに比べるとそんな大きな要因ではないかも。
まあでもやっぱり、一緒に勉強して切磋琢磨する仲間がいないとどうしても勉強は続きません。
教えてもらう人も大事ですが、同じレベルで一緒に勉強していける仲間も大事。
一緒に勉強する仲間がいると、分からないところを共有してお互いに教え合えますし、モチベーションも高まります。
プログラミングスクールやハンズオン勉強会で作っても良いし、TwitterなどのSNSを使っても良いでしょう!
是非リアル・バーチャルを上手く利用して一緒にプログラミングを学ぶ友達を作りましょう!
ちなみに僕のTwitterのアカウントは@statistics1012です!
プログラミングが挫折しないサービス・教材
プログラミング学習を挫折しないためには、まずインプットの環境作りが大事だよという話をしてきました。
環境作りが一番大事だと伝えた上でインプットの効率を上げるサービスや教材についてまとめていきたいと思います!
書籍でインプット!
本からのインプットは、手っ取り早く始めることができ、かつ安く済みます。
しかし、継続しない確率が高い。特に図や絵のない文章ばかりの堅苦しい本は問題外!
分からなかったらそれを解消する手段がないので、頓挫しやすいです。
プログラミングを勉強する上で本は3つの役割に分かれると思います。
1つは概念的な超初級者向けの本。「プログラミングを勉強したら何ができるようになるか~基本的なプログラミング」までを網羅した本。
2つ目はリファレンス用の本。読み通すことを目的としているのではなく、必要な時に逆引きで調べられるような手元に置いておく本。
3つ目は読むことによってプログラミングが習得できるようになると謳った本。
圧倒的に多いのは3つ目ですが、それをいきなり購入して勉強しようとするのは間違い。
本に関しては1・2をメインに購入を検討すると良いと思います。本は、プログラミング勉強への架け橋と、勉強を進める上での補助としての役割が向いています。
もし、3つ目を読破するなら、一人ではなかなか難しいです。よっぽどの天才か、よっぽどの熱量がないと無理。少なくとも僕は無理。
3つ目の類の本を読破するなら、勉強会に参加したり、一緒に読み進める仲間を作って進めていきましょう。1人でやると効率悪いです。
目的を持つのは必須です!
ちなみにR・Python・SQLに関してはオススメの本をこちらに挙げているのでご参考までに!
挫折しないようにプログラミングスクールに通う!
書籍だけで独学で進めると挫折してしまう可能性が非常に高いので、是非プログラミングスクールに通うことを検討してみてください!
僕自身、複数のプログラミングスクールに通った経験があります。
有象無象のプログラミングスクールがあるので、微妙なプログラミングスクールに引っかからないようにしましょう!
テックアカデミー
公式サイト:https://techacademy.jp/
【価格】 | 163,900円~(4週間) |
---|---|
【オススメ度】 | |
【サポート体制】 | |
【受講形式】 | オンライン形式 |
僕自身も実際に通ったスクールでおすすめなのが「テックアカデミー」!
テックアカデミーは様々なコースを展開しており、どのコースも同じ価格。
受講期間によって価格帯は変わります。
カリキュラムの内容は期間が変わっても変わらないので、時間をしっかり確保できる人は4週間プランで申し込んでみてもよいでしょう!
テックアカデミーは実際に知名度も高く評判も上々なので、非常にオススメできるオンラインスクールです。
不安な方は、無料体験をしてみることをオススメします!
以下の記事で体験談をより詳しくまとめていますので是非チェックしてみてください!
スタアカ(スタビジアカデミー)
公式サイト:https://toukei-lab.com/achademy/
【価格】 | ライトプラン:1280円/月 プレミアムプラン:149,800円 |
---|---|
【オススメ度】 | |
【サポート体制】 | |
【受講形式】 | オンライン形式 |
【学習範囲】 | データサイエンスを網羅的に学ぶ 実践的なビジネスフレームワークを学ぶ SQLとPythonを組み合わせて実データを使った様々なワークを行う マーケティングの実行プラン策定 マーケティングとデータ分析の掛け合わせで集客マネタイズ |
データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「スタアカ」!!
当メディアが運営するスクールです。
24時間以内の質問対応と現役データサイエンティストによる複数回のメンタリングを実施します!
カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください!
他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。
そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解なども合わせて学べるボリューム満点のコースになっています!
プログラミングの中でもPythonを中心にAIやデータサイエンスについて学びたいなら是非受講してみてください!
ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったり・Webサイト構築してデータ基盤構築してWebマーケ×データ分析実践してもらったりする盛りだくさんの内容になってます!
・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析
・世界最大手小売企業のウォルマートの実データを用いた需要予測
・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定
・Webサイト構築してデータ基盤構築してWebマーケ×データ分析実践して稼ぐ
プログラミングを挫折しない方法 まとめ
長々とプログラミングを挫折しない方法についてまとめてきましたが・・・・一番伝えたかったのはプログラミングを挫折しない3つの重要なコト!
■目的を作る
■分からないことを聞ける環境に飛び込む
■仲間を作る
以下の動画でもよりコンパクトに解説していますので是非合わせてチェックしてみてください!
プログラミングの勉強方法に関してはこちらの記事でもまとめています!
Pythonに関しては学習方法を以下に簡単にまとめています!もしPythonを習得したい人は以下の記事も合わせてご覧ください!
またプログラミングが分からない時の解決方法について詳しく以下で解説しています!
ITエンジニアになるための勉強法は以下でまとめています!