引言
在我十年程序员生涯里,接触过各种各样的语言和技术,从大学时期开始的LAMP技术栈(Linux操作系统 + Apache服务器 + Mysql数据库 + PHP程序语言),到初入工作的Java系技术架构SSH(Structs + Spring + Hibernate),再到后来的SSM (Spring + SpringMVC + Mybatis),然后接触了SpringBoot,SpringCloud,再到现在转型的Go语言+云原生K8S技术栈,期间也接触并学习了JavaScript,vue3等前端技术。纵观我的职业生涯,程序语言、框架与架构技术都是不断地在更新与迭代,这其中很多技术都已经过时。回想起当年学习的情况,从基础的看教程,到研读课本,再到查阅官方文档,一个一个的把代码示例写出来,当时确实是花了大精力去学习,但是这些知识(比如php语言)到现在也几乎不会再使用,公司能提供的php工作岗位也少之又少,总之从现在作为一名有经验的开发来看,其实我是不建议大家去学php的,应该把学习的精力和时间放到更具性价比的学习科目上。
但是在我的职业生涯里,计算机的底层技术其实是变化不大,甚至是没有变化的,比如linux操作系统,数据库Mysql,虽然随着版本更新,架构与一些实现技术都进步了,效率也有更新,但是总体来说,至少80%甚至90%的东西都是没有变化的。计算机这种学科,越底层的东西其实是越稳定。
那么问题来了,底层的稳定也就意味着需求少,需求少也就意味着工作岗位少,市面上招java程序员的数量绝对是10倍甚至100倍于 操作系统架构设计师的。那么有没有一个折中或者是真正最具有性价比的计算机学科呢?我的答案是数据库,具体来说就是Mysql,不管你是做什么程序的开发,都绕不开Mysql数据库,而Mysql数据库其实变化也不大,目前来说市面上还没有出现能替代它的产品。开发面试的时候Mysql也是必考的知识,而且所占比例非常大。总的来说花时间精力学习Mysql绝对是超级具有性价比的。
基础知识
todo....
面试题
基本语法,索引,子查询,隔离级别,锁,分库分表 等等
todo....
结束语
todo....