こんにちは、Aki(celcior0913)です。
フリーランスエンジニアとして活動しています。
今回はプログラミング独学のノウハウを全て公開します【初心者向け】というテーマで解説していきます。
前回こんなツイートをしました。
エンジニアを始めて2年半年が経ちある程度ノウハウが溜まったのでプログラミング独学から転職、フリーランスになるためのノウハウを全て公開します😌
— Aki (@celcior0913) August 25, 2021
書き始めたら割と伝えることが多くかなりのボリュームになってしまいました、、、
数日に分けて読むとかした方がいいかもです😂
エンジニアを始めて2年半年が経ちある程度ノウハウが溜まったのでプログラミング独学から転職、フリーランスになるためのノウハウを全て公開します😌
書き始めたら割と伝えることが多くかなりのボリュームになってしまいました、、、
数日に分けて読むとかした方がいいかもです😂
そんな私はエンジニア歴は3年目に突入しました。
エンジニアになったばかりの当時は情報の探し方もわからず、正直なことを言うと独学を始める前から挫折しました。
とはいえ、今となっては独学でもできたこともあったなと思うことが多く、こうしていればよかったんじゃないか。なんて思うことが多々あり、それを自分の中だけにとどめておくのはもったいないなと思いました。
なので、忘備録の意味も込めてこちらに記事として残しておきます。
もしこれからプログラミング独学を考えているなんて方がいたら、ぜひ参考にしていただければなと思います。
とはいえ、今回の記事はかなりボリュームが多く正直1日で覚えられる内容ではありません。
なので、もし気に入っていただけた方がいたらこの記事をお気に入り登録などしていつでも取り出せる状態にしておくのがいいかもです。
それでは解説していきます。
プログラミングを学ぶ前に知っておくべきこと【2つある】
プログラミング独学は無理じゃない【理由も解説】
プログラミング独学の学習方法【4つのステップで解説】
プログラミング独学で使える学習サイト5選
プログラミング独学を効率的に進めるコツ【3つお伝えします】
プログラミング独学で壁にぶつかった時の乗り越え方
プログラミング独学が難しい、無理と感じたら
プログラミング独学でエンジニア転職やフリーランスを目指す方へ
プログラミングを学ぶ前に知っておくべきこと【2つある】

そもそもですが、これからプログラミングを始める方に『プログラミングとは何?』と聞かれた時に言葉で説明するのは、かなり難しいです。
ですが今回は自分も後で見返した時に『なるほど!』と思い返せるように、できるだけわかりやすい言葉を使って説明していきます。
そもそもプログラミングとは
プログラミングとは、コンピューターにやって欲しい指示を順番に書き出した手順書のようなものです。
大前提として、コンピューターは人間と同じ言葉を理解することはできません。なので、コンピューターが使う言語『プログラミング言語』を用いて指示を出します。ついでに、プログラミング言語を書いていくことを「コーディング」と呼びます。
プログラミング言語の数は200種類以上と言われています。ですが、実際に使われる言語は10分の1程度です。
プログラミングでできること
こちらの通りです。
・単純作業の自動化、高速化
・アプリやシステムの開発
・電子機器の制御など
プログラミングは単純作業の自動化や高速化を得意としています。
そして僕たちの生活を豊かにしているもののほとんどが、プログラミングで作られたものといっても過言ではありません。
僕たちが普段使っているLINEを始めFacebookやAmazonといったサービスもプログラミングで作られたものです。
また電子レンジや冷蔵庫などの制御などもプログラミングで制御されており、プログラミングはこのようにして僕たちの便利な生活を支えています。
プログラミング独学は無理じゃない【理由も解説】

