こんにちは。
この記事を読んでいるあなたは、

・プログラミングに興味あるけど、よく分かってない・・・。
・プログラミングって、自分にもできるの?
・プログラミングをどうやって始めたらいいの?
このような悩みを持っているのではないでしょうか?
ここ最近は、プログラミングスクールの広告も増えてきており、世の中的にプログラミングが注目されているのは間違いないかと思います。
そこでこの記事では、以下のようなプログラミングに関する悩みに「全て」、解説していきます!

・プログラミングって何?
・プログラミングを勉強することのメリットは?
・プログラミングの勉強、何からやったらいいか分からない
・プログラミングの効率的な勉強方法は?
・プログラミングスクールってぶっちゃけ、どうなの?
・無料のプログラミングスクールがあるっぽいけど、自分は選んでもいいの?
ですので、この記事を最後まで読んでいただくと、
・実際に初心者がプログラミングを始めるまでの手順
こういった、プログラミングの全体像を理解することができます!
この記事の信頼性
僕は大学のときに独学でプログラミングをはじめました。
そして新卒でエンジニアになり、今ではプロジェクトマネージャーとして、エンジニアのときの経験を活かしつつ、IT企業で働いています。
ですので、
・プログラミングの勉強の始め方
・プログラミングを勉強することのメリット
などを理解しています。
この記事は、僕のこれまでの経験をベースに、初心者がプログラミングの勉強をする際の様々な情報をお伝えします。
プログラミングとは

まず、今回の記事の前提となるプログラミングに関して説明します。
プログラミングは一言で言うと、
になります。
コンピュータは日本語など人間の言葉を理解できないため「プログラミング言語」という言葉を通じて会話することになります。
プログラムが使われている場所
このプログラムは、あなたの身の回りのいろいろなところで使われています。

・テレビなどの電化製品
・自動車
・コンビニのATM
現在だと、あなたの身の回りにある電化製品のほぼ全てにプログラムが使われていると言ってもいいでしょう。
プログラムを使うメリット
プログラムは人間のようにミスをしません。
一度命令された行動をずっと続けることができます。
ですので、プログラムを使うことにより、以下のように、人間の生活を楽にすることができます。
・IT技術を使った自動化
つまり、プログラミングをできると、身の回りで動いているものを作れる、ということになります。
その上、いろいろな企業がこのスキルを持っている人を必要としているので、少なくともこの先しばらくは、プログラミングができる人へのニーズは高まり続けることが予想されます。
これからの時代、プログラミングができることは、大きな武器になると思いませんか?
プログラミング自体のより詳細な説明は、以下の記事にまとめてあります。
もし興味があれば、こちらも合わせてご確認ください。
プログラミングを学ぶ必要性とメリットは?

続いて、プログラミングを学ぶ必要性とメリットに関して説明しましょう。
すでに一部は紹介しましたが、プログラミングを学ぶ必要性とメリットは以下の通りとなります。

・社会人として必要なスキルを身につけるため
・流れの早い時代についていくため
・今後、これまで以上に求められるスキルであるため

・あなたのスキルやキャリアを拡張できる
・待遇がよくなる
・自由になる
ざっと挙げただけでも、このようなたくさんのメリットがあります。
それぞれ、簡単に内容を紹介しましょう。
社会人として必要なスキルを身につけるため
プログラミングは全て論理の組み立てで成り立ちます。
このような論理的な思考を「論理的思考」と言い、全てのビジネスパーソンにとって必須のスキルです。
また、ここ最近は世の中の流れが加速してきています。
ますますIT化が進み、いつまでもアナログな手法でしか仕事ができない人は淘汰されていきます。
その根本にあるのがプログラミングです。
プログラミングをベースにしたIT技術によって、世の中は変わっています。

パソコンとかよく分からないんだよね・・・
とか言ってると、10年後には確実に世の中に取り残されます。
他スキルとの掛け合わせをしやすく、今後のキャリアとして強い
プログラミングの考え方やスキルは、それ単体でも十分なメリットを持ちます。
さらに、あなたがそれ以外のスキルを持っている場合、相乗効果でさらに高い効果を出すこともできます。
例えば以下のような効果を出すことが可能です。

