文/温国兵

惰性人皆有之,也算是人的一大天性。几日之前便构思好此文,怎奈每日杂事繁多,今日才提起笔,作下此文。本文谈谈我与数据库的故事。

说起和数据库结缘,还得从大一说起。大一刚開始接触C语言,每日就沉浸在无止境的代码中。在网上查资料的过程中。看到别人用C语言写了一个小型的图书操作程序,数据库採用的是SQL Server,执行出来的效果图非常炫,惊叹原来还能够这样管理数据。熟知C语言的同学肯定对文件操作不陌生,当时我们敲代码假设有静态数据,都是放在文件中的。

直到后来做的C语言课程设计。我也是一大堆文件来保存静态数据。

至此心里有了一颗小小的种子,谁知道会在后来生根发芽。

大一下期的那个暑假,開始了实验室之旅。在实验室每天都是自学,当中就接触到了SQL Server和MySQL。关于实验室的种种事情,后面还会细说。

最開始接触SQL Server,我用我那破网在网上下载数G大的数据库安装文件。后来才知道我们学校的阳光软件站里有,且下载速度达十几M每秒。

花了数天把软件下载下来以后,在百度文库找了一个安装说明文档。依照截图一步步操作。整个过程可不那么顺利,而且SQL Server非常耗用内存。好几次机器都是未响应状态,一番折腾。最终搞掂了,别提多兴奋。接着把服务启动。打开SQL Server Manageorgiament Studio,对数据库一窍不通的我连个登录都折腾半天。

进入主界面。不知该做个啥。后来在实验室老师和学长的建议下,我在W3C上開始学习SQL的基础知识。写个查询,满足指定条件的数据就呈如今眼前;用个INSERT,就能把想要的数据插入到数据库。弄个UPDATE。就能把数据更新成想要的数据;写个DELETE,就能把不须要的数据删除。

如此简单的语句就能实现当初以为非常强大的功能,不得不感叹数据库的奇妙。后来阅读师兄的项目源代码。发现数据库使用的是MySQL。于是開始折腾MySQL。

Windows下的MySQL还是比較easy安装,但就是如此简单的操作也是折腾了非常久,而且非常多数据库配置选项也不大明确。只是有了SQL Server的一些基础,学习MySQL还是相对easy。接触过这两大数据库,而且有了一点Java Web的知识。于是開始做项目。

最開始的项目是练手用的,无非就是连接数据库,然后进行增删改查。

连接数据库使用的JDBC,这个过程中也遇到非常多问题,比方驱动版本号不正确、中文出现乱码、不能正确提交数据等等。我有个习惯,就是遇到问题喜欢自己捣鼓,在万不得已的情况下不向别人提问。

进入实验室不久。由于在网上找资料,非常多链接都定向到CSDN,于是开通了CSDN博客,这是一件正确的事的開始。

大二上期開始接触Oracle。

Oracle也是一款庞大的软件,在网上把安装文件下载下来以后。依照网上的安装文档,一步步開始操作。

安装完毕后。開始使用Oracle,这个数据库软件执行起来可真够呛,2G的内存表示压力山大,执行Oracle后其它的不论什么事情就别想做了。学习Oracle先是依照前辈的博客循序渐进。从基础的SQL。到PL SQL,再到简单的优化,整个过程的学习还算顺利。不会存在非常吃力的情况。此时的我对数据库抱有极大的热情和兴趣,而且慢慢形成了以后的奋斗价值观。

大二开设了数据库相关的课程,没记错的话课程名叫做「数据库原理」。

在正式上课之前还有一点时间准备,对数据库较熟悉的我在同学面前有了优越感,非常多同学到我那里拷贝数据库安装文件。而且麻烦我为他们安装数据库。

