数据库程序员面试笔试宝典(txt+pdf+epub+mobi电子书下载)


发布时间:2020-11-30 15:18:39

点击下载

作者:猿媛之家

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

数据库程序员面试笔试宝典

数据库程序员面试笔试宝典试读:

前言

程序员求职始终是当前社会的一个热点,而市面上有很多关于程序员求职的书籍都是针对基础知识的讲解,没有一本专门针对数据库程序员的面试笔试宝典。虽然网络上有一些IT企业的数据库面试笔试真题,但这些题大多七拼八凑,毫无系统性可言,而且绝大多数都是一些博主自己做的,答案简单,准确性不高,即使偶尔答案正确了,也没有详细的讲解,这就导致读者做完了这些真题,根本就不知道自己做得是否正确,完全是徒劳。如果下一次这个题目再次被考察,自己还是不会。更有甚者,网上的答案很有可能是错误的,此时还会误导读者。

针对这种情况,我们创作团队经过精心准备,从互联网上的海量数据库面试笔试真题中,选取了当前顶级企业(包括微软、谷歌、百度、腾讯、阿里巴巴、360、小米等)的面试笔试真题,挑选出其中比较典型、考察频率较高、具有代表性的真题,做到难度适宜,兼顾各层次读者的需求,同时对真题进行知识点的分门别类,做到层次清晰、条理分明、答案简单明了。本书特点鲜明,所选真题以及写作手法具有以下特点。

第一,考察率高:本书中所选真题全是数据库程序员面试笔试常考点,如数据库基础知识、操作系统、计算机网络、数据结构与算法、海量数据处理等。

第二,行业代表性强:本书中所选真题全部来自于顶级知名企业,它们是行业的风向标,代表了行业的高水准,其中绝大多数真题因为题目难易适中,而且具有非常好的区分度,通常会被众多中小企业全盘照搬,具有代表性。

第三,答案详尽:本书对每一道题目都有非常详细的解答,不只是告诉读者答案,还提供了详细的讲解。

第四,分类清晰、调理分明:本书对各个知识点都进行了分门别类的归纳,这种写法有利于读者针对个人实际情况做到有的放矢、重点把握。

由于图书的篇幅所限,我们无法将所有的程序员面试笔试真题内容都写在书稿中,鉴于此,我们猿媛之家在官方网站(www.yuanyuanba.com)上提供了一个读者交流平台,读者可以在该网站上传各类面试笔试真题,也可以查找到自己所需要的知识,同时,读者也可以向本平台提供当前最新、最热门的程序员面试笔试题、面试技巧、程序员生活等相关材料。除此以外,我们还建立了公众号:猿媛之家,作为对外消息发布平台,以最大限度地满足读者需要。

本书适合的读者对象主要有如下几类:

●刚毕业找工作的同学,及从其它岗位转数据库岗位的人员

●面试Oracle DBA初中级工作的人员

●面试Oracle开发工作的人员

●面试初级MySQL和初级SQL Server管理工作的人员

●Oracle运维人员

●数据库爱好者

阅读本书注意事项(1)由于篇幅原因,书中很多部分的实验内容、部分实用代码、部分结果或其它一些延伸性的知识,我都写在了随书pdf文件里,大家可以在pdf文件中阅读。还有部分内容不适合在pdf里展现的,我都写在了博客或微信公众号中,并且在pdf文件中给出了链接地址。读者若想了解更深层次的知识,可以去链接地址阅读。链接中给出的实验部分除非读者已经非常熟悉了,不然实验的内容需要读者亲自动手实践,以便更深刻理解其中的知识点。需要注意的是,这些延伸性的知识点有可能在面试中也会出现。例如,本书中讲解了ASMM和AMM的特性,但是并没有讲解有关大内存页的使用,而只是在小节后给出了相应的链接文章,但是,在一些高级DBA的面试中,面试官也有可能询问有关大内存页的知识。所以,对于有能力的读者,可以适当阅读研究一下这些知识点。(2)数据库中的知识繁多而复杂,本书只针对一些常见的重要知识点进行分析,更多更细节的内容可以参阅相关的官方文档。(3)本书中若没有特殊说明Oracle的版本的话,则默认实验版本为11.2.0.3。

在本书的编写过程中,得到了杨伟豪、刘雪梅、楚沔西、秦榆、夏男颖、刘鹏、杨建荣的帮助,在此深表感谢。

由于编者水平有限,书中不足之处在所难免,还望读者见谅。读者如果发现问题,可以通过邮箱yuancoder@foxmail.com联系我们。猿媛之家上篇 面试笔试经验技巧篇

想找到一份程序员的工作,一点技术都没有显然是不行的,但是,只有技术也是不够的。面试笔试经验技巧篇主要介绍了数据库程序员面试笔试经验、数据库行业发展、面试笔试问题方法讨论等。通过本篇的学习,求职者必将获取到丰富的应试技巧与方法。第1章 求职经验分享1.1 踩别人没有踩过的坑,走别人没有走过的路孔令波,目前就职于一家港资企业,担任数据库管理员。他的网名叫潇湘隐者/潇湘剑客,英文名叫Kerry,兴趣广泛,个性随意,不善言辞,执意做一名会写代码的DBA(Database Administrator,数据库管理员),混迹于IT行业。

收到李华荣的邀请,写一篇关于数据库方面的学习经验和感悟心得的文章,最初有点诚惶诚恐,因为自己在技术上也只能算个半吊子,无奈他不嫌弃,那就硬着头皮分享一下自己在数据库方面的一些学习经验以及心得体会吧,希望对刚入门的同行有所帮助。

关于学习方法,个人感觉因人而异,有些方法不见得适合所有人。个体不同,学习方式与学习效率也各有不同。找到适合自己的学习方法才是最重要的。所以,关于这方面的内容,大家最好秉承取其精华、去其糟粕的原则。

有句话说得很好,“以大多数人的努力程度之低,根本轮不到拼天赋”,一直以来,我都觉得自己天赋很差,但我相信勤能补拙,所以,我也比大部分人稍微努力一点,我勤奋地写博客,总结归纳数据库的各个知识点、遇到的案例等。另外,经常有网友问我如何学好数据库技术。很多人都在寻找捷径,他们相信有快速、高效的方法能让他们迅速精通数据库技能,忽略了数据库学习是日积月累的,是需要辛勤付出的。其实这是在舍本逐末,方法固然重要,但是如果你不勤奋,即使你有最好的方法,也一样学不好数据库。你见过哪些技术牛人的勤奋努力比普通人少呢?光看看他们写的博客,就知道他们看了多少文档、书籍,做了多少实验、测试。

