副業/在宅ワークのお仕事ブログ

コロナの影響で本職を失いかけている現状を打開すべく副業から始めた在宅ワーク。自分が経験した失敗談や学んだことをアウトプットしていくブログです。

プログラミングを独学で挑戦する方法(未経験からのチャレンジ)

f:id:takumi5610:20210303222816j:plain

こんにちは。副業/在宅ワークについて調べています匠です。

今回の記事は、

未経験でもプログラミングに勉強したい

というあなたのために、

まずは独学で挑戦してみたい

と考えているあなたに、未経験でも独学で挑戦する方法」について調べてみました。


結論から言うと「不可能ではありません

ただ、やみくもに勉強しても待っているのは「挫折」です。
独学でマスターするために必要なことをまとめましたので、参考にして頂ければ幸いです。



[目次]

①初心者でも独学でプログラミングに挑戦する。

いきなりプログラミングスクールに通うより、まずは独学でやってみたい。

でも。。

何から始めたら良いのかわからない(^^;)

というあなた。
ここで一つ一つ。やるべきことを把握していきましょう。
独学でプログラミングに挑戦するには、

「必要なものを準備する」
「学習時間を確保する」

ことが大事です。この二つについてこれから詳しく解説していきます。

プログラミングを始めるのに必要なものを用意しよう


プログラミングを勉強するために最低限必要なもの。それは、

パソコンとインターネット環境

です。最近ではタブレットの性能も上がってきているので、タブレットでもできないことはないのですが、
がっつりやろうと思ったら、きちんとしたパソコンの方が作業がしやすいです。

インターネット環境は、わからないことを調べるため。そのほか環境構築するため。
Web開発をするならインターネット環境は必要不可欠です。

安全性が高く、高速な回線を確保することでストレスなく作業ができるでしょう。

その他、ソフトウェアでは「テキストエディタ」や「IDE(総合開発環境)」などの用意も必要です。
これは開発環境を整えるということ。
テキストエディタは、実際にプログラムを記述していくものです。

お勧めは、この3点ですね♬
Atom」「Sublime Text」「VSCode

IDE(総合開発環境)はプログラムを開発する上で必要なツールが揃っているものです。
「プログラムを書く」
「実行する」
「不具合の個所を見つける」
ということが1つでできるソフトウェアです。

あと、パソコンなのですがWindowsMacかどちらが良いのか?
というと、特にどちらでも問題はないですがMacの方が何かと便利なようです。

理由その1:初心者でも直感的に操作できる
理由その2:Apple製品向けのアプリが開発できる
理由その3:仮想環境でWindowsも利用できる
理由その4:プログラミング向けのサードパーティのツールが豊富

ちなみにiPhone向けアプリを開発したいとなると、Macでしかできないです(^^;)

独学の目安学習時間とロードマップを作成する

f:id:takumi5610:20210308034516j:plain


やみくもに勉強するよりも、計画的にやった方が効率が良いです。
だから目標を見定めることと、その目標を達成するために勉強しなければならないのかはきちんと把握しておきましょう。

独学での目安時間も調べました。

初心者から独学でエンジニアまでになるのにかかるおよその時間は、最短で約300時間と言われています。
統計を色々調べてみると、1日3時間の学習で18か月かかった・・・。なんていうのもありました。

それだけかかるというわけですね(^^;)

なぜそれだけかかるのか!?
というと、それは独学で学ぶデメリットに原因があるようです。

独学で学ぶデメリットは、
わからないところは自分で調べることになる

という点が大きいと言えます。

だから、以下の点を抑えて学んでいくことが大切です。

その1.自分のレベルに合った教材やスケジュールを組むこと。
その2.難易度の低いプログラム言語を選ぶこと。
その3.適切な学習環境を整えること。

この3つを抑えた上で、学習を行うこと。これがポイントです♬

f:id:takumi5610:20210224050114j:plain


その1.自分のレベルに合った教材やスケジュールを組むこと。


プログラミングの教材っていうのは。あふれるくらいにたくさんあります。
「書籍」「ブログ」「サイト」「アプリ」
などなど。。。
また、教材によって想定する対象者のプログラミングレベルや方向性も違います。

