見出し画像

絶望プログラマー(IT業界でDB分からなくても生きていけますか?)

こんにちは。
先日出社しまして、お昼時に無性にパスタが食べたくなったんですよ。で、明らかにオサレ感漂うイタリアンのお店に入ったところ、見事に私以外、女性客でした。オサレな店のオサレな女性達の中にオッサンが独り・・
絶望です。
やはり遠くてもこちらへ行くべきでした。

というわけで、今日の話はデータベースでございます。
はたしてIT業界でDB分からなくても生きていけるのか?

はい。結論から言って生きていけます。
その根拠は、私がそうだからです。

しかしながら上を目指すのであればDBを極めるべきです。
私が見てきた稼ぐエンジニアは皆さんDBに強いです。
今ならAWSのAuroraが旬ですかね。昔はOracleでした。今もそうか。。。

私はポンコツですが私の周りは優秀でして、日々いろいろ教えてもらっています。

その中から知っていて損はない、現場で使えるスキルを以下に上げます。

SQL

これが書けないと始まりません。
昨今、プログラミング言語といったらスクリプト言語で、ReactなどJavaScriptベースの流行り物ばかり注目されますが、プログラム開発の半分はSQLだったりします。

データをDBに持たせるシステムが世の中の殆どであり、そのDBにデータを格納したり、検索して取得することができるプログラミング言語がSQLです。

スクリプト言語とSQLは別物であり、毛色が違います。なのでSQLだけ分かるSEがけっこういます。別にプログラムが書けなくてもSQLは書けるようになるし、システム開発の上流でDB設計は重要であり、SQLを書けることがメリットとなります。
この話を新人にするとだいたい混乱しますね。新人混乱あるあるです。

※DBを使わなければスクリプト言語やネイティブ言語だけでOKです。データをファイルで管理するものや、文字列を解析したり、簡単な演算処理などはDBを使わなくてもいけます。

正規化

設計の領域になります。上級プログラマーなら皆知っていることで経験豊富な人ほど拘りを持っています。

システムというのは処理速度が命です。速ければ速いほど良いのです。その速さを追求する上で正規化に携わる実戦経験が重要となってきます。

データベースをいかに効率良く設計するということがスピードに直結しますので、SQLが書けるようになったら正規化を勉強すると良いでしょう。

実行計画

これは業界入りたての誰もが現場に出て初めて聞くことじゃないかと思います。これを知っているか否かでインチキハッタリエンジニアかどうか判別できます。非常にテクニカルです。

くどいようですがシステムは処理速度が命でして、クレームやトラブルの原因上位に上がってくるのがだいたい処理が遅いなんですね。
ほんとに泣かされるんですよ。
「遅くて使い物にならん」「なんとかしろ」と散々クレームが来るわけで、不具合ではないんですけど直さないといけないわけです。

で、DBA(DataBase Administrator = DB管理者)の登場となります。
特殊能力DBチューニングが発動されて、処理速度が改善して、めでたしめでたし。

このDBチューニングの要素に実行計画というものがあります。物凄く重要な要素ですが、素人はこの存在すら知りません。
DBを学ぶ上でSQLと正規化がよくワードとして出てきますが、現場でトラブった時に必要となる知識はこの実行計画であることが圧倒的に多いです。

ちなみに私は実行計画についてチンプンカンプンで概念を少し押さえている程度ですので(ポンコツ)、実行計画については「DB 実行計画」でググれば分かりやすいサイトがたくさん出てきます。

スーパーなエンジニアを目指すなら、より多くの修羅場を経験してDBチューニングの腕を上げることです。
きらびやかな資格を持っていてもこのDBチューニングができないとハッタリエンジニアと言われてしまいますからね。めちゃかっこ悪いんですよ。私がそうなんですけどね、ガハハハ(笑)

DBA

あーそうそう、こちらでも書きましたがDBAについても触れておきましょう。

DBAはマジで凄いです。何度助けられたことか。
もう拝んでしまうくらい凄いです。IT業界テクニカルヒエラルキーのトップといっても過言ではないでしょう。

プログラム改修ならポンコツな私でも何とかなるんですが、DBはどうにもならんのです。システムトラブルやクレームの大半であるDBの処理速度が遅いに対して突如現場に現れ、2000行のSQLを鼻歌口ずさみながら書き直し、あれほど何やってもダメだったのに、あら不思議、40%速度改善という脅威の数字を叩き出し次の現場へと去っていく。。。

マジでかっこ良すぎる・・
私の中でDBAって救世主です。

地味だけどかっこ良い

というわけで、今日はDBのことを書いてみました。どんなにプログラム開発言語が変わっても、DBって根本は変わってないんですよ。
なので、その時代のメジャーDBを使いこなせれば一生安泰です。
Oracleだって基本は変わってないですからね。

DBは地味なので人気ないかもしれませんが、実はDBAという職種は超テクニカルで、その職につける人って限られています。

師弟関係って言うんですかね、お客様の本番データ=DBとなりますので非常にシビアな扱いを求められ、若手はなかなか触ることができません。よって自己学習が難しく、現場で師匠と共に行動し経験を積んでいくと、DBAの人から聞いたことがあります。
確かに直近のSESでも、ベテランが若手を指導しながらDBをいじっている姿をよく見ました。

DBを極めるには数多くの実戦経験が必須であり、勉強してどうこうできるレベルじゃないということなんですよね。
どれだけ修羅場をくぐったかなんです。
なので小さい会社だとDBAって1人か2人しかいないんですよ。それだけ貴重な存在です。

正直、私DBAに憧れていて、一度DBを真剣に勉強したことがあるんです。
その時にOracleMasterの資格を取ったんですけど、残念ながら実戦では芽が出ませんでした。

DBAって本当に凄いです。私の憧れです。

今日はこの辺で。


この記事が気に入ったらサポートをしてみませんか?