プログラミングに興味があるけれど、初心者には難しそう、、、
でもお金をかけてプログラミングスクールに行くより、まずはプログラミング独学をしてみたい。
プログラミング独学とスクールだとどちらがいいのだろう。
これからプログラミング独学を始めようとしている方は、こんな悩みをお持ちだと思います。
結論からいうと、初心者でもまずはプログラミングスキルを独学でやってみるべきです。
そしてプログラミング独学を始める前に重要なことは『必要なものの準備』と『学習時間の確保』です。それぞれ具体的に解説していきます。
プログラミングに必要なもの
こちらの通りです。
・パソコン
・インターネット環境
プログラミング独学を始めるには、まずパソコンが必要です。
最近ではタブレットの性能が上がってきたこともあり、タブレットでもプログラミングができるようになってきました。
ですが本格的にコーディングを行うのであれば、やはりPCの方が作業がしやすいです。
それとインターネット環境はプログラミングをするための環境構築やエラーを解決するための情報収集などを行う際に必要です。Web開発を行いたい方は、なおさらインターネット環境は必須になります。
インターネット環境(WiFi)がすでに自宅にあるなんて方はそれでインターネット環境の準備はオッケーです。
もしポケットWifiや手持ちのスマートフォンなどを使って、インターネット環境(WiFi)を整えようと考えているなんて方はスピードがかなり遅くなってしまいます。なので、可能であれば自宅に光回線を繋ぎましょう。
それとプログラミングをするための開発環境の準備も必要です。こちらの内容は後で解説していきます。
どのくらいの性能のパソコンが必要なのか
結論からお伝えするとこのくらいの性能が必要です。
CPU Core i5 以上
メモリ 8GB 以上
容量 256GB 以上
CPUはCore i5以上が欲しいです。予算に余裕があるのならi7が望ましいです。
メモリは8GB以上は欲しいです。8GB以下だと複数の画面を開いた際に動作が重くなりがちです。
こちらも予算に余裕があるのなら16GBくらいあると複数の画面を開いても余裕を持って作業ができます。
ストレージ(容量)は256GB以上。こちらも予算に余裕があるなら512GBあればかなり余裕ができます。とはいえ、プログラミングだけで使うのであれば256GBで十分かと。
CPUとかメモリとか全然わからないから詳しく知りたい!なんて方は下記にわかりやすく解説している記事があったので下記からをどうぞ。
上記の内容を見て『なんか難しそうだな、、、』なんて思った方もいるかもですが、初めはそこまで理解しなくても問題ないです。
プログラミング独学がある程度片付いた際にググれば『なるほど。そういうことか。』とすぐ理解できると思うので、その時に覚えれば十分です。
そしてこちらの記事では上記で解説した性能を満たしているパソコンを3つほど紹介していきます。
MacBook Pro
定番ですね。Macはデザインもおしゃれで基本的に上記で解説した性能を満たしています。それとWebエンジニアの方はMacを使っている方が非常に多いです。
値段は少々高めではありますが『初めからMacBook Proを買っておけばよかったな。』なんて思うWebエンジニアの方が割と多い気がします。なので予算に余裕があるのであれば、初めからMacBook Proを買うべきかなと。
それと余談ですが、M1チップのMacはまだ買う必要はないと思っていて、理由はM1チップのMacに対応していないアプリがあるからですね。
実際に僕も現在、2017年モデルののMacBook Proを使っていますし、プログラミングをする上で現状全く問題もありません。
なのでプログラミング独学を始めたいと考えている方は、M1チップのMacBook Proではなく1〜2年前のMacBook Proを購入しましょう。こちらの記事で紹介しているMacBook ProがM1チップのMacBook Proではないのもそういった理由です。
CHUWI
CHUWIは中国で作られているメーカーです。
Macより価格も安く性能はMacと同じくら良いので、こちらもありかなと。
中国と聞くとあまりいいイメージは持たれませんが、こちらのPCは何度も改良されており評価もかなり高いです。
日本ではあまり有名ではありませんが価格も安いですし、初学者がプログラミング独学するくらいであればこちらでも十分です。
僕はiOSエンジニアなのでMacを使用していますが、別にiOS関連の仕事をやるつもりはないなんて方はこちらで十分です。
富士通ノートPC
こちらは富士通のノートPCです。
価格もかなり安く上記で解説した性能も満たしているので、あまりお金に余裕がないなんて方はこちらでも良いかなと。
整備済み品とは再度整備して品質が保証された新品同様の製品のことを指します。
再度メンテナンスをして整備が完了したものなので、再度不具合があると言ったことはかなり少ないです。
確かに一度不具合があり返品された商品と聞くと不安に感じる方もいるかもですが、もし仮に不具合があったとしても保証期間があるので、無料で返品も可能です。
そして価格もかなり安いので、あまりお金をかけられないなんて方にはかなりオススメです。
それと既に『Macも持っているけど別でWindowsも欲しい』なんて考えている方も、このくらいの金額ならまぁ買ってもいいかななんて思えますよね。
なので、お金のない方やサブとして持っておきたいなんて方はこちらを検討してもいいんじゃないですかね。
プログラミングに必要な学習時間
結論からお伝えすると最低でも1000時間くらいの学習時間を確保しましょう。
そして毎日学習するとして1000時間を達成するための日数はこちらの通りです。
3時間の場合 → 333日
6時間の場合 → 166日
8時間の場合 → 125日
3時間だとほぼ一年。6時間で半年。8時間の学習で4ヶ月ほどの日数が必要になります。
週に5日学習するとして、最低でも半年ほどは学習時間として確保しておくべきです。
とはいえ、実際に独学してみると思うようにいかずに、挫折してしまったり途中で飽きてしまいます。
実際に僕もプログラミングで挫折した経験があるので、プログラミングを挫折してしまう方の気持ちがよくわかります。
その時の記事はこちらで解説しています。
挫折してしまう理由が知りたいという方は一緒に読んでみてください。
学習に必要な時間もわかったと思うので、次はプログラミング学習の方法も解説していきます。
プログラミング独学の学習方法【4つのステップで解説】