经过数次帮忙后,对整个操作已经到了了如指掌的地步。教授数据库原理的老师十分幽默。时不时在课上爆出个冷笑话。让人捧腹大笑。由于曾经接触过数据库。所以数据库介绍、关系数据库的基本理论、基础SQL等等知识学习起来都比較轻松。大二的我非常喜欢泡图书馆,常常翻阅四楼的计算机书籍。看到两本硕大的书,一本是Abraham Silberschatz所著的《数据库系统概念》。还有一本是David M. Kroenke所著的《数据库原理》,如此厚的著作看完都要非常久,更不提创作了。我小心翼翼地用双手从书架取下。兴高採烈地捧到书桌阅读。看了一两个小时,对作者不禁有敬畏之情。这些书籍堪称经典,肯定有他的道理,想深入数据库,这些书是必读的。

在学习数据库知识的过程中,难免会遇到各种各样的问题。遇到问题后,我首先尝试自己解决。自己解决不了再參考别人的解决的方法,解决后再用自己的方式总结,再以博客的形式发表。

这种学习方式优点非常之多,读者最好还是借鉴。后来学习数据库就多了一些深入。

比方工作之后,成为了SQL Server DBA,開始看SQL 优化的知识。而且用于实践。工作的过程中还写了不少的检查性能瓶颈的T-SQL。再比方MySQL,学习了MySQL的高可用、高性能技术,比方复制技术中的主从复制、双主复制、一主多从;高可用、高性能集群方案,比方MySQL Proxy、MySQL Cluster、MySQL MHA、MySQL MMM、DRBD+Heartbeat+MySQL、LVS+Keepalived+MySQL等等;还接触到MySQL的备份与恢复,比方冷备、热备、增量备份、热拷贝、延时备份等等;还接触到MySQL的体系结构,熟悉了常常使用的存储引擎。后来还看了不少MySQL相关的书籍,阅读了部分MySQL源代码,如此博大精深的技术,深知冰冻三尺非一日之寒。还须要花非常大的功夫。再比方Oracle,接触了Linux下Oracle的安装和配置、Oracle的体系结构、Oracle的备份与恢复、DG、RAC、Oracle优化等等。期间抱着官方文档啃,看过不少Oracle大牛的书,比方盖国强、白鳝等等。

在CSDN的私信、知乎、OSC、ITPUB,常常有人在问我问题,我在帮别人解决这个问题的同一时候也得到比較大的提高。在这个过程中学会了如何高速的寻求「帮助」,如何分享自己的所思所得,如何和别人高效地沟通。还懂得了学习技术不是学习技术本身,而是技术后面的本质问题。未来从事数据库行业还有非常长的路要走,用一句「路漫漫其修远兮,吾将上下而求索」来激励自己。

写到这里已经把大学的整个数据库旅程写完了。回过头看整个旅程,还是有非常多值得思考的地方。这里仅仅给出一个思考,那就是为什么要学习和深入数据库。而且把他当做以后的职业发展方向。个人觉得是兴趣问题。至于面试官怎么想与我无关。一次面试官问我这个问题,我回答是兴趣,他说事实上非常easy,无非是为了金钱嘛。当时我仅仅能用呵呵来笑对。仅仅能说每一个人的追求不一样。

有的人为了金钱而奔波,有的人为了实现自己的价值而奋斗;有些人一生碌碌无为,有些人一生完毕了诸多丰功伟绩。

结合自身经历,对以后想从事数据库行业的学弟学妹们还是有几点建议。第一是搞明确动机,想清楚自己是否适合这个行业,不要由于做数据库薪资高就盲目地跟风。

数据库行业外表光鲜。实质苦逼,并没有想象中的那么美好。第二是掌握好的学习方法。比方前面提到的通过博文分享形成自己的知识库、向前辈取经、练习和总结并进等等。第三是遇到问题的求助方式。不要遇到问题就向别人请教,假设不经过自己的思考,那你的提升会非常的小。假设一定要求助。能够採用发帖或者跟技术大牛发邮件的形式。但请务必注意提问的方式,把遇到问题的解决办法、 什么条件下导致这种错误、出现错误的平台、对应的错误信息和代码说清楚,还须要注意邮件的格式和必需的礼节。做人做事不仅要让自己舒服。更重要的是要让别人舒服。第四是把基本功抓牢。有研究表明,非常多非常成功的企业家曾经卖过报,小时候形成的创业童子功对以后的发展起着至关关键的数据。

