プログラミングの勉強を始めてみたのはいいものの、覚えることが多すぎてどういった順番で勉強するべきか迷いますよね。
「早く覚えて一人前にならないと!」と焦るほど空回りしてしまいがち。
しかし、プログラミングの基礎を身につけるにはそれなりの時間がかかることも事実です。
そこでこの記事では、プログラミングを勉強する際の順番について解説しています。
本記事の内容
- プログラミングを勉強するときの最初の目標地点
- プログラミング(システム開発)の全体像
- プログラミングを勉強する具体的な順番
- プログラミングの勉強をさらに効率化するためには
本記事の信頼性
この記事を書いている僕は4年目の現役プログラマーです。勉強初期は何から手をつけるべきか迷った経験が僕にもあります。その経験を踏まえて記事を書きました。
この記事の手順がクリアできれば、プログラマーとして仕事をこなすための最低限のスキルが身に付きます!
【目標設定】簡単なWebサービスを作れるようになる
この記事によって達成したい目標は下記です。
簡単なWebサービスを作れるようになること
「簡単な」とはToDoアプリくらいのレベル感ですね。
アプリやシステムをざっくり言うと「画面 + データ」の集まりです。
簡単なWebサービスを作れるようになることで、具体的には次のような知識、スキルを習得できます。
- HTML、CSS、JavaScriptによるWeb制作のスキル
- プログラミング言語の基礎的なスキル(この記事ではPHPで解説します)
- HTTPやブラウザなどWebの仕組み
以下では、この目標設定の妥当性を述べていきます。
ほとんどの分野でWebの知識が必要
一言にプログラミングといっても業務システム、Webサービス、人工知能など、たくさんの分野がありますが、ほとんどの分野でWebの知識が必要です。
例えば、Web上で動く業務システムを開発したり、人工知能に必要なデータをWebから収集したりなど。
僕が今までに関わったプロジェクトでも、Web系の開発がほとんどでした。
覚えることは多くなりますが、Webの基本的な知識があれば他分野への応用が効きやすいです。
完璧を求めると膨大な時間がかかる
プログラミング関連の知識は幅広く、奥深いです。
理解できずにモヤモヤする部分も出てくるはずですが、最初から完璧を求めたら挫折します。
まずは全体像を掴むつもりで理解が浅くても先は進みましょう。
Webサービス開発の全体像を確認しましょう
何メートルあるか知らないまま山を登るのはとても危険ですよね。
必要な装備もかかる時間もわからないまま進むのは無謀なので、まずは全体像をしっかり把握します。
全体像
- ブラウザの表示(静的)
- ブラウザの表示(動的)
- サーバーの制御
- Webフレームワーク
- データの保管
- 作業の履歴管理
ブラウザの表示(静的):HTML&CSS
- HTML とは:Hyper Text Markup Language(ハイパーテキスト マークアップランゲージ)の略で、ブラウザの画面に表示する文字やボタンなど基本的な構成を作ることができます。
- CSS とは:Cascading Style Sheets(カスケーディング スタイル シート)の略で、HTMLで構成した表示内容を装飾するためのものです。
この2つを覚えるだけでもWebサイトを作れるようになります。
どのようなWebサービスにおいても必要とされる技術なので習得は必須ですが、難易度は低め。
HTMLとCSSは視覚的にも結果がわかりやすく、勉強も楽しくこなせると思いますよ。
■身に付けたいレベル
大体のWebサイトなら「頑張れば作れそう」と思えるくらい
■最初はやらなくていいこと
・HTMLタグを全て覚えようとする
・CSSのプロパティを全て覚えようとする
・HTML&CSSの良い設計
ブラウザの表示(動的):JavaScript
- JavaScript とは:唯一ブラウザ上で動かすことができるプログラミング言語。
JavaScriptを覚えることで、アニメーションなど動きのあるWebサイトが作れるようになります。
例えばボタンを押したらポップアップが表示されたり、ページ上の画像がスライドなどですね。
だんだんと新しい技術が出てきて複雑化が進んでいますが、基礎をしっかり身に付けることが大事です。
■身に付けたいレベル
ボタンが押された時などにやりたいことが書けるレベル
■最初はやらなくていいこと
・Vue、React、AngularやNode.jsなど最初は気にしなくていい
サーバーの制御:PHPなどのプログラミング言語
- PHPとは:Web開発に向いているプログラミング言語。国内の求人数も多く需要が大きい。
Webサービスでのプログラミング言語の役割は、必要なデータを取得して表示に必要な状態に加工すること。
あとはログインの機能などもプログラムとデータベースを組み合わせて実現されるものです。
プログラムでできることは多岐にわたるので、一言で表すのが難しいですが、Webサービスにおいての役割は上記ような感じです。
■身に付けたいレベル
・if文やfor文などプログラムの基本が書ける
・クラス、メソッド、変数などを見分けられる
■最初はやらなくていいこと
・他の言語を同時に勉強すること
Webフレームワーク:LaravelやRuby on Railsなど
- Webフレームワークとは:Webサービスを開発するための雛形プログラムのことです。必要な部分だけをプログラミングすればいいので素早くWebサービスを作ることができます。
Webサービスの開発では、なんらかのフレームワークを使って開発することがほとんど。
プログラミング言語ごとにいくつかのWebフレームワークがあり、フレームワーク自体もその言語で作り上げられたものです。
最初は仕組みも全くわからず、かなりモヤモヤしながらの勉強にはなりますが、最初のうちは割り切って「使い方を覚えるだけ」くらいの気持ちで勉強を進めましょう!
■身に付けたいレベル
・仕組みはわからないけど、MVCの概念はなんとなくわかる
■最初はやらなくていいこと
・フレームワークの仕組みの理解
データの保管:データベース、SQL
- データベースとは:システムで使うデータを管理することに特化したもの。
- SQLとは:データベースのデータを操作するための言語。検索、登録、編集、削除ができる。
ユーザー登録などが必要なWebサービスは、データベースなしでは作れません。
プログラムからSQLを使ってデータベースのデータを登録したり、削除したりします。
データベースのイメージとしては、エクセルの表みたいに行と列があって、それぞれのセルにデータが書き込まれるような感じですね!
■身に付けたいレベル
・基本的なSQLが書ける(SELECT、INSERT、UPDATE、DELETE)
■最初はやらなくていいこと
・データベースの種類を気にすること
・パフォーマンスを意識すること
作業の履歴管理:Git
- Gitとは:ファイルの変更された内容を履歴管理してくれるソフト。
開発補助のツールやソフトは多くありますが、まず欠かせないのがGit。
複数人の開発でその本領を発揮します。
- 間違えて必要なファイルを削除してしまった
- 誰がどこを編集したのかわからない
- 変更前の状態を確認したい
上記のような問題もすべてGitで解決できるので、覚えておくとスムーズに業務に入れます。
■身に付けたいレベル
・コミットとブランチを理解している
・ローカルリポジトリとリモートリポジトリを理解している
■最初はやらなくていいこと
・コマンドを覚えること(最初はGUIだけでOK)
・リベースやチェリーピックなど普段使わない操作を覚えること
【10時間分】プログラミングを勉強する順番
ここではプログラミングを勉強する順番を解説していきます。
10時間分の勉強だけでWebサービスのすべてを理解することは難しいですが、体系的に学んでいくことで全体像の把握ができ、あとは足りない知識を埋めていくだけという状態になれるはずです。
この章では、教材としてpaizaラーニングの有料版(月額1,078円)を使う前提で解説していきますが、無料で見れる範囲もあるのでまずは無料で各講座を試してみて、続けられそうと思ってから有料で勉強するのもいいと思います。
まず先に、どのような順番で勉強するのかを以下に記載しました。
- HTML&CSS
- JavaScript
- PHP
- DB/SQL
- Laravel
- Git
1:HTML&CSSのレッスン動画(全16動画)
引用:paizaラーニング
URL:https://paiza.jp/works/html/primer
動画合計時間:48分
レッスン内容
・HTML/CSS入門編1: HTML/CSSを理解しよう (全4回):すべて無料
・HTML/CSS入門編2: CSSの基礎を学ぼう (全6回):6本中4本が有料会員限定
・HTML/CSS入門編3: HTML要素を学ぼう (全6回):6本中4本が有料会員限定
2:JavaScriptのレッスン動画(全32動画)
引用:paizaラーニング
URL:https://paiza.jp/works/js/primer
動画合計時間:96分
レッスン内容
・JavaScript入門編1: JavaScriptをはじめよう (全9回):すべて無料
・JavaScript入門編2: 条件によって処理を変えてみよう (全6回):すべて無料
・JavaScript入門編3: ループ処理を学ぶ (全8回):8本中3本が有料会員限定
・JavaScript入門編4: 配列の基礎 (全9回):9本中7本が有料会員限定
3:PHPのレッスン動画(全77動画)
引用:paizaラーニング
URL:https://paiza.jp/works/php/primerfemale
動画合計時間:231分
レッスン内容
・PHP入門編1: PHPをはじめよう (全8回):すべて無料
・PHP入門編2: 条件によって処理を変えてみよう (全6回):すべて無料
・PHP入門編3: ループ処理を学ぶ (全6回):6本中4本が有料会員限定
・PHP入門編4:配列の基礎、explodeを学ぶ (全8回):8本中6本が有料会員限定
・PHP入門編5:連想配列、foreach、ソートを学ぶ (全8回):8本中6本が有料会員限定
・PHP入門編6:多次元配列を理解しよう (全12回):12本中10本が有料会員限定
・PHP入門編7:関数を理解しよう (全6回):6本中4本が有料会員限定
・PHP入門編8:クラスを理解しよう (全7回):7本中5本が有料会員限定
・PHP入門編9: さらにクラスを理解しよう (全8回):8本中6本が有料会員限定
・PHP入門編10: 例外処理を理解しよう (全8回):8本中6本が有料会員限定
4:DB/SQLのレッスン動画(全17動画)
引用:paizaラーニング
URL:https://paiza.jp/works/sql/primer
動画合計時間:51分
レッスン内容
・SQL入門編1: SQLの基本文法を学ぶ (全7回):7本中5本が有料会員限定
・SQL入門編2: SQLを仕事に使おう (全11回):すべて無料
5:Laravelのレッスン動画(全49動画)
引用:paizaラーニング
URL:https://paiza.jp/works/laravel/primer
動画合計時間:147分
レッスン内容
・Laravel入門編1: Laravelの基本を理解しよう (全9回):すべて無料
・Laravel入門編2: Laravelの動作を理解しよう (全7回):7本中5本が有料会員限定
・Laravel入門編3: Laravelのビューとフォームを理解しよう (全11回):11本中9本が有料会員限定
・Laravel入門編4: 実用的なLaravelアプリを作ろう (全13回):13本中11本が有料会員限定
・Laravel入門編5: Laravelでユーザー管理しよう (全9回):9本中7本が有料会員限定
6:Gitのレッスン動画(全11動画)
引用:paizaラーニング
URL:https://paiza.jp/works/git/primer
動画合計時間:33分
レッスン内容
・Git入門編1:Gitの基本操作を身に付けよう (全12回):12本中10本が有料会員限定
まとめ:まずはWebサービスから
どの分野でもWebの知識は必要になるので、この記事の順番で勉強すればプログラマーとして働くための基礎体力が身に付きますよ!
改めて勉強する順番をおさらいしましょう。
- HTML&CSS
- JavaScript
- PHP
- DB/SQL
- Laravel
- Git
この順番で勉強すれば、まずはWebサービス開発の全体像が掴めてくるはずです。
全体像が掴めたら足りない知識を埋めていきましょう!
今回は以上です。