zoukankan      html  css  js  c++  java
  • 程序猿的奋斗史(三十八)——大学断代史(二)——我与数据库的故事

            文/温国兵


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


            说起和数据库结缘。还得从大一说起。大一刚開始接触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日


            相关文章

  • 相关阅读:
    Nginx负载均衡+代理+ssl+压力测试
    Nginx配置文件详解
    HDU ACM 1690 Bus System (SPFA)
    HDU ACM 1224 Free DIY Tour (SPFA)
    HDU ACM 1869 六度分离(Floyd)
    HDU ACM 2066 一个人的旅行
    HDU ACM 3790 最短路径问题
    HDU ACM 1879 继续畅通工程
    HDU ACM 1856 More is better(并查集)
    HDU ACM 1325 / POJ 1308 Is It A Tree?
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5163220.html
Copyright © 2011-2022 走看看