プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

エンジニアがSQLを勉強すべき理由【将来も使われ続けます!】

更新日:

記事の内容

最近、このツイートが30万回も見られました。
自分が思っていた以上に、多くの人がSQLに関心を持っていたようなので、もう少しこのツイートを深掘りしていきたいと思います。
Linuxについてはこちらの記事に詳細を書きました。

SQLとは何か?

SQLとはデータベース(DB)を扱うための言語の名前で、日本ではエスキューエルと呼び、海外ではシーコールと呼びます。
データベースとはデータの入れ物です。
データベースに馴染みがない方は、Excelを想像してもらうと、わかり易いかもしれません。
Excelも一種のDBです。

また、データベースにはいくつかの種類があります。

データベースの種類

  • Oracle
  • MySQL
  • PostgreSQL
  • SQL Server
  • SQLite

基本的な機能に変わりはないのですが、OracleとSQL Serverは有償で、MySQL、PostgreSQLとSQLiteは無料です。
そのため、あまりお金のないWeb業界ではMySQLやPostgreSQLがよく使われています。
特にMySQLの人気が高いように思います。

SQLはどのように使われているのか?

データベースはあらゆるサービスで、ほぼ100%使われています。
Facebook、Google、Amazon、クックパッド、Line、DeNAといった全ての会社で使われています。
そのため、DBを扱うためのSQLが使われていないWeb系の会社は、ほぼ無いと思っていいはずです。
クックパッドさんが研修で説明していた画像にもDBサーバがあることがわかります。

未経験者はO/Rマッパーを使いがち

これほど、どこでも必ず使われているSQLなのに、経験が浅い人達はSQLを避けがちです。
昔はSQLを避けることはできなかったのですが、最近はRailsやLaravelといったフレームワークがO/Rマッパーという便利なものを提供するようになったので、SQLを知らない人達もチラホラといるようです。
ちなみに、O/Rマッパーとはこういうものを指します。
このソースコードの裏でSQLが実行されています。

SQLだとこんな感じになります。

O/Rマッパーを使った方が、直感的にわかり易いのは、よくわかります。
でも、O/Rマッパーだけを覚えるのはあまりよくありません。
なぜならば、O/Rマッパーは提供しているフレームワークごとに違いがあるからです。
O/Rマッパーを通して覚えると、全てのフレームワークごとに覚えなければいけません。
でも、裏で動いているSQLを覚えてしまえば、いくらでも応用が利きます。
そのため、私はSQLをシッカリと覚えることをオススメします。



データベースとSQLの知識が大事な理由

データベースとSQLの知識は、これから益々、大事になってきます。
例えば、こういったフォームを作成する時のことを考えてみましょう。

なんてことのない、ただのフォームです。

作りたいフォーム

  • 名前は、テキスト
  • 電話番号は、テキスト
  • 都道府県は、セレクトボックスで選択式

こういったWebアプリケーションを作るときの思考を考えてみましょう。

設計の順番

  1. カッコイイ、UI/UXを作る。
  2. データベースのテーブル設計をする
  3. プログラミング言語を考える
  4. フレームワークを考える
  5. 結果としてO/Rマッパーの種類が決まる

UI/UXは、いつ考えてもいいのですが、2番め以降は順番に考えていきます。
4番から先に考える人はいません。
データベースのテーブル設計をして、データ量や通信量をサラッと考慮したあとで他のことを考え始めます。
広告表示のようなスピードが優先されるアプリケーションで、Ruby on Railsは、あまり良いチョイスとは言えません。

またテーブル設計次第で、データを読み込む時間や発行すべきSQLの内容が変わってきます。
正規化してテーブルを2つに分けるか、あえて非正規してテーブルを1つにするというやり方もあります。
色々と奥が深いのが、データベース設計とSQLです。

さらに大事なことを伝えます。
将来的には、3から5の作業は減ってくると私は考えています。
つまり、プログラミング言語やフレームワークを決める必要はなくなります。
なぜならば、Firebaseのようなサービスが、データをそのまま返却するからです。

Ruby on RailsやLaravelといったフレームワークは、端的に言えばデータを加工する言語です。
それはつまり、新しい機能がデータを高速に加工してくれれば、Ruby on Railsは必要なくなるという意味です。

将来的なWebアプリケーション開発では、UI/UXを作成する人達とデータベース設計をする人達だけで、実装を行うことになるはずです。

この図でいえば、Webサーバ、Appサーバ、検索サーバは全て消えて、残るのはDBサーバだけになります。

SQLの勉強方法