某一个领域的基础知识就是基本功,和童子功有着非常相似的作用。地基不牢。何以成參天大楼。

落实到实处,数据库的经典书籍一定要找来读读,还有就是越是简单的东西就越须要搞明确为什么。

第五是不要好高骛远。我在平时的求职过程中。看到非常多公司开的薪资,有了2年经验的月薪在2万以上的不在少数。别人能开那么高的薪资。肯定你做的事对得起这份工资。

薪资越高,责任也就越大。从还有一方面讲,脚踏实地才干在以后有所作为。当你有了能力,不愁薪资。

昨天在微博上看到一句话。牛B的人才不用找工作,想想不无道理。第六是找到志同道合的好友,互相学习,这样会得到非常大的提高。比方我有幸结识@林水彬。在平时他给我非常大的帮助,在此感谢!

第七是找数据库相关的工作不要气馁,不要自暴自弃。也不要埋怨上天的不公,为什么这样说呢?由于应届毕业生找数据库相关的工作还是相对困难的,一个经验的硬性指标就会把你拒之门外。

要相信凡事都是能者居之。你有能力。足够好运,而且公司也愿意培养你。那恭喜你。坚持下去,前途一片光明。假设毕业不能立即找到数据库相关工作,能够先做其它行业,以后再考虑转型。方向就在那里,总错不了。希望本文能给读者带来丁点帮助。

诗和远方永远存在。

写着惊世骇俗的诗,心系能够眺望的远方。伴着沿途的风景,独自前行。

未完待续。

Good Luck!

Robin

2014年6月1日

相关文章

  • 程序猿的奋斗史(三十七)——大学断代史(一)——开篇
  • 程序猿的奋斗史(三十九)——大学断代史(三)——我和知乎邂逅
  • 程序猿的奋斗史(四十)——大学断代史(四)——我与博客
  • 程序猿的奋斗史(四十一)——大学断代史(五)——我的娱乐方式
  • 程序猿的奋斗史(四十二)——大学断代史(六)——我与图书馆
  • 程序猿的奋斗史(四十三)——大学断代史(七)——在实验室的日子与我的学业
  • 程序猿的奋斗史(四十四)——大学断代史(八)——大学的友谊
  • 程序猿的奋斗史(四十五)——大学断代史(九)——独自南下的岁月
  • 程序猿的奋斗史(四十六)——大学断代史(十)——忠告后辈——决赛

版权声明:本文博客原创文章。博客,未经同意,不得转载。

