《程序员面试宝典(第4版)》的笔记(作者: 欧立奇; 刘洋; 段韬)

本书是由欧立奇、刘洋和段韬合著的《程序员面试宝典》第四版的精华提炼,全面覆盖C++等核心技术,为面试者提供宝贵的准备指南。
摘要由CSDN通过智能技术生成

程序员面试宝典(第4版)

欧立奇; 刘洋; 段韬

2.1 简历注意事项
2016-05-31
简历要尽量短。我们做过一个计算,一份中文简历压缩在2页左右就可以把所有的内容突出了。清楚、完整地把你的经历和取得的成绩表现出来。不要压缩版面,不要把字体缩小到别人难以阅读的程度。当你写履历时,试着问自己:“这些陈述会让我得到面试的机会吗?”然后,仅仅保留那些回答“是”的信息。
2016-05-31
求职简历一定要按照实际情况填写,任何虚假的内容都不要写。即使有的人靠含有水分的简历得到面试的机会,面试时也会露出马脚的。千万不要为了得到一次面试机会就编写虚假简历。被招聘方发现后,你几乎就再也没有机会进入这家公司了。而且对于应届生来说,出现这种情况后,还有可能影响到同校的其他同学。
2016-05-31
求职简历上一定要注明求职的职位。每份简历都要根据你所申请的职位来设计,突出你在这方面的优点,不能把自己说成是一个全才,任何职位都适合。不要只准备一份简历,要根据工作性质有侧重地表现自己。如果你认为一家单位有两个职位都适合你,可以向该单位同时投两份简历。
2016-05-31
作为求职的开始,我们要编写一份或者几份有针对性的简历,也就是按照对方的要求突出自己相关的经历。只要你的优势与招聘方的需要吻合,并且比其他应聘者突出的话,你就胜利了。
2016-05-31
简历上写上对工资的要求要冒很大的风险,最好不写。如果薪水要求太高,会让企业感觉雇不起你;如果要求太低,会让企业感觉你无足轻重。对于刚出校门的大学生来说,第一份工作的薪水不重要,不要在这方面费太多脑筋。
9.不要写太多个人情况不要把个人资料写得非常详细,姓名、电话是必需的,出生年月可有可无。如果应聘国家机关、事业单位,应该写政治面貌。如果到外企求职,这一项也可省去,其他都可不写。
10.不要用怪字怪体我见过一份简历,用中空字体,还有斜体字。这些都是很忌讳的。试想一个HR挑了一天的简历,很累了,还要歪着头看你的简历。你想你的胜算能有多大?其实用简单的宋体5号字就很好了,不用标新立异。
11.仔细措辞体现个人业绩有时候,简历上的几个字就足以“激怒”HR,使其停止阅读你的简历。招聘经理与招聘人员心中都有一张讨厌措辞表。他们厌烦那些在简历中尽可能多地堆砌动词、形容词或副词的人。“非常出色”、“做出很大的贡献”这些措词都是不合适的。最好能够改成“我完成了多少销售业绩,联系了多少家公司”。如果数字过于敏感不适宜表达,可以用百分比或企业的表彰来表达,还可以写上获得的证书。
2.2 简历模板
2016-06-01
下面是一份简历模板。
求职简历个人介绍:
姓名:柯小平性别:男
出生日期:1985/07/03学校及专业:西北大学计算机系软件与理论专业学历:硕士
移动电话:13096964884电子邮件:jinder24@263.net
IT &&英语技能:1.软件结构设计,需求分析能力
2.精通C/C++、C#,精通SQL3.熟悉Windows开发平台,精通.NET体系
4.熟悉Delphi开发工具,熟悉UML统一建模语言5.深入理解面向对象的思想,并能熟练地应用于具体的软件设计开发工作中
6.英语水平:国家六级项目经验(近期):
2010/1—2010/7与实验室人员合作,在基于ASP.NET+SQL 2005的平台下开发西北大学网络选课系统程序。负责帮助客户现场鉴定并解决有关网络技术及安全问题,保证客户网络畅通;整体安全服务解决方案项目的设计;网络培训课程的开发、设计;学校管理信息技术客户培训。
2009/9—2010/1与实验室人员合作,在基于Delphi+SQL 2005的平台下开发西北大学人事管理系统程序。该项目是西北大学基金项目,目的为完成西北大学教职员工信息的统一规范化管理。系统分为教师科、劳资科、人事科、人才交流中心等几部分,实现了各个部门之间的信息统一化协调管理。系统由Delphi、Power Designer、MS SQL开发完成。
工作经验:2009/9—2009/12
北大青鸟ACCP培训师2007/7—至今
就读于西北大学计算机系,在校期间,与实验室小组合作完成网上选课系统(ASP.NET+SQL 2000)和人事管理系统(Delphi+SQL 2000)的研发工作,以及教务管理系统(PowerBuilder 8+SQL 2000)的测试工作。应聘西北工业大学计算机三级网络任课老师,教授国家计算机三级相关内容。
奖学金:中国石油奖学金优秀学生一等奖。
其他特长:文学和美术功底较好,擅长网页制作,Photoshop和Dreamweaver水平较好。擅长表述,能够胜任教学工作。
个人评价:我无法掩饰对这份工作的渴望——一份有科研挑战的职位。
我一向认为理想分为两类,一类是实现自己的理想,另一类理想则通过自身得到实现。理想之于我则两者兼而有之,并稍稍倾向后者。作为老师,我喜欢传道、授业、解惑,形成一套自己的理论并潜移默化我的学生;同样,作为科研工作者,我也被C++的华贵多彩而吸引,那是真正的逻辑之美。此外,很多时候为了项目的完满,必须具备一种不破楼兰终不还的决心和不积跬步无以至千里的恒心。最后,我谦和、谨慎,富于团队精神。希望您能给我这样一个机会展示自己。谢谢。
柯小平2010.7.7
3.2 电话面试
2016-06-01
由于模式的限制,电话面试时间不会很长。在这个环节中,一定要表现得自信、礼貌、认真、严肃,这样会在声音上给对方一个良好的印象。如果声音慵懒、语气生硬,除非是技术题目及英文方面表现得足够好,否则很难予以平衡。
3.3 面试
2016-06-01
应聘初级职位,会针对你的编程能力和以往的项目经验进行重点的考查。如果面试官针对你做的某个项目反复提问,那么你就需要注意了,要么面试官在这个方面特别精通,要么就是未来的职位需要用到这方面的技术。我们应该抱着一种诚恳的态度来回答,对熟悉的技术点可以详细阐述,对于不熟悉的部分可以诚实地告诉面试官,千万不要不懂装懂。不过,我们认为可以引导与面试官的谈话,把他尽量引导到我们所擅长的领域。在SPSS公司面试时,在回答完面试官单链表逆置和复制构造函数问题之后,我把话题引入了我所擅长的设计模式方面,这是一种谈话的艺术。
应聘中级职位,不但会考查代码编写,而且会对软件架构或相关行业知识方面进行考查。代码编写方面,主要以考查某种编程技巧来判断你对代码的驾驭能力。比如某国际知名软件公司经常会让面试者编写malloc或atoi函数。越是简单的函数越能考验应聘者的编码能力。你不但要实现功能,而且还要对可能出现的错误编写防御性代码,这些经验都需要在实际编程过程中积累。应聘高级职位,应聘者肯定对技术或某个行业有相当程度的了解,这时主要是看你与职位的契合程度、企业文化的配比性(即将人力资源及成本配比作为服务体系的重要组成部分,将公司企业文化中核心理念及价值观作为客户服务的重要媒介)及整体感觉。应聘管理职位的话,考查的更多是管理技巧、沟通技巧和性格因素。架构师一般会考查行业背景与软件架构方面的知识,比如UML或建模工具的使用等;技术专家的职位则会针对相关技术进行深度考查,而不会再考查一般性的编码能力。
2016-06-01
建议准备一个日程本,记录每一次宣讲会、笔试和面试的时间,这样一旦公司打电话来预约面试,可以马上查找日程本上的空闲时间,不至于发生时间上的冲突。每投一份简历,记录下公司的职位和要求,如果一段时间以后(1个月或更长)有面试机会,可以翻出来看看,有所准备。根据不同的公司,准备不同的简历,千万不要一概而论,不同的公司care(在意)的东西不一样。每参加完一次笔试或面试,把题目回忆一下,核对一下答案,不会做的题目更要好好弄懂。同学们之间信息共享,总有人有你没有的信息。如果投了很多份简历,一点儿回音都没有,你得好好看看简历是否有问题,增加一些吸引HR眼球的东西。
3.4 签约
2016-06-01
这是签约前必然要谈的部分。这里面的内容非常多。待遇主要包括工资、奖金、补贴、福利、股票(期权)、保险、公积金。以下具体介绍各部分应注意的细节。● 工资:一定要问清楚是税前还是税后,这点不用多说。另外,还要问清楚,发多少个月。例如,税前工资7000,发13个月,则年收入7000×13=91000。很多单位有年底双薪,还有一些单位会发14~16个月不等。
● 奖金:很多单位的奖金占收入的很大一部分。例如,联想、百度、中航信都有季度奖、年终奖,另外还有项目奖,华为也有项目奖、年终奖,瞬联就没有奖金。不同的单位情况不同,奖金的数额也不一样,通常几千至数万不等,所以关于这一点,一定要问清楚,而且要问确定能拿到的奖金,取最低数。● 补贴:有些单位会有各种补贴,如通信补贴、住房补贴、伙食补贴等。例如,华为有800~1000的餐补。有些单位的补贴加在一起非常可观,也要问清楚。
● 福利:对于一些国企和事业单位来说,往往会有一些福利。例如,过节费、防暑降温费、取暖费、购物券、电影票、生活用品,等等。● 股票:对于很多公司来说,股票是他们提供的非常有诱惑力的福利。一般来说,已经上市的公司提供股票的可能性不大,反倒是一些即将上市的公司提供股票的可能性很大。对此,一定要看准机遇,不要轻易错过。
● 保险、公积金:即常说的“五险一金”。五险指的是养老保险,医疗保险,失业保险,人身意外伤害保险,生育保险,一金指的是住房公积金。这些是国家规定的,企业不得以任何理由拒绝为你缴纳,而且个人和企业出的比例是有规定的(但是也有一些企业不缴纳公积金的例子)。这里要注意的是缴费基数。很多单位在这上面做文章。例如,你的工资是5000,他们以2000为缴费基数,也就是说,用它去乘固定的比例给你缴纳五险一金,对此,一定要注意问清楚缴费基数。有些单位公积金比例上得非常高,所以你工资扣得也很多,那意味着公司交的钱更多,而一旦买房时,这些钱都是你自己的,所以,这部分收入不能忽视。此外,有些单位还会向你提供补充医疗保险、补充养老保险、补充意外保险、住房无息贷款或经济适用房等,也要问清楚。把这些收入加起来,得到年收入。然后再考虑工作地的工资水平和消费水平。例如,年薪8万在西安,无疑是比年薪10万在上海要高多了。● 年假:即每年除了法定节假日之外可以休息的天数,这个自然是高校最多(有寒、暑假),研究所、外企可能会少一些,比如PPFORM公司一年是15~20天年假,30天探亲假(不可以同时休);Nortel是第一年12天年假,然后每年递增,直到21天为止;华为没有年假,要靠每月最后一天周六加班来攒假期作为自己的年假。不上班的时候觉得假期无足轻重,上了班就会觉得假期弥足珍贵。
5.3 编程风格
2016-06-02
C中printf计算参数时是从右到左压栈的。
5.4 类型转换
2016-06-02
C++定义了一组内置类型对象之间的标准转换,在必要时它们被编译器隐式地应用到对象上。
隐式类型转换发生在下列这些典型情况下。1.在混合类型的算术表达式中
在这种情况下最宽的数据类型成为目标转换类型,这也被称为算术转换(Arithmetic Conversion),例如:2.用一种类型的表达式赋值给另一种类型的对象
在这种情况下目标转换类型是被赋值对象的类型。例如在下面第一个赋值中文字常量0的类型是int。它被转换成int*型的指针表示空地址。在第二个赋值中double型的值被截取成int型的值。3.把一个表达式传递给一个函数,调用表达式的类型与形式参数的类型不相同在这种情况下目标转换类型是形式参数的类型。例如:
4.从一个函数返回一个表达式的类型与返回类型不相同在这种情况下返回的表达式类型自动转换成函数类型。例如:
算术转换保证了二元操作符,如加法或乘法的两个操作数被提升为共同的类型,然后再用它表示结果的类型。两个通用的指导原则如下:(1)为防止精度损失,如果必要的话,类型总是被提升为较宽的类型。
(2)所有含有小于整型的有序类型的算术表达式在计算之前其类型都会被转换成整型。规则的定义如上面所述,这些规则定义了一个类型转换层次结构。我们从最宽的类型long double开始。
如果一个操作数的类型是long double,那么另一个操作数无论是什么类型都将被转换成long doubless。例如在下面的表达式中,字符常量小写字母a将被提升为long double,它的ASC码值为97,然后再被加到long double型的文字常量上:如果两个操作数都不是long double型,那么若其中一个操作数的类型是double型,则另一个就将被转换成double型。例如:
类似地,如果两个操作数都不是double型而其中一个操作数是float型,则另一个被转换成float型。例如:否则如果两个操作数都不是3种浮点类型之一,它们一定是某种整值类型。在确定共同的目标提升类型之前,编译器将在所有小于int的整值类型上施加一个被称为整值提升(integral promotion)的过程。在进行整值提升时类型char、signed char、unsigned char和short int都被提升为类型int。如果机器上的类型空间足够表示所有unsigned short型的值,这通常发生在short用半个字而int用一个字表示的情况下,则unsigned short int也被转换成int,否则它会被提升为unsigned int。wchar_t和枚举类型被提升为能够表示其底层类型(underlying type)所有值的最小整数类型。例如已知如下枚举类型:
相关联的值是0和1。这两个值可以但不是必须存放在char类型的表示中。当这些值实际上被作为char类型来存储时,char代表了枚举的底层类型,然后status的整值提升将它的底层类型转换为int。在下列表达式中:
在确定两个操作数被提升的公共类型之前,cval found和mval都被提升为int类型。一旦整值提升执行完毕,类型比较就又一次开始。如果一个操作数是unsigned long型,则第二个也被转换成unsigned long型。在上面的例子中所有被加到ulong上的3个对象都被提升为unsigned long型。如果两个操作数的类型都不是unsigned long而其中一个操作数是long型,则另一个也被转换成long型。例如:
long类型的一般转换有一个例外。如果一个操作数是long型而另一个是unsigned int型,那么只有机器上的long型的长度足以存放unsigned int的所有值时(一般来说,在32位操作系统中long型和int型都用一个字长表示,所以不满足这里的假设条件),unsigned int才会被转换为long型,否则两个操作数都被提升为unsigned long型。若两个操作数都不是long型而其中一个是unsigned int型,则另一个也被转换成unsigned int型,否则两个操作数一定都是int型。尽管算术转换的这些规则带给你的困惑可能多于启发,但是一般的思想是尽可能地保留多类型表达式中涉及的值的精度。这正是通过把不同的类型提升到当前出现的最宽的类型来实现的。
5.6 a、b交换与比较
2016-06-04
x&y是取相同的位与,这个的结果是x和y相同位的一半,x^y是取x和y的不同位,右移相当于除以2
5.7 C和C++的关系
2016-06-06
C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个函数的原型为void foo(int x, int y)。该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。
C++提供了C连接交换指定符号extern "C"解决名字匹配问题。
2016-06-06
C是一种结构化语言,重点在于算法和数据结构。C程序的设计首先考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。而对于C++,首先考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。
对于大规模数值运算,C/C++和Java/.NET之间没有明显的性能差异。不过,如果运算设计向量计算、矩阵运算,可以使用FORTRAN或者MATLAB编写计算组件(如COM)。大规模用户界面相关的软件可以考虑使用.NET进行开发(Windows环境下),而且.NET同COM之间的互操作十分容易,同时.NET对数据库访问的支持也相当好。
6.2 const
2016-06-07
1)先看情况1。
如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。
2016-06-07
const与#define相比有什么不同?
答案:C++语言可以用const定义常量,也可以用#define定义常量,但是前者比后者有更多的优点:● const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换中可能会产生意料不到的错误(边际效应)。
● 有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。在C++程序中只使用const常量而不使用宏常量,即const常量完全取代宏常量。
2016-06-07
默认const是外部连接的,C++默认const是内部连接的,这样,如果在C++中想完成与C中同样的事情,必须用extern把内部连接改成外部连接
6.3 sizeof
2016-06-07
在const成员函数中,用mutable修饰成员变量名后,就可以修改类的成员变量了。
2016-06-07
在VC中,我们可以用pack预处理指令来禁止对齐调整。例如,下面的代码将使得结构尺寸更加紧凑,不会出现对齐到4字节问题:
对于这个pack指令的含义,大家可以查询MSDN。请注意,除非你觉得必须,否则不要轻易做这样的调整,因为这将降低程序的性能。目前比较常见的用法有两种,一是这个结构需要被直接写入文件;二是这个结构需要通过网络传给其他程序。
2016-06-08
通过对sizeof与strlen的深入理解,得出两者区别如下:
(1)sizeof操作符的结果类型是size_t,它在头文件中的typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。(2)sizeof是运算符,strlen是函数。
(3)sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以“\0”结尾的。sizeof还可以用函数做参数,比如:输出的结果是sizeof(short),即2。
(4)数组做sizeof的参数不退化,传递给strlen就退化为指针。(5)大部分编译程序在编译的时候就把sizeof计算过了,是类型或是变量的长度。这就是sizeof(x)可以用来定义数组维数的原因:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赤龙绕月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值