「全くのプログラミング未経験者向け」
「HTML CSSの基礎は知っているうえでのWeb系プログラミング」
「AIや機械学習やっていきたい人向けのプログラミング」

自分がプログラミングで何をやりたいのか?という目的を明確にしたうえで、学習する内容を絞ること。
これが時間短縮にもつながります。

その2.難易度の低いプログラム言語を選ぶこと。


プログラミング言語には難易度が存在します。
簡単なものから難しいものまで。

また、プログラムを動かすために環境準備が簡単なものや難しいものもあります。

そのため、比較的簡単な言語を学ぶことをお勧めします。

その3.適切な学習環境を整えること。


プログラミングに限らず、何か新しいことを学ぶにはまとまった時間を確保することが大事です。
まずは勉強するために時間を確保しましょう。

そして以下の点を決めましょう。
「プログラミングを学習するうえでの目標と着地点」
「目標達成するまでの期間」

目標は、例えば「プログラムでこんなことができるようになる」などのプログラミングによってあなたが得られるもの。
着地点は、その目標の「こんなこと」に対する現実的なものになります。

そして、その決めた目標を達成するまでの計画(期間設定も含める)を練りましょう。
目標を達成するためにはどんな言語を学習し、どんな過程を踏んでいかなければいけないのかを調べることが大事です。

②プログラミング独学の勉強法の4つのステップとは

f:id:takumi5610:20210308034731j:plain


プログラミングを学ぶために決めなければいけないこと。上記にも少し触れましたが、いわゆる目的ですね。

「プログラミング」の仕事がしたい。
ならば、どんなプログラミングの仕事がしたいのか?です。

プログラマー」なのか。「Webデザイナー」なのか。

それによっても学ぶべき言語が変わってきますので、目標は明確にしておきましょう。

作りたいものを決める


もしあなたが「Webデザイナー」になりたいのなら。
プログラミングによってつくるもの。目標は、1からWebサイトを作れるようになること。

というように、具体的な目標設定をしていきましょう。
でないと、どの言語を学んだ方が良いのかわからずに、色んな言語に手を出してしまったり、途中で挫折してしまったりする可能性がありますし、時間もたくさんかかってしまったりします。

方向性は変えずに自分の目的にあった言語で、目的を達成するために必要なことを集中して学習することによって、最短で目的は達成できます。

学ぶプログラミング言語を決める


プログラム言語は様々な言語があります。
あなたが目標とする「作りたいもの」に合ったプリグラム言語を選びましょう。

「初心者が初めに学ぶべき言語」
「初心者向けの言語」

で検索すると、C言語などの記事がたくさん出てきます。
では全くの初めてのあなたが学ぶべき言語ってどのような言語が効率よく学べるのでしょうか。

ここでは作りたいものを例に挙げていくつかご紹介していきます。


iosの代表的なプログラム言語「Swift(スウィフト)」


Swiftは2014年にアップルが発表したプログラム言語です。
言語のコンセプトにモダン・安全・高速・インタラクティブを掲げている言語です。
初めての方には扱いやすい言語となっています。

Swiftは、モダンな文法や仕組みを用いており、以前アップル系ソフトウェア開発で使われていたObjective-Cが抱えていた扱いにくさを改善した言語になっています。

Swiftはまだ新しい言語なので、使用している開発者が少ないですが、アップル系のアプリ開発の需要は高く経験者も少ない分習得すると給料や待遇が良いそうですよ♬

あなたがプログラミングを習得するための目標が「アプリ開発」ならばこのSwiftを学習することをお勧めします♬


android開発の代表的なプログラミング言語Java(ジャバ)」


1995年に発表されたプログラミング言語で、もともとはWebページ上での使用を想定して開発された言語ですが、
あらゆるOS上で動かせる特徴から今ではandroidアプリ開発をはじめ多種多様に使われている言語になっています。

プログラミングを仕事にしたいのなら、Javaを学習することをお勧めします。
ですが、正直難易度の高い言語であることは確かです。

