「まったく知識がないけど、何勉強したらいいの?」
「プログラマーになるための効率の良い勉強方法が知りたい!」
プログラミングに興味を持った人なら誰もが持つこの疑問について、元教師で現役のプログラマーの僕が誰にでも絶対にわかるように解説していきます。
プログラマーになるための必須スキル
良いプログラマーになるには、次の3つのスキルを勉強していく必要があります。
- コードを書いて動くシステムを作る知識(プログラミング)
- コードを書く環境を準備する知識(環境開発)
- 効率よくシステムを開発したり、保守運用するためのツールの知識
ただし2つ目の「コードを書く準備をする知識」と3つ目の「効率よくシステムを開発したり、保守運用するためのツールの知識」は、自分での勉強ではなかなか身につきませんし、なにより難しいです。これらに初めから深く挑戦すると、まず挫折します。
未経験の方がプログラマーになるために、まず身につけるべきスキルは、1つ目にあげた「コードを書いて動くシステムを作る知識」です。他の2つは後回しでかまいせん。就職してから十分に身に付くからです。そして一つ目がある程度できていれば、十分に就職できるからです。
この記事でも、まずはプログラミングができるようになるための効率の良い勉強方法を紹介していきます。
最初に、上にあげた3つについてどういうものなのか少し説明をしておきます。
コードを書いて動くシステムを作る知識
おそらく、皆さんが想像しているプログラミングはこのジャンルに入ります。簡単にいうとツイッターのように「ログイン」して「ツイート」して「フォロー」できる、といったシステムを「プログラミング言語」といった独自の言語で書いていくことです。プログラミング言語を習得すれば、他にも色々な機能が作れるようになります。
コンピューターは人間の言葉を理解できません。だから、コンピューターが理解できる言葉で書くんです。人間の言葉にも「日本語」や「英語」のように色々な言語がありますよね。
プログラミング言語にもたくさんの言語があります。有名どころで言えば、「javascript」「ruby」「python」とか聞いたことがあるかもしれません。未経験からプログラミングを始める場合は、まずどの言語の勉強を始めるか、を決めましょう。
と言っても、そこまで深く考える必要はありません。一つの言語を習得したら、他の言語の習得は一気に楽になるからです。また、どうせ後から色々な言語を学ぶことになります。最初に学ぶ言語が決められず勉強を初められないくらいなら、「javascript」あたりをおすすめします。
コードを書く環境を準備する知識
プログラミングのコードを書くために、コードを書く場所を準備する必要があります。ワードとかメモ帳にコードを書いたらシステムが動くわけではありません。そのコードを書く場所のことを環境と言います。
環境の作り方には色々な方法があります。例えばrubyの環境を作る場合、自分のパソコンの中に環境を作ることも一つの方法です。でも大きいシステムを作る時って、自分一人では無理なんです。色々な人と協力をしてシステムを作っていきます。
また自分のパソコンに「ruby」「python」「javascript」など、色々な環境を作ってしまうと、色々不便があります。例えばシステムAではrubyのバージョン2.7を使いたいけど、システムBを作るときは、rubyのバージョン1.8を使いたいとか言う時ですね。そんな時、バージョンの変更や他のライブラリ(アイテムみたいなもの)との兼ね合いがめんどくさかったりするんです。
だから、他の人とも簡単に同じ環境を作れて、自分のパソコンに色々な言語をダウンロードしなくてもいい環境の作り方なんかがあります。
このブログでもDockerについて紹介していきますが、このように便利な環境を構築する知識も良いプログラマーになるためには必要です。ただし、未経験の方がいきなり勉強する必要がはありません。まずはこの記事で紹介する勉強方法で、プログラミングの知識をつけましょう
効率よくシステムを開発したり、保守運用するためのツールに関する知識
環境を作ってプログラミングをする、これだけでwebシステムは作れます。ただし、複数人でプログラムを作る場合は自分の書いたコードを多くの方と共有する必要があります。複数人でコードを共有しながら開発ができるツールのことをgitと言います。gitはプログラミングをする上では必須知識です。
他にも、データを保存できるデータベースの知識、webアプリやシステムを公開するためのサーバーの知識、サーバーが簡単に準備できるAWSやGCP、他にもfirebase、circleCI、redashなど、効率よくシステムを作ったり、システムの管理がしやすく様々なツールがあります。
git以外は今すぐ覚える必要はありません。しかしプログラマーは、環境構築やコードは書けて当たり前です。一つ上のレベルのプログラマーになるために、これらの多くのツールを使いこなせる必要があります。これらは今は名前を知っておくくらいでOKです。ただし、プログラマーとしてスキルを高めていくにはいずれ必要になってくるスキルだということは知っておいてください。
というわけで、ここからは未経験者が挫折せず、効率よくプログラミングができるようになる勉強方法を誰でも100%わかるようにわかりやすーく説明していきます!
目指すプログラマーを決める!
プログラマーにも色々と種類があります。
- webプログラマー(webサイト、システム作成など)
- アプリケーションプログラマー(アプリ開発など)
- ゲームプログラマー(ゲーム制作など)
って感じです!どれを目指すかによって習得していく言語が変わってくるので、それぞれを調べてみて興味のある分野を探してみてください。
特にこだわりがないって人は、webプログラマーを目指しとけば安心です。需要も将来性も間違いなく、一番最初に学ぶプログラミング言語として学びやすい言語が揃っています。
未経験者の最初は絶対にこれ!
言語を決めたらいよいよ勉強開始です。プログラミングの勉強方法は色々あります。
- 書籍で勉強
- いきなりスクールに入って勉強
- ネットのサービスを使って勉強
とかですね。ただし、最初は上2つはおすすめしません。
書籍での勉強はおすすめしない理由
本はその言語の体系的にまとめてくれており、わかりやすいことは間違いありません。ある程度プログラミング言語に慣れてきたら、書籍での勉強は理解を深める上でかなり役に立ちます。
しかし、未経験者が最初に書籍から入ることは絶対におすすめしません。最初は、プログラミングの構造もわからないと思います。そんな状態で書籍から入ってしまうと、多分なにがなんやらわからないって感じになるんです。また、本って一度出したらアップデートしずらいので、乗っているコードが古いってことがよくあります。
すると、現在と環境が違って、本に乗ってあるコードが動かないってことが往々にしてあるんですね。初心者のうちはそのエラーから抜け出すことも一苦労です。そのエラーが積み重なって挫折に繋がっちゃいます。だから、最初に書籍での勉強から入ることはおすすめしません。
いきなりスクールをおすすめしない理由
スクールはわかりやすいテキストが用意されています。そして、メンターという一対一でプログラミングを教えてくれる先生がついてくれるスクールが多いです。
わからないところはいつでも質問ができるというところは控えめに言っても最強の環境で、一気にスキルアップできることは間違いありません。僕もプログラマーとして就職する前にはプログラミングスクールに通って、就職できるだけのスキルを身に着けました。
ただ、いきなりプログラミングスクールに入るということはおすすめしないということです。理由は、高額なお金を払ったにも関わらず、プログラミングが向いていないと感じてしまい続かないという可能性があるからです。
また、独学でもなんとかなるレベルの簡単な質問に、貴重なスクールの時間を使ってしまうのはもったいないですよね。知識を身に着けてからスクールに入れば、メンターに質問できる時間を最大限に有効活用することができます。
だから、自分がプログラミングが向いているかの確認と本当に簡単なレベルのプログラミングは、スクールに入る前に自分でやってしまったほうが良いです。だから、未経験がいきなりスクールに入るのはおすすめしないという意味です。
次に紹介する勉強方法をこなした後は、迷わずスクールに入りましょう。先程にも述べましたが、確実にスキルアップできる最短かつ確実なルートは、スクールに入ることです。
まずはネットのサービスを使って適正をみてみよう!
Progateというプログラミング学習サービスがあります。
未経験からプログラミングを始める方は絶対に最初にこれをやるべき理由が3つあります
- 環境構築がいらないから妥協しない
- 自分のプログラミングの適正がわかる
- 学ぶ言語の基礎がほぼ網羅できる
環境構築がいらないから、妥協しない
先程も紹介しましたが、プログラミングを勉強する上で環境構築は避けては通れません。でも、最初はこれがかなり難しいんですよね。コード書いて動かすといったような目に見えるものではなく、目に見えない通信とかサーバーの知識も必要になります。だから、本当に勉強すべきコードを学ぶ前に、環境構築で妥協してしまう人は非常に多いです。
Progateを使えば環境構築は一切いりません。いきなりコードを書いて、自分の書いたコードを動かすことができます。だから、初心者が一番妥協してしまうポイントを飛ばして勉強を始めることができるのが、Prpgateなんです。
自分のプログラミングの適正がわかる
Progate初めから環境ができており、解説が書かれているスライドを見たあと学んだことを実際にコードで書いて実行してみるという感じで進んでいきます。やってみるとわかりますが、ゲーム感覚で取り組むことができます。
プログラミングって、結構地味な作業です。わからないところはGoogleで調べていき、英語の単語を羅列しながら言語の文法に則ってコードを書いていきます。正直に言って、Progateに取り組んでいて「楽しくないぁ」って感じなら、プログラミングへの適正はないかもしれません。
スクールにお金を払ってから後悔しないように、一番初めはProgateを使って必ずプログラミングに取り組んでみるべきです。
学ぶ言語の基礎がほぼ網羅できる
Progateをするだけで、その言語の基礎はほぼ習得できます!一応無料プランもあるのですが無料プランでは少し学習の幅が狭まります。有料でもたったの月1000円なので、1000円払って一ヶ月以内にマスターして退会しちゃいましょう!1000円とは思えないほどのコスパです。
特にやりたい言語の基礎が決まってない方なら、HTML&CSSコースと、javascriptコースをやっておけばOKです。
ただし、一つ注意があります。Progateはあくまで基礎です。未経験の方が自分の適正を図ったり、基礎を身につけるには十分なサービスですが、これだけで就職できる力がつくかと言われれば、そんなことは絶対にありません。だから、Progateを何回もやって満足していては時間のムダです。
2週間から3週間ほどで、自分が使いたい言語のコースはすべて終わらせましょう。Progateでプログラミングが楽しいと思えたり、もう少し勉強したいと思えるようなら、プログラミングへの適正は間違いなくあります。早めに、次のstepに進みましょう。
プログラミングスクールを決めよう!
Progateで基礎を終えた後は、プログラミングのスクールを決めましょう。ここからの勉強は、一人では挫折する確率が格段に跳ね上がるからです。
最初はエラーの連続です。そしてエラーの解決をするのに、遅ければ10時間以上かかってもおかしくはありません。そんな状態で、スムーズに学習が進めると思いますか?1人なら10時間かかる内容が、スクールのメンターさんがいれば10分もかからないことなんかザラになります。だから、最初のうちって質問ができるメンターさんがいることが最強の学習環境なんです。
プログラミングスクールの選び方
プログラミングスクールっていっぱいありますよね。どれが良いかわからない人も多いと思います。プログラミングスクールを決める上で、抑えておかなければいけない点は次の点です。
- メンターの質
- メンターへの質問可能時間
- 値段
メンターの質
メンターは一対一で自分の先生になってくれる存在です。その人のスキルで、自分の勉強のはかどりやスキルアップ具合が大きく変わって来ます。だから、プログラミングスクールを選ぶ上でまず重視すべきは、メンターの質です。
スクールによっては、メンターはアルバイトだったり、そのスクールの卒業生だったります。それって、本当に質の良いメンターだと思いますか?現役のフリーランスのエンジニアが、副業にメンターをしているスクールもあります。学生アルバイトやスクールの卒業生、それとも現役のエンジニア、どちらをメンターに選びたいですか?
メンターへの質問可能時間
仕事や学校があって、その間に勉強をする人にとっては、メンターが反応をしてくれる時間はとても重要なものになります。質問受付が朝の8時から夕方5時までとかだったら、どう考えても使えませんよね。
しかし、多くのスクールは働きながら勉強する人のことも考えて、夜の10時や11時くらいまで質問を受け付けています。だから、その辺りは心配いらないかもしれません。ただ、もう一つ気をつけなければいけないことがあります。
それは、質問に対するレスポンスの速さです。わからないところを質問して帰ってくるのが次の日とかだったら、話しにならないでしょ?自分の勉強が進みませんよね。
スクールによっては、朝から晩まで対応可能!とか言いながら、質問しても返事がかなり遅いという所もあるそうです。そのため、質問に対応時間だけでなく、質問をした後に返信の速さについても重要な項目です。
値段
値段、大事ですよね。高いスクールで3ヶ月で60万円を超えるところから、安くてその半額や動画教材ならそれ以下のところもあります。できるだけ安い所がいいですよね。でもはずれは引きたくない…
ってことで、値段やメンターの質、レスポンスの早さなどを判断した上で、おすすめのスクールを3つ紹介しておきます。
SkillHacks | 69,800円(安い!動画教材、LIINE質問無期限、レスポンス早) |
---|---|
TechAcademy | 239,000円(3ヶ月、メンターの質とレスポンス共に最高) |
侍エンジニア | 438,000円+入会金29800円(3ヶ月、無料体験のクオリティ高) |
無駄な勉強方法
最後に、こんな勉強はムダという方法を紹介しておきます。プログラミング学習は、今までの学校の勉強とはまったく違います。覚えてテストをして点数がよければOK!というものではないんです。だから、次のような勉強はまったくのムダです。
- 単語帳を作ってひたすら暗記する
- メソッド(公式みたいなもの)をすべて覚えていく
なぜなら、プログラミングはカンニングがOKなんです。僕も今でも簡単なメソッドですら、しょっちゅうググります。だって言語ごとにバラバラなんですもん。いちいち覚えてられません。
逆に何が大切なのかというと、手を動かして作る!ということです。プログラミングはモノ作りです。作ってこそ、楽しさがわかります。僕が勉強がてら作ったものを紹介します。
- 毎朝、出勤ボタンを押せよ!と送ってくるbot
- 自分が覚えたい英単語を次々と表示してくれるwebサイト
- 予定を管理できるカレンダーサイト
- 友達との筋トレのグループで、メニュー報告をしたら応援メッセージをくれるbot
- ネットに落ちているIT関係の記事をどんどん集めてくれるスクレイピングアプリ
スクールでの勉強が終わったら次のいよいよ就職です。でも、プログラマーは就職してからも勉強は続きます。その時、上であげたようなムダな勉強方法はとにかく避けましょう。何より一番大切なことは、作って覚えるということです。スクールに通い終わったら、なんでも良いので興味のあるものを作ってみましょう。
プログラミングは稼げて最高に楽しいスキルになります。そして、少しの投資で短時間でできるようになるコスパの良いスキルです。この機会に習得してみましょう!