有很多人会问,做DBA有没有前途?轻松不轻松?他们想转做DBA这一行。其实这个不好一概而论,很多时候是城里面的人想出去,城外面的人想进来。也许你想进入这一行或刚刚步入这一行,个人认为你应该先抛开这些问题,要先了解自己对数据库有没有兴趣。如果没有兴趣,你一旦步入这一行,你会觉得非常痛苦,因为你不能在工作中得到快乐,工作反而会给你带来无穷无尽的痛苦和烦恼。兴趣决定你能在这一行走多远,如果实在没有多少兴趣,奉劝各位不要贸然进入这一行。

兴趣也分一时的头脑发热和发自内心深处的喜欢,如果是前者,奉劝三思而后行。当然,很少有人一开始就对数据库兴趣浓厚,他们往往是在优化一个性能问题后,感觉特别有成就感,这样一种正向的自我肯定和激励慢慢演变成了对数据库的浓烈兴趣,然后想更多、更深入地了解一下数据库方面的知识,慢慢就演变成兴趣和动力了。当你有兴趣了,即使再苦再累,在你眼里也变成了一件美好的事情。很多人特别怕数据库出故障,但我却恰恰相反。对我而言,出现了故障和问题,我有时候甚至有点小兴奋,我觉得又多了一次经验积累和深入了解的机会。也许你觉得有点不解,举一个简单例子,喜欢看小说的朋友,可能连续看几个小时都不觉得累。试想如果让他去看一本《高等数学》,我想他翻看一两页就不想看了。

DBA这一行,往往要求你对数据库、操作系统、硬件存储、网络拓扑、系统架构、系统业务都有所了解,甚至还要擅长和其他同事交流、沟通。精通数据库就会耗尽你无穷的精力,所以,很多时候都是在考验你的学习能力,当然上面所涉及的有些知识,不是说要你全部精通,而是要你有所了解,因为数据库优化和性能问题诊断真的是很复杂,会涉及其中的某一方面,如果你一点都不了解,就很难从全局去分析、诊断问题。很多时候,人都是对自己不了解的东西有所畏惧,觉得这东西很复杂、很难掌握。其实你只要抱着开放的心态,多去了解和学习一下,慢慢就会积累一些知识的。

勤于思考也非常重要,这是一个优秀、资深的DBA所具有的特质。只有勤于思考的人,才能在数据库技术上更深入一层,才能将原理和实践结合起来,融会贯通,运用自如。很多时候,如果你在一个问题上比别人多思考一些,更深入一点,你就有可能掌握更多的知识,了解更多的原理。很多人遇到问题都习惯性咨询其他人,殊不知这就是懒惰的表现,不愿意思考,不愿意研究问题,自然也学不到东西。所以,对于广大希望从事DBA行业的人,我的建议是遇到问题,先自己思考,尝试解决,实在解决不了,再寻求其他途径解决。

最后一个就是态度问题,积极的心态和消极的心态在工作中的区别非常明显。如果你以积极的心态去解决工作中遇到的问题,把各种能尝试的方法都尝试一遍,你就会克服各种困难;如果你以消极的心态去解决工作中遇到的问题,你就会各种推脱,找各种理由逃避,本来可以积累经验的案例,结果也会错失。积极的心态能让你不断成长、进步,而消极心态则会让你慢慢固步自封、怨天尤人。1.2 一只小白成长为DBA的心路历程陈喜强,目前就职于一家金融理财产品企业,网名为宇墨轩/雨墨轩,英文名为Silence。他特别想成为一个专注于集数据库运维、优化以及开发于一身的全能选手。他的信念就是:脚踏实地,不断坚持,没有终点,永远在路上。

作为一名进入职场不到三年的“老司机”,我的职业生涯是曲折的。大学的时候因为专业的原因知道了数据库,最开始接触的是SQL Server 2000,那时还因为自己的计算机安装不上SQL Server 2005而果断放弃过,所以毕业以后从事的工作和数据库没有关系。我第一份工作是裸辞的,然后我就发誓,一定要进入到数据库这个行业里来。由于公司的原因,我开始了对陌生的Oracle领域的学习。刚开始的学习是辛苦的,刚去公司,老员工们都离职了,我不得不硬着头皮在各个项目上来回转,虽然总是出现各种问题,但是也是自己成长最快的一段时间。第二份工作就是自己的沉淀,专注MySQL的学习,专注SQL数据库优化以及开发的一些内容。

下面从以下几个方面谈谈关于成长的问题。

1)态度。态度决定一切。就我个人而言,我目前的状态就是每天都要学习,哪怕是周末的时间。针对态度,每个人都有一个度量,我一直认为:“只有自己端正态度的时候才是真正进步的时候”。

2)技术学习。这就有针对性了,我开始工作学习的时候,一开始只作为工作来干,但是同行的人可能又都有这样一个同感,你了解得越多,会越觉得这里边的知识很深。当面临自己不熟悉或者完全陌生的环境时,有些束手无策或者无从下手。后来一位前辈告诉我两句话,第一句:实验,当碰到问题的时候尽量提前实验一番,然后做到胸有成竹;第二句:当碰到别人没有碰到的问题时,要觉得你很庆幸,因为这种事情是可遇而不可求的,是成长的一剂良药。

3)面试。总体来说,基础知识很重要,经验是靠项目积累的,但是基础知识却是我们时刻都能用到的,只有扎实的基础再加上项目的磨练,才能成为真正的“老司机”。我个人认为,面试除了项目的滋润以外,数据库的体系结构很重要。目前,我依然在不断地学习体系结构,因为它能给我解惑,能给我带来一些解决未知问题的思路和动力。例如,对Redo,Undo的理解,当你了解它们在数据中的运行机制的时候,何愁不能解决其所带来的问题。

4)健康。IT界的我们都会为颈椎、腰椎的疼痛以及其他的以计算机为伴的生活亚健康状态所困扰,所以,一定不要忘了每天锻炼身体,注意饮食。有身体无碍,你的工作学习才能无碍。1.3 一个热衷于SQL优化的DBA成长经历易渠霖,目前是一家通信软件公司的技术顾问,网名为行者,一心想成为一位专注于数据库SQL优化的DBA。

我接触Oracle已经有5年了,在这期间数据库出现故障、缓慢几乎都是SQL语句性能变差在作怪,相信大家跟我遇到的情况差不多,所以优化SQL对整个数据库的维护至关重要。