学習方法はこちらの通りです。
・作るものを決める
・学ぶ言語を決める
・道具の使い方を学ぶ
・プログラミング言語を学ぶ
それぞれ深堀しつつ解説していきます。
作るものを決める
作りたいものがないのに、ものを作ったとしても完成しないですよね。
例えばですが、料理を作るってなった時に作るものがある程度決まっていれば、ある程度どんな道具が必要でどういう工程を踏めばいいのか具体的に考えられますよね。
ですが、作りたいもの決まってないのに何かを作ることなんてぶっちゃけ不可能ですよね。
プログラミングの場合も同じです。作りたいがないのにものを作ろうとしても完成することはありません。
最初のうちは『iPhoneアプリが作りたい』とか『Webアプリが作りたい』とかでオッケーです。
学習を進めていくうちに『これ作りたいな』みたいな感じで出てくると思うので、その時にもっと具体的に作りたいものを決めればいいかなと。
確かに最初から具体的な目標を決めてこれを作るみたいな感じで決めてもいいと思います。ですが、何もわからない中でこれを作りたいって考えていざ作るってなった時に難しすぎてできない。みたいなことになる可能性も結構あったりします。
なので、最初はざっくりと何系のアプリが作りたいのかだけ決め、プログラミング独学を進めていく中でこれなら作れるかなといったものが、あったらそれを作るみたいな感じで考えましょう。
学ぶ言語を決める
上記の作業で何系のアプリを作るか決めたと思うんですが、次はそのアプリを作るために何の言語が必要なのかを考えていきます。
例えばこんな感じ。
・Webアプリを作りたいなら、Ruby、PHP、Java、Go言語
・iPhoneアプリを作りたいならSwift
・ホームページを作りたいならPHP
といった感じで言語を絞っていきます。
もしかするとWebアプリ作成を作りたい時のようには学ぶ言語が複数出てきてしまう場合があります。
そんな時は、複数出てきた言語の中でどの言語が簡単なのか、需要があるのかなどを調べつつ、言語を一つに絞っていきます。
もし調べてみたけど、どれがいいかわからないなんて方はPHPやRubyを選びましょう。
PHPはWebアプリケーションだけでなくWeb制作でも使われる言語です。またRubyは上記の4つの中でも比較的簡単なので初学者の方によく最初の言語として選ばれています。
なのでそのどちらかを選択して学びましょう。
道具の使い方を学ぶ
学ぶべき道具はこちらの通り。
・Git
・開発環境
Gitとは簡単にいうとデータを保管する道具です。
プログラムを変更したりした際に、動かなくなってしまった場合に前のデータに戻したり、複数人と共有して使うこともできます。
一人で作業を行う際はそこまで必要ではありませんが、企業でよく使われる道具なので覚えておいて損はありません。
Gitについて詳しく解説しているものがありましたので、気になる方はこちらをどうぞ。
また開発環境とはプログラミングをするためのメモ帳のようなもので、プログラマーの間では開発統合環境、IDE(Integrated Development Environment)と呼ばれています。
どの言語でもこの開発統合環境が使われています。
なので、こちらもプログラミング独学を行いながら使い方を学んでいきましょう。
iPhoneアプリ作成の場合はXCode
Androidアプリ作成の場合はAndroid Studio
Webアプリ作成の場合はVSCodeがよく使われています。
iPhoneアプリの学習とWebアプリのための具体的な学習方法が知りたいという方はこちらの記事をどうぞ。
プログラミング言語を学ぶ
作りたいアプリ、学ぶ言語、開発統合環境が決まったら、プログラミング言語を学んでいきましょう。
とはいえ、基礎も学習していないのにプログラミングをゴリゴリ書いていくなんて不可能です。
まずはプログラミング言語の基礎を学べる学習サイトを使いつつ書き方を学んでいきましょう。
プログラミング独学で使える学習サイトもまた紹介していきます。
プログラミング独学で使える学習サイト5選

