数据库这门课为什么这么难学,该怎么学?

IMcoolgeek 秀才 2021-09-18 17:07:20

本人在菊厂十来年的职业生涯中一直深耕数据库方向。也带着团队。

这里,个人针对数据库的学习,说说自己的一些发展看法和经验。

 

个人认为,学习任何一门技术都是有目的的:要么是为了考试不挂科、要么就是为了靠技术赚钱吃饭等等。

我们必须以目标为导向,寻找我们学习数据库的理由。毕竟没有人愿意通过学习数据库技术来修身养性吧。

既然学习数据库技术是带有浓浓的功利性质,那么我们针对不同的目标,应该怎么学习?如何快速达到我们的目标?

 

功利一:考试不挂科

对于大多数在校大学生而言,“不求满分,但求及格”的心态很正常,毕竟我也是过来人。

而对于学霸们,这条建议就忽略吧,毕竟门门满分是基本目标。

 

你觉得数据库内核代码难,不好学?

那考试会考吗?都考哪些? 考试不考的话就可以先放一放,忘掉烦恼。

你觉得数据库存储过程写起来很费劲?

那考试会考吗?都考哪些? 考试不考的话就可以先放一放,忘掉烦恼。

你觉得数据库功能参数非常多,既记不住,又难以明白其原理?

那考试会考吗?都考哪些? 考试不考的话就可以先放一放,忘掉烦恼。

 

针对这些难题都知道怎么面对了,试问还有什么难的吗?

那么,如何实现数据库学好呢?

记得当初我们学习的课本是《数据库概论》,作为学生,考试内容当然是从课本中来。

高考是怎么过来的? 就学习一本书,考试60分通过而已,很困难吗?

概念原理、关系模型、物理模型、E-R图、数据存储类型、ACID特性、数据库三范式等等概念性的知识点,就当语文来学习,总结、提炼并背诵。

重点是数据库SQL语句,你把它当数学题做,做多了就熟练了。

 

考前一周怎么办? 老师画的重点必须整明白,过来人都知道。

 

这样,一门“语文”+一门“数学”,还有老师画的重点,考试通过我认为对于我们普通的大学生而言不是问题吧。

 

 

功利二:靠技术吃饭

在准备拼命奋斗前,我们需要明白,当下想吃一碗什么样的饭?

数据库相关的IT技术岗位,常见的主要是:应用开发、内核开发、DBA等。

 

2.1 应用开发岗位

关于应用开发岗位,如果涉及到数据库技术,常见的就是以数据库使用为主。

此时,我们完全可以认为,数据库就是一款存储数据的软件而已,应用开发只要会使用它就行了。

这样,不同的数据库版本、不同的管理方式、不同的工作原理、不同的架构设计等等,大部分我们可以不用关心。

在数据库方面,我们重点就是放在SQL语句的编写、存储过程函数的编写,以及数据库的基本常识就可以了。

针对存储过程函数的编写,完全可以当作就是一门编程语言,那么作为应用开发人员,搞编程是最拿手的技术了。

由此可以看到,把握技能重点内容,数据库对应用开发人员而言就不能算是难事,超出SQL代码以外的技术完全可以请DBA或内核人员帮忙搞。

 

2.2 数据库内核开发岗位

这个数据库内核开发岗位相比于应用开发岗少很多。

数据库是一套复杂的软件,需要多人协通开发,少则数百人,多则数千人。

这个岗位虽然与数据库有关,但是“责任田”很明确。

SQL引擎、存储引擎、安全、高可用、公共组件、客户端接口、数据库工具等等基本都有专人负责,由架构师或技术总监统一调度开发工作。

这里的开发技能是基本要求,对数据库底层原理、算法以及接口和函数调用要非常熟悉。

虽然要求对数据库底层非常熟悉,但由于“责任田”很明确,这个要求开发人员完全可以掌握属于自己的“一亩三分地”的数据库内核代码,其他的数据库功能有一个基本了解就可以了。

就拿我个人而言,每次咨询内核开发大佬们的问题时,总是先看看那张记录“责任田”的EXCEL表,找对人是关键。不然就会等到一个“Sorry~”的答案。

 

这个岗位重点突出、要求专而精,拥有匠心,逐个钻研,拿下自己的“责任田”就算满足要求了。如果一不小心,连其他人的“责任田”都拿下了,那恭喜你已经成为大佬了。

 

2.3 DBA岗

DBA的岗位目前还算比较多,侧重点是数据库管理。

从绝大多数的DBA课程就可以看到,基本的学习路线是:

Linux基础-->安装部署和集群搭建-->SQL语句-->对象管理-->底层技术讲解-->备份恢复和容灾技术-->性能调优。

目标如果是从事DBA岗位,那么建议可以遵循这个学习路线去学习。

从个人的学习经验说,刚开始搞懂数据库的所有功能确实有些吃力,但是IT技术的学习基本都是遵循着先模仿、再深入、最后再超越出师。

这方面的数据库学习,建议寻找专门的DBA课程做一个系统的学习,模仿-->探究-->融会贯通。

作为DBA,数据库的稳定运行是职责所在,它要求我们对数据库的功能使用非常了解。所以,侧重点在数据库管理方面。

关于数据库内核的研究,可以帮助我们更好地完成DBA工作,但并不要求我们精通。

关于存储过程、SQL的熟练程度,对DBA的要求主要是会简单和常见的SQL编写就可以了,如果是偏SQL优化的DBA,还需要对SQL执行逻辑和算子非常熟悉,要知道利用数据库的工具诊断和优化SQL。

 

总而言之,数据库是一门技术,它难与不难主要看自己当下的侧重点,掌握学习思路和学习方法,抛去暂时用不到的技术内容,可以大幅降低学习数据库的难度。

凡事基本都是先易后难,先把必须的那些技术内容学到手,满足当下需求是王道。

然后,随着经验累积,厚积薄发,技术更上一层楼也就显得顺理成章。

 

以上内容仅代表个人观点。

也欢迎大家和我多多交流,一起为国产数据库发展贡献出自己的力量。

...全文
1683 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-大数据 发布问题, 以便更快地解决您的疑问

68,589

社区成员

发帖
与我相关
我的任务
社区描述
汇集数据库的爱好者和关注者,大家共同学习、探索、分享数据库前沿知识和技术,像松鼠一样剥开科学的坚果;交流Gauss及其他数据库的使用心得和经验,互助解决问题,共建数据库技术交流圈。
数据库数据仓库 企业社区 北京·海淀区
社区管理员
  • Gauss松鼠会
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎大家同时关注Gauss松鼠会专家酷哥。

https://www.zhihu.com/people/ku-ge-78-98

试试用AI创作助手写篇文章吧