提到SQL的优化,我认为首先要掌握数据库体系结构,对数据库有整体认识,整个SQL从开始查询到最终返回结果这个过程中,数据库全部的处理过程,然后看SQL的执行计划,就算是错的执行计划也要搞清楚为什么优化器会选择错误的计划,其实SQL优化的精髓就是“减少I/O”;其次一定要熟悉Oracle自身的函数和正则表达式,对SQL优化的改写非常有帮助。希望大家遇到问题时,多交流,多看书,多看论坛博客,多做实验。第2章 数据库程序员的求职现状2.1 当前市场对于数据库程序员的需求如何?待遇如何?

数据库开发人员和维护人员在市场上一直都是急缺人才。

如果想往DBA这个方向发展,那么Oracle、MySQL、DB2或非关系型数据库(如MongoDB)都可以。在Oracle收购MySQL后,MySQL的发展势头也不错,大公司也都在将部分数据库往MySQL迁移,例如阿里巴巴、盛大网络等等公司的部分数据库,很多都使用的是MySQL数据库。所以,市场上也有很大一部分的MySQL DBA的需求。Oracle自然就不用说了,关系型数据库中的老大,大部分有实力的公司使用的都是Oracle或者DB2与MySQL的结合。如果都使用Oracle,则成本太高,使用DB2一般都能享受到IBM提供的一条龙服务,从服务器到数据库再到数据库管理软件,DB2大部分都应用于金融领域。SQL Server的使用者相对较少,主要因为微软的软件对平台依赖性比较大,发展受到了限制。不过现在微软在开发基于Linux平台的SQL Server。如果只是想了解数据库的简单操作,那么可以从事数据库的开发工作。

小公司数据量有限,使用SQL Server数据库就可以满足日常的需求,但SQL Server的可移植性差,且相比DB2和Oracle,数据处理功能较差。其实,公司使用什么数据库需要看公司的性质,金融行业的公司或大企业、巨型企业、银行等肯定首选DB2或Oracle,一般不会使用其他数据库。因为这类公司数据量大,日数据量可达到过亿条,每日要处理如此庞大的数据量,必须选择DB2或Oracle。对于普通民营小公司,待处理数据量有限,使用SQL Server也完全能够满足需求。

有关待遇方面,可以看看猎聘网给出的对DBA的薪资:

总体而言,在有工作经验的情况下,在上海、北京这些一线城市中,最低的工资水平都可以达到1万元/月以上,二线城市在7000元/月左右,具体月薪,因人而异(备注:以上工资标准为2016年市场行情)。2.2 数据库程序员有哪些可供选择的职业发展道路?

一般来说,可供数据库程序员选择的职业发展道路有以下几个:数据库开发转DBA,DBA升项目经理,DBA升公司技术总监,转行做技术销售,转到大数据上,转到云计算上,转到数据库架构师上。2.3 当企业在招聘时,对数据库程序员通常有何要求?

下面来看看猎聘网给出的对Oracle DBA的招聘职位JD(Job Description,工作说明)。

岗位职责:

1)承担数据库逻辑结构设计、历史数据归档管理、数据库安装、调测、调优、日常维护、备份及恢复。

2)性能优化和数据库配置管理。

3)产品性能测试、分析和推动改善。

4)数据库技术支持。

5)数据架构研究工作。

职位要求:

1)具有3年以上的主流数据库开发经验,1年以上大型项目数据库架构设计及管理经验。

2)精通PostgreSQL数据库,熟悉Oracle、MySQL、SQL Server等主流数据库,熟悉数据存储、性能优化、数据挖掘及数据同步技术。

3)精通存储过程、函数。

4)具备通用数据库访问层逻辑代码封装能力。

5)精通数据建模技术,熟悉各种数据集成和数据迁移技术。

6)熟悉Linux/UNIX操作系统,具备TB级数据处理经验。

7)有OCP证书者优先。

8)具备良好的抽象思维,能理性地做出技术决策,具有风险控制意识。

下面再看看第二家公司的招聘MySQL职位JD。

工作职责:

1)负责线上、线下数据库环境的建设、迁移、维护。

2)负责数据库日常运行监控和性能调优。

3)负责预研新的数据库技术适应业务增长的需求。

4)建立数据库操作标准,开发数据库相关工具。

5)负责数据库方面技术难题的攻关。

岗位要求:

1)计算机及相关专业本科及以上学历,有大型互联网公司工作经验者优先。

2)5年以上分布式MySQL数据库系统的工作经验,精通/熟悉MySQL数据库的运行机制和体系架构。

3)精通/熟悉MySQL性能优化与调整,有大型分布式MySQL数据库系统的工作经验者优先。

4)较强基于RDBMS底层的代码的优化和Debug经验。

5)对数据库系统中间件的开发,以及分布式环节运维工具有经验。

6)了解主流分布式存储产品,如Redis、Hbase、MongoDB等产品,并有应用、开发、运维等经验。

7)了解主流数据库,并对数据库安全有很强的经验。

8)有良好的沟通协调能力,有责任心,思维逻辑性强。

对DBA而言,掌握数据库的基本知识是必不可少的。从数据库的操作角度而言,SQL语句才是基础中的基础。DBA一方面要根据需求在数据库中实现某些功能,另一方面要指导非数据库专业人士在数据库中完成他们想要实现的功能,所以,关于数据库中很多细节性的东西都需要DBA去掌握。

另外,需要了解数据库架构方面的知识,掌握SQL底层的一些知识。例如,一般学过数据库的人都知道索引对提高查询性能十分重要,但却不知道过多的索引也会给数据的处理带来负担。如果不了解索引的内部实现机制以及SQL使用索引的原理,那么就无法合理地创建索引。

在实现了用户的需求后,接下来的工作就是维护。再好的数据库架构,也需要经常被维护和保养。例如,原来很有效的索引因为索引碎片的增多,读取的性能就会下降;因为业务的变化,有的索引被删除了,那么如何保证重要的数据不会丢失,敏感的数据不会被不该访问的人访问。这一系列的问题,除了要调查、分析,并制订出一套完整的方案外,还需要相关的知识来实施这套方案。日常维护的过程中会遇到非常多的问题,这些问题除了SQL的问题外,很多是跟系统或者网络相关的,甚至是程序中出现的问题需要调试。所以,对于一名优秀的DBA而言,操作系统、计算机网络与通信、程序设计语言等相关知识都需要有所涉猎。

为了管理好数据库,特别是管理好多台服务器,DBA有时也需要编写工具来辅助完成任务。所以,懂Shell或Python也是必不可少的。

