当前位置:首页 > 工业技术
程序员求职成功路  技术、求职技巧与软实力培养
程序员求职成功路  技术、求职技巧与软实力培养

程序员求职成功路 技术、求职技巧与软实力培养PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:周扬荣编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2010
  • ISBN:9787111315933
  • 页数:391 页
图书介绍:本书共分三部分。技术篇讲解了程序设计中最通用的技术问题,包括C/C++、数据结构与算法、内存管理、活动记录、程序调试、程序测试、多线程编程、进程通信等;开发篇将向读者介绍程序设计的各个领域,包括网络编程、数据库编程、内核编程、界面编程等;求职篇将向读者朋友介绍如何准备面试发挥自己的正常水平并通过实际的面试经为大家揭开大公司面试过程的神秘面纱,也探讨了程序员的软实力培养与职业发展规划。
《程序员求职成功路 技术、求职技巧与软实力培养》目录

上篇 技术 1

第1章 C语言 1

1.1 指针 2

1.2 位运算 15

1.3 运算符 19

1.4 数据对齐 21

1.5 实数 24

1.6 整数 26

1.6.1 编码 26

1.6.2 存储 27

1.7 字符 29

1.7.1 ASCII与UNICODE 29

1.7.2 char与wchar_t 30

1.7.3 ANSI_STRING与UNICODE_STRING 30

1.8 溢出 32

1.8.1 数组溢出 32

1.8.2 数溢出 33

1.8.3 缓冲区溢出 35

1.8.4 栈溢出 36

1.8.5 指针溢出 36

1.9 杂项 38

1.9.1 变量 38

1.9.2 #pragma 39

1.9.3 位域 40

1.9.4 static 42

第2章 C++ 44

2.1 C++与C的区别 44

2.2 构造函数、析构函数和赋值函数 45

2.2.1 默认生成函数 46

2.2.2 构造函数实现 46

2.2.3 成员初始化方法 47

2.2.4 基类析构函数 49

2.2.5 赋值运算 50

2.3 继承和多重继承 52

2.3.1 模板与继承的选择 52

2.3.2 菱形继承 52

2.4 多态与虚函数机制 54

2.4.1 什么是多态 54

2.4.2 虚函数机制 55

2.4.3 virtual与inline 57

2.5 重载(重整)、重写 59

2.5.1 重载 60

2.5.2 重写 60

2.6 STL模板库 63

2.6.1 vector 64

2.6.2 list 64

2.6.3 deque 65

2.6.4 set/multiset 65

2.6.5 map/multimap 66

2.6.6 stack 66

2.6.7 queue/priority_queue 67

2.6.8 算法 69

2.7 栈和队列的C++实现 70

2.8 String类 72

2.9 写时拷贝 73

2.10 智能指针 75

2.11 i++与++i 77

2.12 禁止或要求对象产生于堆中 79

第3章 数据结构与算法 81

3.1 算法设计步骤 81

3.2 字符串 86

3.2.1 实现strstr() 86

3.2.2 实现strtok() 88

3.2.3 实现strcpy() 89

3.2.4 实现strcmp() 90

3.2.5 实现tolower() 90

3.2.6 删除特定字符或字符组 91

3.2.7 识别字符串中的单词 91

3.2.8 逆置字符串 92

3.2.9 实现memcpy() 92

3.2.10 IP字符串与整数的转化 93

3.2.11 将一组字符串排序 95

3.2.12 正则式匹配 95

3.3 链表 97

3.3.1 逆向链表 97

3.3.2 链表排序 98

3.3.3 栈和队列的实现 98

3.3.4 链表合并与删除 101

3.3.5 循环链表 103

3.3.6 找出倒数第m个元素 104

3.4 树 105

3.4.1 树的遍历 106

3.4.2 二叉排序树 109

3.4.3 平衡二叉排序树 111

3.4.4 公共祖先 112

3.4.5 字典树 115

3.5 数 117

3.5.1 最大公约数 117

3.5.2 字符串整数转化 118

3.5.3 素数 119

3.5.4 字符串到实数转换 120

3.5.5 因式分解 121

3.5.6 不用比较运算符,求两个数中最大值 121

3.5.7 将一个整数分解为两个数的和 121

3.6 数组 122

3.6.1 数组的使用 122

3.6.2 找出数组中第二小数 123

3.6.3 找出数组中的最大数和最小数(要求O(3/2n)) 124

3.6.4 找出数组中重复的数 124

3.6.5 删除数组中重复的数(数组已经排好序) 125

3.6.6 用数组实现栈和队列 126

3.6.7 求中位数 127

3.7 排序 128

3.7.1 插入排序 129

3.7.2 选择排序 130

3.7.3 交换排序 132

3.7.4 归并排序 133

3.7.5 基数排序 135

3.8 查找 136

3.8.1 折半查找 136

3.8.2 二叉排序树查找 137

3.8.3 Hash表查找 138

3.9 递归 139

3.9.1 递归的概念 139

3.9.2 递归与非递归转化 140

3.9.3 递归的应用 142

3.10 算法设计关键 148

3.10.1 熟练使用循环语句 148

3.10.2 各种情形的完备考虑 149

3.10.3 尝试用递归解决问题 150

