在我的职业生涯中, 我学到了很多技能, 但没有什么技术技能比 SQL 更有用. 在我看来, SQL 是最有价值的技能, 有以下几个起因:
- 它在不同的工作和学科中都很有价值
- 只须要学习一次, 并不需要重新学习
- 你看起来像是个超级英雄. 当你晓得有很多人都对SQL不太精通的时候, 你就显得分外的弱小
让我对以上每一点都具体解释一下
SQL 是一个你能够随处应用的工具
无论你是什么工作, SQL 都会想方法让你的生存更轻松. 例如明天我作为一名产品经理, 我的工作是看数据, 剖析咱们在产品方面的效率如何, 并制订产品路线图. 如果咱们刚刚公布了一个新性能, 那么对于是否有人浏览过该性能的数据很可能就在关系型数据库中的某个中央. 如果我正在致力跟踪要害的业务指标, 比方月度增长, 同样也很可能就放在关系型数据库的某个中央. 在咱们所做的简直所有事件的另一端, 都很可能有一个应用 SQL 的记录零碎. 晓得如何能最原生地拜访这些数据, 就能够省去大量的精力, 而不必去问他人这些数据是什么.
但即便在成为产品经理之前, 我也会应用 SQL 来告知我零碎内产生了什么. 作为一名工程师, 它经常能让我比用 Ruby 或 Python 等脚本更快地获取我想要的信息. 当我的 webapp 速度变慢的时候, 理解执行的 SQL 和优化它的办法是不可短少的. 是的, 这有点超出了对 SQL 的根本了解...... 然而在查问中增加一个索引, 而不是滚动我本人的本地缓存, 这所晋升的效率很值得花额定的工夫去学习.
SQL 是持久性的
记得大概20年前, 我创立了第一个网页. 那是一个神奇的网页, 而后我引入了一些 Javascript 来使它更令人印象粗浅, 提醒用户点击 Yes/No 或给我一些输出. 而后大概 10 年后, jQuery 呈现了, 尽管它有时比拟啰嗦, 而且也有新的货色要学, 但它让货色整体上更丑陋, 所以我致力于重新学习 jQuery 的 JS 办法. 而后就跟上了 Angular -> React/Ember 的步调, 当初我有一整条流水线把根本的 Javascript 引入到我的网站中, 而事实是我依然在努力完成和 20 年前一样的事件, 让人点击 Yes/No.
相比之下, SQL 并没有真正扭转. (其实它曾经扭转了, 有古代的 SQL, 但我依然认为相比其余语言的变动不那么显著). 当然, 咱们每隔几年就会有一个新的规范, 偶然也会有一些新的货色呈现, 比方对窗口函数或 CTE 的反对, 但 SQL 的基础知识是十分通用长久的. 学习一次SQL能够让你在你的职业跨度中大量重复使用它, 而不用重新学习. 不要误会我的意思, 我喜爱学习新的货色, 但我宁愿学习一些真正新的货色, 而不是仅仅用另一种办法来实现同样的工作.
SQL 看起来比你想的更好
熟练掌握 SQL 人并不多, 大多数开发者跳过它, 很少有人真正理解 SQL, 所以把握 SQL 的人可能看起来比理论更像精英. 过来在一家领有数百名工程师的公司中, 我每周会收到多个同样的申请, 来自从高级工程师到次要工程师各种人:"嘿, 你能帮忙写一个查问吗?" 因为你很善于这样的事件, 能够帮忙其他人.
所以如果你还没有熟练掌握SQL, 还等什么? 你想看起来像个 SQL 弱鸡吗?
自己言: 其实我集体举得学好 SQL 带来的受害远比原作者形容的更多, 以下是我的几点感触:
- 学好 SQL, 有助于了解排序, 二分查找, B+ 树等数据结构和算法内容.
- 学好 SQL, 有助于了解和使用锁, 例如行锁, 表锁, 乐观锁, 乐观锁. 最终实现内功的修炼, 进而晋升零碎设计能力, 能够说这是成为一名架构师的捷径.
- 学好 SQL, 把握事务局部, 有助于学习 Spring 框架的内容, 这才是事务内容的本源所在。
原文链接: http://www.craigkerstiens.com/2019/02/12/sql-most-valuable-skill/