在我的职业生涯中, 我学到了很多技能, 但没有什么技术技能比 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/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。