通过上面的分析,可以得出DBA需要的技能如下:

1)数据库知识(熟练掌握),包括SQL语言、备份、恢复、管理、数据库结构知识、数据库运行原理。

2)至少熟练掌握一种数据库,了解其他数据库(有一定应用能力)。很少有不与其他类型数据库交互的数据库,如果只熟练掌握一种数据库,那么当需要与其他数据库交互时,就会无从下手。

3)综合能力(有一定的应用能力)。有一定的程序设计能力,包括操作系统、网络与安全等知识。2.4 数据库程序员的日常工作是什么?

从DBA的角度而言,DBA的工作职责基本包含以下几点:

●每日监控数据库以保证其可用性。

●收集系统统计和性能信息,以便做定向分析。

●配置和调整数据库实例,以便可以在应用程序特定要求下达到最佳性能。

●分析和管理数据库安全性。控制和监视用户对数据库的访问,必要时需要开启数据库的审计功能。

●制定备份恢复策略,保证备份的可用性。

●升级RDBMS软件,在必要时使用补丁。

●安装、测试和评估Oracle新的相关产品。

●设计数据库表结构。

●创建、配置和设计新的数据库实例。

●诊断,故障检测和解决任何数据库相关问题。在有必要时,需联系Oracle 支持人员以便使问题得到解决。

●确保监听程序正常运行。

●与系统管理员一起工作,保证系统的高可用。

DBA的工作内容包含以下几点:

1.实时监控数据库告警日志

对于DBA来说,实时地监控数据库的告警日志是必须进行的工作,监控并且应该根据不同的告警级别,发送不同级别的告警信息(通过邮件、短信),这有助于及时了解数据库的变化与异常,及时响应并介入处理。

2.实时监控数据库的重要统计信息和等待事件

实时监控对于数据库的运行至关重要。要高度关注那些能够代表数据库重要变化的统计信息,并且据此发送告警信息。监控哪些统计信息应当根据不同的环境来区别对待,对于单机、RAC环境等各不相同。

3.部署自动的AWR报告生成机制

每天要检查前一天的AWR报告(AWR报告是Oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,就可以了解一个系统的整体运行情况,这就像一个人的全面的体检报告),熟悉数据库的运行状况,做到对数据库了如指掌。

4.每天至少了解或熟悉一个Top SQL

根据AWR报告,每天至少了解或熟悉一个Top SQL,能优化的要提出优化和调整建议。一个DBA应当对稳定系统中的SQL非常熟悉和了解,这样才可能在系统出现性能问题时快速地作出判断和响应。

5.部署完善的监控系统,并对重要信息进行采样

DBA应该对数据库部署完善的监控系统,并对重要信息进行采样,能够实时或定期生成数据库重要指标的曲线图,展现数据库的运行趋势。

6.全面深入地了解应用架构

对于一名DBA而言,一定要深入了解应用。在数据库本身变得更加自动化和简化之后,未来的DBA应该不断走向前端,加深对于应用的了解,从应用角度对数据库及全局进行把握和优化。

7.撰写系统架构、现状、调整备忘录

根据对数据库的研究和了解,不断记录数据库的状况,撰写数据库架构、现状及调整备忘录,不放过任何可能的优化与改进的机会。

当然,DBA的工作内容远不止上面列出的这几点,像数据库安装、数据库备份、数据库恢复等都属于DBA的工作内容,这里不再详述。2.5 要想成为一名出色的数据库程序员,需要掌握哪些必备的知识?

数据库应用可以分为数据库开发、数据库管理、数据库优化、数据库设计等,要根据自己的工作性质来选择性地学习。总体来说,需要了解数据库有哪些功能,数据库应用可以如何分类,并且要知道哪些是重点知识。如果你是一个数据库开发人员,那么你就应该首先了解SQL和PL/SQL的编写,而不是数据库的备份与恢复。数据库开发要求开发人员能利用SQL完成数据库的增加、删除、修改、查询的基本操作,能用PL/SQL完成各类逻辑的实现。

相比数据库开发来说,数据库管理人员的人数需求在IT市场要少得多。这是由工作性质决定的。无论生产还是测试环境,搭建数据库都不可能非常频繁。如果数据崩溃需要恢复、数据需要迁移、紧急故障需要处理的情况频繁出现,那么这个企业基本上也就无法正常运营下去了。但是一旦出现问题,管理人员无法及时恢复故障,将会受到来自各方面的指责,压力非常大。和开发人员相比,管理人员不需要每时每刻地忙碌着,但是却要时刻注意充电,提升自己的应急处理能力,还需要时刻对系统进行健康检查,以防不测。此外,虽然开发在逻辑思维方面的要求要高于管理,但是责任和压力却远没有管理这么大。数据库管理人员能完成数据库的安装、部署、参数调试、备份恢复、数据迁移等系统相关的工作,能完成分配用户、控制权限、表空间划分等管理相关工作:能进行故障定位、问题分析等数据库诊断修复相关工作。

不少企业没有设置专门的数据库优化岗位,它可能被融入资深开发、资深管理和资深设计人员的技能之中。对于有这样角色的企业来说,场景可能是这样的:生产环境运行缓慢,数据库管理人员通过跟踪诊断,查出问题所在,原来是系列SQL运行缓慢导致的整个数据库性能低下。这个时候对于数据库管理人员来说,他的工作结束了,然后优化人员介入,利用自己的知识优化这些SQL。在没有专门角色的场景下,可能是这个管理人员有着丰富的技能,他优化了这些SQL,也可能是资深开发人员或者是资深设计人员优化了这些SQL。但是从工作职责划分、从更专业的角度来说,应该设置专职人员。数据库优化所需要的人员是最难估算的,或许很多,或许很少,甚至没有,但是却是最重要的技能之一。数据库优化能在深入了解数据库的运行原理的基础上,利用各类工具及手段发现并解决数据库存在的性能问题,从而提升数据库运行效率,这个说着轻巧,其实很不容易。

数据库设计需要掌握的知识点最多,从事数据库设计是很不容易的,这是属于核心岗位的位置,少数人的规划和部署决定了产品最终的质量和生命力。从市场需求来说,从事设计的人员最少。一般来说,一个应届毕业生在相关开发、管理岗位努力工作两年后,都可以把开发及管理工作做得比较出色。要把优化工作做到得心应手应该至少要3年以上。要想从事设计相关工作,一般需要5年以上的工作经验。数据库设计需要深刻理解业务需求和数据库原理,合理高效地完成数据库模型的建设,设计出各类表及索引等数据库对象,让后续应用开发可以高效稳定。

