【独学エンジニア監修】プログラミングを独学するためのロードマップ

    独学エンジニアが考える プログラミングを独学するための 完全ロードマップ

    この記事にはプロモーションが含まれています

    私は現在社内SE兼プログラマーのようなものをやっており、副業でもWEB制作をやっています。

    またこのブログもPHPやCSS、jsなどを使い色々とカスタマイズして楽しんでいます。

    そんな私ですが、実はプログラミングに関してはほぼ独学です。

    この記事ではこれからプログラミングを学びたい人に向けて、私がどうやって独学でスキルを身につけたか、その体験談やプログラミングを独学でやる場合のおすすめ学習法などを書いていきたいと思います。

    この記事はこんな方向け
    • 独学でプログラミングを学びたい
    • プログラミングを独学したいけど何から始めたらいいかわからない
    • プログラミングを独学で学ぶコツを知りたい
    もくじ

    【体験談】どうやってプログラミングを学んだか

    実は腰を据えて勉強という勉強をしたことはなく、いきなりシステム開発を一人でやらなければいけなくなったのが始まりです。

    派遣で事務として働いていたはずなんですが、IT系の専門学校に行っていたとポロっと言ったら業務効率化のための社内システムを作ってくれと上司に頼まれてしまったんですよね。

    ちーも

    プログラミングはできないって言ってあったんだけど・・・。

    今思うと無茶苦茶だなとは思うんですが、この経験があったからこそ今の自分があると思っています。

    その時の状況をさらっと。

    作りたいもの:機械の利用管理システム

    図書館の貸し出しシステムに近い感じ。

    必要機能(一部)
    • QRコード読み取りによる使用開始、終了のデータ登録
    • 機械の管理
    • ユーザ管理
    • 機械の使用状況可視化(円グラフ、棒グラフ)
    • 使用状況のCSVエクスポート
    • 返却期限超過通知メール配信
    • どう作ってもいい(言語や実装方法などは好きに決めていい)
    • どんだけ時間かかってもいいけど半年くらいが目安
    • 社内のITレベルは「大文字しか打てなくなった!(CapsLock)」と定期的に騒ぐ人がいる程度
    • 社内に助けてくれる人はいない

    質問できる人が近くにいないこと以外は、ほぼ制約なしの自由というかなり恵まれた状況ではありました。

    開発はJavaの中でWEBアプリ開発によく使われるSpringBootというフレームワークを使うことに決めて、とりあえずスタート。

    正直Javaを選んだのは適当です。なんとなく一番人気そうという感じに。

    一番大変だったのはプログラミング以前の環境構築部分なのですが・・・。とりあえずそれは後回しにします。

    ちーも

    通常業務もあったし素人が片手間でやるってレベルじゃねえぞ

    作りたいものを気合で形にする

    コーディングできるように環境構築を終えてからはまず、やりたいことを一つずつ順番にググっていきます。

    「SpringBoot アプリ 開発」と検索して出てきた記事を参考に大まかな枠組みを作り、「SpringBoot データベース 登録」でデータが登録できるようになったら「SpringBoot QRコード」と検索して必要な機能を足していきました。

    初心者プログラマによる開発の流れ

    STEP

    まずは検索で出てきたコードをコピペして動かしてみる

    STEP

    大体がそのままで動かないので修正

    STEP

    とりあえず動いた

    STEP

    自分で欲しい機能に作り替えていく

    基本はこんな感じで作っていきました。

    大体のことはGoogle先生に聞けば解決するはずです。

    Google先生でどうしても解決しないことはIT系の質問サイトであるteratail【テラテイル】で質問したり、現役エンジニアの知り合いにお願いしてアドバイスをもらったりしました。

    あとこの時点ではWEB制作やデザインの知識は皆無な上、社内システムということでビジュアル的なことはあまりこだわる必要がなかったので、デザインはダッシュボードのテンプレートなどをフル活用しました。

    本来このような開発をする場合は設計書を先に作ってからコーディングに取り掛かりますが、基本の「き」もわからなかったのでぶっつけ本番だし、ネット上の色んなコードの切り貼りで「とりあえず動いているからヨシ!」という感じではあったのですが、システムの初回リリースをするころ(4か月後くらい)にはコードがなぜそう動いているのかを理解することができました

    結果、後で機能を追加してほしいという要望があった際はGoogle先生に頼ることなく対応も可能になりました。

    独学でのプログラミングスキル習得の近道

    前置きが長くなりましたが、ここからが本題になります。

    Javaでの開発経験からわかったことですが、とにかく最初の言語習得は手を動かして覚えるのが一番です。

    そしてその手を動かして作るものですが、実際に使用する予定のあるものの方がいいです。

    例えばWEBエンジニアになりたい場合、

    • 就職するにもフリーでやるにもポートフォリオがあった方がいい
    • ポートフォリオサイトを作ってみる
    • そこに乗っけるデモサイトを作ってみる
    • ポートフォリオサイトを引っ提げて就活or案件獲得!

    こんな感じで後々使えるポートフォリオサイトの作成がおすすめです。ポートフォリオサイトを作る過程で自然とHTMLやCSSを使いこなせるようになるはずです。

    「実際に使用するもの」という縛りは、モチベ低下回避と明確な目標設定のため!

    プログラミングを学ぶとき、本を買ってきて変数とはなんぞや?HTMLの基本とは?文字の色を変えるには?とやるのは、絶対ナシとまでは言いませんがそれはたぶんめちゃくちゃ効率悪いのと私だったらやる気をなくします(笑)

    ちーも

    とりあえず何かしら作ってたら変数なんて勝手に覚えると思うし

    コピペ開発って意味あるの?

    よくコピペプログラマはよくないとか馬鹿にされていたりだとか、あながち間違いではないですが、プログラミングの勉強にはとりあえずのコピペはOKです。

    大事なのはそのコピペした内容を最終的に理解しているかどうかだと思います。

    なにかの開発をする上でネット上のコードをコピペしただけでは思い通りのものはほぼ作れません。

    そこで元のコードを改造するという作業をする中で、必然的に元のコードでなにをしていたのか何がしたかったのかを理解する必要があり、それが学習へとつながります。

    私が開発をするハメになった時はプログラミングを覚えたいという訳でもなく、意欲的なマインドでやっていた訳でもないのですが、後になって思い返せばこういう事だったんだという結論にたどり着きました。

    開発を始める前の前菜として『Progate』

    とはいえ私の例のようにちょっと急ぎ目で何かを作らないといけない場合以外は、先に基礎の基礎をProgateで学ぶのがオススメです。

    Progateとは?

    様々なプログラミング言語が学べるサービス。基本無料+サブスクでレッスンが受けられる。

    Progateで学べる言語

    色んなサイトでProgateがプログラミング入門に良いと紹介されています。

    基本無料とはうたっていますが無料で使えるのは基礎の本当に一部といった感じで、その言語について一通り学ぶには課金前提だなとは思いました。

    (ちなみに)現役エンジニアがPHPコースをやってみた

    PHPコースでは『PHPⅠ』の一部を無料で受講することができました。

    無料で学べる事

    • echoでの画面表示
    • 文字列と数値の違い
    • 変数の使い方
    • if文
    • switch文

    スライドショーでの解説⇒実践という流れでレッスンが進んでいき、コーディングの結果が直ぐに右の画面で確認できるので達成感があります。

    無料で受けられる分は経験者であれば10分程度で終わってしまうボリューム感でした。

    あと、PHPというよりプログラミング言語全ての基礎という感じですよね。これ。

    無料でできる範囲だとかなり限定的な内容にはなりますが、なにかを作ってみようとする前段階の学習としては優秀だと思います。

    ということで、Progate⇒上で解説したように開発をやってみる

    という流れが理想的です。

    もちろんProgateの有料プランでより深く学ぶこともいいと思いますが、レッスンのように決められたものを流れで作っていくよりも、なにかを自力で作るという経験はやはり必要だと思います。

    分からないことを調べている間にも新しい気付きがあったりします。

    WEB制作がやりたい場合は『ZeroPlus Gate』もおすすめ

    ZeroPlus Gateとは?

    完全無料、30日間限定のプログラミングスクール。WEB制作の基礎を学べる。

    『ZeroPlus Gate』は最近見つけた完全無料のプログラミングスクールです。

    一応プログラミングスクールというくくりではあるのですがProgateに近いサービスで、ProgateのHTML&CSSコース無料分と比べれば上位互換だと思います。

    実際にZeroPlus Gateを受講してみたレポはこちら

    本格的なデモサイトを作ることができ、初心者さんにぴったりの内容だなと思いました。

    WEB制作をメインでやりたい方だけでなく、バックエンドなどをやりたい方にも一度体験してもらいたいくらいおすすめです。

    メンターから直接サポートを受けられるオンライン面談付きです

    ラスボス「環境構築」で心が折れる前に

    プログラミングを挫折してしまう原因として「環境構築」があります。

    コーディングができるようにPCにソフトをインストールしたり、設定したり、環境変数をごにょごにょしたりすることなんですが、これがすんごいめんどくさいし思うようにできなくて・・・。

    つまり最初からラスボスです。私もここで心が折れそうになりました。

    もしここでつまずいてプログラミングを諦めたくなったら、そんな時はオンライン上でプログラミングができるサービスがあるので利用を検討するのも手かもしれません。

    でもこれだと私のお勧めする「実際に使用する予定のあるものを作る」がたぶん出来なくなってしまうと思うので、出来れば気合で環境構築をした方がいいと思います。

    もちろん先生はGoogleです。

    ちなみにやりたいことがWEB制作だけであれば、環境構築はそこまで難しくありません

    こちらでVSCodeを使った環境構築について解説しています。

    2つ目以降の言語

    最初の言語でなにかを作ることをやり遂げた方、おめでとうございます!

    ここまでくれば2つ目以降の言語習得はたぶんびっくりするほど楽勝になるはずです。(HTML/CSSだけだと微妙かもですか)

    私がJavaの次にしっかり目に使った言語はPHPでした。

    この時も転職先でまたまた社内用システムの構築を依頼されたのですが、未経験だったPHP(フレームワークはCakePHP)で開発に取り掛かったものの、Javaで開発をしたときの半分以下の期間で稼働までもっていくことができました

    プログラミング言語は書き方が若干変わるだけで、基本的な考え方は似ているところが多くあります。

    そのため2つ目以降の言語はあまり苦しまずに吸収できるのではないでしょうか。

    この場合も最初の言語習得と同じように、なにか目的のあるものを作りながら覚えましょう。

    最初に何かを作った経験から、もっとこうすれば効率的に書けたとか、ここは共通化できたなという反省点も出てきていたと思います。

    そういったことを活かしながらものを作ることでより理解が深まると思っています。

    とはいえ本も有効活用したい

    ここまでGoogle先生ごり押しの内容を書いてきましたが、他の勉強方法を否定や批判しているわけではありません。

    本での学習は効率が悪いとは言いましたが、あくまで初心者の方が最初にする勉強方法としてという話であって、私は今でも本や技術雑誌などを読んで日々勉強をしています。

    おすすめ書籍を少しだけ紹介します。

    Rubyをやろうとしたときに買った本。

    Rubyの入門書とされている本ですが、プログラミング自体の経験が浅い人向けだと思います。

    すでになにかしらの言語がバリバリ使える方には優しすぎるかもしれません。変数・定数・クラスとは?というところから解説が載っています。


    WEB制作の基礎ができるようになってから読む本。

    きれいでコンパクトなコーディングができるようになるコツが解説されています。

    ページの組み立て方のヒントになります。


    プログラミングではないのですが、自分のデザインセンスのなさをどうにかしようとデザイン系もよく読んでいて、この本は最近のイチオシです。

    ブログカスタマイズやLP制作に活かせそうな内容です。

    私はKindle Unlimitedに入っているので、そちらを使ってよく本を探しています。

    技術書は対象になっているものが少ないですが、デザインの系の本は結構取り扱いがあります。

    \ 詳しくみてみる /

    ※Kindle Unlimited:定額で電子書籍が読み放題になるサービス

    独学でプログラミングを学ぶ方法まとめ

    この記事のまとめ
    • Progateで基礎を学ぶ
    • 実用性のあるものをとりあえず作ってみる
    • 先生はGoogle
    • コピペコードをいじりまわしながら理解する
    • 本での学習はあとでorネットの補助でいい
    • 気合で乗り切る。意外とパワー系

    ここまで偉そうにプログラミングの学び方について書きましたが、私自身もなんでもできるスーパーエンジニアという訳ではないので、あくまで一個人の体験談と意見として留めていただければ幸いです!

    時間や金銭的余裕がある場合

    この記事では独学でのプログラミングの学び方を解説しました。

    ただ完全独学だと得られる情報が偏ったり、どうしてもわからないことを解決できずに詰んでしまうこともあります。

    そもそも独学が向いていないと感じる方もいると思います。

    そういった場合にはプログラミングスクールを利用してみるのもアリだと思います。

    アリだとは思うのですが、私はどちらかと言えばスクール否定派なので全てのスクールを一概に良いとは言えません。

    また全く何もプログラミングに触れていないうちからプログラミングスクールを利用することもおすすめできません

    最低でもProgateの初級編をやってから利用を考えましょう。

    私的におすすめしたいスクールはこちら

    ZeroPlus Gate

    記事内でも紹介した完全無料の初心者向けプログラミングスクール。とにかくプログラミングを始めたい方はやったほうがいいです。無料なので。

    \ 無料で受講してみる /


    その他のおすすめ

    あ、ちなみにプログラミングがしたくてIT系の専門学校に入るのは絶対にやめた方がいいです。(中退経験者の感想)

    この辺はまた別の記事でお話したいと思います!

    追記:記事書きました!

    この記事が気に入ったらシェアしてね
    • URLをコピーしました!

    もくじ