logo
分类于: 互联网 计算机基础

简介

智取程序员面试

智取程序员面试 0.0分

资源最后更新于 2020-07-25 14:09:32

作者:[英] Edward Guiness

译者:石宗尧

出版社:人民邮电

出版日期:2015-01

ISBN:9787115396174

文件格式: pdf

标签: 程序员面试 面试 计算机 计算机与信息 编程 广图 图书馆k IT

简介· · · · · ·

作者从自己几十年间作为应聘者和面试官的经验进行总结,分12章介绍了程序员顺利通过面试需要注意的方方面面,涉及电话面试、面试前的准备、面谈具体注意事项、待遇的沟通、具体技术问题等。本书用160个问题引发读者对编程的思考并且给出答案详细分析,是一本全面的程序员面试指导书。

直接下载

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

第1章 招聘程序员:内幕  1
1.1 招聘的原因  2
1.1.1 公司计划扩张  2
1.1.2 特定的项目  4
1.1.3 有员工离职  5
1.2 同经理谈话  5
1.2.1 技术对话——不要有所保留  6
1.2.2 使用比喻  6
1.3 准备简历  6
1.3.1 囊括相关关键词,注意上下文  7
1.3.2 文笔要好  7
1.3.3 对工作经验作出解释  7
1.3.4 不要听信“简历不能超过两页”的建议  8
1.3.5 着重强调招聘广告中的技能  8
1.3.6 工作经历间不要留有情况不明的空白期  8
1.3.7 “读书、听音乐、看电影”  8
1.3.8 条理清晰  9
1.3.9 应届生简历  9
1.3.10 工作经验过多的简历  9
1.3.11 回归职场的简历  10
1.3.12 简历的常见错误  10
1.4 使用招聘网站  11
1.5 招聘中介  12
1.6 自己搜索职位  14
1.6.1 内向者的关系网  14
1.6.2 寻找雇主  15
1.6.3 接近雇主  16
1.6.4 坚持不懈  17
1.6.5 把握时机  17
1.7 其他途径  17
1.7.1 Twitter  17
1.7.2 Facebook  18
1.7.3 LinkedIn  19
1.7.4 博客  19
1.7.5 Stack Overflow  20
1.7.6 Skills Matter项目:“寻找你的师傅”  21
第2章 自信地应对电话面试  22
2.1 有的放矢  23
2.1.1 准备你的“小抄”  24
2.1.2 联系相关经历  25
2.1.3 处理难题  25
2.1.4 学会提问  26
2.1.5 电话面试准备清单  27
2.1.6 使用电话面试准备清单  27
第3章 现场面试  29
3.1 准备面试  29
3.1.1 了解充分  29
3.1.2 做足功课  30
3.1.3 着装得体  31
3.1.4 搞定不同类型问题  32
3.2 最重要的事  34
3.2.1 建立默契  35
3.2.2 其他努力  35
3.3 同样重要的事  36
3.3.1 表达要清晰  36
3.3.2 掌控面试时间  36
3.3.3 用事实说话  37
3.4 有效交流  37
3.4.1 用热情战胜紧张  37
3.4.2 使用手势  37
3.4.3 放慢语速  38
3.4.4 开始和结尾要清晰  38
3.4.5 重复主要观点  38
3.4.6 熟能生巧  38
第4章 合同谈判  39
4.1 了解招聘市场  39
4.2 算算账  40
4.2.1 考虑整体待遇  40
4.2.2 必须有、应该有、最好有  41
4.3 招聘中介的作用  42
4.4 开个好头  42
4.4.1 避免过分让步  42
4.4.2 理想和现实  43
4.5 衡量合同条款  43
4.5.1 知识产权  43
4.5.2 不竞争条款  44
4.5.3 不招揽条款  44
4.6 如何应对不利状况  44
4.6.1 “这是一份标准合同”  44
4.6.2 沉默回应  45
4.6.3 谈判结果恶化  45
4.7 谈判技巧总结  45
第5章 编程基础  46
5.1 二进制、八进制、十六进制  47
5.1.1 十六进制转换为二进制  48
5.1.2 Unicode  49
5.2 数据结构  51
5.2.1 数组  51
5.2.2 散列表  51
5.2.3 队列和栈  52
5.2.4 树  52
5.2.5 图  53
5.2.6 图的遍历  54
5.3 排序  54
5.4 递归  56
5.5 面向对象编程  57
5.5.1 类和对象  57
5.5.2 继承和复合  58
5.5.3 多态  59
5.5.4 用封装实现的数据隐藏  60
5.6 像函数式程序员一样思考  60
5.7 SQL  61
5.7.1 什么是ACID  61
5.7.2 基于集合的思考方式  61
5.8 全栈Web开发  61
5.9 解密正则表达式  62
5.9.1 用锚定和单词边界来查询内容   64
5.9.2 匹配字符集  65
5.9.3 用限定符约束的匹配  67
5.9.4 组和捕获  68
5.9.5 不要想当然  69
5.9.6 延伸阅读  70
5.10 辨认难题  71
5.11 问题  71
5.12 答案  73
第6章 代码质量  85
6.1 保持清晰  86
6.2 富于表达能力  87
6.3 效率和性能评估  87
6.3.1 大O表示法  88
6.3.2 性能评估  92
6.3.3 注意应用情境  92
6.3.4 目标明确  92
6.3.5 多次评估,取平均值  92
6.3.6 分治策略  93
6.3.7 先简后繁  93
6.3.8 使用分析器  93
6.4 理解“模块化”的含义  93
6.5 理解SOLID原则  94
6.5.1 单一职责原则  95
6.5.2 开放封闭原则  96
6.5.3 里氏替换原则  97
6.5.4 接口分离原则  97
6.5.5 依赖倒置原则  98
6.6 避免代码重复  99
6.7 问题  101
6.8 答案  106
第7章 常见问题  123
7.1 并发编程  124
7.1.1 竞态条件  125
7.1.2 锁  126
7.1.3 死锁  130
7.1.4 活锁  131
7.2 关系数据库  131
7.2.1 数据库设计  132
7.2.2 规范化  132
7.2.3 反规范化  133
7.2.4 填充规范化数据库  134
7.3 指针  134
7.3.1 接收值类型参数的函数  136
7.3.2 数组的处理  136
7.3.3 值传递和引用传递  137
7.4 设计问题  139
7.4.1 YAGNI 不是走捷径的借口  140
7.4.2 设计要考虑性能  140
7.4.3 不要只关注理论  140
7.5 不良编码习惯  141
7.5.1 错误的异常处理  141
7.5.2 不够谨慎  142
7.5.3 过于迷信  143
7.5.4 和团队对着干  143
7.5.5 太多的复制粘贴  144
7.5.6 预加载  144
7.6 问题  145
7.7 答案  146
第8章 编程语言的特性  151
8.1 二进制小数和浮点数  151
8.2 JavaScript  152
8.3 C#  152
8.4 Java  153
8.5 Perl  153
8.6 Ruby  154
8.7 Transact-SQL  154
8.8 问题  154
8.8.1 二进制小数和浮点数  154
8.8.2 JavaScript  155
8.8.3 C#  157
8.8.4 Java  158
8.8.5 Perl  160
8.8.6 Ruby  162
8.8.7 Transact-SQL  163
8.9 答案  164
第9章 软件测试:不只是测试人员的工作  194
9.1 单元测试  194
9.2 测试驱动开发  195
9.2.1 行为驱动开发  195
9.2.2 红、绿、重构  195
9.3 写出优秀的单元测试  196
9.3.1 运行速度快  196
9.3.2 尽量简单  196
9.3.3 目的明确  196
9.3.4 具有指导性  196
9.3.5 具有独立性  196
9.4 测试运行缓慢的模块  197
9.5 单元测试框架  197
9.6 模拟对象  199
9.7 问题  201
9.8 答案  203
第10章 选择合适工具  210
10.1 Visual Studio  210
10.2 命令行工具  210
10.3 PowerShell  211
10.4 Sysinternals 工具  212
10.5 管理源代码  212
10.5.1 Team Foundation Server  212
10.5.2 Subversion  212
10.5.3 Git  212
10.6 问题  213
10.6.1 Visual Studio  213
10.6.2 命令行工具  215
10.6.3 PowerShell  216
10.6.4 Sysinternals 工具  217
10.6.5 管理源代码  217
10.7 答案  218
第11章 冷僻问题  240
11.1 快速估算  240
11.2 脑筋急转弯  241
11.3 概率问题  241
11.4 并发处理  241
11.5 位操作技巧  241
11.6 使用递归算法  242
11.7 理解逻辑门  242
11.8 编写代码  243
11.9 问题  244
11.9.1 快速估算  244
11.9.2 脑筋急转弯  244
11.9.3 概率问题  245
11.9.4 并发处理  246
11.9.5 位操作技巧  247
11.9.6 使用递归算法  247
11.9.7 理解逻辑门  249
11.9.8 编写代码  250
11.10 答案  251
第12章 编程智慧  278
12.1 问题  278
12.2 答案  282
附录 准备小抄  309