另外,在就业的时候很多人眼高手低,一毕业就想从事设计及优化相关工作,结果碰了一鼻子灰找不到工作,因为企业根本不给你这个机会。也有人一个劲地想做数据库管理工作,但是由于管理相关的岗位比较少,结果成功的人寥寥无几。很多时候当兴趣和工作不匹配时,不要强求,要耐心找机会。例如,掌握SQL开发技巧后,可以匹配到很多适合自己的岗位,轻易地获取工作机会,而精通SQL及PL/SQL开发技巧,对管理优化和设计都是非常有帮助的。

刚毕业从事数据库开发相关工作,后续有机会再从事管理相关工作,期间兼顾优化相关的技能学习,主动承担起优化的任务,争取成为一个兼职或者专职的优化人员。最后,随着业务的熟悉,水到渠成的从事数据库设计相关工作。当然,大家千万不要误认为设计就一定比管理好,管理就一定强过开发,市场的供需决定了人员的比例,但是各个岗位都可以有出色的专家,最完美的还是在自己感兴趣的领域中大展手脚。

要想成为一名出色的DBA,需要掌握的知识非常多,尤其现今的很多企业对DBA的要求极高,一般都是要求熟练掌握一种数据库,同时熟悉其他数据库。下图展示了一名优秀的DBA需要掌握的一些基本内容。

对于这些内容,可以从一些博客或著名网站去学习,如作者的博客、itpub 论坛、Oracle 官方网站等。一定要学会对Oracle官方文档的搜索。工作环境没有外网的读者可以先在有外网的环境下去编者的云盘下载离线的官方文档。在Oracle学习初期可以利用编者制作好的CHM格式的官方帮助文档进行全文搜索。另外,编者在个人云盘里分享了很多的学习资料,包括数据库、Java等其他资料,读者可以有选择性地下载需要的学习资料。所以,总体来说,获取Oracle知识的可靠途径包括官方文档(Concepts 部分需要反复阅读)、好的培训机构、购买相关书籍、阅读博客和公众号、请教公司前辈、做实验摸索总结等。

接下来将业内名人的一些话送给大家:①勤奋、坚持,这两点非常重要;②在看不清方向的时候,低下头来把手中的工作做好;③向他人学习,向聪明人学习,借鉴成功者、同行者的经验非常重要;④敞开心胸,平淡看得失;⑤在正确的时间做正确的事;⑥行动有时候比思想更重要。2.6 各类数据库求职及市场使用情况

