はじめに
プログラミングを始めよう!と意気込んだものの、「プログラミング 最初にやることって何?」「プログラミングを始めたいけど、何をすればいいのだろうか」「プログラミング 最初 おすすめって結局どれがいいの?」と悩んでいませんか?
僕も今は5年目のエンジニアですが、当時は3回ほどプログラミング学習で挫折しました。最初はWebデザイン、次はPythonのデータ分析、そしてスマホアプリ開発。今思えば、その挫折は「学習言語」や「教材」の問題というわけではなく、本当に知っておくべき「プログラミング 独学 勉強法」を間違えていたからなのかなと感じました。
そこで今回は、僕が数々の失敗からたどり着いた、挫折しにくい「僕の考えるプログラミング学習初歩ガイド」を考えてみたので記事にしてみました。この記事の通りに進めば、これからプログラミング学習を始める人が無駄な遠回りをすることなく、最適最効率でプログラミングを続けられるはずです。
もっといえば、今、今日から勉強をスタートさせられるぐらいのプログラミング学習方法・コツも解説していきます。
何から始めるべきか?
「プログラミングは何から始めるべきですか?」
これは、僕がプログラミング初心者だった頃に最もよく抱いていた疑問です。今考えたらこれは、初手から最適ルートで学んでいきたいという気持ちが先行しすぎてしまってるのかなと感じました。ですがこれ、実は多くの人がここで答えを探す段階で疲れてしまい、挫折してしまうんです。
なぜなら、この質問は本質的ではないからです。
本当に最初に考えるべきことは、「あなたは何をしたいか?」という問いです。Webサイト、スマホアプリ、ゲーム、AIツール…具体的な目標がないまま学習を始めても、モチベーションは続きません。
「めちゃくちゃ稼ぎたい!」ならまだいいですが、「ママに言われて始めた」「将来的に良さげだからとりあえずやる」な気持ちであれば正直、あなたはプログラミングをやるべきではないでしょう。
「プログラミングを学ぶこと」自体が手段ではなく目的化している人は特に、挫折しやすいです。
経験上、プログラミング学習を始める上で大切なのは、プログラミングを学ぶ目的を明確にすることです。
挫折しないプログラミング言語選び
プログラミング言語は、あくまで目標を達成するための「道具」です。作りたいものから逆算して、最適な道具を選びましょう。
| 作りたいもの | おすすめ言語 | なぜおすすめ? |
|---|---|---|
| Webサイト/Webサービス | JavaScript | プログラミングの最初でおすすめされる定番中の定番。Webブラウザさえあれば動くので、環境構築のストレスがほぼゼロ。 |
| データ分析/AI | Python | 文法がシンプルで読みやすいので、初めてのプログラミングには最適。様々なライブラリが用意されており、作りたいものにすぐ取り掛かれる。 |
| スマホアプリ | Swift (iOS), Kotlin (Android) | アプリ開発に特化しており、学習コストは高いが、具体的な成果物が見えやすい。 |
このように、あなたの「やりたいこと」に合わせて言語を選ぶことで、学習のモチベーションを維持しやすくなります。
PCは何がいい問題
プログラミングに使うパソコンは何がいいのか、という問題ですが正直僕目線だとなんでも大丈夫です。WindowsでもMacでもその他でも、スペックはどれがいいかも、最初のPCであれば自分の好きな・使い慣れた・憧れてたといったようにあなたの使いたいPCを直感で選んで問題ありません。
ですが例外として、「やりたいこと」でスマホアプリを作りたい人は必ずMacにしましょう。(SwiftがMac専用なため)
※最低限のスペックとして、CPUはCore i5以上、メモリは8GB以上、ストレージは256GB以上のSSDにしといた方が無難です。
独学でプログラミングが続かない理由
プログラミング学習をする目的と言語が決まったので、早速ゴリゴリに勉強していきたいと思うのですが、その学習の中にも挫折ポイントが潜んでいます。僕が3回挫折した原因は、主に以下の2つでした。
1. 「環境構築」ムズすぎる
プログラミングを始めるには、まずプログラミングの環境構築が必要です。環境構築を簡単にいうと、プログラミングができるようにPCをセッティングすることです。コードエディタをインストールし、言語をセットアップし、パスを通し…この複雑な作業で、学習のモチベーションが始まる前に削り取られてしまう人が本当に多いんです。さらには、手順通りにやったのに上手くいかず動かない...なんてこともあるでしょう。
コードを書く以前で上手くいかずイライラして諦めてしまう、そんな人もおそらくいたのではないでしょうか。
解決策:最初の環境構築はラクする
最近では、ブラウザ上でコードを書けるオンラインIDE(統合開発環境) が主流になっています。
これらを使えば、面倒な環境構築は不要です。PCのセッティング0でブラウザを開くだけでプログラミングが可能です!
なのでまずはこちらで試してみて、プログラミングの基礎を学び、少し慣れてから本格的な環境構築に挑戦する方が圧倒的に効率的です。
2. 「わかる」のに「できない」現象
Progateやドットインストールなどの学習サービスはめちゃくちゃ優れていますが、ただ動画を見たり、穴埋め問題を解くだけでは力がつきません。ましてや学んだ内容をノートやメモに書き写しても一向に成長することはありません。
大切なのは、「実際に手を動かすこと」です。
基礎文法を学んだら、すぐに「簡単な自己紹介サイト」や「計算処理」など、自分なりに考えたコードを作ってみましょう。頭で理解したつもりでも、実際にコードを書いてみると、「あれ?どうするんだっけ?」と新しい発見があります。
初めてのプログラミング学習初歩ガイド
ここからは、僕が現在も実践していたプログラミング 学習ガイドを具体的に紹介します。
ステップ1:「なりたい・やりたいこと」を決める
先ほど述べたように、これが最も重要な一歩です。
「Webサイトが作りたい」
「Pythonで家計簿アプリを作りたい」
「フロントエンジニアになってフルテレワークしたい」
のように、抽象的でも構いません。まずは目標を設定しましょう。
ステップ2:「超基礎」を無料で学ぶ
Progateやドットインストールなど、無料の学習サイトで、選んだ言語の基礎文法を学びます。ここでは完璧を目指す必要はありません。全体の流れを把握するだけで十分です。
Webサイトが作りたいのであれば、まずはお試しでProgateのHTML,CSS,JavaScriptの無料版を一通りこなしてみてください。
ステップ3:「小さな成果物」を1つ作る
チュートリアルを真似るのではなく、完全に自分の力で、簡単なWebページやツールを完成させてみましょう。この「できた!」という達成感が、次の学習への原動力になります。
どんなにしょうもなくても大丈夫です。ここで大事なのは「自力でできた!」な成功体験です。
ステップ4:インプットとアウトプットを繰り返す
一度成功体験ができれば、あとはその派生・延長です。学習サイトや書籍などで文法や知識を増やし、それを使って自分の成果物を「大きく」していきましょう。
ただの質素なWebサイトを、ページを増やしたりデザインを整えたり、動きやお問い合わせフォームなんかも追加してみたりと「どんどん大きく」していくことで、成功体験がどんどん増えて自信になり、作ったサイトもそのまま実績となります。
他にも、学んだ内容をブログなんかで文字でアウトプットするのも良い学習法です。「〜で躓いたけど解決した話」「〜を実装してみた」みたいに、学んだことを記事にまとめてみましょう。言葉として知識の定着が測れるだけでなく、他者に説明することで、より深く理解できます。
初心者がプログラミングを習得するのに必要な学習時間って?
一般的に言われている「一人前になるまでに必要な学習時間」は1,000時間とされています。どんなスキルもそれを習得するには1000時間が必要とされています。
プログラミングも例外ではなく、初心者がプログラミングを学ぶのに必要な時間は1000時間と言われています。もしくはそれ以上かも...なぐらいプログラミングは高難易度スキルです。
ですが個人的な意見ですが、この1,000時間はあくまで目安なので、個人差も効率差もあります。めちゃくちゃ適性があって効率も良ければ500時間で習得も可能です。
※例)1,000時間 → 3時間/日 x 333日 → 1日3時間を約11ヶ月
そこでおすすめなのが、まずは初心者でも作りやすいサイト・アプリ開発の完成を目指すこと。先ほどもいった通り、インプットとアウトプットを繰り返すことが最適な学習方法だと僕は考えます。知識だけでは✖️だし、かといって意味は理解していないけどコードは書ける状態も✖️です。
意外とエンジニアでも少ない、理解してコードが書ける状態でコツコツと成功体験と実績を積み上げていくことで、
- これ、前やったからすぐできるな
- ●●わかるからその応用版以外と簡単だな
- ■■なんて何回もやったから余裕だわ
なように、応用や実践での理解スピード、コードスピードが格段に上がります。数学の$y = x^2$のように後半で異様な伸びが出ます。積み重ねた経験値がそのまま応用での理解度・コーディング力に直結していきます。これは僕が断言します!
プログラミングを学ぶといいこと・メリット
実はプログラミングを学んでおく・習得するといいことたくさんあります。仕事面でもそれ以外でも使えるメリットがいくつかあるので紹介します。
日々のメンドイを効率化できる
プログラミングを使ってめんどくさい作業やタスクを自動化することができるようになります。
よくある例だと、100人へのメール送信作業を「ボタンぽちー」でできたり、今まで手作業でしていたExcelのデータ分析が3分でできちゃったりなんかもできます。
仕事の幅が広がる
プログラミングでITスキルを身に付けると、転職の幅が広がります。
現状、IT業界における人材不足は深刻で、2030年には約59万人が不足との予想もあるほどです。
※一定レベル以上の人材は不足するが、一定以下の人材は溢れるとの予想もあります。
プログラミングスキルを身に付けておくことで、エンジニア職だけでなく不動産でも営業でも、そのITスキルを活かすことができます。そのため、社会で必要とされる人材になれる可能性が高いです。
副業で稼げるようになる
プログラミングを身に付けると、本業をしながらアプリやサービス開発が可能になります。平日は本業、週末でアプリを開発してマネタイズすれば、それが副収入になります。
他にも、クラウドソーシングでWEBサイトのコーディング案件といったように、プログラミングスキルを活かせる副業は多数存在しています。
在宅ワークが可能
本業でも副業でも、リモートワークを採用する会社は多いです。(全ての会社がそうとは限りません)
PCさえあれば基本的になんでもできるという性質上、プログラミングスキルを活かせる求人・案件では、時間や場所を選ばず仕事ができるので在宅ワークが可能になります。特に副業がしたいお母さんは、家事と両立させることができるのでめちゃくちゃいいですね!
さらには、クラウドソーシングでの「●●サイト作成案件」「■■ツール作成案件」といった受託開発系であれば固定報酬制で稼働する時間に制限はありません。自分の好きな時間に働くことができます。
アイデアを形にすることができる
プログラミングを身に付けることで、自分の思い描くモノが作れるようになります。
これは特に起業したい人にピッタリで、起業していく上で「こんなサービス作りたいな」という自分のアイデアを、自分の力で形にできるのでスピード感あるスタートダッシュを切ることができます。
フリーランスとしての働き方が可能
プログラミングは「手に職つける」な言葉にピッタリで、プログラミングを身につけてエンジニアとしての経験値を積むことで、あなた自身が価値になります。
会社員としてプログラマ/エンジニアで働く方がほとんどです。これらの職種は比較的リモートで働きやすいし福利厚生も受けられて安定します。ですが何人かの人は、企業である程度経験を積んだ後に独立してフリーランスとして働くという人も出てきます。僕も独立した人の一人です。
フリーランスは、自分の価値がそのまま報酬になります。実績や成果が無ければ食っていけない世界ではありますがそれでも、働いた分だけ報酬が得られるので実質上限・天井がなく、やりがいのある働き方とも言えるでしょう。
プログラミング学習のコツ
最後に、僕自身独学で、プログラミング学習してきて気づいたコツを紹介します。
目的からブレないこと
プログラミングで学べる範囲はめちゃくちゃ膨大でほぼ終わりがありません。とりあえずあれこれ手をつけていては挫折の確率が高まるので、目的に沿った内容に絞って学習しましょう。
他にもSNSとかで「Goで未経験3ヶ月で1000万達成!」「Colabで即フリーランス1200万!」←?
というように目移りしそうになることもあるかと思います。ですが、しっかりと自分の芯を貫い具ことが大事です。
暗記しないこと
プログラミング学習では基本的に暗記する必要はありません。学校の勉強とは違い、暗記よりも全体像や実装イメージを理解することの方が大事です。
理由は簡単で暗記する必要がないからです。
学校の勉強は主に、テストで結果を出すために必死に覚えたり、覚えた公式を使ったりしますが、プログラミングの場合はすぐにインターネットで検索できる環境にあります。ググることやカンニングしてもOKなのです。
そのため、完璧に覚えることよりも、ざっくり覚えたり「こんな感じで使ったなー」なイメージを掴んでおいて、いざ本番でそれを使えるように検索できることが大事です。
もっといえば、知りたい情報への検索能力やその情報を使った解決能力の方が大事です。
絶対に手を動かすこと
プログラミングはいかに経験を積めるか、です。自分のできることを増やさない限り成長できません。何度も口酸っぱくなりますが、「わかる」だけじゃなく「できる」状態でないと成長できません。
そのためには実際に書いて体験することが不可欠です。果敢に挑戦していきましょう。
エラーは絶対でる
プログラミングをしていくと、必ずエラーが発生します。それはしょうがないことです。逆に一発OKなことは上級者でも実際の開発現場でもあまりないです。エラーが出ないと返って不安になることもあります。
それだけエラーはつきもの、一発で全エラーを漏れなく想定して対処することは難しいです。なのでエラーが出ても諦めずに解決する力を身に付けるのが大切です。
エラーを解決する方法は大きく分けて以下の2つです。
- シンプルググる
- 質問サイトに投げる
- AIに聞く
この部分は「検索能力」や「解決能力」の部分なので色々試して身につけていくしかありません。
最初のうちはエラー文をそのままGoogle検索すると良きです!
まとめ
プログラミングは「才能」や「センス」で決まるものではありません。正しい道筋で、地道に継続することが何よりも重要です。(と僕は思います)
この記事が、あなたのプログラミング学習の一歩を後押しできれば幸いです。
もしこの記事が役に立ったと感じたら、いいねをお願いします!
「この記事を参考に学習を始めたよ!」という方は、ぜひコメントで教えてください。
一緒に頑張っていきましょう!
【最後に告知!】定期『ワークショップ』のご案内🔥
「プログラミングを始めたいけど、何から手をつけていいか分からない…」
「本や動画を試したけれど、途中で挫折してしまった…」
「HTML、CSS、JavaScriptの役割がごちゃごちゃになって、全体像が掴めない…」
そんなプログラミング未経験・初心者向けに「プログラミングのイメージを掴む」ことができるワークショップを開催します!
- HTML、CSS の基礎が学べる 「最初の一歩」
- Java/Go/Python の基礎が学べる 「システムエンジニアへの道」
- 流行りのフレームワークReactやVueの実践開発体験
- 人気バックエンドスキルの実践開発体験
…etc とさまざまなワークショップを定期的に開催します。
独学で詰まってる方や、エンジニアのリアルを知りたい・体験したいプログラミング未経験・初心者の方はぜひご参加ください!
お申し込みはこちらから
👉 開催予定のワークショップを確認する(Googleフォームに移動します)
【もひとつ告知!】僕が1 on 1でプログラミング教えます!
AI時代に求められる実務スキル & エンジニアのリアルを網羅したカリキュラムを実際の開発案件をもとに作り上げました!もちろん高校生や大学生も大歓迎で、今、プログラミングスクールを検討している方で、
- Web開発系エンジニアを目指している
- システムエンジニアを目指している
- AI時代でも生きていける技術力を身につけたい
そんな方々を対象とした、エンジニアという仕事に興味を持ち、頑張ってみようと思ったあなたを現役エンジニアが応援・サポートする完全1 on 1スクールですので、こちらぜひご検討ください!
※副業、Web制作を目指している方はお力になれません…ご了承ください。