営業 + プログラミング = ITコンサル
デザイン + プログラミング = フロントエンドエンジニア
企画 + プログラミング = プロダクトマネージャー
スケジュール管理 + プログラミング = プロジェクトマネージャー
プログラミング x ○○、これがあなたのキャリアをさらに強くするための秘訣ですです。
仕事に困らない”手に職”が身につく
プログラミングは典型的な「手に職」がつくスキルです。
言語が違っても、プログラミングの中身は全て同じです。
また、会社が違っても、プログラミングの中身は全て同じです。
つまり、コレさえ覚えていればどんな場所でも通用するスキルが身につくということになります。
以下の記事では、ここに載せていない他のメリットも紹介しています。
もっとプログラミングのメリットや必要性を知りたい場合は、こちらも合わせてご確認ください。
プログラミングの始め方

プログラミングを始めるには、以下の内容を理解する必要があります。

1: プログラミングの対象
2: 一番最初に勉強すべきプログラミング言語は何か?
3: プログラミングに使うパソコンは何か?
4: プログラミングで必要なソフトは何か?
プログラミングの対象
プログラミングの対象は大きく分けて、
・ウェブアプリ
この2つになります。
スマホアプリは、あなたがお持ちのiPhoneやAndroidの端末で動くアプリです。
一方でウェブアプリは、ChromeやSafariなどのブラウザ上で動くアプリのことです。
スマホアプリはスマホ端末上で動くため、ゲームなどより高速な処理が必要なものに向いている一方、ウェブアプリであればインストールが不要というメリットがあります。
どちらが良くてどちらが悪い、ということはありません。
ですので、プログラミングで何かを作る前に、そのユースケースをしっかり検討して作る必要があります。
一番最初に勉強すべきプログラミング言語は何か?
一番最初のプログラミング言語としては、HTMLをオススメします。
HTMLは、
HyperText Markup Language
の頭文字をとったもので、ブラウザ上にウェブサイトを作ることができます。
このHTMLでは、「タグ」と呼ばれる記号で記述していきます。
その記述を、Chromeなどのブラウザが理解することにより、あなたが記載した内容がユーザの手元で表示されることになります。
プログラミングに使うパソコンは何か?
まず最初は、ハードルを下げるという意味で、特別高いパソコンを準備する必要はありません。
ですので、まずは2万円とか3万円の安いもので大丈夫です。
あなたの家にすでにパソコンがあるのであれば、それを利用いただければよいかと思います。
もしあなたに金銭的な余裕があるのであれば、MacBook AirやMacBook Proなどをオススメします。

プログラミングで必要なソフトは何か?
ソフトも、HTMLを少し試してみるレベルであれば、Windowsなどのパソコンに入っているテキストエディタで問題ありません。
もし「もう少しやってみようかな」と思えるのであれば、そのタイミングでより本格的なソフトを導入するのがよいかと思います。
プログラミングの始め方や、HTMLの記述方法に関する内容は、以下の記事にまとめています。
詳細を知りたい場合はこちらも合わせてご確認ください。
プログラミングの独学方法

プログラミングの必要性と本当の一歩目が分かったところで、次に、どうやって本格的に勉強を開始するか?を説明したいと思います。
特に初心者の頃は、

何からどのような順番で勉強するといいか分からない・・・
という風になりがちです。
余計な回り道をしないために、以下の流れはしっかりと理解するようにしてください。

1: 目的を設定する
2: Progateやドットインストールで5割〜8割くらいの理解度(書けなくていい)を目指す
3: (1回目)サンプルアプリを変更して作りたいものを作る (目標の20%〜50程度の出来でOK)
4: フルスクラッチで作りたいものを作る (目標の80%程度の出来でOK)
この内容を1つずつ説明していきたいと思います。
目的を設定する
初心者の頃は、