先看一组DB-Engines(该网站统计全球数据库的排行榜,网址为https://db-engines.com/en/ranking)发布的2017年8月份的数据库排名数据,前10名排名情况如下图所示。

在上图中,Oracle、MySQL和Microsoft SQL Server仍占据前三名,Oracle虽然排名第一,但得分却呈下降趋势,与上月相比少了7.00,与去年同期相比少了59.85。第二名的MySQL得分也有所下降,与去年同期相比少了16.73,与上月相比下降8.81。第三名的Microsoft SQL Server得分较上月下降了0.52,与去年同期相比,得分有比较高的提升。此外,PostgreSQL数据库排名也有所上升趋势。

下图是每个数据库的变化趋势。

可以看到,前3名一直保持着远高于其他数据库的地位。下图是前3名(Oracle、MySQL和Microsoft SQL Server)数据库的排名详图。

可以看到,第二名的MySQL和第三名的Microsoft SQL Server已经越来越接近第一名的Oracle,说不定在下一次排名发布时,就能看到不一样的三甲排名。

DB-Engines排名的数据依据于以下几个不同的因素:

●Google以及Bing搜索引擎的关键字搜索数量。

●Google Trends的搜索数量。

●Indeed网站中的职位搜索量。

●LinkedIn中提到关键字的个人资料数。

●Stackoverflow上相关的问题和关注者数量。

需要注意的是,这份榜单分析旨在为数据库相关从业人员提供一个技术方向的参考,其中涉及的排名情况并非基于产品的技术先进程度或市场占有率等因素。无论排名先后,选择适合与企业业务需求相匹配的技术,才是最重要的。

目前对于市场上数据库的求职,主要以Oracle和MySQL为主。对于NoSQL的要求,一般都是包含在Oracle或MySQL之内的,要求精通Oracle或MySQL,熟悉一种NoSQL数据库。Oracle主要在传统行业招聘,而MySQL主要在互联网行业招聘。第3章 如何应对程序员面试笔试?3.1 如何巧妙地回答面试官的问题?

在程序员面试中,求职者不可避免地需要回答面试官各种刁钻、犀利的问题,回答面试官的问题千万不能简单地回答“是”或者“不是”,而应该具体分析“是”或者“不是”的理由。

回答面试官的问题是一门很大的学问。那么,面对面试官提出的各类问题,如何才能条理清晰地回答?如何才能让自己的回答不至于撞上枪口?如何才能让自己的回答结果令面试官满意呢?

谈话是一种艺术,回答问题也是一种艺术,同样的话,不同的回答方式,往往也会产生不同的效果。在此,编者提出以下几点建议,供读者参考。首先回答问题务必谦虚谨慎。既不能让面试官觉得自己很自卑,唯唯诺诺,也不能让面试官觉得自己清高自负,而应该通过回答问题表现出自己自信从容、不卑不亢的一面。例如,当面试官提出“你在项目中起到了什么作用”的问题时,如果求职者回答:“我完成了团队中最难的工作”,此时就会给面试官一种居功自傲的感觉,而如果回答:“我完成了文件系统的构建工作,这个工作被认为是整个项目中最具有挑战性的一部分内容,因为它几乎无法重用以前的框架,需要重新设计”。这种回答不仅不傲慢,反而有理有据,更能打动面试官。

其次,回答面试官的问题时,不要什么都说,要适当地留有悬念。人一般都有猎奇的心理,面试官自然也不例外,而且,人们往往对好奇的事情更有兴趣、更加偏爱,也更加记忆深刻。所以,在回答面试官问题时,切记说关键点而非细节,说重点而非和盘托出,通过关键点,吸引面试官的注意力,等待他们继续“刨根问底”。例如,当面试官对你的简历中的一个算法问题有兴趣,希望了解时,可以进行如下回答:“我设计的这种查找算法,对于80%以上的情况都可以将时间复杂度从O(n)降低到O(logn),如果您有兴趣,我可以详细给您分析具体的细节”。

最后,回答问题要条理清晰、简单明了,最好使用“三段式”方式。“三段式”有点类似于中学作文中的写作风格,包括“场景/任务”“行动”和“结果”三部分内容。以面试官提的问题“你在团队建设中,遇到的最大挑战是什么”为例,第一步,分析场景/任务:在我参与的一个ERP项目中,我们团队一共4个人,除了我以外的其他3个人中,有两个人能力很给力,人也比较好相处,但有一个人却不太好相处,每次我们小组讨论问题时,他都不太爱说话,也很少发言,分配给他的任务也很难完成。第二步,分析行动:为了提高团队的综合实力,我决定找个时间和他好好单独谈一谈。于是我利用周末时间,约他一起吃饭,吃饭的时候,顺便讨论了一下我们的项目,我询问了一些项目中他遇到的问题,通过他的回答,我发现他并不懒,也不糊涂,只是对项目不太了解,缺乏经验,缺乏自信而已,所以越来越孤立,越来越不愿意讨论问题。为了解决这个问题,我尝试着把问题细化到他可以完成的程度,从而建立起他的自信心。第三步,分析结果:他是小组中水平最弱的人,但是慢慢地,他的技术变得越来越厉害了,也能够按时完成安排给他的工作了,人也越来越自信了,也越来越喜欢参与我们的讨论,并发表自己的看法,我们也都愿意与他一起合作了。“三段式”回答的一个最明显的好处就是条理清晰,既有描述,也有结果,有根有据,让面试官一目了然。

回答问题的技巧,是一门大的学问。求职者完全可以在平时的生活中加以练习,提高自己与人沟通的技能,等到面试时,自然就得心应手了。3.2 如何回答技术性问题?

在程序员面试中,面试官会经常询问一些技术性的问题,有的问题可能比较简单,都是历年的笔试面试真题,求职者在平时的复习中会经常遇到,应对自然不在话下。但有的题目可能比较难,来源于Google、Microsoft等大企业的题库或是企业自己为了招聘需要设计的题库,求职者可能从来没见过或者从来都不能完整地、独立地想到解决方案,而这些题目往往又是企业比较关注的。

如何能够回答好这些技术性的问题呢?编者建议:会做的一定要拿满分,不会做的一定要拿部分分。即对于简单的题目,求职者要努力做到完全正确,毕竟这些题目,只要复习得当,完全回答正确一点问题都没有;对于难度比较大的题目,不要惊慌,也不要害怕,即使无法完全做出来,也要努力思考问题,哪怕是半成品也要写出来,至少要把自己的思路表达给面试官,让面试官知道你的想法,而不是完全回答不会或者放弃,因为很多时候面试官除了关注你独立思考问题的能力外,还会关注你技术能力的可塑性,观察求职者是否能够在别人的引导下去正确地解决问题,所以,对于你不会的问题,他们很有可能会循序渐进地启发你去思考,通过这个过程,让他们更加了解你。

在回答技术性问题时,一般都可以采用以下6个步骤来完成。(1)勇于提问

面试官提出的问题,有时候可能过于抽象,让求职者不知所措,或者无从下手。所以,对于面试中的疑惑,求职者要勇敢地提出来,多向面试官提问,把不明确或二义性的情况都问清楚。不用担心你的问题会让面试官烦恼,影响你的面试成绩,相反还对面试结果产生积极影响:一方面,提问可以让面试官知道你在思考,也可以给面试官一个心思缜密的好印象;另一方面,方便后续自己对问题的解答。

例如,面试官提出一个问题:设计一个高效的排序算法。求职者可能丈二和尚摸不到头脑,排序对象是链表还是数组?数据类型是整型、浮点型、字符型,还是结构体类型?数据基本有序还是杂乱无序?数据量有多大,1000以内还是百万以上个数?此时,求职者大可以将自己的疑问提出来,问题清楚了,解决方案也自然就出来了。(2)高效设计

对于技术性问题,如何才能打动面试官?完成基本功能是必须的,仅此而已吗?显然不是,完成基本功能顶多只能算及格水平,要想达到优秀水平,至少还应该考虑更多的内容。以排序算法为例:时间是否高效?空间是否高效?数据量不大时也许没有问题,如果是海量数据呢?是否考虑了相关环节,如数据的“增删改查”?是否考虑了代码的可扩展性、安全性、完整性及鲁棒性?如果是网站设计,是否考虑了大规模数据访问的情况?是否需要考虑分布式系统架构?是否考虑了开源框架的使用?(3)伪代码先行

有时候实际代码会比较复杂,上手就写很有可能会漏洞百出、条理混乱,所以,求职者可以首先征求面试官的同意,在编写实际代码前,写一个伪代码或者画好流程图,这样做往往会让思路更加清晰明了。

切记在写伪代码前要告诉面试官,他们很有可能对你产生误解,认为你只会纸上谈兵,实际编码能力却不行。只有征得了他们的允许,方可先写伪代码。(4)控制节奏

如果是算法设计题,面试官都会给求职者一个时间限制用以完成设计,一般为20min左右。完成得太慢,会给面试官留下能力不行的印象,但完成得太快,如果不能保证百分百正确,也会给面试官留下毛手毛脚的印象。速度快当然是好事情,但只有速度,没有质量,肯定不会给面试加分。所以,编者建议,回答问题的节奏最好不要太慢,也不要太快,如果实在是完成得比较快,也不要急于提交给面试官,最好能够利用剩余的时间,认真仔细地检查一些边界情况、异常情况及极性情况等,看是否也能满足要求。(5)规范编码

回答技术性问题时,多数都是纸上写代码,离开了编译器的帮助,求职者要想让面试官对自己的代码一看即懂,除了字迹要工整外,最好能够严格遵循编码规范:函数变量命名、换行缩进、语句嵌套和代码布局等。同时,代码设计应该具有完整性,保证代码能够完成基本功能、输入边界值能够得到正确地输出、对各种不合规范的非法输入能够做出合理的错误处理,否则,写出的代码即使无比高效,面试官也不一定看得懂或者看起来非常费劲,这些对面试成功都是非常不利的。(6)精心测试

在软件界,有一句真理:任何软件都有漏洞。但不能因为如此就纵容自己的代码,允许错误百出。尤其是在面试过程中,实现功能也许并不困难,困难的是在有限的时间内设计出的算法的各种异常是否都得到了有效的处理,各种边界值是否都在算法设计的范围内。

测试代码是让代码变得完备的高效方式之一,也是一名优秀程序员必备的素质之一。所以,在编写代码前,求职者最好能够了解一些基本的测试知识,做一些基本的单元测试、功能测试、边界测试以及异常测试。

在回答技术性问题时,注意在思考问题的时候,千万别一句话都不说,面试官面试的时间是有限的,他们希望在有限的时间内尽可能地去了解求职者。如果求职者坐在那里一句话不说,不仅会让面试官觉得求职者技术水平不行,还会觉得求职者的思考问题的能力以及沟通能力可能都存在问题。

其实,在面试时,求职者往往会存在一种思想误区,把技术性面试的结果看得太重要了。对于面试过程中的技术性问题来说,结果固然重要,但也并非是最重要的内容,因为面试官看重的不仅仅是最终的结果,还包括求职者在解决问题的过程中体现出来的逻辑思维能力以及分析问题的能力。所以,在面试的过程中,求职者要适当地提问,通过提问获取面试官的反馈信息,并抓住这些有用的信息进行辅助思考,从而获得面试官的青睐,进而提高面试的成功率。3.3 如何回答非技术性问题?

评价一个人的能力,除了专业能力,还有一些非专业能力,如智力、沟通能力和反应能力等,所以在IT企业招聘过程的笔试面试环节中,并非所有的笔试内容都是C/C++、数据结构与算法、操作系统等专业知识,也包括其他一些非技术类的知识,如智力题、推理题和作文题等。技术水平测试可以考查一个求职者的专业素养,而非技术类测试则更加强调求职者的综合素质,包括数学分析能力、反应能力、临场应变能力、思维灵活性、文字表达能力和性格特征等内容。考查的形式多种多样,但与公务员考查相似,主要包括行测(占大多数)、性格测试(大部分都有)、应用文和开放问题等内容。

每个人都有自己的答题技巧,答题方式也各不相同,以下是一些相对比较好的答题技巧(以行测为例):

1)合理有效的时间管理。由于题目的难易不同,因此不要对所有题目都“绝对的公平”“一刀切”,要有轻重缓急,最好的做法是不按顺序回答。行测中有各种题型,如数量关系、图形推理、应用题、资料分析和文字逻辑等,而不同的人擅长的题型是不一样的,因此应该首先回答自己最擅长的问题。例如,如果对数字比较敏感,那么就先答数量关系。