Javaのメリットは、汎用性が高くOSを選ばない言語です。そして企業の現場で今もなお現役の言語でもあります。
処理速度も速く、実際の業務を想定してプログラムを組みやすいという特徴があります。

ただその分実際に動かせるまでの準備が多くハードルの高い言語なので、初心者向けではありませんね。

学習するならどっしりと腰を据えて取り組む必要のある言語と言えます。

因みに我々が普段使っているSNSTwitter」は実はこのJavaで作られたものです。

「何でもできる」

というイメージのある言語とも言えますが。逆にその分私的には「難しい」と感じた言語です。



〇Web開発の代表的なプログラム言語「Ruby(ルビー)」


HTMLはWebページを記述するためにマークアップ言語です。
CSSはそれらの文章の構造や修飾情報をどのように装飾するかを指定する言語です。

RubyJavaやSwiftとは異なりスクリプト言語という分類になるもの。

比較的処理速度が遅めなスクリプト言語ですが、簡単なプログラムであれば短時間で作れてしまう言語なので主にWebアプリケーションで使われている言語です。


またRubyは日本人が開発した言語なので、日本語リファレンスが豊富で扱いやすく初心者でも非常に習得しやすい言語になっています。

そんなHTMLやRubyを使ってWebアプリケーションを作るためのフレームワーク(ソフトウェアの部品集みたいなもの)が、
Ruby on Railsです。

素早く高品質なアプリケーションを作ることができます。

Rubyで作られたサイト。
代表的なもので言えば、「クラウドワークス」「価格.com」「食べログ」などがあります。

初心者向けの言語といえど、こんな有名なサイトもつくれちゃってるんですね♬



人工知能開発の代表的なプログラム言語「Python(パイソン)」


コードがシンプルで、人工知能の開発に向いたライブラリが豊富なことから、Pythonが採用されています。

しかし人工知能と聞くと初心者には難しいと感じるかもしれませんが、
Python人工知能だけでなくWeb開発やデータ開発にも使える汎用的なプログラミング言語です。

難易度もそれほど高くなく、初心者向けの言語でもあります。
少ないコードで簡潔にプログラムが書けるというのが、初心者向けである由縁ではないでしょうか。

代表的なWebアプリケーションで言えば、
Instagram」「YouTube」「Evernote」「DropBox
Pythonで開発されています。


環境構築とツールの使い方を学ぶ


環境構築とは、あなたが持っているパソコンで実際にプログラミングをして、動かせる環境のことです。

プログラムを作った。
でもきちんと作れているかわからない。
正常に動作するかわからない。試したい。

動作確認は必須ですよね(^^;)

動作確認デバッグ作業(修正作業)など、一連のソフトウェア開発が揃ったツールを使う必要があるわけです。

それがIDE(総合開発環境)というものです。
IDEは、全ての使い方を知らずとも、必要なところを部分的に使うことでプログラム開発ができます。



独学に必要なものを揃えよう


それでは学習を始めていきましょう♬

学習を始める際に必要なもの。
それは、
「プログラミングするためのパソコン」
「学習する環境」
デュアルディスプレイ
です。プログラミングを勉強する上で必要なパソコンは、学ぶと決めた言語によってWindowsMacと変わります。
適切なパソコンを用意して下さい。今持っているパソコンでというなら、それに合った言語を選ぶ必要があります。

プログラミングを勉強していると必ずエラーが発生します。

そのエラーを解消しながらプログラムを組んでいくことで、知識を蓄えていくわけですが、独学ではこの作業がとてもハードルが高いものになります。

周りに質問や相談する相手など、エラーを解消するための学習環境があるのとないのとでは進み具合が全然違うので、
学習環境を整えることはとても重要になるのです。


その学習環境って何だろう!?


これは、「つまづいている時間」を少しでも減らすために必要なことです。
プログラミング学習において、かける時間のおよそ8割が「つまづいている時間」だと言われています。

だから、「学習効率を上げるための環境」っていうのが大事なわけです。

可能であれば、「仲間」や「先生」がいた方が良いのですが、今回のテーマは「独学」でのプログラミング学習ということなので、お勧めの教材とアプリをご紹介させて頂きます。