第4章 程序活动记录 151

4.1 内存空间 151

4.2 堆和栈的区别 152

4.3 函数调用规约 154

4.3.1 stdcall调用规约 155

4.3.2 cdecl调用规约 155

4.3.3 fastcall调用规约 155

4.3.4 thiscall调用规约 156

4.3.5 naked call调用规约 156

4.4 C语言活动记录(栈帧) 156

第5章 内存分配与管理 162

5.1 内存分配 162

5.1.1 VirtualAlloc() 162

5.1.2 new/malloc() 162

5.1.3 文件映射 163

5.1.4 分配比较 164

5.1.5 内核内存分配 165

5.2 内存管理 166

5.3 内存泄漏 166

第6章 程序调试 173

6.1 汇编基础 173

6.1.1 基本概念 173

6.1.2 汇编版Hello world程序 176

6.1.3 C代码与汇编 178

6.1.4 64位汇编 182

6.2 调试方法 182

6.2.1 动态执行调试 183

6.2.2 事后静态调试 183

6.2.3 打印调试信息 184

6.3 调试工具 185

6.3.1 VC 6.0 185

6.3.2 OllyIce 188

6.3.3 WinDbg 191

6.3.4 GDB 206

6.4 转储文件分析 212

6.4.1 Windows转储文件分析 212

6.4.2 Solaris转储文件分析 215

6.5 BUG修复 216

第7章 程序测试 218

7.1 测试方法 218

7.1.1 基本方法 219

7.1.2 数据测试 219

7.1.3 内存泄漏检测 220

7.2 测试阶段 221

7.2.1 单元测试 222

7.2.2 集成测试 222

7.2.3 系统测试 222

7.2.4 验收测试 223

7.2.5 回归测试 223

7.2.6 Alpha测试 223

7.2.7 Beta测试 223

7.3 测试种类 224

7.3.1 黑盒测试 224

7.3.2 白盒测试 224

第8章 文件读写 225

8.1 C语言文件访问 225

8.2 C++语言文件访问 228

8.3 VC文件访问 229

8.4 Win32文件访问 229

8.5 内核文件访问 230

第9章 多线程编程 233

9.1 同步机制 234

9.1.1 临界区 234

9.1.2 互斥量 235

9.1.3 信号量 237

9.1.4 事件 239

9.2 内核同步 240

第10章 进程通信 242

10.1 共享内存 242

10.2 管道 244

10.3 信号量 246

10.4 共享文件 247

10.5 消息机制 248

中篇 开发 251

第11章 网络编程 251

11.1 网络协议 251

11.1.1 协议模型 251

11.1.2 常用协议 253

11.1.3 系统堆栈 256

11.2 TCP编程 258

11.3 UDP编程 261

第12章 数据库编程 263

12.1 SQL语言基础 263

12.2 数据库连接 265

12.2.1 Oracle数据库 265

12.2.2 SQL Server数据库 266

12.2.3 DB2数据库 266

12.2.4 Informix数据库 267

12.2.5 Sybase数据库 267

12.2.6 MySQL数据库 268

12.2.7 PostgreSQL数据库 268

12.3 SQL语句执行 269

12.4 建立索引 270

12.5 存储过程 272

12.5.1 存储过程书写格式 272

12.5.2 存储过程的优点 273

12.5.3 存储过程的缺点 273

第13章 内核编程 274

13.1 Windows内核编程 274

13.1.1 IRP(I/O Request Packet)结构 275

13.1.2 应用程序与内核驱动缓冲交换 276

13.1.3 IOCTL控制 277

13.1.4 代码结构 278

13.1.5 安装测试 282

13.2 Linux内核编程 283

13.2.1 代码结构 283

13.2.2 安装测试 286

第14章 界面编程 287

14.1 MFC界面开发 287

14.2 GTK界面开发 312

14.3 Qt界面开发 314

第15章 搜索引擎 318

15.1 系统架构 318

15.2 网络蜘蛛 320

15.2.1 什么是网络蜘蛛 320

15.2.2 网络蜘蛛如何抓取网页 321

15.3 网页排序 324

15.4 中文分词 324

15.5 开源引擎 325

下篇 求职 326

第16章 求职环节 326

16.1 请勿错过实习 326

16.2 简历制作 327

16.2.1 简历的内容 328

16.2.2 制作简历的原则 329

16.2.3 简历实例 330

16.3 简历投递 333

16.4 笔试 334

16.5 面试 335

16.6 Offer选择 339

16.7 如何通过试用期 341

16.8 如何避免被裁员 345

16.9 如何更换工作 346

16.10 如何谈薪水 348

第17章 面试实战 350

17.1 P研究所 350

17.2 M公司 351

17.3 S公司 358

17.4 B公司 360

第18章 程序员软实力 363

18.1 团队协作 363

18.2 交流沟通 365

18.3 全局视野 365

18.4 学习思考 366

18.5 职业素养 368

第19章 职业规划 370

19.1 职业发展路线 370

19.1.1 发展路线规划 370

19.1.2 笔者的发展路线 372

19.2 创业之路 374

附录 376

附录A 如何提高编程能力 376

附录B C代码风格 380

附录C 推荐读物 389

附录D 推荐网站 390

参考文献 391

返回顶部