プログラムもキレイに書いて、デザインにもこだわって・・・
というように考えがちです。
ただ、いきなり完璧を目指すと「上達している感」が薄くなり、モチベーションが落ちてしまいます。
ですので、最初の目標は「とにかく最速で自分の作りたいものを作れる」とすることをオススメします。
言い換えると、最初の段階では
・デザインにこだわる
こういったポイントは追い求めないことにします。
Progateやドットインストールで5割〜8割くらいの理解度(書けなくていい)を目指す
今はオンラインのプログラミング教材があるので、まずはそれでざっくりと基礎を理解するのがよいかと思います。
具体的には、あなたが使っているプログラミング言語の講座を1, 2周、周回するくらいで問題ありません。
その周回の結果、
・loopすることができるんだ、ということが分かる
このくらいの理解度になればOKです。
サンプルアプリを変更して作りたいものを作る (目標の20%〜50程度の出来でOK)
続いて、自分の作りたいものを作っていくフェーズになります。
とはいえ、いきなりゼロベースで作るのは厳しいので、オススメはウェブにいろいろ転がっているプログラムをコピーしてきて、それを改変していく方法です。
例えばJavaScriptであれば、以下のようなサイトでプログラムをコピーしてくるのがよいでしょう。
こういったプログラムをベースに、
・新しいボタンを追加したり
といったような変更をしていきましょう。
そして、このフェーズは複数回繰り返すのをオススメです。
というのも、複数回繰り返すことで、1回では気づけなかったような発見や学びがあるためです。
そのときの1回目、2回目の目標は、
・2回目: 自分が理想とする目標の50%くらいの出来を実現できればOKとする
このくらい、ゆるい目標にしてください。
完璧を目指すと、出来ない自分が嫌になってしまいます。
フルスクラッチで作りたいものを作る (目標の80%程度の出来でOK)
そして最後が、フルスクラッチ (ゼロベース)であなたの作りたいものを作るフェーズです。
ここでようやく、まっさらな状態からプログラムを書くことになります。

ゼロからプログラムを書こうとすると、手が止まってしまう人もいると思います。
ここまで「ゼロベースでプログラムを書く」という練習をしていないため、仕方有りません。
もしゼロベースでプログラムを書けそうになかったら、一度前のフェーズに戻ってみることをオススメします。
また、このフェーズでも、あなたが目標とする出来の80%くらいの完成度ができればOKと考えてください。
このフェーズであっても、まだまだ、完璧なものを作れる状態でもありません。
こういった独学からの勉強法の詳細は、以下の記事にまとめています。
もっと細かい部分が知りたいと思った方は、以下の記事も合わせてご覧ください。
ゼロベースのプログラミング学習の体験談

プログラミング学習を実際に始めた後、初心者がよく直面するのが、

あれ、ここ、どうしても分からない・・・こんなときはどうしたらいいんだろう?最初からやり直し?

サンプルとなるプログラムを動かしてみたけど・・・どのくらい理解できてる必要があるの?
というような状況です。
プログラミング学習中は、本当によく想定もしなかったようなエラーに遭遇します。
そして、実際に手を動かしながらも、自分の今の理解度でいいか不安だったりもします。
続いてはそんなあなたに、「もし、学習中にそういった状況に遭遇したらどうすべきか?」を紹介したいと思います。
具体例として、過去に僕がAngularを覚えたときのケースを紹介します。

1: チュートリアルをやる
2: そのチュートリアルを周回する
3: チュートリアルで書いたソースコード(プログラム)を書き換える形で、少しずつ作りたいものを作る
4: ゼロベースで作りたいものを作る
厳密に言うと、AngularはTypeScriptベースのフレームワークであり、プログラミング言語ではありません。
ただ、やることは似たようなものなので、ここでは同じようなものとして扱っています。
チュートリアルをやる
Angularの場合は「ツアー・オブ・ヒーローズ」というチュートリアルがあります。
このチュートリアルを勉強することでAngularの基礎が学べるようになっています。
各プログラミング言語を始めた頃は、以下の点を意識しつつ、こういったチュートリアルで勉強していくことになります。

・この言語の特徴やできることを理解する
・細かい文法を覚えようとはしない
・まずは自分の手元で動かせるようになった、という実績を積む
ちなみにチュートリアルで勉強しているときは、以下のようなケースはよくあります。
・よくわからないからコピペして次にいく
特に新しい言語を勉強するときは分からないことばかりなので、
このくらい緩く勉強をしていかないと心が折れます。
そのチュートリアルを周回する
チュートリアルを1回やったくらいだと、そのプログラミング言語はまだまだ、使いこなせるようにはなりません。
そして、チュートリアルを2回やったとしても、「そのプログラミング言語を理解し始める」というレベルです。