★お勧めサイト
Progate

https://prog-8.com/

無料会員では基礎レベル18レッスン。
プラス会員では79あるレッスン全てを閲覧することができます。

学べる言語は多岐にわたりHTML&CSSJavaScriptJavaPHPPythonRubyなど多数あります。

初心者向けのサイトで「わかりやすさ」を重視しているサイトです。
ユーザー数140万人(2020年時点)を超える無料のプログラミング学習サイトで、プログラミング学習の登竜門と言われるほど普及しています。

短時間で読めるスライドで知識をインプットした後、実際に手を動かしてアウトプットをします。エラーは日本語で表示してくれるため、何をなぜ間違えたのかすぐに知ることができます。


★オススメ教材

Webとプログラミングのきほんのきほん
著者:大澤 文孝
価格:¥ 2728(税込)
出版日:2015/2/19
出版社:マイナビ出版

ちゃんと使える力を身につけるWebとプログラミングのきほんのきほん [ 大沢文孝 ]

価格:2,728円
(2021/3/8 03:33時点)
感想(1件)

これから初めてWebプログラミングを学んでみたい方にぴったりの一冊です。

PHPJavaScriptを例にしながら他のプログラミング言語にも共通する「基本部分」について詳しく解説してくれています。

どんな言語でも通用する根幹の仕組みを理解することで、新しい言語を学ぶときも短時間で習得できる知識が身につきます。ちゃんと使える力を身につけるなら、プログラミングを学ぶ最初の本としておすすめの一冊です♬


③プログラミング独学を効率的に進める3つのコツとは?

f:id:takumi5610:20210308035041j:plain


プログラミング学習は時間がかかるもの。

特に一からプログラミングを学ぶには右も左もわからない状態から始めるわけなので、最適な勉強方法や勉強に対する心掛けを見つけにくいかもしれません。

ここでは勉強をしていくために効率的に進めるためのコツをご紹介します。

その1.大きな目標(着地点)の中に段階を踏んだ小さな目標を作る。

目標や目的を細かく設定することによって自分が今どの段階まで進んでいるのかを把握することができます。

あと、モチベーションの維持や残りの過程も把握できますね♬
メモ書き程度で良いので自分が1日にどれくらい勉強したのかをメモっておくと成長の記録を振り返ることができます。

その2.1日30分でもいいので毎日続けること。


大事なのは継続すること。なので、1日少しの時間でも勉強していくことです。
よく言う「継続は力なり」ですね♬
習慣化することで挫折を回避することができるので、これは意識して毎日続けていって欲しいです。


それに、勉強する間隔を空ければ空けるほど、復習に時間がかかってしまいます。
効率よく学ぶためにも習慣化は必須なわけです。


無理に長時間やるとモチベーションにも影響しますよ!?

その3.正規表現の基礎を学ぶ


正規表現とは、いくつかの文字列を一つの形式で表現することです。
この正規表現を利用すれば、たくさんの文章の中から容易に見つけたい文字列を検索できます。

例えば、Apple製品が収められたデータベースの中から「iPod」「iMac」「iPad」などの「先頭に”i”がついていて、そのあと3文字続くもの」を取り出したい時には「^i…」と書きます。

正規表現を覚えれば、文章処理作業の効率が飛躍的に向上させることができます。

プログラムの処理を簡単にできるだけでなく、検索や置換をする際に正規表現を扱えるエディタならば、ソースコードを大規模に改良する時にも役に立ちます。


④プログラミング独学における4つの壁の乗り越え方


初心者にとってプログラミング学習は、高い壁のように感じることが多々あると思います。

原因のわからないコードに遭遇すると、解決方法がわからず集中力も続かないこともあるでしょう。
環境を整える段階で手が止まってしまうなんてこともあるのではないでしょうか。

そんなあなたに4つの方法を教えちゃいます。

思うようにコードが書けない → まずは真似をする!

理論やコードの意味がわかっても、肝心のコードが上手く書けない場合は、まずは真似をしてみることから
始めてはいかがでしょうか。