斗争程序猿(三十八)——历史朝代大学(两)——我与数据库的故事相关推荐

  1. 斗争程序猿(三十九)——历史朝代大学(三)——我知道几乎满足

    文/温国兵 遥望2011年的某个惶惶岁月,那是我与知乎相识的日子. 排除知乎站点的内測用户,我应该算得上第一批用户. 那时知乎网还未开放注冊,仅仅能通过好友邀请注冊,我费了九牛二虎之力,申请了好几次, ...

  2. 斗争程序猿(四十一)——历史朝代大学(五岁以下儿童)——我的娱乐

    文/温国兵 忙碌的大学生活总要有属于自己的娱乐方式.琴棋书画也好,游戏运动也罢. 上大学开通了人人网.新浪微博.腾讯微博.再到后来的微信.陌陌.来往.易信.米聊.Line.WhatsAPP,加上最開始 ...

  3. 三十八载,Oracle伴我同行—记我的职业成长之路

    2015年7月19日 三十八载 Oracle伴我同行 --记我的职业成长之路 2015,今年是Oracle公司38周年:2015,今年我已然38岁.在Oracle庆祝38岁生日之际,仅以此文作为回 ...

  4. OpenCV学习笔记(三十六)——Kalman滤波做运动目标跟踪 OpenCV学习笔记(三十七)——实用函数、系统函数、宏core OpenCV学习笔记(三十八)——显示当前FPS OpenC

    OpenCV学习笔记(三十六)--Kalman滤波做运动目标跟踪 kalman滤波大家都很熟悉,其基本思想就是先不考虑输入信号和观测噪声的影响,得到状态变量和输出信号的估计值,再用输出信号的估计误差加 ...

  5. 潘爱民:计算机程序的演进——我的程序人生三十年

    本文为<新程序员004>内容,与潘爱民畅谈他的程序人生.<新程序员004>即将上市,敬请期待.从MySQL之父.MariaDB创始人Michael "Monty&qu ...

  6. 第五章第三十八题(十进制转换八进制)(Decimal to octal)

    第五章第三十八题(十进制转换八进制)(Decimal to octal) **5.38(十进制转换为八进制)编写程序,提示用户输入一个十进制整数,然后显示对应的八进制值.在这个程序中不要使用Java的 ...

  7. 视频教程-三十八课时零基础matlab精通优化算法-Matlab

    三十八课时零基础matlab精通优化算法 图像和算法等领域有多年研究和项目经验:指导发表科技核心期刊经验丰富:多次指导数学建模爱好者参赛. 宋星星 ¥100.00 立即订阅 扫码下载「CSDN程序员学 ...

  8. 游戏光枪的三十年历史

    游戏光枪的三十年历史 一句话看专题:今年是FC光枪问世的三十周年纪念,让我们来说说这款周边的种种故事. 光枪和游戏的天作之合 作为游戏史上最著名的外设之一,光枪(Light gun)的历史实际上远比电 ...

  9. 程序员三十岁之后要考虑什么?

    程序员三十岁之后要考虑什么? 周六受邀参加了触控科技CocoaChina开发者社区举办的"移动游戏人才培养和创业机会"的沙龙.其间被问到一个问题:"程序员三十岁之后该怎么 ...

  10. Android项目实战(三十八):2017最新 将AndroidLibrary提交到JCenter仓库(图文教程)...

    Android项目实战(三十八):2017最新 将AndroidLibrary提交到JCenter仓库(图文教程) 原文:Android项目实战(三十八):2017最新 将AndroidLibrary ...

最新文章

  1. 电子书格式怎么在线转换为PDF格式
  2. Redis操作ZSet类型
  3. Redis和Memcache区别,优缺点对比
  4. picACG本地缓存目录_手机上本地存储的哪些文件、文件夹不能删?
  5. php后台无法登入,typecho 后台无法登陆
  6. oa工作流 源码_oa管理系统工作流是什么?类型、优势、功能有哪些?
  7. 中科大计算机竞赛夺冠,中科大斩获全国唯一特等奖,力压清华捧得华为毕昇杯...
  8. MFC初探 —— 捕获键盘消息
  9. zabbix之 qq邮件报警
  10. Linux常用命令参考手册02
  11. iOS系统玩ONS游戏的详细说明(越狱,非越狱)
  12. 计算机基础及photoshop应用好考吗,计算机基础及Photoshop应用考试技巧
  13. 2022读书感第一篇《小王子》
  14. 论文阅读:A Unified Span-Based Approach for Opinion Mining with Syntactic Constituents
  15. cad隐藏图层命令快捷键_教你学会天正CAD局部隐藏对象技巧
  16. 信息系统开发(JAVA)设计一个银行账户类
  17. DBlink 入门案例
  18. Java指定日期N个月后的日期
  19. PWM的调光基本原理
  20. 怎么制作app系统软件,大概需要多少钱

热门文章

  1. Mybatis接口Mapper内的方法为啥不能重载?
  2. 解决 IDEA 使用过程中让你觉得不爽的一些问题
  3. 短短的 RESTful API 设计规范
  4. 工业界AI项目落地的繁琐过程
  5. 马斯克员工参与新冠研究,论文登上Nature子刊
  6. 如何在Colab上实现近200万图片的精准检索匹配?
  7. 谁是全球最顶级AI实验室?
  8. 一篇文章搞懂人脸识别的十个概念
  9. Pytorch张量tensor的使用
  10. Redis中列表list数据类型(增加(在左侧、右侧或指定元素前后插入数据)、获取(获取表内指定范围的元素)、更新(获取指定索引位置的元素值)、删除(删除指定元素、count))