【独学エンジニア監修】プログラミングを独学するためのロードマップ
私は現在社内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制作やデザインの知識は皆無な上、社内システムということでビジュアル的なことはあまりこだわる必要がなかったので、デザインはダッシュボードのテンプレートなどをフル活用しました。
WEB制作初心者におすすめしたいCSSフレームワーク・テンプレート
私が初めて業務としてプログラミングに触れたのは、社内用システムの作成を上司に頼まれた時でした。 未経験ながら調べた結果バックエンド部分はJAVAのフレームワーク、…
本来このような開発をする場合は設計書を先に作ってからコーディングに取り掛かりますが、基本の「き」もわからなかったのでぶっつけ本番だし、ネット上の色んなコードの切り貼りで「とりあえず動いているからヨシ!」という感じではあったのですが、システムの初回リリースをするころ(4か月後くらい)にはコードがなぜそう動いているのかを理解することができました。
独学でのプログラミングスキル習得の近道
前置きが長くなりましたが、ここからが本題になります。
Javaでの開発経験からわかったことですが、とにかく最初の言語習得は手を動かして覚えるのが一番です。
そしてその手を動かして作るものですが、実際に使用する予定のあるものの方がいいです。
例えばWEBエンジニアになりたい場合、
- 就職するにもフリーでやるにもポートフォリオがあった方がいい
- ポートフォリオサイトを作ってみる
- そこに乗っけるデモサイトを作ってみる
- ポートフォリオサイトを引っ提げて就活or案件獲得!
こんな感じで後々使えるポートフォリオサイトの作成がおすすめです。ポートフォリオサイトを作る過程で自然とHTMLやCSSを使いこなせるようになるはずです。
プログラミングを学ぶとき、本を買ってきて変数とはなんぞや?HTMLの基本とは?文字の色を変えるには?とやるのは、絶対ナシとまでは言いませんがそれはたぶんめちゃくちゃ効率悪いのと私だったらやる気をなくします(笑)
ちーも
とりあえず何かしら作ってたら変数なんて勝手に覚えると思うし
コピペ開発って意味あるの?
よくコピペプログラマはよくないとか馬鹿にされていたりだとか、あながち間違いではないですが、プログラミングの勉強にはとりあえずのコピペはOKです。
大事なのはそのコピペした内容を最終的に理解しているかどうかだと思います。
なにかの開発をする上でネット上のコードをコピペしただけでは思い通りのものはほぼ作れません。
そこで元のコードを改造するという作業をする中で、必然的に元のコードでなにをしていたのか何がしたかったのかを理解する必要があり、それが学習へとつながります。
私が開発をするハメになった時はプログラミングを覚えたいという訳でもなく、意欲的なマインドでやっていた訳でもないのですが、後になって思い返せばこういう事だったんだという結論にたどり着きました。
開発を始める前の前菜として『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を受講してみたレポはこちら
完全無料のプログラミングスクール【ZeroPlus Gate】を現役エンジニアが体験してみた!
プログラミング未経験だけど、これからWEB制作を学んで副業をしたい、フリーランスになりたいと思っている方は多いと思います。 WEB制作を学ぶ方法としてProgateが挙げ…
本格的なデモサイトを作ることができ、初心者さんにぴったりの内容だなと思いました。
WEB制作をメインでやりたい方だけでなく、バックエンドなどをやりたい方にも一度体験してもらいたいくらいおすすめです。
ラスボス「環境構築」で心が折れる前に
プログラミングを挫折してしまう原因として「環境構築」があります。
コーディングができるようにPCにソフトをインストールしたり、設定したり、環境変数をごにょごにょしたりすることなんですが、これがすんごいめんどくさいし思うようにできなくて・・・。
つまり最初からラスボスです。私もここで心が折れそうになりました。
もしここでつまずいてプログラミングを諦めたくなったら、そんな時はオンライン上でプログラミングができるサービスがあるので利用を検討するのも手かもしれません。
でもこれだと私のお勧めする「実際に使用する予定のあるものを作る」がたぶん出来なくなってしまうと思うので、出来れば気合で環境構築をした方がいいと思います。
もちろん先生はGoogleです。
ちなみにやりたいことがWEB制作だけであれば、環境構築はそこまで難しくありません。
こちらでVSCodeを使った環境構築について解説しています。
【初心者向け】Webサイト制作の開発環境を整える。VSCodeでHTMLをリアルタイムプレビューしながらコーデ…
これからプログラミングを初めてみようという方にとっての最初の疑問は、 どうやってコードを書いていったらいいんだ?どうやって書いたコードを動かすの?確認するの?…
2つ目以降の言語
最初の言語でなにかを作ることをやり遂げた方、おめでとうございます!
ここまでくれば2つ目以降の言語習得はたぶんびっくりするほど楽勝になるはずです。(HTML/CSSだけだと微妙かもですか)
私がJavaの次にしっかり目に使った言語はPHPでした。
この時も転職先でまたまた社内用システムの構築を依頼されたのですが、未経験だったPHP(フレームワークはCakePHP)で開発に取り掛かったものの、Javaで開発をしたときの半分以下の期間で稼働までもっていくことができました。
プログラミング言語は書き方が若干変わるだけで、基本的な考え方は似ているところが多くあります。
そのため2つ目以降の言語はあまり苦しまずに吸収できるのではないでしょうか。
この場合も最初の言語習得と同じように、なにか目的のあるものを作りながら覚えましょう。
最初に何かを作った経験から、もっとこうすれば効率的に書けたとか、ここは共通化できたなという反省点も出てきていたと思います。
そういったことを活かしながらものを作ることでより理解が深まると思っています。
とはいえ本も有効活用したい
ここまでGoogle先生ごり押しの内容を書いてきましたが、他の勉強方法を否定や批判しているわけではありません。
本での学習は効率が悪いとは言いましたが、あくまで初心者の方が最初にする勉強方法としてという話であって、私は今でも本や技術雑誌などを読んで日々勉強をしています。
おすすめ書籍を少しだけ紹介します。
ポチップ
Rubyをやろうとしたときに買った本。
Rubyの入門書とされている本ですが、プログラミング自体の経験が浅い人向けだと思います。
すでになにかしらの言語がバリバリ使える方には優しすぎるかもしれません。変数・定数・クラスとは?というところから解説が載っています。
ポチップ
WEB制作の基礎ができるようになってから読む本。
きれいでコンパクトなコーディングができるようになるコツが解説されています。
ページの組み立て方のヒントになります。
¥1,980 (2024/03/21 14:00時点 | Amazon調べ)
ポチップ
プログラミングではないのですが、自分のデザインセンスのなさをどうにかしようとデザイン系もよく読んでいて、この本は最近のイチオシです。
ブログカスタマイズやLP制作に活かせそうな内容です。
私はKindle Unlimitedに入っているので、そちらを使ってよく本を探しています。
技術書は対象になっているものが少ないですが、デザインの系の本は結構取り扱いがあります。
\ 詳しくみてみる /
※Kindle Unlimited:定額で電子書籍が読み放題になるサービス
独学でプログラミングを学ぶ方法まとめ
この記事のまとめ
- Progateで基礎を学ぶ
- 実用性のあるものをとりあえず作ってみる
- 先生はGoogle
- コピペコードをいじりまわしながら理解する
- 本での学習はあとでorネットの補助でいい
- 気合で乗り切る。意外とパワー系
ここまで偉そうにプログラミングの学び方について書きましたが、私自身もなんでもできるスーパーエンジニアという訳ではないので、あくまで一個人の体験談と意見として留めていただければ幸いです!
時間や金銭的余裕がある場合
この記事では独学でのプログラミングの学び方を解説しました。
ただ完全独学だと得られる情報が偏ったり、どうしてもわからないことを解決できずに詰んでしまうこともあります。
そもそも独学が向いていないと感じる方もいると思います。
そういった場合にはプログラミングスクールを利用してみるのもアリだと思います。
アリだとは思うのですが、私はどちらかと言えばスクール否定派なので全てのスクールを一概に良いとは言えません。
また全く何もプログラミングに触れていないうちからプログラミングスクールを利用することもおすすめできません。
最低でもProgateの初級編をやってから利用を考えましょう。
私的におすすめしたいスクールはこちら
ZeroPlus Gate
記事内でも紹介した完全無料の初心者向けプログラミングスクール。とにかくプログラミングを始めたい方はやったほうがいいです。無料なので。
\ 無料で受講してみる /
その他のおすすめ
- DMM WEBCAMP |未経験からエンジニアになりたい方向け
- RUNTEQ(ランテック)|WEB系企業への就職サポートが厚い
- 侍テラコヤ|サブスク型 月2,980円~
あ、ちなみにプログラミングがしたくてIT系の専門学校に入るのは絶対にやめた方がいいです。(中退経験者の感想)
この辺はまた別の記事でお話したいと思います!
追記:記事書きました!
【意味なし】IT専門学校はやめとけ。中退経験者が本音で語ります
「IT系専門学校」で検索するとなんともネガティブなワードばかりが並んでいる印象を受けます。 私は現在IT分野を本業としていますが、現役の年齢でIT系専門学校に入学し…