既存のコードをコピペせずに書き写し、数字のみを変更して実行して結果を確認するというものです。

自分よりうまいコードを知ることで、適切なインデントやコメントの書き方や効率的なコードを知ることができます。

概念が理解できない →「振る舞いが理解できればOK」と割り切る!


初めのうちは、仕組みまで理解する必要はありません。

「こうしたらこうなる」

というのを「丸覚え」するのも手です。
そして、他の概念を理解できた時にわからなかったことも理解できるようになったりもします。

そのプログラムの「振る舞い」を理解することを重視するようにしましょう。

面白くない → 一部を作ってみる!

インプットばかりではモチベーションを維持できなってくることもあるでしょう。
実際に真似て動かしてみるのもプログラミングの面白さを実感できるので、適度にアウトプットさせていきましょう。

頭の中にあるイメージを少しでも形にできたら、着実にあなたの立てた目標に近づいているという実感も沸くと思います♬

また、しばらくしてそのコードを見直してみると、学習不足だったことを認識できるので別のアプリや実際にプログラミングをする本番の際に、同じミスをしてしまうこともなくなるのではないでしょうか。


モチベーションが続かないなら独学にこだわらないこと!


本当に一人でどうしようもなくなった時は、誰かに助けを求めましょう。


一番残念なことは、挫折して諦めてしまうことです。
今まで勉強に費やしてきた時間を無駄にしないためにも、独学にこだわらないことも重要です。


身近にプログラミングをやっている人や、実際にその道で働いている方がいらっしゃる場合は、
相談してみた方が解決の近道です。

もしそのような人が周りにいないときは、SNSやブログを活用するのも手です。

自分がわからないことや躓いていつことを発信することで、それを見てくれた人が解決法を教えてくれるかもしれません。


プログラミングを習得することがあなたの本来の目的であり。

独学に執着する必要はありません。

わからないことを聞ける相手がいる。または作れるのなら作っておくに越したことはないでしょう。

⑤ある程度プログラミング学習がすすんだら!?

f:id:takumi5610:20210308035358p:plain

ある程度プログラミングスキルが身についてきたら、すでに存在するWebサイトを模写してみてはいかがでしょうか。
意外かもしれませんが、既存のWebサイトは優れた教材です。

模写することで、実務に近い経験となりHTMLやCSSの流れが理解できたり、実装する際のルールが理解できたりします。

基本的な文法の理解ができたなら、それぞれの処理を組み合わせてどうやって動くのかが理解できます。

また、きれいに出来上がっているサイトを模範とすることで、自分が作ったものと比べてどこが悪かったのかを把握することができますね♬

ポートフォリオを作成してみよう


サイトの模写を通じてサイトの作り方を理解したところで、ポートフォリオを作ってみましょう。

ポートフォリオとは、自分で作ったプログラミング作品をまとめ、自分のプログラミングスキルを証明するための資料です。

転職やフリーランスを目指しているのであれば、こnポートフォリオがないと面接を受けられません。
自分の実力を把握するためにも、ポートフォリオの作成はやった方が良いです。

クラウドソーシングサイトで案件を受注しよう


クラウドソーシングサイトはプログラミングに関しての仕事の案件が受注できるサイトでもあります。
主に「Web制作」がそれにあたる案件なので、まずは比較的難易度の低い案件を探してチャレンジしてみましょう。

クラウドソーシングサイトは、
クラウドワークス」
「ランサーズ」
が有名ですね。他には「ココナラ」でもプログラミングのスキルは販売できるので、よかったら覗いてみてください。




クラウドワークスについての記事も書いてますので、
良かったら参考にして下さい♬

takumiblog.work


⑥まとめ


未経験者。初心者からの独学でのプログラミング学習についてまとまてみましたが、
一番大事なことは、「諦めないこと」だと思います。

あとは「環境づくり」ですね♬

パソコンやツールなど、必要なものもあります。

在宅ワークとしては簡単に始められるわけではないのかもしれませんが、

「稼げるスキル」

であることは間違いないでしょう。
だからその分、難易度もあるということですね。