こちらの通りです。
・Progate
・ドットインストール
・Schoo
・忍者コード
・Qiita
こちらもそれぞれわかりやすく解説していきます。
Progate

Progateはオンラインでプログラミング学習ができるWebサービスで、基礎的な内容であれば無料で学習することができます。
こちらはPCとスマートフォンの両方で行うことが可能ですが、どちらかというとスマートフォンではなくPCだと実際にプログラムを書きながら学習することが可能なので、PCの準備ができているという方はPCで学習することをオススメします。
またこちらで学べる言語はこちらの通り。
・HTML、CSS
・JavaScript
・Ruby
・PHP
・Java
・Python
・Go
上記の言語が学びたいという方は、Progateを使いつつ学習するのがいいんじゃないですかね。
またProgateでは基礎ではなく応用の講座も多数あり有料にはなりますが、月額1078円でそちらも学べます。
ランチ一回分くらいの費用で応用も学べるのだとしたら、コスパもそこまで悪くないですよね。
『基礎だけでなく応用編も学習したい!』という方は1ヶ月だけ利用してみるとかでもいいかもです。
ちなみに学べるものはこんな感じです。参考程度にどうぞ。

ドットインストール

ドットインストールは動画形式で学習できるプログラミング学習サイトで、3分ほどの短い動画で提供されています。
こちらもPCとスマートフォンの両方で見ることができます。
そしてドットインストールで学習できる言語はこちらの通り。
・Java
・Go
・Python
・C言語
・Swift
・kotlin
・JavaScript
・Ruby
・PHP
Progateと比べると言語の幅は広くその他にもツールの使い方なども学習できます。
とはいえ、無料だとこちらも学べるものは基礎的なものばかりなので、必要に応じてこちらも有料会員登録してみてもいいかなと。
こちらも月額1080円なので、こちらもProgate同様ランチ一回分ほど。
とはいえ、一つお伝えしないといけないことがありレッスンは幅広くいろんな分野の動画を見ることが可能なのですが、新しいものばかりではなく当時作られた状態のまま残してあるだけのものも結構あります。
なので、『動画通りにそれ通りにやってみたけど動かない、、、』みたいなこともあります。
なので、まずは一度無料で自分の学びたい言語を視聴しながら学習してみて、この言語ならもっと学んでもいいかなと感じたら有料会員登録してみる。
といった感じが理想かなと。参考までに覚えていただければと思います。
Schoo

Schooはオンライン動画学習サービスで生放送であれば無料で見ることができます。
実際にプログラミングと検索して調べてみると

上記のような感じでプログラミングについて学ぶことができます。またRubyと検索してみると

件数はそこまで多くはありませんが、入門的な内容や実践的な内容を見ながら学習することも可能です。
また『過去の授業も見たい!』という方はプレミアムサービス(月額980円)に加入することで見ることができます。
基礎的な所はProgateやドットインストールなどを使い学んだ方が成長速度は早いなという感じですが、ある程度基礎を学び終え『実践的な内容を見ながら学びたいな』たなんて方は、こちらで生放送の授業を受けながらスキルを高めれば、より実戦でも使えるエンジニアになれるかなと。
なので、上記で解説した感じで使うのがいいベストかなと。
必要であれば有料会員登録してもいいかもですが、少なくとも最初から有料である必要はないと思うので、最初は無料会員登録だけしつつ良さげな授業があり過去の授業も見たいななんて思ったら有料会員登録するといった感じで使いましょう。
忍者CODE