これまで読んだところで、SQLを勉強しようと思った人もいるはずです。
そこでSQLとテーブル設計の勉強方法ができるサイトや本を紹介します。

Progate

まずはみんなが大好きなProgateをやりましょう。
Progateが苦手という方は、他の学習サイトでもかまいません。
将棋ソフトで有名な山本さんもProgateでSQLを勉強したそうです。

ドットインストール

ドットインストールのMySQL入門がオススメです。

paizeラーニング

PaizeのSQL入門編も勉強になります。

オススメの書籍

そして資格の勉強で基礎力をつけましょう。
Oracle Master Bronzeあたりを最初にオススメします。

その他にオススメの書籍は、こちらの記事に書きました。

【MySQL入門】MySQLの学習でオススメの本

まとめ

この記事では、エンジニアにとってSQLは必須という話を書きました。
基本を身につけた上で、より実践的な勉強をしたい人は、基本情報処理試験の午後にあるデータベースの問題をやってみましょう。
そうしてSQLを理解した上で、O/Rマッパーを勉強すれば、よりレベルの高いエンジニアになれるはずです。
みなさんのSQL力が上達することを祈っています。

Good luck for your engineer life!

Linuxの重要性を知りたい人は、こちらの記事を読んで下さい

エンジニアがLinuxを勉強すべき理由【LinuxはWeb業界では必須!】

基本情報処理試験のデータベースについて知りたい人は、こちらの記事を読んで下さい

エンジニアが独学で実務経験っぽいことを学ぶ方法

Rubyについて詳しく知りたい人は、こちらの記事を読んで下さい

プログラミング言語のRubyでできること

ブログの内容を復習をしたい人は、動画を見て下さい

IT業界について詳しく知りたい人は、この記事を読んで下さい

IT業界にいる人にオススメの本【2020年最新】

IT技術を使った会社の生存戦略 ソフトウェア・ファースト Sierを使った開発には限界がきており、これからは事業会社がエンジニアを雇用することで、ITの手の内化が必要だと、筆者は述べています。 現在のSierを使った開発方法の問題点と、事業 ...

続きを見る


30代からプログラミングを始めようか迷っている人は、この記事を読んで下さい

30代からプログラミングを始めることは可能なのか?【頑張ればギリギリセーフ】

エンジニアは人気の職種だと聞いていますが、若い人達が多い印象です。 30代から始めても間にあいますか? 2019年12月の有効求人倍率 記事やニュースなどで知っている人もいるかと思いますが、今、エンジニアは世界的に不足しています。 まずは、 ...

続きを見る


プログラミングスクールに行くか迷っている人は、この記事を読んで下さい

なんとなく、エンジニアになりたい人が無料のプログラミングスクールに行くべき理由【2020年最新】

有料や無料のプログラミングスクールが多すぎて、どこにしようか迷っています。 無料のプログラミングスクールは、お得そうに見えますが、実際の所はどうですか? メリットやデメリットなどがあれば教えて下さい。 無料のスクールを推す理由 まずは、私が ...

続きを見る


自分がプログラミングスクールに行っても大丈夫か知りたい人は、この記事を読んで下さい

プログラミングスクールに通って挫折する人と上手くいく人の違い

スクールに通っている人の3パターン プログラミングスクールに通っている人のパターンを整理すると、以下の3パターンに分かれます。 それぞれのタイプの特徴を、もう少し詳細に説明していきます。 それぞれのタイプの特徴 大した努力をせずに文句ばかり ...

続きを見る


ゼロからWebエンジニアになりたい人は、この記事を読んで下さい

ゼロからWebエンジニアとして就職する方法【何もない自分に積み上げていく】

ちまたには、「エンジニアになるための情報」で溢れかえっています。 ジョージさんが考える「Webエンジニアになる方法」を教えて下さい。 私が定義するWebエンジニア まず、最初に以下の図を見て下さい。 これが、Web業界で働く人達の大分類です ...

続きを見る


独学で実務っぽい経験を積みたい人は、この記事を読んで下さい

エンジニアが独学で実務経験っぽいことを学ぶ方法

エンジニアとして就職するためには実務経験が大事だと聞いていますが、就職しないことには実務経験を積むことができません。 どうやって、最初の実務経験を積んだらいいでしょうか? スクールの理想と現実 これからプログラミングを学ぼうとしている人が描 ...

続きを見る



関連コンテンツ

-IT業界, 初心者向け

Copyright© プログラミング道場 , 2020 All Rights Reserved Powered by AFFINGER4.