こんにちは!
このブログでは普段は技術的な記事を上げているのですが、たまにはポエム的な記事も上げていこうと思い、本記事を書いてみることにしました。
「プログラミングスキルを独学で身につけたい」
「プログラミングスクールに通うお金が足りない…」
「独学でWebエンジニアに就職したい」
などお考えの方に向けて、悩みを解決していこうと思います。
結論から言うと、独学のみでプログラミングスキルを身につけることは可能です。
筆者は現在Webエンジニア2年目ですが、実際にスクール等は通わずに完全に独学で異業種からWebエンジニアに転職しました。
ただし、向いているかどうかや正しい学習方法を知っているかどうかなどで成功率が左右されるので、その辺りのお話をしていこうと思います。
筆者の経験が少しでも誰かのお役に立てればと思います。
本記事でわかること
- 独学のメリットとデメリット
- 独学する場合の計画の立て方
- 具体的な学習方法
- モチベーションの維持方法
独学のメリット・デメリット
まずはプログラミングを独学することのメリットとデメリットを整理していきましょう。
また、プログラミングを独学するにあたって、独学に向いている人とそうでない人がいます。
そもそも独学に向いていない人の場合、どのような方法で独学しても一定の成果が上がらない、または挫折してしまう可能性があるので、ここでしっかりと見極めましょう。
独学のメリット
- 学習にお金がかからない
- 自走力がつく
- 時間や場所に縛られない
まず、代表的なメリットとして独学する場合はお金があまりかかりません。
プログラミングスクールに通うと全部で数十万円はかかってしまいますが、独学に必要なお金は書籍代やオンラインサービス代くらいで、おそらく全部で数万円くらいでしょう。
また、自分で問題を解決していかなければならなくなるため、その分自走力が身につきます。
筆者はこのメリットが一番大きいと考えています。
Webエンジニアへの転職が成功したとしても、そのあとは基本的に自分で問題を解決していくことになります。
そのため、自走力がないエンジニアは転職できたとしても、その後苦労することになります。
独学で学習してきた人の場合はすでに十分な自走力が身についている可能性が高く、スクール上がりの人と比べるとあまり苦労することはないのではと思います。
また、自分の好きな場所とタイミングで学習できるというのも魅力的です。
筆者の場合は、働きながら学習していたため、業務終了後に当時の職場の休憩室にこもってずっと学習してました。
独学のデメリット
- 習得までに時間がかかる可能性がある
- モチベーションの維持が大変
デメリットとしては、学習時間が取れないや学習方法を間違えているなどがある場合、プログラミングスキル習得までに時間がかかってしまう場合があります。
また、スクールのように誰かに管理してもらうことがなく、全て自分で管理しなければならないため、モチベーションの維持が大変です。
そのため、独学する場合はこれらのデメリットをいかに軽減するかが肝になります。
独学に向かない人
このようにメリット・デメリットを見ていくと、自分で計画を立てて自分で学習していける自信がない人は独学に向いていないかもしれません。
筆者は、プログラミングスクールは決して悪い選択だとは思っておらず、人によってはスクールに通った方が良い場合もあると考えています。
ただし、独学によるメリットも大きいので、ご自身で見比べながら決めると良いでしょう。
準備編
このセクションでは、準備編ということで、前提条件や計画の立て方を解説していきます。
前提
プログラミングスキルを身につけたい人の目的は転職したい、稼ぎたい、自分でアプリケーションを作ってみたいなど様々だと思います。
ただ、計画の立て方は目的によって異なります。
本記事では、プログラミングスキルを身につけて転職するという前提で解説していこうと思います。
計画の立て方
プログラミングに限らずですが、計画を立てるときはゴールから逆算すると達成率が高いです。
そのため、最初にどれくらいの技術レベルが求められるのかを求人サイトなどをみて確認しておくと良いと思います。
フロントエンドかバックエンドか
Webエンジニアには大きく分けて2種類います。
- フロントエンドエンジニア・・・WebサイトやWebアプリケーションの見た目を作るエンジニア
- バックエンドエンジニア・・・Webアプリケーションの裏側の機能を作るエンジニア
バックエンドエンジニアはイメージしにくいと思いますが、例えばX(旧Twitter)でいうと、そのユーザーにどのようなポストデータ(タイムライン)を見せるのかや、ユーザーがポストしたデータを裏側のデータベースに登録したりだとかを行います。
まずは、どちらを目指すかを決める必要があります。
プログラミング言語
次に、どのプログラミング言語を学習するかを決めます。
それぞれのエンジニアで学習するべきプログラミング言語が違います。
以下におすすめのプログラミング言語を載せておきます。
- フロントエンド
- HTML/CSS・・・Webサイトなどの見た目を作る言語。難易度は最も易しい。
- JavaScript・・・Webサイトに動きをつける言語。(ex. スクロールしたら要素がふわっと出てくるとか)
- バックエンド
- Python・・・データ分析や機械学習系に強い言語。構文もシンプルでわかりやすく、今流行りの言語。
- PHP・・・Webに特化した言語。初心者に易しく、人気の言語。
- Ruby・・・日本人が開発したWeb特化の言語。フレームワークであるRuby on Railsが有名。
フロントエンドを目指す場合はHTML/CSSとJavaScriptが必須となり、それ以外の選択の余地があまりないです。
逆に、バックエンドを目指す場合はPython,PHP,Rubyのように選択の幅が広いです。
ちなみに筆者はPHPが求人数が最も多く、未経験からWebエンジニアになれる確度が最も高いと考えており、イチオシです。
筆者のメイン言語もPHPです。
計画の立案
学習する言語を決めたら、いよいよ具体的な計画を立てます。
全体的な流れとして、以下のような順序で学習を進めると良いと思います。
- 有名なオンラインサービスで基礎を学習する
- 書籍やUdemyでより発展的な内容を学習する
- 簡単なWebサイトやWebアプリケーションを制作する
- 3より少しだけレベルの高いWebサイトやWebアプリケーションを制作する
- 4を繰り返す
重要なポイントとして、座学はできるだけ早い段階で抜けることです。
やりがちなこととして、座学を何周もずっと繰り返してしまう人がいますが、プログラミングに関しては実践が何よりも大事です。
座学は実践をするための最低限の知識にすぎないことを意識しましょう。
学習方法
このセクションでは、具体的な学習方法を解説していきます。
活用すべきWebサービス
Progate
まずは、プログラミングのオンライン学習サービスとしてはド鉄板のProgateです。
スライドを見て学びつつ、実際に手を動かしてゲーム感覚で学べるのが特徴です。
実は、筆者もこのProgateで最初プログラミングを学んでいました。
やはり自分の手でプログラミングを体験でき、知識が身につきやすく達成感を味わえるので、非常に良いサービスでした。
価格も月額990円〜ということで、サービス内容に対してのコスパは最強クラスだと思います。
ドットインストール
次に、外せないのがドットインストール。
こちらは動画を見ながら学習していくスタイルで、実際に自分の手元でもプログラムを動かしながら学んでいくと良いでしょう。
筆者の周りはドットインストールで学習している人が多かった印象があります。筆者自身もドットインストールで学んだことがありますが、対応している講座が幅広く非常に良いサービスでした。
Youtube
Youtubeで学習するという選択肢も全然ありだと思います。
今はYoutubeに良質な動画がたくさん転がっているので、動画を見ながら手元でプログラムを動かして学んでいくスタイルでも基礎が身につくでしょう。
そして何よりも、無料で学べるという利点があります。
ただし、動画は自分でしっかり選ばないと、わからずに挫折してしまう可能性が高いです。
筆者としては、以下のチャンネルがおすすめです。
Paiza
最後にご紹介するのがPaizaです。
PaizaはProgateとドットインストールを組み合わせたようなサービスで、動画を見つつPaizaのサービスの中で実際にプログラムを書くことができるようになっています。
対応している言語も幅広く、おすすめの学習サービスです。
ポートフォリオ制作
基礎的な学習を完了したら、実際にオリジナルサイトやオリジナルのアプリケーションを制作してみましょう。
このとき非常に大事になってくるのが、最初に作るものは超簡単なものにすること、です。
具体的なイメージが湧かない方もいるかと思うので、以下に例を載せておきます。
- シンプルなメモ帳アプリ
- シンプルなタスク管理アプリ
- 模写用のシンプルなデザインのサイト
ちなみに、サイトを作りたい場合は以下のような模写サイトが参考になります。
あとは、Webアプリケーションを作る際などにデザインをどうするか悩むと思いますが、基本的には良さそうなデザインのサイトやWebアプリケーションのデザインを模倣すると良いです。
ただし、完全に模倣するのではなく、自分なりに少しカスタマイズしてください。
そして、最初のポートフォリオが作れたら、それを少し改善してもよし、少しだけレベルを上げたものを新しく制作してもよしです。
とにかく、少しレベルを上げて制作するを何回か繰り返していくことで技術力が徐々に上がっていきます。
自分が納得したものが作れたら、今まで作ってきたものをポートフォリオにして転職活動などを始めれば良いでしょう。
注意点として、いきなりレベルを上げすぎると、作れなくて途中で挫折してしまう可能性が飛躍的に高まってしまうため、ほんの少しだけレベルを上げるだけにしましょう。
モチベーション維持
独学するにあたって、モチベーションの維持は生命線になります。
モチベーションの維持ができないと、すぐに挫折してしまいます。
そこで、モチベーションを維持するための方法をご紹介します。
ToDoリストを作る
一つ目は毎日ToDoリストを作ることです。
一つ完了したら横線を引いて完了にしていきましょう。
ToDoリストを作ることで、確実に毎日前進している感じがあり、小さな達成感を毎日味わえます。
これによって、モチベーションの維持が期待できます。
できるだけ朝に学習する
生活のリズムを朝型に切り替えるだけで、ものすごい効果があります。
- 朝起きれただけで「勝った」という気持ちになる
- 仕事の開始時間という明確な締め切り時間がある
- 頭がスッキリしているため、集中できる
- 夜疲れている中で学習しなくて良い
パッと思いつくだけでこれくらいの効果があります。
ただ、筆者の経験的には夜に余力が残っていて、どうしても眠れなさそうな場合は無理して朝に学習することもないかなと思っています。
なぜかというと、筆者も朝型に切り替えようとしていた時期がありますが、無理やり朝型に切り替えようとしても結局眠れないだけで時間を無駄にしてしまう場合があったためです。
なので、「今日疲れたぁ」という日はさっさと寝とくか、ぐらいの気持ちでいればいいと思います。
メンターを活用する
一時的にプログラミング経験者から教えてもらえる「メンタ」というサービスがあります。
エラーなどでどうしても解決できない場合は活用すると良いでしょう。
スクールに比べるとだいぶやすく、単発だと1,000円〜で月額だと3,000円〜となっています。
筆者が今から未経験でエンジニアへの転職を目指すとなれば、おそらく使うと思います。
仲間を作る
可能な方はリアル友達やSNSなどで、同じ目標を持っている人と繋がっておくとモチベーションを維持しやすいです。
黙々と一人で作業するよりも、誰かと一緒に頑張った方が頑張れます。
また、お互いの悩みを相談できたり、成果を報告し合ったりするとより効果が高いと思います。
目標を宣言する
目標を友達や家族、SNSなどで宣言すると、「言ったからにはやらなければいけない」という気持ちになり、モチベーションになります。
筆者のおすすめとして、SNSなどの赤の他人よりも、親しい友達や家族などに宣言する方が得られる効果が高いのでおすすめです。
まとめ
いかがでしたでしょうか。
今回は独学でプログラミングを学ぶ方法をご紹介してみました。
筆者も2年前に独学でプログラミングを学び転職した身なので、独学する辛みや苦労などは痛いほどわかります。
筆者は独学でプログラミングを学習している人を全力で応援しています。
読者のみなさんがプログラミングでより良い結果を得られることを願っています。
独学者に幸あれ。
コメント