忍者CODEは問題に答えていく形で実践的に学ぶのに適している学習サイトです。
こちらは問題集形式になっておりほぼ全ての内容が無料でみることができます。
とはいえ、回答を見るには会員登録が必要です。
忍者CODEは最近Twitterでも評判がよく、駆け出しのエンジニアの方が多く使っています。
また有料コンテンツもあり買い切りで販売されているものもあります。
内容としてはこんな感じ。


少し値段は高めですが、購入した商品をポートフォリオ(自身で作成した成果物)として企業に提示することも可能ですし、内容自体も値段相応かなといった感じなので、購入しても損はないかなと。
とはいえ、プログラミングの基礎もできない状態だとほぼほぼ理解できずに終わってしまう可能性もあります。
なので、ある程度基礎を学習して忍者コードの問題集とかも挑戦した上で、必要だと感じるなら購入するのがベストです。
確かに、お金に余裕があるよなんんて方は購入してもいいかもですが、購入したけどぶっちゃけ今後続くかわからないみたいな状況だと挫折してしまった時に、購入したお金も無駄になってしまいますよね。
なので、購入するにしても自分自身がプログラミングを続けられるかどうかも含めて検討し、その上で必要だと思うのなら購入する感じがいいのかなと。
Qiita

Qiitaはプログラマ向けの情報共有サービスでして数多くのエンジニアが経験で得た情報などを発信しているWebサイトです。
実際にプログラミング独学を始めてみると、結構エラーにぶつかることがあるんですが、実際にQiitaなどの情報サイトをよく見る機会があり僕はかなり助けられています。
また自身がエラーでつまづいた経験などを、Qiitaに残しておいてまた同じことでつまづいたりした時に見返せるといった感じで使うこともできます。
実際に僕も案件に参画した際にエラーなどでつまづいて解決したときに、この記録は残しておきたいなと思った時に記事を作成して発信しています。
また継続的に発信しているということを評価されて案件を受注できる可能性も上がります。
Qiitaは完全無料で使えますしアカウントを持っていてもぶっちゃけ損は全くないので会員登録はしておくべきです。
ブログで発信していきたいなんて方はそれでもいいですが、こういった記事はPVは伸ばせても収益化はかなり難しいので、気軽な感じでかけるQiitaに発信していくのがいいかなと。
プログラミング独学を効率的に進めるコツ【3つお伝えします】