2)注意时间的把握。由于题量一般都比较大,因此可以先按照总时间/题数来计算每道题的平均答题时间,如10s,如果看到某一道题5s后还没思路,则马上放弃。在做行测题目的时候,以在最短的时间内拿到最多分为目标。

3)平时多关注图表类题目,培养迅速抓住图表中各个数字要素间相互逻辑关系的能力。

4)做题要集中精力。只有集中精力、全神贯注,才能将自己的水平最大限度地发挥出来。

5)学会关键字查找。通过关键字查找,能够提高做题效率。

6)提高估算能力。有很多时候,估算能够极大地提高做题速度,同时保证正确率。

除了行测以外,一些企业非常相信个人性格对入职匹配的影响,所以都会引入相关的性格测试题用于测试求职者的性格特性,看其是否适合所投递的职位。大多数情况下,只要按照自己的真实想法选择就行了,不要弄巧成拙,因为测试是为了得出正确的结果,所以大多测试题前后都有相互验证的题目。如果求职者自作聪明,选择该职位可能要求的性格选项,则很可能导致测试前后不符,这样很容易让企业发现你是个不诚实的人,从而首先予以筛除。3.4 在被企业拒绝后是否可以再申请?

很多企业为了能够在一年一度的招聘季节中,提前将优秀的程序员锁定到自己的麾下,往往会先下手为强。他们通常采取的措施有以下两种:招聘实习生和多轮招聘。

如果应聘者在企业的实习生招聘或在企业以前的招聘中没被录取,一般是不会被拉入企业的黑名单的。在下一次招聘中,应聘者和其他求职者具有相同的竞争机会(有些企业可能会要求求职者等待半年到一年时间再次应聘该企业,但上一次求职的糟糕表现不会被计入此次招聘中)。

以编者身边的很多同学和朋友为例,很多人最开始被一家企业拒绝了,过了一段时间,又发现他们已成为该企业的员工。所以,即使被企业拒绝了也不是什么大不了的事情,以后还有机会的,有志者自有千计万计,无志者只感千难万难,关键是看你愿意成为什么样的人了。3.5 如何应对自己不会回答的问题?

在面试的过程中,对面试官提出的问题,求职者并不是每个问题都能回答上来,计算机技术博大精深,很少有人能对计算机技术的各个分支学科了如指掌。抛开技术层面的问题,在面试那种紧张的环境中,回答不上来也很正常。面试的过程是一个和面试官“斗智斗勇”的过程,遇到自己不会回答的问题时,错误的做法是保持沉默或者支支吾吾、不懂装懂,硬着头皮胡乱说一通,这样会使面试气氛很尴尬,很难再往下继续进行。

其实面试遇到不会的问题是一件很正常的事情,没有人是万事通,即使对自己的专业有相当的研究与认识,也可能会在面试中遇到感觉没有任何印象、不知道如何回答的问题。在面试中遇到实在不懂或不会回答的问题,正确的做法是本着实事求是的原则,告诉面试官不知道答案。例如,“对不起,不好意思,这个问题我回答不出来,我能向您请教吗?”

征求面试官的意见时可以说说自己的个人想法,如果面试官同意听了,就将自己的想法说出来,回答时要谦逊有礼,切不可说起没完,然后应该虚心地向面试官请教,表现出强烈的学习欲望。

所以,遇到自己不会的问题时,正确的做法是:“知之为知之,不知为不知”,不懂就是不懂,不会就是不会,一定要实事求是,坦然面对。最后能给面试官留下诚实、坦率的好印象。3.6 如何应对面试官的“激将法”语言?“激将法”是面试官用以淘汰求职者的一种惯用方法,是指面试官采用怀疑、尖锐或咄咄逼人的交流方式来对求职者进行提问的方法。例如,“我觉得你比较缺乏工作经验”“我们需要活泼开朗的人,你恐怕不合适”“你的教育背景与我们的需求不太适合”“你的成绩太差”“你的英语没过六级”“你的专业和我们不对口”“为什么你还没找到工作”或“你竟然有好多门课不及格”等,遇到这样的问题,很多求职者会很快产生我是来面试而不是来受侮辱的想法,往往会被“激怒”,于是奋起反抗。千万要记住,面试的目的是要获得工作,而不是要与面试官争个高低,也许争辩取胜了,却失去了一份工作。所以对于此类问题,求职者应该进行巧妙的回答,一方面化解不友好的气氛,另一方面得到面试官的认可。

