プログラミングの勉強を始めてみたいと思うんだけど、一体何から始めたらいいんだろう?
初心者すぎて、右も左も分からないんだよなぁ…
本記事では、このようなプログラミング初心者にむけて、プログラミングを始めるには何から始めればよいかを丁寧に説明しています。
- プログラミングの勉強を始めるための手順やその順番
- プログラミングを始める前に知っておく知識や考えるべきこと
- プログラミングを始めるために必要な物や設備
- プログラミングの勉強方法や挫折しないための工夫
僕自身、今ではプログラミングに触れて数年立ち、バリバリコードを書けるようになっていますが、初期のころは同じような手順で勉強を始めました。
最後まで読んでいただくと、今すぐにでもプログラミングの勉強に向けて動き出せる状態になるはずです!
プログラミング学習を始めるための手順
プログラミングを始める前に、最低限プログラミングやPCに関する基礎知識を頭に入れておきましょう。
例えば、プログラミングとは何か、プログラムはどのように動くのか?プログラミングを使ってできることは何か?などは知っておくべきです。
プログラミングを使ってできることは多岐にわたりますが、何を目標にプログラミングを学ぶのかを決めましょう。
目標が決まれば学ぶべきプログラミング言語もある程度決まるはずです。また、どんな教材で勉強をするかも決めたのち、学習計画を立ててみましょう。
プログラミングを始めるのに必要なものはある一定スペック以上のパソコンとネット環境です。
これらが揃えられたら、自分のPCでプログラミングができるよう必要なソフトウェアをインストールしたり設定をしなおしたりする環境構築を行います。
プログラミングの勉強で重要なことはインプットとアウトプットの繰り返しです。インプットで情報を頭の中に入れるだけでなく、学んだことを実際に自分の手でコードを書いて覚えるようにしましょう。
初心者や未経験者にとって、プログラミング学習は挫折する可能性が高いです。できるだけ挫折を避けるために、疑問点や不明点を質問できるような環境を作ったり、一緒に勉強を頑張る仲間やライバルを作ったりすると効果的です。
プログラミングの勉強を始める手順をここでは簡単にまとめましたが、次章以降でそれぞれについて詳しく解説していきます。
プログラミングを始める前に知っておくこと
実際にプログラミングを勉強し始める前に、以下の2点については最低限知っておきましょう。
- プログラミングやPCに関する基礎知識
- プログラミングを使ってできること
これらの知識がないまま始めると、勉強中しても何が何だか分からなかったり、何を目指して勉強すればよいのか分からなくなってしまう懸念があります。
プログラミングやPCに関する基礎知識
プログラミングやPCってそもそも何なのか、どうやって動いているのかご存じですか?
これらを知らずに勉強を始めるのは、「自転車が何か、どう動かすのか分からずにとりあえず使う練習をしてみる」のと同じです。
以下にプログラミングを始める前に知っておきたい基礎知識についてまとめました。
- プログラミングとはいったい何なのか?
- プログラミングでできることは何か?
- プログラミング言語とは何か?
- 主なプログラミング言語の種類やそれぞれの言語で何が出来るのか
- プログラミングの勉強方法やどんな教材があるのか
- コードとは何か?コードを実行するために必要なことは何か?
このような最低限の知識がないと右も左もわからず、いきなり挫折する可能性が高いです。
このような基礎事項に関しては、それぞれネットで検索すると出てくるはずです。
とはいえ、ネットの記事は初心者にとっては詳しく解説しすぎでわかりにくかったりするので、プログラミングについて解説してあるマンガなどを読むと楽で手っ取り早いです。
プログラミングを使って何が出来るか
プログラミングを使ってできることは多岐にわたりますが、主にプログラミングで何ができるのか(何に役立ったり、何が作られているのか)は把握しておきましょう。
- webサービス開発
- スマホアプリ開発
- AI/機械学習
- ゲーム制作
- データ分析・解析
- ロボット・電子機械・電子部品の制御
- 面倒なPC作業の自動化
- 競技プログラミングをやってみる
プログラミングを使ってできることで、ある程度人気で有名なものは上に紹介した8つでしょう。
プログラミングの勉強をする際は目的や目標を定めることが重要ですが、プログラミングで出来ることを知っておくと目標や目的を決めやすくなります。
プログラミングを始める前に考えること
プログラミングの基礎知識やプログラミングで出来ることが分かったからと言って、すぐに勉強には取り掛かれないのではないでしょうか?
なぜなら、それはプログラミングのどの分野(技術)や言語を学ぶか、どんな教材で学ぶかを決めていないからです。
- プログラミングを勉強する目標や目的を決める
- 定めた目標や目的から学ぶプログラミング言語や技術を決める
- プログラミングを勉強する手段(教材など)を決める
- プログラミングの学習計画を立てる
それぞれについて詳しく説明していきます。
プログラミングを勉強する目標や目的を決める
まず、プログラミングを勉強する目標や目的を定めてください。
勉強の目標や目的を決めると、勉強すべきことやその順序が明確になったり、モチベーションの維持に繋がり挫折しにくくなるというメリットがあります。
目的や目標の決め方ですが、「プログラミングを使って何ができるか」で紹介したものなどから、面白そうだと思うものを少数個選べばOKです。
ただし、初心者には難しすぎるかもしれないものもあるので、「自分の興味」と「目標の達成難易度」のバランスはとって決めるべきです。
オススメは自分オリジナルのプロダクトを作ってみること
何らかの自分オリジナルサービスなどの作成を目標にすることは初心者にとってかなりオススメです。
- それまでに学んだことの復習になる
- それまでに学んだことだけでは太刀打ちできず、調べながらモノを作る練習になる
- 転職や就職にも有利になる
事実、プログラミングスクールなどでも、ゴールが自分オリジナルのプロダクトの作成であることは非常に多いです。
目標がお金儲けでもOK!ただし注意点あり
あえて紹介していませんでしたが、「プログラミングスキルを身に着けて、お金を稼ぎたい」という目標でもOKです。
ですが、プログラミングでお金儲けをすると言っても、ざっくりしすぎているので、もう少し具体的に考えていく必要があります。
- どのような手段でプログラミングを使って稼ぐのか
- 何のエンジニア・プログラマーとしてお金を稼ぐのか
例えば、稼ぎたなら、副業なのかフリーランスなのか、どこかの企業で正社員として働くのか、はたまた起業するのかなど様々です。
さらに、何のエンジニア・プログラマーとしてお金を稼ぎたいのかを考えておかないと結局何を勉強していいか分からなくなります。
学ぶプログラミング言語や技術などを決める
プログラミングの目標や目的が決まったら、いよいよどのプログラミング言語を学ぶかを決めていきます。
具体的には、決めた目標や目的を達成するのに必要なプログラミング言語を調べて選ぶようにしましょう。
例えば、AIや機械学習を勉強したい人が、AIや機械学習の開発にほとんど使われないphpなどのプログラミング言語を学ぶのは遠回りでしかありません。
プログラミングを勉強する教材を考える
プログラミングを勉強する手段(教材)は豊富です。主にプログラミングの教材は以下の3つがあります。
- プログラミングスクール
- プログラミング学習サイト
- 参考書
この中でも、自分が勉強しやすい教材を見つけ、勉強を進めることが重要です。それぞれについて説明していきます。
プログラミングスクールで勉強する
プログラミングは初心者や未経験者が独学をすると折率がかなり高いことで有名です。
しかし、そんな中で挫折率が他より格段に低く、スキルも確実に身につけやすい学習手段がプログラミングスクールに通うという方法です。
プログラミングスクール自体は数が多く、どれを選べばいいか迷いがちですが、代表的・特徴的なスクールを2つ紹介します。
- 選考を通過した質の高いエンジニアが専属メンターとしてつき、週2回レッスンを受けられる
- 疑問点をチャットで15時〜23時の間ならいつでも質問可能
- 自分オリジナルのサービスやプロダクトを作成できる
プログラミングスクールは様々存在しますが、コース数も豊富で、かつ現役エンジニアがメンターとしてついてくれる「TechAcademy」が1番オススメです。
プログラミングスクールでは、初心者が挫折しやすいポイントを徹底的にサポートしてくれるため、むしろ挫折する方が難しいくらいです。
プログラミングスクールは興味あるんだけど、実際値段が高すぎてちょっと受ける気になれないんだよね…
という人にオススメなのが、「侍エンジニアPlus」という月額2980円のプログラミングスクールです。
- 様々なプログラミング言語や技術を学べる30種類以上のコースを勉強し放題
- 各コース初心者にも学びやすい内容を扱っている
- Q&A掲示板で技術的な悩みからキャリアや転職の悩みまで質問・相談可能
- Q&A掲示板では質問してから平均30分で現役エンジニアから回答がもらえる
- 月に1回まで無料で現役エンジニアとのオンラインレッスンで不明点を質問可能
1講座数十万円もする「テックアカデミー」のようなプログラミングスクールと比べると、コンテンツやサポートは見劣りしてしまいます。
しかし、月額2980円で質問も確実に回答がもらえ、かつ現役エンジニアからオンラインレッスンが月1回無料で受けられる環境があると考えると十分すぎるでしょう。
コスパでいうと普通のプログラミングスクールに匹敵もしくは、それ以上になるはずです。
↓↓月額2980円!!他のプログラミングスクールの約1.5%の値段!?↓↓
プログラミング学習サイトで勉強する
プログラミング学習サイトは、ネット上に教材があり、それを読んだり視聴したりしながら勉強を進めていけるような教材です。
主に動画型・テキスト型・ゲーム型の3つのタイプに分けられ、自分が勉強しやすそうなものを選ぶとよいです。
また、料金自体は有料のものが多いですが、月額数千円程度でリーズナブルな価格帯であることがほとんどです。
ここでは、代表的なプログラミング学習サイトを簡単に2つ紹介します。
特に有名なプログラミング学習サイトは「Progate」でしょう。
テキスト型のプログラミング学習サイトですが、解説もかなりやさしく初心者・未経験者向けです。
さらに、プログラミングのために本来必要なPCの設定(環境構築)をする必要なく始められるため、初心者が勉強以外で挫折してしまう事態も避けることができます。
- 動画なので実際の開発の流れなどを理解しやすい
- 動画の疑問・不明点は動画投稿者に簡単に質問でき、回答ももらえやすい
- 購入した講座が不向きだと感じたら1か月以内なら返品可能
Udemyのオススメポイントは学べるプログラミング言語や技術の数が圧倒的に豊富な点です。
また、一般的に動画による教材は、目から視覚的に情報を得られるため、文章で説明した教材に比べて理解しやすく、挫折しにくい傾向にあります。
参考書で勉強する
書店に行けば、プログラミングの参考書がたくさん並んでいるコーナーがあり、勉強するなら参考書かなと考えていた人も少なくないかもしれません。
特に参考書選びは以下の3点に気を付けて選びましょう。
- 自分が勉強したい内容が学べる参考書か?
- 自分が理解できるレベルの難易度の参考書か?
- 出版された日が古くないか?
しかし、初心者には参考書のみによる独学はあまりオススメできません。やはり文字だけによる解説は限界があったり、内容が古くなっても更新されないからです。
プログラミング学習サイトやプログラミングスクールで勉強しつつ、補助教材として参考書を持っておくというのが一番オススメです。
プログラミングの学習計画を立てる
目標・学ぶプログラミング言語・使う教材が決まれば、次はプログラミングの学習計画を立てていきましょう。
学習計画ですが、具体的には以下のように作ると良いでしょう。
- 目標達成のために何を習得すべきかを考え、小さな段階的な目標に切り分ける(マイルストーンを作る)
- 小さな段階的な目標をもとに、1か月単位、1週間単位で達成すべき目標を逆算して決め、学習計画に落とし込む
ただし、この時点で作った学習計画は「机上の空論」です。なぜなら、まだ勉強を実際に始めていないので、勉強にどれくらい時間がかかるのかや勉強のペースが不明だからです。
なので、勉強を始めた後は、「このペースで決めた時期までに目標を達成できるだろうか?」と考え、学習計画を臨機応変に修正・変更していくことが必要です。
プログラミングを始める前に揃える物や環境
これがないとそもそもプログラミングの勉強なんて始められない、絶対に必要な設備やツールを紹介していきます。
一定以上のスペックのパソコンを持つ
パソコン自体はご自分で持たれている方が多いと思いますが、プログラミングに向いているパソコンかどうかはチェックしてください。
具体的には、ある一定未満のスペックしかないパソコンですと、プログラムの実行速度が遅くなったり、メモリが足りなくなったりと不自由する可能性があるからです。
- OS…WindowsもしくはMac
- メモリ容量…8GB以上
- ストレージ…SSD
- CPU…i5プロセッサー以上
OSはWindowsでもMacでも別にどちらでも大丈夫です。ただし、iPhoneアプリを開発したい場合はMacが必須です。
メモリ容量やストレージ、CPUには注意して買うようにしてください。この辺をケチってしまうとプログラミングをしたときパソコンが重くなったりして、かなり後悔します。
ネット環境を整える
プログラム自体はネット環境がなくてもPCのみで動きます。
しかし、プログラミングをする際に必要なソフトをダウンロードする時や、疑問点・不明点を調べる時に必ずネット環境は必要となります。
ネット環境がない人の方が少ないと思いますが、ないならば必ず整備するようにしましょう。
環境構築をする
自分のPCでプログラミングが出来るようにするために、PCに必要なソフトなどをインストールしたり、設定を変更する必要があるのですが、これを環境構築と呼びます。
実は、環境構築は初心者や未経験者にとってかなり鬼門であり、これが出来ずにプログラミングを勉強するに至らず挫折してしまう人もいるほどです。
基本的にはネットで各プログラミング言語ごとの環境構築の仕方をやると手順が出てくるのでそれに従えばいいのですが、出来なさそうなら人に頼るなりメンターをつけるなりして乗り越えると良いです。
【プログラミングの勉強開始】自分でプロダクトを作る手順
先ほども述べましたが、学んだプログラミング言語を使って、自分のオリジナルのプロダクトを作ることを目標とするのはかなりオススメです。
ここでは、プログラミングで何かを作るとき、だいたいの場合に有効な勉強の手順を紹介します。
【大前提】実際に手を動かしてコードを書いて勉強する
手順ではないのですが、大前提としてプログラミングの勉強方法の基本の基本をここで説明します。
- インプット…テキストを読んだり、動画を視聴したりして情報を頭に入れる
- アウトプット…インプットで頭に入れた内容を実際に自分でコードを書いて実践する
プログラミングの勉強方法って実はそんなに難しくなくて、このインプットとアウトプットの繰り返しです。
初心者や未経験者で、たまにインプットのみに徹する方がいますが、意味のない勉強法です。。プログラムは自分の手で書けて初めて意味があります。
プログラミング言語の文法を学ぶ
何か自分でプロダクトを作りだす第一段階として、まずは必要なプログラミング言語の文法やフレームワークの使い方を勉強してください。
例えば、「AIを作るためにPythonの文法を学ぶ」とか「webアプリ開発のためにHTML,CSS,PHPやPHPのフレームワークを学ぶ」と言った感じです。
チュートリアルなどをみて簡単なプロダクトを真似して作る
文法を学び終えたら、自分の作りたいプロダクトに関係があるものを真似して作ってみましょう。
自分の作りたいものに似たものや関連のあるプロダクトを真似して作ることで、自分の作りたいものを開発する場合も何をどのように作っていけばいいのかイメージがわくようになります。
- webページを作りたい場合、「クリニックの予約ページを真似しながら作れる」コースを受講・勉強してみる
- 為替の予測AIを作りたい場合、「株価を予想できるAIを真似しながら作れる」コースを受講・勉強してみる
なお、こういうチュートリアルのようなコースは「udemy」に豊富なイメージです。
また、このようにプログラミング学習サイトをわざわざ使わなくても、チュートリアル風に作り方を解説してくれているブログやサイトなども存在します。
例えば僕が運営しているこのブログでも、上のようなPythonを使ったラインボットの作り方などを解説しています。
自分で作りたいプロダクトを作ってみる
自分の作りたいプロダクトを作成する場合、残念ながら今までに自分が勉強した知識だけでは太刀打ちできないことが多いでしょう。
ですが、諦めずにどうしたら作りたいものを作れるのか考えたり、試行錯誤することが大事です。
実際、何かを開発するときに自分の知っている知識だけで開発できることは少なく、色々調べたり勉強しながら作っていく場合がほとんとです。
自分で分からない点を調べながらモノを作っていく良い勉強にもなるのです。
プログラミング開始後に挫折しないためにすること
この章で紹介することは、実際にプログラミングの勉強に手を付け始めた後で手を付け始めたらいいのですが、挫折を防ぐために有効な手立てです。
事実、プログラミング初心者や未経験者の挫折率はかなり高いからです。
疑問点や不明点を質問できる環境を作る
プログラミング初心者や未経験者が挫折してしまう原因としては、疑問点や不明点を解決できず諦めてしまうというのが非常に多いです。
でも、実際にプログラミングの質問できる人が身近にいないしなぁ…
このような方にオススメなのがプログラミング質問サービスを利用することです。
- Q&A掲示板型のエラー解決サイト
- メンター型のエラー解決サイト
Q&A型のサービスとはYahoo!知恵袋のように質問を投稿すると、どこかの誰かが回答してくれるサービスです。
一方でメンター型は、現役エンジニアがメンターとしてついてチャットやビデオ通話などでオンラインレッスンやエラー解決を一緒に進めてくれるようなサービスです。
特徴 | Q&A掲示板型 | メンター型 |
---|---|---|
回答の得られやすさ | 回答が得られない場合あり | 回答はほぼ確実にもらえる |
回答の信憑性・信頼性 | 回答の質が低い場合あり | 回答の質も一定は担保される |
料金 | 基本的に無料 | 基本的に有料 |
Q&A型サイトは無料の反面、質問しても回答がもらえなかったり、回答が来たとしてもエラー解決に結びつかないトンチンカンな回答が来る場合もあります。
一方、メンター型の場合、料金は有料ですが回答自体はほぼ確実にもらえ、回答の質も一定は担保されます。これが有料の強みでもあります。
主なプログラミング質問サービス
ここでは、以下のプログラミングのエラー解決に特に有用なプログラミング質問サイトを3つ紹介していきます。
- 侍エンジニアPlus…Q&A掲示板型とメンター型の両方
- teratail…Q&A型
- MENTA…メンター型
はじめに紹介するのは「侍エンジニアPlus」というQ&A型サービスとメンター型サービスの両面の特徴をあわせ持った素晴らしいサービスです。
- Q&A掲示板で技術的な悩みからキャリアや転職の悩みまで質問・相談可能
- Q&A掲示板では質問してから平均30分で現役エンジニアから回答がもらえる
- 月に1回まで無料で現役エンジニアとのオンラインレッスンで不明点を質問可能
- 30~40種類以上のオンライン教材で勉強することもできる
一般にQ&A型サービスには「回答が付かない」or「回答の質が低い」という確率もあり、疑問や不明点の解決につながらない可能性が高いです。
しかし、侍エンジニアPlus内のQ&A掲示板では、確実にすばやく回答が付き、現役エンジニアが回答してくれるので回答の質も担保されています。
また、月に1回まで無料で現役エンジニアとオンラインレッスンも可能なので、文字で伝えにくいことでも画面を共有してメンターと一緒に疑問点・不明点を解決していけます。
さらに、30種類以上ものプログラミングを学べるコースも自由に受講でき、教材も同時に揃うというメリットもあります。
↓↓月額2980円!!他のプログラミングスクールの約1.5%の値段!?↓↓
- 回答率が85%(2021年時点)を超えており、かなり高い
- 日本の企業が作っているサービスのため、日本人が使いやすい
- 初心者にもやさしい(「初心者マーク」をつけて質問可能)
- 日本人のITエンジニアが最も多く登録している(150万人超え)
プログラミング初心者や未経験者がプログラミングのQ&A掲示板を使いたいと思ったとき、まず初めに利用すべきはこの「teratail」でしょう。
プログラミングの質問にはある程度コツや作法が存在しますが、これらを知らないド素人でも質問したら何らかの回答がつきやすいです。(皆さんとても親切です)
- 自分から教えてほしい内容と料金を提示してメンターを募集することが出来る
- 1か月単位での契約
- メンターや教えてもらえる内容が豊富
「MENTA」はメンター型のエラー解決サービスです。
MENTA以外にもメンター型のサービスは存在するものの、それらと比較してMENTAにはメンターの登録者数がかなり多いです。
メンターの数が多いということは、それだけあなたに合ったメンターも見つかりやすいということです。
仲間やライバルを作る
また、プログラミング学習のモチベーション維持が難しく挫折してしまうパターンも珍しくありません。
そこで、プログラミングを一緒に勉強する仲間やライバルを作ることを提案します。
仲間やライバルを作るには主にTwitterなどのSNSや「conpass」というwebサービスを利用してみることをオススメします。
適宜、教材を変えたりしてみる
勉強があまりはかどらなかったり、理解に時間がかかってしまう理由として、勉強している教材があなたに合っていないという可能性があります。
その場合、適宜教材を変えて勉強してみるといいかもしれません。
自分に合った教材を見つけるには、実際に自分で色々な教材を試してみることが大切です。
プログラミング初心者の失敗例
最後に、プログラミング初心者や未経験者が勉強を始めようとして失敗・挫折しがちなケースを紹介していきます。
この記事を読んでいるみなさんは、今から紹介する失敗ケースに陥らないように気を付けてください。
いきなりプログラミングを始めようとする
プログラミングのことについて何も知らない・何も考えていないのにいきなり勉強を始めようとするのは愚策です。
本記事ではプログラミングを始める前に、プログラミングやPCに関する基礎知識を知り、そして学習目標~計画を立て、設備を整えてから始めるべきだと述べました。
いきなりプログラミングを始めようとするのは、「車が何のための道具なのか、どのような動作をするかも知らないのにとりあえず車をいじってみる」のと同じ構図です。
プログラミングの学習目標を高く設定しすぎる
記事の最初の方で、プログラミングを学習する目標を定めるべきだと書きましたが、目標を高く設定しすぎてしまうと挫折につながります。
例えば、ゲームを作りたいと考えている人がいきなりポケモンやマリオのようなゲームを作ることを目標にしてもほとんど不可能な目標です。
目標を設定するときは、まずは自分が達成できそうな目標を設定し、それを達成していくことでプログラミングへの自信をつける方が大事です。
インプットしかせずに自分でプログラムを書かない
- インプット…テキストを読んだり、動画を視聴したりして情報を頭に入れる
- アウトプット…インプットで頭に入れた内容を実際に自分でコードを書いて実践する
大事なので、何度でも言いますが、プログラミングは「アウトプット」の部分、つまり自分でコードを書いて覚えたことを実践することが大事です。
学校の試験などでも、「なんとなく理解はしているけどいざ自分で答案を書くとなるとできない」のような経験はなかったでしょうか?
これと同じでプログラミングも日々自分の手で書けるようにする練習が超重要なのです。
プログラミング中にエラーが出てすぐに諦めてしまう
プログラミングのエラーは大体の場合英語や暗号のような文字列が並んでいて、どうしていいか分からなくなるのも無理もないです。
しかし、エラーやバグへの対処もプログラミングの一部であり、エラーとうまく付き合っていけないとなるとこの先プログラミングを続けるのは難しいでしょう。
- エラーメッセージをしっかり理解し、どんなエラーが起こっているか把握
- エラー発生場所を特定する
- エラー発生原因・理由を特定する
- エラーの修正
自分でのエラーの対処方法はこの4つのサイクルをエラーがなくなるまで繰り返すことです。
初心者や未経験者にとってエラーは難しく、ストレスが溜まることだと思います。エラーの解決方法・対処方法は詳しく別の記事にまとめたのであわせてご覧ください。
色々なプログラミング言語や技術に手を出す
プログラミング言語って有名なものだけでも何種類もありますよね。
初心者や未経験者の方は、「全部経験して全部できるようにならないといけないのではないか?」と勘違いしてしまいがちです。
しかし、実際それは間違いで、とりあえずは自分が興味ある分野を1~少数個選んで勉強して極めればよいのです。
あれもこれも手を出そうとすると、全部中途半端になってしまい結局何も定着せずに時間だけ立ってしまう無駄な事態に陥る可能性もあります。
プログラミング初心者は何から始めるべきか?まとめ
内容が長くなってしまいましたので、最後におさらいをしておきます。
- プログラミングやPCの知識を頭の中に入れる
- プログラミングの学習目標や使う教材、学ぶ言語を決め、学習計画を立てる
- プログラミングに必要な設備や物を整える
- いざ、プログラミングの勉強を始める
- プログラミングに挫折しないような環境を勉強しながら整える
簡単にまとめるとこのような感じです。この手順は独学するにせよ、そうでないにせよ変わりません。
ただし、やはり初心者や未経験者の独学はかなり難しいので、独学をしてみて難しいと感じたらプログラミングスクールを検討しても良いと思います。
コメント