こちらの通り。
・目標を設定する
・毎日作業する
・仲間orメンターを見つける
こちらもそれぞれ解説していきます。
目標を設定する
目標を達成するまでの全体像を把握するためですね。
例えばポートフォリオ(自分で作った作品)を作ることが目標であれば、こんな感じで目標設定していきます。
・作るものを決める
・学ぶ言語を決める
・道具の使い方を学ぶ
・プログラミング言語を学ぶ
・ポートフォリオを作成する
上記でお伝えしている目標はかなりざっくりお伝えしていますが、もっと細かく設定したいという方はそこからまた細かく設定していきましょう。
目標を設定することで作業を始めたときに、今自分はどれだけ進んだのかわかるのでモチベーションの維持もできますし、必要な作業もある程度理解できます。
確かに『目標設定したけど、全然進まなくて逆にモチベーションが下がってしまうんじゃないか?』なんて意見もあるかもですが、正直なことを伝えると思い通りに進むことの方が少ないです。
なので思った通りに進まなくても『この作業はこのくらいの時間が必要なんだな』くらいの気持ちで進めていくのが良いと思います。
正直プログラミングをしたこともないのに、どのくらいの時間が必要なのかわかる人なんてほぼいません。
なのでまずは目標を設定することから始めましょう。
毎日作業する
習慣化することで学習のハードルを下げることができるからですね。
例えば休日に学習をするみたいな感じだと、前に行った内容を復習する時間も必要ですしぶっちゃけめんどくさいなと感じてしまい挫折してしまう可能性が上がります。
ですが毎日作業すると決めてしまえば、復習する時間もそこまで必要ないので効率的な学習も可能です。
確かに毎日作業することを習慣化するのは難しいなんて思う方もいるかもですが、時間が取れない時は10分だけ作業するとかでも全然良いと思うんですよね。
大切なのは毎日続けることです。
習慣化することができれば、歯を磨くことと同じように毎日やらないと『なんか気持ち悪いな、、、』と思えるようになります。
なので最初はしんどいかもしれませんが、習慣化できるようになるまで継続しましょう。
メンターを探す
自分だけでは解決できない問題も出てくるからですね。
プログラミング独学を始めたばかりの方やエンジニア2年目まで方はわかるかもですが、『エラーの解決方がわからない、、、解決策はわかったけどどうやって修正すれば良いのかわからない、、、』みたいなことが結構増えてきます。
そんな時にメンターがいれば解決方法のヒントをもらえますし、もし本当にわからなかった時や挫折しそうになった時も相談に乗ってもらうことも可能です。
なのでプログラミング独学をしたいと考えるのならば、メンターを探しましょう。
周りにエンジニアの友人がいるなんて方はその方にメンターになってもらうのがベストですが、周りにいないという方はMENTAというサービスを使い探すのもありかなと。
MENTAは教えたい人と学びたい人を繋ぐマッチングサービスで、様々な分野のプロの方がいます。
とはいえ、こちらは有料のサービスなので、お金に余裕があるなんて方はこちらのサービスを使いつつメンターを探しましょう。
Twitterで仲間を探すでもアリ
無料でできるからですね。
当たり前かもですが、無料でできるならその方がいいですよね。
Twitterではこれからエンジニアになりたい方や、実際にエンジニアとして活動している方と簡単に繋がる事ができます。
なので、まずはTwitterで仲間やメンターを探すことから始めましょう。
『全く知らない人と繋がるのは正直少し不安だな、、、』なんて感じる方もいるかもですが、ぶっちゃけ使い方次第ですよ。
確かにTwitterにはなんの仕事をしているのかわからない方や怪しい人もたくさんいます。
ですが、この人とは関わりたくないなと思ったら無視すれば良いですし、DMできるのはフォローしている人だけにするとかすれば不安要素はほぼ回避できます。
そういった感じで信頼できる方とだけ繋がる。そんな感じで使うのが良いんじゃないですかね。
プログラミング独学で壁にぶつかった時の乗り越え方

多くの方がぶつかる壁はこちらの通り。
・コードが書けない場合 → まずは模写から始めてみる
・仕組みがわからない場合 → 一旦スルーする
・面白くない場合 → できることをやってみる
・モチベーションが続かない場合 → 仲間に相談する
こちらもそれぞれ解説していきます。
コードが書けない場合 → まずは模写から始めてみる
僕もそうだったのですが、プログラムの基礎を学んだもののどのように使えば良いのかわかりませんでした。
なのでまずは模写(既存のものを見ながら作成すること)をしました。
模写をすることで答え合わせもできるので、実践的な使い方を理解することができます。
また経験のあるエンジニアのコードを見ることでどのように作成すれば良いのかもわかりますよね。
なのでプログラミング独学をする方はまずこちらから始めるべきかなと。
仕組みがわからない場合 → 一旦スルーする
初めから理解できるものでもないからですね。
ぶっちゃけ覚えることが多すぎるので、全て覚えるなんてロボットでもない限り不可能です。
なので、気になったら調べつつ少しづつ覚えていく。そんな感じで良いのかなと。
もちろん仕組みを理解している方がいいのは事実ですが、それ以前に覚えることがたくさんあるので、それどころじゃないと思うんですよね。
なので、仕組みがわからないという方はいったんスルーしましょう。
こちらの記事も参考になるかなと思うのでよければ一緒にどうぞ。
面白くない場合 → できることをやってみる
前に進めないのに、面白いなんて思える方はいないですよね。
そんな時はドットインストールで動画を見ながら基礎をもう一度復習してみると良いと思います。
そうすると当時に比べて『あれ意外にできるようになってるぞ』なんて感じられると思います。
そのように前に進めなくなったら、できることをやってみると当時に比べて成長していることを感じられると思いますし、面白いなと感じることができるのでやってみましょう。
モチベーションが続かない場合 → 仲間に相談する
自分と同じことをやっている場合は共感してもらえますし、自分よりも上のレベルの方であれば同じ経験をしているはずなので、対処法を教えてもらえたりするからですね。
プログラミング独学を一人で行っていると先が見えなかったり成長を感じられないなんてことが結構あります。
そんな時はモチベーションも下がっていると思うので、少し息抜きも必要かなと。
友人や先輩などに相談しつつモチベーションを上げるために周りの意見も聞いてみましょう。
また僕も当時プログラミングをしてて辛いなと感じた時があり、その時の内容を記事にしています。
プログラミング独学ではなく仕事をしていて思ったことなので関係性は低いですが、エンジニアとして仕事をしていきたいと考える方は割と参考になるかなと思うので、気になる方は一緒にみていただければなと思います。
またこれ以上やっても無理だなと感じたら、別の方法を模索しても良いかもです。
より具体的な方法を次の章で解説していきます。
プログラミング独学が難しい、無理と感じたら