受到这种“激将”时,求职者首先应该保持清醒的头脑,企业让你来参加面试,说明你已经通过了他们第一轮的筛选,至少从简历上看你符合求职岗位的需要,企业对你还是感兴趣的。其次,做到不卑不亢,不要被面试官的思路带走,要时刻保持自己的思路和步调。此时可以换一种方式,如介绍自己的经历、工作和优势,来表现自己的抗压能力。

针对面试官提出的非名校毕业的问题,比较巧妙的回答是:比尔·盖茨也并非毕业于哈佛大学,但他一样成为世界首富,成为举世瞩目的人物。针对缺乏工作经验的问题,可以回答:每个人都是从没经验变为有经验的,如果有幸最终能够成为贵公司的一员,我将很快成为一个经验丰富的人。针对专业不对口的问题,可以回答:专业人才难得,复合型人才更难得,在某些方面,外行的灵感往往超过内行,他们一般没有思维定势,没有条条框框。面试官还可能提问:你的学历对我们来讲太高了。此时也可以很巧妙地回答:今天我带来的3张学历证书,您可以从中挑选一张您认为合适的,其他两张,您就不用管了。针对性格内向的问题,可以回答:内向的人往往具有专心致志、锲而不舍的品质,而且我善于倾听,我觉得应该把发言机会更多地留给别人。

面对面试官的“挑衅”行为,如果求职者回答得结结巴巴,或者无言以对,抑或怒形于色、据理力争,那就掉进了对方所设的陷阱,所以当求职者碰到此种情况时,最重要的一点就是保持头脑冷静,不要过分较真,以一颗平淡的心对待。3.7 如何处理与面试官持不同观点这个问题?

在面试的过程中,求职者所持有的观点不可能与面试官一模一样。当与面试官持不同观点时,有的求职者自作聪明,立马就反驳面试官,如“不见得吧!”“我看未必”“不会”“完全不是这么回事!”或“这样的说法未必全对”等。也许确实不像面试官所说的,但是太过直接的反驳往往会导致面试官心理的不悦,最终的结果很可能是“逞一时之快,失一份工作”。

就算与面试官持不一样的观点,也应该委婉地表达自己的真实想法,因为我们不清楚面试官的度量,碰到心胸宽广的面试官还好,万一碰到了“小心眼”的面试官,他和你较真起来,吃亏的还是自己。

所以回答此类问题的最好方法是先赞同面试官的观点,给对方一个台阶下,然后再说明自己的观点,用“同时”“而且”过渡,千万不要说“但是”,一旦说了“但是”“却”就容易把自己放在面试官的对立面去。3.8 什么是职场暗语?

随着求职大势的变迁发展,以往常规的面试套路,因为过于单调、简明,已经被众多“面试达人”们挖掘出了各种“破解秘诀”,形成了类似“求职宝典”的各类“面经”。所谓“道高一尺,魔高一丈”,面试官们也纷纷升级面试模式,为求职者们制作了更为隐蔽、间接的面试题目,让那些早已流传开来的“面试攻略”毫无用武之地,一些蕴涵丰富信息但以更新面目出现的问话屡屡“秒杀”求职者,让求职者一头雾水,掉进了陷阱里面还以为吃到肉了。例如,“面试官从头到尾都表现出对我很感兴趣的样子,营造出马上就要录用我的氛围,为什么我最后还是悲剧了?”“为什么HR会问我一些与专业、能力根本无关的怪问题,我感觉回答得也还行,为什么最后还是被拒了?”其实,这都是没有听懂面试“暗语”,没有听出面试官“弦外之音”的表现。“暗语”已经成为一种测试求职者心理素质、挖掘求职者内心真实想法的有效手段。理解这些面试中的暗语,对于求职者而言,不可或缺。

以下是一些常见的面试暗语,求职者一定要弄清楚其中蕴含的深意。(1)请把简历先放在这,有消息我们会通知你的

面试官说出这句话,则表明他对你已经“兴趣不大”。为什么一定要等到有消息了再通知呢?难道现在不可以吗?所以,作为求职者,此时一定不要自作聪明、一厢情愿地等待着他们有消息通知你,因为他们一般不会有消息了。(2)我不是人力资源的,你别拘束,咱们就当是聊天

一般来说,能当面试官的人都是久经沙场的老将,都不太好对付。他们表面上彬彬有礼,看上去笑眯眯、很和气的样子,说起话来可能偶尔还带点小结巴,但没准儿一肚子“坏水”,巴不得下个套把你套进去。求职者千万不能被眼前的这种“假象”所迷惑,而应该时刻保持高度警觉,面试官不经意间问出来的问题,看似随意,很可能是他最想知道的。所以,千万不要把面试过程当作聊天,不要把面试官提出的问题当作是普通问题,而应该对每一个问题都仔细思考,认真回答,切忌不经过大脑的随意接话和回答。(3)是否可以谈谈你的要求和打算

面试官在翻阅了求职者的简历后,说出这句话,很有可能是对求职者有兴趣,此时求职者应该尽量全方位地表现个人水平与才能,但也不能像王婆卖瓜那样引起对方的反感。(4)面试时只是“例行公事”式的问答

如果面试时只是“例行公事”式的问答,没有什么激情或者主观性的赞许,此时希望就很渺茫了。如果面试官对你的专长问得很细,而且表现出一种极大的关注与热情,那么此时希望会很大,作为求职者,一定要抓住机会,将自己最好的一面展示在面试官面前。(5)你好,请坐

简单的一句话,从面试官口中说出来其含义就大不同了。一般而言,面试官说出此话,求职者回答“你好”或“您好”不重要,重要的是求职者是否“礼貌回应”和“坐不坐”。有的求职者的回应是“你好”或“您好”后直接落座,也有求职者回答“你好,谢谢”或“您好,谢谢”后落座,还有求职者一声不吭就坐下去,极个别求职者回答“谢谢”但不坐下来。前两种行为都可接受,后面两种行为都不可接受。通过问候语,可以体现一个人的基本修养,直接影响求职者在面试官心目中的第一印象。(6)面试官向求职者探过身去

在面试的过程中,面试官会有一些肢体语言,了解这些肢体语言对于了解面试官的心理情况以及面试的进展情况非常重要。例如,当面试官向求职者探过身去时,一般表明面试官对求职者很感兴趣;当面试官打呵欠或者目光呆滞,甚至打开手机看时间或打电话、接电话

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载