チュートリアルを2回くらいやることにより、以下のような状態になります。
こうなると、今後あなたがそのプログラミング言語を進めていく上で辞書代わりに利用することができます。

ちなみにプログラミングが圧倒的に得意な僕の先輩は、Ruby on Railsのチュートリアルを4, 5回は繰り返した、と言っていました。
プログラミングができる人であってもそのくらいチュートリアルには時間をかけるので、初心者の方が1, 2回チュートリアルをやって分からなかったとしても、何も焦る必要はありません。
チュートリアルで書いたソースコード(プログラム)を書き換える形で、少しずつ作りたいものを作る
このフェーズでも、まだまだ、自分の思う通りには作れません。
ですので、チュートリアルで書いたプログラムを少しずつ変更して、自分の作りたいものを作っていくことになります。
変数名やクラス名など、気になる部分もあるかもしれませんが、まずはそういったものは無視して進めます。
変にそういったものにこだわって変更したりすると、
などのエラーが発生して詰みます。
ですので、そのプログラミング言語に対する理解が浅いうちは、やるべきことを一つずつ、着実に進めるようにしてください。
また、このステップは非常に時間がかかります。
例えばあなたが「1日1時間プログラミングの勉強をする」というようなケースですと、短くとも3ヶ月、できれば半年くらいかけるのがオススメです。
ゼロベースで作りたいものを作る
ここまでやって、いよいよゼロベースで作るフェーズになります。
ですので、
といったことができるのもこのタイミングから、と思っていただければと思います。
ここに書いた内容の他、エラーが起こったときに使える便利なウェブサイトなどを以下の記事で紹介しています。
より詳細が知りたい場合は、こちらの記事も合わせてご確認ください。
初心者にオススメのプログラミング言語

続いて、初心者のあなたが最初に選ぶべきプログラミング言語に関して紹介します。
結論としては、
という道をオススメします。
HTML/CSSから初めてJavaScriptの流れがいい理由は、以下の通りです。

1: 挫折しないこと
2: やっていて楽しいと思えること
3: 追加の知識を必要としないこと
4: 今後の案件の取得のしやすさや、自分のカバー範囲が広がること
5: エンジニアであれば使えて当然の言語だから (特にHTML/CSS)
挫折しないこと & やっていて楽しいと思えること
HTMLやCSSは、
・書いた内容がすぐにブラウザ上に反映され、分かりやすい
という特徴があります。
ですので、初心者の人がやっていても楽しく勉強を続けることができます。

追加のな知識を必要としないこと
また、HTMLとCSSは、他に追加の知識を必要としません。
例えば、
・AIの開発: 機械学習の知識
というように、場合によってはプログラミング以外の部分でも、かなりの知識が必要となるものもあります。
一方でHTML/CSSであれば、ブラウザ上で動かすだけであるため、比較的簡単に始めることができます。

もちろん、データを保存したり、複雑なアニメーションをしようとすると、追加の知識が必要になってきます。
今後の案件の取得のしやすさや、自分のカバー範囲が広がること
現在、JavaScriptをベースにしたUIフレームワークや言語はたくさんあり、例えば有名なものではReactやTypeScriptがあります。
こういった言語を使えるようになれば市場価値が上がりますし、獲得できる案件の範囲も広くなります。
今後の進路という意味で、JavaScriptはオススメの言語になります。
エンジニアであれば使えて当然の言語だから (特にHTML/CSS)
HTML/CSSは誰もが一度はやる言語であるため、エンジニアやプログラマーを目指すのであれば、「使えて当然」という言語でもあります。
なので、もし今後エンジニアを目指したいという場合は、一度はやっておくことをオススメします。
ここで紹介した内容の詳細は、以下の記事にまとめています。
もし詳細を知りたい場合は、こちらも合わせてご確認ください
プログラミングの勉強はプログラミングスクールか?独学か?

最近はプログラミングスクールの広告が増えてきていることもあり、

プログラミングスクールには通うべきなの?
あるいは独学でもプログラミングは勉強出来る?
と思っている人もいるのではないでしょうか?
結論としては、あなたが以下の特徴を持っているのであれば、プログラミングスクールに通ってもよいと思います。