解決策は3つありこちらの通り。
・勉強法を変える
・友人に相談する
・スクールを検討する
理由も含めてこちらも解説していきます。
勉強法を変える
そもそも勉強法が自分に合っていない可能性があるからですね。
例えばですが、書籍で勉強してたけど、動画に変えたらすんなり理解できたとかそういうことって結構あります。
当時の僕もそうだったんですが、書籍がいいと思っていたけど『なんか合わないな、、、』と思い、動画で学習を始めたら僕は動画の方が合っていたようでかなり勉強が捗りました。
といった感じで、自分にあった勉強法をしてない方もいるので『なんかこれ自分に合わないな、、、』と思ったら変えてみるべきかなと。
友人に相談する
上記でも解説した内容なので、こちらは割愛します。
スクールを検討する
独学して無理だなと感じたらスクールに通いましょう。時間も効率も圧倒的です。
実際に僕も実際にプログラミング独学で挫折した身でして、このままじゃ無理だなと感じたのでプログラミングスクールに通って学びました。
なので、もしプログラミング独学してみたけどもう無理だなと感じた方は、スクールも検討してもいいかもです。
もしスクールも検討していいかなと思う方は、デイトラやSkill Hacksがおすすめです。
上記のスクールは10万円以下で、学ぶことができてオンラインでも受講可能です。そしてネットでも評判が高いです。
なのでもしスクールに通いたいけど、そんなにお金もかけられないなんて方は上記を選びましょう。
こちらの記事で具体的な金額などお伝えしていますので、知りたいという方はこちらも一緒にどうぞ。
お金がないなんて方は無料のスクールも検討しよう
時間はあるけど、お金がないという方は無料のスクールも検討しましょう。
『プログラミングスクール 無料』と、調べてみるといくつも無料のスクールが出てきます。
その中でここならアリかな。というところがれば、そこに通いつつエンジニアを目指すでもいいのかなと。
実際にいろいろ調べてみたんですが、Geek jobならアリかなといった感じ。
無料で学習できるのはもちろんですが、オンラインでも学ぶことが可能です。なので、ネットさえ繋がればどこでもできます。また転職の斡旋もしてくれるので、就職も可能です。
転職先はSES企業が多いですが、無料で学べて転職もできるのなら悪くないと思うんですよね。
また当時こんなツイートをしています。
当時SES企業で1年ほど働いてたけど、プログラミングではない案件ばかりでストレスに感じてた。
— Aki (@celcior0913) August 25, 2021
けどそれでよかったかも。
当時のスキルで自社開発企業に入っても、できなさすぎてやめていたかもしれないから🚶♂️
なので今となってはSESでよかったと思うことが多い
そう思えるまでに2年かかったけど😂
結局は考え方次第ですが、こんな考え方もあるよということが伝わればと。
プログラミング独学でエンジニア転職やフリーランスを目指す方へ

