CategoryResourceRepost/极客时间专栏/MySQL 必知必会/课前准备/开篇词 | 在实战中学习,是解锁MySQL技能的最佳方法.md
louzefeng d3828a7aee mod
2024-07-11 05:50:32 +00:00

8.4 KiB
Raw Blame History

你好,我是朱晓峰。

工作二十多年来我一直在和MySQL打交道。我曾任摩根大通银行技术部副总裁带领团队为纽约、东京等分支银行提供数据存储和安全服务。目前正致力于开发基于MySQL的管理信息系统率领团队为包括国家开发银行、百度在线、北京西站等大型企业在内的客户提供了信息服务并获得了11项软件著作权比如商业数据管理系统、云POS系统等

因为具备丰富的MySQL开发经验从2015年起我受聘担任数据应用学院客座讲师开始制作职业技术培训课程。我和团队开发了一个为期2周、30个课时的MySQL入门集训课。我们打破了传统的教学模式不去讲零碎的知识点而是借助一个实际项目去讲必备技能帮助数百名初学者迅速掌握了MySQL的基本操作和核心技能。经过2周的集中培训有几十位学生顺利进入谷歌、苹果和亚马逊等公司。

多年的项目开发以及培训经历让我深刻地认识到熟练使用MySQL对技术人来说变得越来越重要是我们拿到心仪Offer的敲门砖。

要知道MySQL的入门门槛非常低还具有免费、开放源码等优势可以满足我们的多样化需求是目前被广泛使用的数据库之一。

看到这里你可能会问“我知道学习MySQL很重要也花了很多时间去学习可是学来学去还是连最简单的实际问题都无法解决该怎么办呢

别着急接下来我们就来聊聊高效的MySQL学习方法。

为什么学了很多知识你依然不会用MySQL解决实际问题?

很多人刚开始学习MySQL时都会面临一系列问题。

  • 市面上的MySQL资料这么多该怎么挑选呢
  • 我花了很多时间学习MysQL但是最后真的遇到问题时我发现我根本不知道怎么解决。
  • 我会一些基本的操作,但还是很容易踩到坑里。比如,我曾经把字段设置成浮点数,但我不知道它是不精准的,幸亏领导发现了,不然很可能会给项目带来损失。
  • 我储备了不少面试题,为什么一到面试就卡壳呢?
  • ……

其实,这些问题,本质上都是一个原因导致的:传统的资料都是在讲授一个个零碎的知识点,最多给出一些基础的小练习,让你进行一些简单的训练。所以,很多人花了很多时间去学习,好像懂得了很多东西,但是一遇到真实的项目问题,就会一头雾水,不知道如何用所学的知识去解决实际问题,更没有能力给出完整的解决方案。

我做过项目主管,也长期带团队,深知在工作中,最重要的绝对不是你的知识储备量,而是你解决实际问题的能力。但不幸的是,我见过太多面试时表现优异的人,最终却连试用期都过不了。

说到这里,我特别想和你分享一下我曾面试过的一个应届生的故事。

他是一名计算机专业的研究生讲起MySQL数据库的相关知识他说得非常清楚也很有条理所以我对他的期望值特别高。但是等他真正上手做项目时我才发现他的知识都停留在理论层面。

举个小例子,一次,我们需要开发一个餐厅的点餐系统,我就请他做数据库设计。没想到他设计出来的订单表,居然没有包含客户编号,这就导致无法通过关联查询获取客户信息。这样的数据库根本不满足业务的需求,自然是不能用的。

这并不是个例,很多人在谈到某些知识时可以出口成章,但是一遇到真实的商业环境,就会毫无头绪,或者是犯这样那样的错误。

在我看来,正确的学习方法,远比你投入的时间更重要。而实战,就是最高效的方法。

为此,我特意选择了一个连锁超市的实战项目手把手带你从0到1走完项目全流程不仅帮你掌握核心操作还能让你真正拥有实战能力能够迅速上手任何一个项目。无论你是刚刚走入职场想要迅速解锁MySQL这项技能还是对它感兴趣想要转岗到MySQL开发都可以在这个课程中达到你理想的目标。

之所以选择采用连锁超市的项目,有两个原因。

  1. 你对超市这个场景足够熟悉。我们都有去超市购物的经历,会看到货架上摆着玲琅满目的商品,各种各样的促销招牌,还有忙着扫码收银的店员……借助熟悉的场景来讲解,可以最大程度减轻你的理解成本。
  2. 超市背后的业务环节非常复杂产生的数据也多种多样而MySQL是处理这类业务的利器。当我们完整地解决了超市项目中所遇见的复杂数据问题时你再去做其他任何业务就可以更游刃有余一些。

总之,我会从实际问题出发,带你学习技术点,让你能举一反三,快速应用在实战项目中。如果用一个公式去概括,就是:项目的实际需求-->解决问题所需的知识点-->用好这些知识的实战经验

举个例子超市的商品非常多这些商品的名称、数量等必须要被准确地存储、及时地更新才能保证正常地售卖。这就是真实需求。要解决这个问题就要用到MySQL的数据存储功能我们就要掌握设计数据表、定义字段等知识确保数据的存储效率最高以及数据的唯一性同时减少错误。

不只是数据存储我会带着你解决连锁超市所面临的一系列实际问题从商品进货到库存查验再到店面售卖、会员营销等等。在这个过程中我会给你讲解MySQL是怎样存储数据的、如何才能高效查询、如何提供经营决策的依据、如何确保数据的可靠性和安全性……

即使你没有数据库的知识基础也完全不用担心只要你跟着我的思路就一定能真正地在短时间内入门MySQL拥有解决问题的能力。

这门课是怎么设计的?

说了这么多,课程的具体设计是怎样的呢?我来介绍一下。

课程总共有四个核心模块。

  • 实践篇:我会从项目最基本的数据存储和操作开始讲起,包括创建数据库、数据表、对表中的数据进行增删改查操作、使用函数、表与表之间的关联操作等,帮你快速掌握最基本的用法。
  • 进阶篇随着用户管理水平的不断提升对系统的要求也越来越多越来越复杂会用到MySQL的许多高级功能。我会手把手带你实现这些功能包括把程序存储在服务器上、利用突发事件来调用程序、在不改变存储结构的前提下创建虚拟表以方便查询等等。
  • 优化篇:项目投入运营以后,随着数据的积累,性能优化的问题逐步凸显。在这个模块呢,我会给你讲一讲数据库的设计规范,还会带你创建数据模型,帮助你来理清设计思路。同时,我还会讲到提升性能的具体方法。
  • 案例篇在课程的最后我会手把手带你从0到1设计一个连锁超市的信息系统数据库把前面讲到的知识点都融入到项目设计中不仅帮你巩固所学的知识更教会你如何灵活使用。

除此之外,在课程正式开始之前,我会用图片+音频+视频的形式带着你安装MySQL及必备的图形化管理工具Workbench。同时我还特意设置了一个特别放送模块给你讲解MySQL 8.0的新特性、空间定位的方法,以及大厂的高频面试题,帮你轻松拿下面试。

最后我还想说MySQL是一个非常优秀的数据库里面包含了很多经典的设计思想。虽然现在你不需要掌握得这么深但是我还是建议你多多体会这些思想这会让你提前建立起大局观还可以帮助你从更高的层面去看待所遇见的实际问题。

在这门课程里,我会把我这么多年的经验毫无保留地分享给你,欢迎你来学习这门课,也欢迎你把咱们的课程分享给你的朋友或同事,邀请他们和你一起学习,共同成长。