1: 一人では勉強できないという人
2: 何から始めたらいいかわからないという人
3: プログラミング中に発生するエラーに一人で対応できずにハマってしまう人
プログラミングスクールには、メンターとなる人や他の生徒もいるので、
・この記事を読んだりしても、やっぱり何から始めたらいいか分からない
・1つのエラーで頻繁に1週間くらいハマってしまい、心が折れそう
こういった問題を解決するには最適な手段だと思います。
もしあなたがこういった問題を抱えているのであれば、一度プログラミングスクールへの入会を考えてもよいでしょう。
ただ、基本的にプログラミングスクールは、
と考えておくべきです。
プログラミングスクールに通ったとしても、それだけでプログラミングができるようになるわけではありません。
本当にプログラミングを上達させたいと思っているのであれば、独学でもしっかりと勉強しましょう。
ここに書いた内容は、以下の記事に詳細をまとめています。
プログラミングスクールは何十万円もかかるので、もっと慎重に考えたいという人は、以下の記事もチェックしてみてください。
オススメのプログラミングスクールについて
オススメのプログラミングスクールは、あなたの目的によって大きく異なります。
プログラミングスクールもそれぞれ違う方針で運用されているため、あなたの目的を達成できるプログラミングスクールも異なってくるためです。
あなたの達成した目標ごとにオススメのプログラミングスクールは、「オススメのプログラミングスクールとコース」の記事にまとめています。
気になる場合はこちらも読んでみてください。
また、プログラミングスクールを探すときに注意していただきたいのが、
です。
これらの数字は非常に分かりやすいのでどのプログラミングスクールも全面に押し出して宣伝をしていますが、「安いから / 内定率が高いから」という理由だけでそのプログラミングスクールに決めるのは危険です。
あなたの悩みを解決したり目標を達成できるのはどこか?という観点で選ぶようにしてください。
この詳細は以下の記事まとめています。
プログラミングスクールを検討中の方はこちらもご覧ください。
無料のプログラミングスクールに通ってもいいか?

プログラミングスクールの中には、無料のものもあります。
一般的に非常に高額なプログラミングスクールにタダで通うことができるのは魅力的ですよね。
そんな無料のプログラミングスクールですが、以下の理由で、基本的には通うべきではありません。

1: 会社を自分で選べない / 辞退したときの違約金がキツい
2: 年収が上がるかどうかの保証がない
3: 短期間で身につくスキルに限界がある
会社を自分で選べない / 辞退したときの違約金がキツい
無料のプログラミングスクールは、見た目こそプログラミングスクールですが、実態は人材斡旋業です。
プログラミングを無料で勉強出来る代わりに、
・採用内定通知を辞退した場合、全額自腹
という縛りがあるものもあります。
内定が出た会社がいい会社であれば問題ありませんが、その会社がブラック企業だった場合、目も当てられません。
年収が上がるかどうかの保証がない
無料のプログラミングスクールの中には、
という言い方で生徒を募集しているところもあります。
確かに、エンジニアの平均年収が500万円以上なのは事実ですが、その年収をあなたが無料のプログラミングスクールに通った後にもらえるかどうかは別の話です。
自分の市場価値がいくらになるか?はシビアに判断する必要があります。
短期間で身につくスキルに限界がある
無料のプログラミングスクールは、だいたい卒業まで数週間から、長くても1ヶ月くらいです。
ただ、プログラミングのスキルは数週間〜数ヶ月で身につくことはありません。
その状態で転職活動をしても、せいぜい
くらいしかやれることはありません。
以下の記事には、こういった「無料のプログラミングスクールに通うべきではない理由」の詳細をまとめています。
また、もしあなたが無料のプログラミングスクールを選ぶ際に、冷静に判断すべきポイントも合わせてまとめています。
そういった情報が知りたい場合は、以下の記事もご確認いただけると、理解が深まります。
最後に

プログラミング初心者のための完全ガイドは以上です。
プログラミングとは何か?から勉強方法、そしてプログラミングスクールなど、プログラミング初心者のあなたが必要とする情報をお伝えしました。
あなたがこの記事を読み、プログラミングが上達することを心より願っています。
ここまで読んでいただき、ありがとうございました。
この記事は以上です!
コメント