やるべきことはこちらです。
・プログラマーに向いているか判断
・ポートフォリオを作成
・転職サイトや転職エージェントを利用しよう
・Webサービスを使い案件を受注しよう
・フリーランス専門エージェントを利用しよう
それぞれ解説していきます。
プログラマーに向いているか判断
さまざまな意見がありますが、僕はこの二つが判断基準になると思っています。
・プログラミングが好きかどうか
・調べたり考えたりすることが好きかどうか
好きであれば間違いなくやるべきですよね。
そうでないとしても後から身につける事は十分に可能です。こちらの記事でわかりやすく解説しているので良ければ参考にどうぞ。
ポートフォリオを作成
スキルを確認するための指標になるからですね。
経歴があるならそこまで気にする必要はありませんが、経歴もない場合あなたがどのくらいのスキルがあるのか相手は分かりませんよね。
なのでエンジニアになるにしてもフリーランスを目指すにしても、経歴が少ないうちはポートフォリオを作成しましょう。
アプリを公開しているエンジニアの数はあまり多くないので、アプリをアプリを公開しているだけで割と評価してもらえる可能性が高いです。
とはいえ、アプリを公開したのはいいけど個人情報を扱うアプリの場合データを流失させてしまうと問題になってしまいます。
なので、知識がないうちは個人情報などは扱わないものを作るべきかなと。
転職サイトや転職エージェントを利用しよう
自分にあった企業に就職する確率を高めるためですね。
どの業界でもそうですが、企業なんて無数にありますよね。その中から自分にあった企業を探していくのはかなり無理ゲーですよね。
また一度就職してしまうと職歴は消すことはできないので、ブラックだったからやめましたみたいなことを2回も3回も繰り返せば『この人はここで働いたとしても辞めてしまうだろうな、、、』みたいな感じで就職できないなんてことも十分にあります。
なのでそういったことを避けるためにも、転職サイトや転職エージェントを使って転職活動に臨むべきです。そしてお勧めはこちら。
dodaやリクナビは大手なので自分にあった会社を見つけることは十分に可能です。また給与もそれなりの金額を保証してもらえると思います。
またFindyはスキルレベルで相手からオファーが来るような仕組みになっており、自分の作成したポートフォリオが良ければ自社開発企業などからもオファーをもらえる可能性があります。
ポートフォリオが必須なので、最初は少しレベルは高めに感じるかもですが、スキルが上がって数年後とかに転職を考える際にも使えるサービスなので登録しておいて損はないかなと。
上記は特にお金がかかるといったことはないので、必要だと思う方は登録しておいてもいいんじゃないですかね。
Webサービスを使い案件を受注しよう
わざわざ自分の足を使って営業しなくてもできるからですね。そしてこちらの内容はWeb制作で稼ぎたいという方がメインです。
そして割と使われることの多いWebサービスはこちら。
クラウドワークスやランサーズはかなり有名です。そこでは同じように仕事を受注しようとしている競合が多いのも事実です。
もしスキルが足りてないなんて感じる方は、クラウドテックやBizseekなども登録しつつ、仕事を受注するために営業するのがいいかなと。
また学習方法はこちらの記事を参考にどうぞ。
フリーランス専門エージェントを利用しよう
Web制作ではなくWebアプリの案件に参画したいと考えている方はこちらがオススメです。
実際に僕もWeb制作ではなくWebアプリを開発しており、単価も月で50万くらいほど頂いているのでコスパも悪くないと思うんですよね。
エージェントは案件・仕事の紹介に加え、報酬・単価などの条件交渉から企業との業務委託契約手続き、納品後の請求まで実務を代行してくれるサービスです。
エージェントを使うことで売上・請求関連のトラブルも防げるので、フリーランスとしてWeb案件をやっていきたいという方はこちらに登録するべきかなと。
上記は実際に僕が使っているエージェントであり、実務一年ほどのスキルで案件を紹介してもらえた実績もあります。
なので、スキルが足りてないと思う方は上記のエージェントを使いつつスキルを高めていきましょう。
具体的内容が知りたいという方はこちらの記事で具体的に解説していますので、こちらも一緒にどうぞ。
まとめ
このくらいで終わりにします。
今回はプログラミング独学のノウハウを全て公開します【初心者向け】というテーマで解説していきました。
これからプログラミング独学を始める方の参考になれば幸いです。
かなり長くなってしまいましたが、最後まで読んでいただきありがとうございました。