精华内容
下载资源
问答
  • 2011-06-08 01:05:00

    C/C++程序员面试指南

    编辑本段图书信息

      

     

    书 名: C/C++程序员面试指南   作 者: 杨国祥    出版社电子工业出版社   出版时间: 2010-4-1    ISBN: 9787121103599   开本: 16开   定价: 49.00元

    编辑本段宣传语

      从企业面试的角度来梳理C/C++程序员的技术功底   以技术经理的眼光来审视对C/C++编程知识的掌握

    编辑本段内容简介

      C、C++语言是IT行业的主流编程语言,也是很多程序员必备的软件基本功,是软件开发行业招聘考查的重点。本书以流行的面试题讲解为主要内容,介绍了C、C++语言基本概念,包括保留字、字符串、指针和引用、结构体、库函数等各个方面的基础知识,介绍了面向对象编程基本概念,包括如何实现继承、多态和封装等。还介绍了排序算法及数据结构的实现,包括链表、堆栈、队列和树。此外,本书开始用两章篇幅详细介绍了中英文面试的注意事项、常见问题及程序员的职业规划等软件工程师的常识。最后四章详细讲解了现在流行的智力测试题。   本书的特点是在详细介绍C、C++面试中常见技术问题的同时,还详细讲解了智力测试的基本方法及数学能力、推理能力和反应能力的常见测试题。本书适合正在找工作的应届毕业生,也适合想要换工作而基础知识不扎实或不熟悉智力测试的老程序员。

    编辑本段前 言

      程序员应聘开发工作时,招聘公司一般都要考查应聘者的个人品质、编程能力、智力能力等各个方面。C、C++语言是现在非常流行的编程语言,从嵌入式到操作系统,到处都可以看到这两者的身影。所以,包括软件开发、嵌入式应用、电子通信等各个行业的很多公司都将C、C++编程能力作为考查程序员基本素质的主要方式。此外,智力测试也成了企业招聘时的重要考查内容,并且对其考查的力度并不小于编程语言。现在市场上流行的书籍,一般只注重讲解编程语言基础,而本书根据应聘需求,将语言基础、编程技巧、智力测试进行了合理的整理、讲解。   本书详细讲解了C/C++面试中出现的各个知识点的面试题,包括C语言编程基础、C++面向对象、数据结构、排序算法等。所有知识点都结合流行的面试题进行说明,每道例题都取材于各大公司的实际招聘面试题,并在题后紧跟详细的分析步骤和解答。   笔者精心编写了本书,目的是指出很多人对面试的各种误解,以及答题过程中的各种误区,尤其是为应届毕业生进入职场提供了一块很好的敲门金砖。相信本书一定能帮助读者快速复习有关的知识,并获得一份满意的工作。

    编辑本段本书特点

      本书深入浅出地讲解了各种面试题注意事项和解题方法,以及目前流行的各种智力题的解题方法。在有些面试题的最后,笔者还结合自己多年的经验,对不同的面试题中的各项注意问题进行了详细的讲解。   本书基本涵盖了C、C++面试的各个方面的知识,从企业和人才的关系、应聘技巧,到简历的书写,从C、C++的基本理论到C、C++的数据结构,排序算法设计等高级技巧,从智力题的基本方法、数学能力、推理能力、反应能力等各个方面,详细讲述了面试中常见的试题,讲解了各种面试题的解题技巧,并介绍了这些试题的理论基础。   本书的特点主要体现在以下几个方面。   本书的编排采用循序渐进的方式,适合各个层次的应聘者逐步掌握C、C++面试的基本方法,以及C、C++软件设计的精髓。   本书结合笔者多年的面试经历,对每道面试题都进行了详细分析讲解,并根据历来的软件先辈们总结的经验给出了解答各种问题的技巧和注意事项。   本书讲解由浅入深,由基本的理论知识面试题讲起,然后引出C、C++的高级编程技巧题型,对这些技巧题的讲解过程结合了前面的基础理论,让读者真实的感受理论知识在实际中的应用。   本书除讲解C、C++的编程理论基础和编程技巧的知识外,还大量讲解了现在比较流行的智力测试题及其解决方法和技巧。包括国内外各知名企业、公司的经典招聘智力测试题。如微软分金条、联想的烧绳计时、IBM的找病狗等经典智力测试题。   本书采用了大量的图形法来讲解比较复杂的面试题,更加有助于基础比较差的应聘者深刻理解这些问题的解决步骤和方法。

    编辑本段内容安排

      本书分为三篇,共15章,从面试的基本注意事项讲起,介绍面试所经历的各个阶段遇到的问题,然后结合目前流行的面试题对C、C++的编程基础、编程技巧进行详细的讲解,最后详细讲解现在各企业招聘软件工程师常见的智力测试题。本书可帮助应聘者成为面试的赢家。   第一篇(第1~2章)介绍面试及英文面试。   讲述了面试基础知识,包括中英文面试时的衣着、礼仪等各方面的注意事项,以及面试中常见的问题、解答技巧及职业生涯规划,为希望换工作和正在找工作的人提供一些基础知识。应届大学毕业生通过这两章的学习,可以大体地了解面试,对面试有一个全新的认识,并能根据自己的实际情况制订职业生涯规划。   第二篇(第3~11章)介绍C、C++面试题。   讲述了现阶段比较流行的C、C++相关的各种面试题,包括基本概念、预处理、指针和引用、字符串、嵌入式,面向对象,数据结构,各种排序算法。软件开发是一门需要具备广泛知识的职业,应聘人员应该掌握与C、C++编程相关的方方面面的知识,嵌入式编程这一章主要针对嵌入式编程人员,其他8章中面试题所涉及的所有问题都是应聘者必备的知识。   第三篇(第12~15章)介绍智力测试。   这4章讲述了面试中智力测试题的解题基本方法及三种能力测试的流行试题的解决方案。智力测试的基本方法包括:   (1)排除法   (2)递推法   (3)倒推法   (4)假设法   (5)计算法   (6)分析法   (7)作图法   (8)综合法   第12章讲解了这8种方法的使用技巧,第13~15章根据具体的数学能力、推理能力和反应能力的测试题,对这8种方法进行详细的诠释。   本书由浅入深,由理论到实践,非常适合各个层次的C、C++应聘人员。   适合阅读本书的读者   希望从事C、C++编程的应届大学毕业生。   下岗待业,想从事C、C++程序开发的人员。   在职将要跳槽的C、C++工程师。   希望巩固C、C++基础知识的在校或在职人员。   企业负责软件部的HR人员。   具有一定基础项提升理论知识的软件开发人员。

    编辑本段本书作者

      本书主要由杨国祥编写,其他参与编写的人员有昊燃、杨国祥、方振宇、陈冠佐、傅奎、陈勤、梁洋洋、毕梦飞、陈庆、柴相花、陈非凡、陈华、陈嵩、承卓、陈先在。在此表示感谢!

    编辑本段图书目录

    第1章 应聘求职

      无论是从象牙塔中将要展翅欲飞的毕业生,还是不喜欢现在的工作、想换个环境和心情的在职者,要得到一份称心如意的工作,绝不是一件简单的事情。尽管如此,如果求职者能做好自己的职业规划,详细了解企业需要什么样的人才,自己如何做才能成为企业需要的人才,并做好充分的面试准备,必然能找到满意的工作。   本章将详细地介绍企业和人才的关系、面试技巧和注意事项,以及如何做好职业规划等方面的内容。希望通过本章的学习,能够帮助应聘者正确地走出求职的第一步。   1.1 企业与人才 2   1.1.1 企业需要什么样的人才 2   1.1.2 如何成为企业需要的人才 3   1.2 做好面试的准备 4   1.2.1 面试衣着 4   1.2.2 简历 5   1.3 面试 6   1.3.1 面试注意事项 6   1.3.2 面试问题分析 7   问题一:“请自我介绍一下。” 7   问题二:“谈谈你的家庭情况。” 7   问题三:“你有什么业余爱好?” 7   问题四:“你最崇拜谁?” 8   问题五:“谈谈你的缺点。” 8   问题六:“谈一谈你的一次失败经历。” 8   问题七:“你为什么选择我们公司?” 9   问题八:“对这项工作,你可预见到   问题八:哪些困难?” 9   问题九:“如果我们录用你,你将怎样   问题九:开展工作?” 9   问题十:“与上级意见不一致,你将   问题十:怎么办?” 9   问题十一:“我们为什么要录用你?” 10   问题十二:“你能为我们做什么?” 10   问题十三:“你是应届毕业生,缺乏经验,   问题十三:如何能胜任这项工作?” 10   问题十四:“你希望与什么样的   问题十四:上级共事?” 10   问题十五:“你在前一家公司的离职原因   问题十五:是什么?” 11   1.4 为明天做好计划 11

    第2章 英文面试

      英语面试是外企招聘过程中必不可少的,也是许多应聘者比较头疼的。因为现在许多学生的英文书面表达能力较强,而口语表达能力较差。不过由于英文面试时间短、题量和题型有限,且大多题目都有固定的答案,所以英文面试能力是可以快速提高的。   英文面试有两种形式,电话面试和直接面试。本章将详细讲解这两种英文面试中一些常见的英文问题、参考回答及面试的一些注意事项。希望应聘者通过本章的学习能够快速掌握英文面试的技巧,提高英文面试的能力。   2.1 英文电话面试 13   2.1.1 英文电话面试注意事项 13   2.1.2 英文电话面试常见问题 14   问题一:When will you graduate? 14   问题二:How do you normally handle criticism? 14   问题三:Why should we hire you? 15   问题四:Please tell me something unreflected   问题四:at your resume/about yourself/ your experience/your activities. 15   2.1.3 英文电话面试常用词汇 15   2.2 英文面试 18   2.2.1 英文简历 18   2.2.2 英文面试流程 19   2.2.3 英文面试注意事项 19   2.2.4 英文面试常见问题 20   问题一:What is your strongest trait? 20   问题二:How would your friends or colleagues describe you? 20   问题三:What personality traits do you admire? 21   问题四:What leadership qualities did you develop as an administrative personnel?21   问题五:How do you normally handle criticism? 21   问题六:What do you find frustrating in a work situation? 21   问题七:How do you handle your failure? 22   问题八:What kinds of people do you like to work with? 22   2.2.5 英文面试常用词汇 22   2.3 计算机专业英语面试常用词汇 25

    第3章 C/C++程序基础

      熟练掌握编程语言的基本概念是每个程序员应具备的基本功。因为没有扎实的编程语言基本功的程序员,是不可能成为一名优秀程序员的。企业招聘时,语言基础是必考内容,而且是考查重点之一。对于C、C++程序员面试,语言基础主要考查基本概念、关键字、结构体、面向对象等问题。   3.1 基本概念 30   面试题1:什么是C语言语句 30   面试题2:变量的声明和定义有什么区别 31   面试题3:下列字符中,哪些不是C语言关键字 32   面试题4:下列变量定义中,哪些是合法的 33   面试题5:如何以最简单的方式让电脑蜂鸣器发出声音 34   3.2 编程规范 34   面试题6:谈谈你对编程规范的理解或认识 34   面试题7:函数、变量等命名都有哪些规则 36   面试题8:写出bool、int、float、指针变量与“零值”比较的if语句 37   3.3 数据类型 40   面试题9:写出代码的输出结果 40   面试题10:C语言中不合法的整型常数 41   面试题11:short i = 0; i = i + 1L;这两句有错吗 42   面试题12:char x[ ] = {“abcd”}和 char y[ ] = {‘a’,‘b’,‘c’,‘d’ }有不同吗43   面试题13:char型数据在内存中的   面试题13:存储形式 44   3.4 运算符 45   面试题14:请写出下列代码的输出内容 45   面试题15:运算符的优先级问题 46   面试题16:&&和&,||和|有什么区别 48   面试题17:什么是左值,什么是右值 49   面试题18:请写出程序的运行结果 50   面试题19:sizeof和strlen的区别 52   3.5 结构体 54   面试题20:结构体是什么样的数据类型 54   面试题21:结构体可以直接赋值吗 54   面试题22:组织WAV文件头,并解析WAV格式的各项信息 58   面试题23:计算学生不及格的人数打印他们的性别、姓名和成绩 59   面试题24:结构体内存对齐问题 61   3.6 C和C++的区别 65   面试题25:关键字static在C和C++中的区别 65   面试题26:C语言的结构体和C++的有什么区别 68   面试题27:C中的malloc和C++中的new有什么区别 69   面试题28:C++的引用和C语言的指针有什么区别 70

    第4章 预处理、保留字

      无论是在C还是在C++中,预处理指令都是不可或缺的,虽然预处理指令的关键字不是保留字,但在给自定义变量命名时,最好把其当做保留字来使用,以免引起误解。保留字和预处理指令是面试或笔试中经常出现的问题。其概念、应用和相互区别是面试题的重点。本章将详细讲解这方面的常见面试考题。   4.1 预处理 73   面试题1:简述#ifdef、#else、#endif和#ifndef的作用 73   面试题2:宏定义和函数 74   面试题3:用#define声明一个常数 76   面试题4:写一个“标准”宏MIN 77   面试题5:typedef和define有什么区别 78   面试题6:#define CHAR char*和typedefchar* CHAR各有什么优劣 80   面试题7:谈谈你对typedef的认识 83   4.2 const(常量) 86   面试题8:关键字const是什么 86   面试题9:说明以下a声明的含义 88   面试题10:const、define定义常量的区别 88   4.3 static(静态)和extern 90   面试题11:static有什么作用 90   面试题12:extern有什么作用 93   面试题13:简述变量存储类型 95   4.4 volatile 98   面试题14:volatile有什么作用 99   面试题15:一个参数可以既是const又是volatile吗 102   面试题16:一个指针可以是volatile吗 103

    第5章 引用和指针

      指针是C语言的重要特征。利用指针技术,可以描述各种复杂的数据结构,高效地支持动态内存分配。在C++中又引入了引用的新特性,它允许程序来负责确定把参数传递给函数的方法。指针和引用是C、C++程序设计的精华,相似又相互区别。本章将以一些典型的面试题,就指针和引用的概念、应用、注意事项等问题做详细的讲解论述。   5.1 引用 105   面试题1:什么是引用 105   面试题2:常引用有什么作用 110   面试题3:流操作符重载为什么返回引用 111   5.2 指针 113   面试题4:说明以下声明的含义 113   面试题5:简述指针常量与常量指针区别 115   面试题6:写出以下代码的输出结果 117   面试题7:找出代码的错误 119   5.3 指针和数组 121   面试题8:写出代码的输出结果 121   面试题9:请问这段程序有问题吗 123   面试题10:a和&a有什么区别 124   面试题11:请问代码有什么问题 126   面试题12:数组名和指针的区别 127   5.4 函数指针 131   面试题13:请解析(*(void (*)( ) )0)( )的含义 131   面试题14:指出程序的错误 132   5.5 “野指针” 134   面试题15:如何避免“野指针” 134   面试题16:程序是否正确 136   面试题17:指出程序的错误 138   5.6 动态内存 140   面试题18:简述C、C++程序编译的内存分配情况 141   面试题19:以下四段代码中哪段没有   面试题19:错误 142

    第6章 字符串

      字符串是一种比较简单的数据结构,由若干字符和字符串结束标识‘/0’组成。可以将其看做一个由若干字符组成的字符数组,数组的最后一个元素是字符‘/0’,这个数组在内存中占据一段连续的内存单元,且可定义一个字符指针指向这个数组的首地址。字符串是面试的重要考点之一。主要考查面试者对字符串的理解程度及对字符串函数的使用熟练程度。虽然字符串面试题一般比较简单,但是字符串和字符串函数还有很多需要注意的地方,本节将详细介绍与这些知识点相关的常见面试题。   6.1 数字字符串 145   面试题1:编码实现数字转化为字符串 145   面试题2:编码实现字符串转化为数字 149   6.2 字符串函数 152   面试题3:编写一个标准strcpy函数 152   面试题4:简述strcpy、sprintf与memcpy的区别 153   6.3 字符串与数组 156   面试题5:找出程序的错误之处 156   面试题6:判断程序会出现什么问题 158

    第7章 嵌入式编程

      不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,要求其编程语言具备较强的硬件直接操作能力。虽然汇编语言具备这样的特质,但是,汇编语言开发过程复杂,它并不是嵌入式系统开发的一般选择。而与之相比,C语言是一种“高级的低级”语言,是嵌入式系统开发的最佳选择。本章主要讲解嵌入式C语言面试经典题目,一般软件程序员也可阅读,有利于加深对C语言的理解。当然根据实际情况也可跳过本章,不会影响后面章节的学习。   面试题1:编码实现某一变量某位清0   面试题1:或置1 161   面试题2:用C编写一个死循环程序 162   面试题3:用变量a给出下面的定义 163   面试题4:设置地址为0x67a9的整型4:变量的值为0xaa66 164   面试题5:评论下面这个中断函数 165   面试题6:评价一个代码片段 165

    第8章 面向对象

      面向对象是当今软件行业关心的重点,它是20世纪末以后软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到更宽的范围,如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象程序设计推广了程序的灵活性和可维护性,并且在大型项目设计中广为应用。此外,面向对象程序设计要比以往的做法更便于学习,因为它能够让人们更简单地设计并维护程序。本章将详细讲解面向对象相关的常见面试题。   8.1 面向对象的基本概念 167   面试题1:谈谈你对面向对象的认识 167   面试题2:面向对象的三大特征 169   面试题3:面向过程和面向对象有什么区别 170   8.2 类的成员变量和成员函数 172   面试题4:简述类public、protected、private的作用 172   面试题5:写出代码的打印结果 174   面试题6:写出程序的打印结果 176   面试题7:C++的空类有哪些成员函数 178   8.3 构造函数和析构函数 179   面试题8:构造函数能否为虚函数 179   面试题9:简述子类与父类的析构、构造函数的调用顺序 181   面试题10:编写类String 的构造函数、析构函数和赋值函数 182   8.4 拷贝构造函数 184   面试题11:谈谈对拷贝构造函数和赋值运算符的认识 184   面试题12:写出当定义#define _INMAIN 0和不定义时代码打印结果 186

    第9章 继承与多态

      继承与多态是面向对象的两个重要特征,是实现面向对象的关键,也是实现面向对象的难点。继承使得派生类与基类在方法上有一定的重叠,因此可以使用相同的语法处理从同一个基类实例化的对象。多态使得子类的实例可以直接赋予基类的变量,然后直接就可以通过这个变量调用基类的方法。   9.1 继承 192   面试题1:指出程序的错误 192   面试题2:用C++设计一个不能被继承的类 194   9.2 虚函数和纯虚函数 196   面试题3:下面说法中正确的是哪个 196   面试题4:写出程序的打印结果 198   面试题5:访问基类的私有虚函数 201   9.3 多态 202   面试题6:简述类成员函数的重写、重载和隐藏的区别 203   面试题7:简述多态实现的原理 205

    第10章 数据结构

      数据结构用来反映一个数据的内部组成。数据的内部组成是指数据由哪些分子数据构成、以什么样的形式来构成、呈什么样的结构。数据结构的设计目的是提高算法效率。通常数据结构和一组算法的集合相对应,而很多算法就是对数据结构施行的一种变换。本章将详细讲解数据结构相关的常见面试考题。   10.1 链表 208   面试题1:链表和数组有什么区别 208   面试题2:寻找单链表中间结点 209   面试题3:怎样把一个单链表反序 210   10.2 单循环链表 212   面试题4:根据需求建立一个单向循环链表 212   面试题5:检测一个较大的单向链表是否带环 217   10.3 双向链表 220   面试题6:按要求构造一个双向链表 220   面试题7:编程实现双链表插入新结点 223   面试题8:编程实现双链表删除指定结点 227   10.4 栈和队列 230   面试题9:简述队列和栈的异同 230   面试题10:建立一个链式栈 232   面试题11:建立一个链式队列 236   面试题12:能否用两个栈实现一个队列的功能 241   10.5 二叉树 245   面试题13:建立一个二叉树 245   面试题14:计算一棵二叉树的深度 248   面试题15:在二元树中找出和为某一值的所有路径 249

    第11章 排序

      排序是计算机程序设计中的一种重要算法,它的主要功能是将一个任意序列的数据元素的组合,按照某种关键字重新组合成另外一种某种规则的有序数据元素的组合。排序是算法设计的基础,也是面试的考查难点,本章将详细讲解几种排序算法相关的常见面试考题。   11.1 插入排序 254   面试题1:编码实现直接插入排序 254   面试题2:编码实现希尔(Shell)排序 257   11.2 交换排序 259   面试题3:编码实现冒泡排序 259   面试题4:编码实现快速排序 262   11.3 选择排序 266   面试题5:编码实现直接选择排序 266   面试题6:编程实现堆排序 269   11.4 基数排序 275   面试题7:编程实现基数排序 275   第三篇 智力测试

    第12章 基本方法

      学习有学习的方法,教学有教学的方法,管理有管理的方法,总之世间万事万物都有其规律。掌握这个规律,并能够根据这个规律总结出技巧,运用技巧来解决出现的问题,这就是做事情的方法。   面试题1:斯密斯夫妇握手问题 282   面试题2:5个强盗分100颗宝石 284   面试题3:分牛 285   面试题4:谁在说谎 286   面试题5:是亏了还是赚了 287   面试题6:小虫分裂问题 287   面试题7:飞机绕地球环行问题 288

    第13章 数学能力

      由于数学本身具有高度的抽象性和严密的逻辑性特点,所以,应聘者数学思维能力的高低也是他数学素质好坏的集中体现。面试中的数学能力测试主要考查应聘者的灵活性、敏捷性、创新性这三种数学思维能力。具体的题型有:几何能力测试、计算能力测试、数学分析能力测试、想象能力测试等。   面试题1:用一笔画出经过9个点的4条直线 291   面试题2:在9个点上画10条线 292   面试题3:100盏灯 292   面试题4:找出不同的球 293   面试题5:时针、分针和秒针重合问题 294   面试题6:可以喝多少瓶汽水 296   面试题7:怎样拿到第100号球 297   面试题8:烧绳计时 298   面试题9:分金条 299   面试题10:至少有多少人及格 300   面试题11:如何取3升水 301   面试题12:将16升水平均分给四个人 302   面试题13:如何将140克的盐分成50、90克各一份 306   面试题14:蜗牛几天能爬到井口 307   面试题15:100美元的差额到哪里去了 309   面试题16:点击鼠标比赛 310   面试题17:小猴最多能运回多少根香蕉 310   面试题18:算出小张买了几瓶啤酒、几瓶饮料 311   面试题19:牧场有多少匹马 312   面试题20:找出不同的苹果 313   面试题21:如何穿越沙漠 313

    第14章 推理能力

      逻辑推理能力测试,旨在考查应聘者掌握和运用逻辑分析方法的能力。逻辑推理过程主要是运用给出的信息和已掌握的综合知识,通过理解、分析、综合、判断、归纳等过程,引出概念、寻求规律,对事物间关系或事件的走向趋势做出合理判断与分析,确定解决问题的途径和方法。逻辑推理题是软件企业招聘的必考题型。   面试题1:怎么少了100元 316   面试题2:村里有多少条病狗 316   面试题3:他们都在做什么 317   面试题4:躯体与灵魂 318   面试题5:小明一家能否安全过桥 320   面试题6:过河问题 321   面试题7:这是张什么牌 322   面试题8:说谎岛上的两个部落 323   面试题9:谁是特尔斐城的预言家 324   面试题10:哪个政党获胜 325   面试题11:每个护士星期几休息 326   面试题12:每个人系的圆牌都是什么   面试题12:颜色的 327   面试题13:帽子问题 328   面试题14:谁是凶手 329   面试题15:他们的头发是什么颜色的 329   面试题16:谁是漂亮的青年 330   面试题17:哪个袋子里有金子 331   面试题18:他们星期几在说谎 332   面试题19:剩下的是什么牌 333   面试题20:老李的儿子们是做什么的 334   面试题21:史密斯家的门牌号 335   面试题22:尤克利地区的电话 337   面试题23:乡村庙会的15点游戏 338   面试题24:各家的孩子得了第几名 339   面试题25:经理应该带谁出差 340   面试题26:法官的判决 341   面试题27:张老师的生日是哪一天 341   面试题28:谁是M小姐的情人 342   面试题29:他们分别是哪国人 343   面试题30:他们分别是做什么的 344   面试题31:他们都会说什么语言 344   面试题32:怎么把马匹从甲村拉到   面试题32:乙村 345   面试题33:谁打碎了花瓶 346   面试题34:分机票 347   面试题35:石头有多重 348   面试题36:该释放谁 348   面试题37:谁打碎的玻璃 349   面试题38:谁是最优秀的医生 350   面试题39:今天星期几 350   面试题40:五个人进行汽车竞赛 351   面试题41:下一行是什么 352   面试题42:三筐水果各是什么 352   面试题43:最后剩下的是谁 353

    第15章 反应能力

      人类正是利用进行思维活动的大脑来揭示事物的本质和规律,从而间接地、概括地、更加深刻地认识世界。人们对事物或信号的反应速度有快有慢,反应能力各不相同。面试中所考查的反应能力主要是指观察能力和思维反应能力。把自己置身于问题之中和积极的独立思考是提高观察能力和思维反应能力的最佳途径。本章将详细讲解面试中常见的反应能力测试题,希望能够对应聘者有所启发。   面试题1:下水道的井盖 355   面试题2:30秒答题 355   面试题3:一分钟答题 357   面试题4:镜子中的你 358   面试题5:埃及古币 359   面试题6:投硬币 359   面试题7:他在撒谎吗 360   面试题8:制造零件 360   面试题9:不喜欢正方形窗户的人 360   面试题10:孩子租房 361   面试题11:重男轻女的国度 361   面试题12:分遗产 362   面试题13:栽果树 362   面试题14:聪明的农民 363   面试题15:聪明的死刑犯 363   面试题16:幼儿园中奇怪的人 363   面试题17:奇怪的城镇 364   面试题18:聪明的商人 364   面试题19:渡船过河 365   面试题20:愚蠢的长工 365   面试题21:红球和白球 365   面试题22:小明坐在了哪里 366   面试题23:乌龟赛跑 366   面试题24:老师的爱恋 366   面试题25:爬楼梯 367   面试题26:马丁先生的约会 367   面试题27:巧入房间 368   面试题28:管子中的球 369   面试题29:女儿的错 369
    更多相关内容
  • 【《程序员数学指南》各章实现代码(Python)】’programmers-introduction-to-mathematics - Code for A Programmer's Introduction to Mathematics'
  • 第13章 数学能力 面试题1:用一笔画出经过9个点的4条直线 面试题2:在9个点上画10条线 面试题3:100盏灯 面试题4:找出不同的球 面试题5:时针、分针和秒针重合问题 面试题6:可以喝多少瓶汽水 面试题7:怎样拿到第...
  • 4:除了上面提到的,Java还有很多功能:如进行数学运算、显示图形界面、进行网络操作、 进行数据库操作、进行文件的操作等等。 PDF文件使用" pdfFactory Pro"试用版本创建ww, fineprint,cn Java私塾跟我学...
  • 第三部分:《程序员笔试面试指南》题解,更新中。 第四部分:《算法题型分类总结》,更新中。 关于学习笔记总结部分,请移步另一项目: 剑指offer: LeetCode: LeetCode专题训练 回溯法: 链表 : 动态规划: 排序...
  • BAT + 程序员校招指南

    千次阅读 2019-07-02 03:34:31
    每一年,应届毕业生都要面对校招,对于程序员来说,进大厂是我们最大的理想。那么我们应该如何准备校园招聘,如何见招拆「招」?简历、网申、笔试、面试、offer,你会过招到哪关? 正值春招结束,此时准备秋招再合适...

    每一年,应届毕业生都要面对校招,对于程序员来说,进大厂是我们最大的理想。那么我们应该如何准备校园招聘,如何见招拆「招」?简历、网申、笔试、面试、offer,你会过招到哪关?

    正值春招结束,此时准备秋招再合适不过,本栏将为你答疑解惑,帮助技术同学更好地去应对校园招聘,拿到心目中理想的大厂 offer。

    专栏作者是 985 硕士,目前是阿里 Java 工程师,在 2018 年秋招期间收获了 BAT 头条滴滴等大厂 offer,基本都是研发岗位,期间总结了很多求职经验,包括简历、笔试、面试等方面的内容。

    专栏里很多内容都是作者的亲身经历和独家经验,也是最新最有料的一手校招干货,希望能够帮助到更多想进互联网大厂的同学,特别是研发方向的同学。

    校园招聘是什么

    抛开书面语言,其实校园招聘就是公司对应届毕业生的统一招聘。不管是本科生、研究生、博士生,只要你是符合毕业时间要求的学生,就可以参加校园招聘。

    为什么公司要大量地招收大学生呢,原因很简单,刚毕业的学生是一张白纸,对事业最有热情和冲击力,学习能力也比较强。

    这也是为什么,创业公司不怎么招大学生,而是招收一些有经验的人,因为他们需要能够马上干活的熟练工,大公司则更喜欢招收优秀大学生,培养他们,挖掘其潜力,为未来做打算。

    校园招聘的时间点

    不要以为你要等到毕业后才去参加校园招聘,事实上根本不是这样的。

    讲真,很多没有准备的大学生都以为校园招聘是毕业以后的事情,事实上你是要在你毕业前一年去参加校园招聘的。

    如果你对此毫无了解,那么恭喜你现在已经知道了真相,继续看下去吧。

    比如你是 19 年 7 月毕业(如果是春季毕业,就是 3 月份)那么你就要参加18 年秋季的校园招聘。

    为什么要提前一年参加呢,因为招聘是一件很漫长的事情,校园招聘可能从7月一直持续到11月,这期间你需要全身心投入,参加招聘,在11月之前基本上就可以完成签约了。

    找到工作以后,还剩半年时间,一般就是用于写论文了,当然你也可以用来做别的事情。

    所以,校园招聘一定要及早准备,大三或者研二的那个暑假,就是你参加校园招聘的时候了。

    校园招聘的流程

    在互联网时代,校园招聘其实很简单,一般来说在电脑上可以搞定一切。网上投递简历,申请职位,线上可以笔试、面试,很多公司都会让你在线上完成所有招聘流程。

    正常来说,第一步是网申,筛选简历。

    第二步是笔试,可能是现场笔试或者是线上笔试。

    第三步是面试,同样可能有现场面试或者视频面试、电话面试。

    第四步则是发offer,一般会先给口头offer,录用通知书,最后给正式offer。

    第五步是签约,也就是签三方协议,三方协议是有法律效力的,所以签约要慎重。

    如何准备校园招聘

    越早越好,如果你的理想是进大公司,那么真的需要花大量时间来准备。如果你只想进小公司,那只要你成绩还可以,我想你也花不了多少时间就可以找到工作了。

    假设你想进大厂、名企,那么可以根据岗位的要求做准备,下面大体上说几点。

    专业能力

    说白了,专业能力是最重要的,笔试、面试其实考察的都是你的专业能力,比如咱们计算机最爱考的计算机网络、操作系统、数据库、数据结构,就是专业能力最好的体现。

    校园经历

    很多管理岗位都需要你有优秀的校园经历,不管是社团,学生会,还是其他社会活动,平时一定要注意积累。

    竞赛

    竞赛是大公司比较看重的一个东西,如果是有含金量的比赛,那么一定要多多参加,让自己的简历更加有亮点。

    项目经历和实习经历

    如果你在目标岗位方面有过一些项目经历或者是实习经历,那是非常加分的,如果没有,赶快想办法去积累吧,一般暑假实习是校园招聘前的那个春天开始招聘的,如果你能够有实习经历,那还是非常有说服力的。

    成绩和奖励

    成绩好自然也可以是你的亮点,平时做个学霸,面试官自然会觉得你靠谱,如果有什么奖学金,拿过一些比较有含金量的奖,那也是非常加分的。

    春招和秋招的区别

    上面说过,秋招一般是在毕业前一年的秋天开始的,而春招则是秋招之后的那个春天开始的。

    也就是说,秋招如果没有找到合适的工作,你可以再春招再尝试一下。

    但是春招的岗位、招聘人数、公司数量都是大幅度缩水的,简单来说,就是补招,为什要补招,可能是公司没招够人,也可能是有人放弃了offer导致人数不达标。

    总之,人家公司也是降低要求来捡漏,能不能被捡到完全看运气,因为春招的机会真心不多,狼多肉少。所以能在秋招解决就不要等到春招了,否则会很痛苦的。

    实习岗位和正式岗位

    现在很多公司都喜欢招收实习生了,上文说过,实习生招聘是在秋招前的那个春天开始的,由于大部分学生只有到暑假才有空实习,所以也叫做暑期实习生招聘。

    为什么公司要招收实习生,一是因为实习工资低,降低成本,但却可以要求学生干一样的活,二是可以提前收人,减轻秋招招人的压力,并且可以择优录取实习生,淘汰不合格的实习生,在通过秋招继续招人,以便达到人员结构最优解。

    很多大公司比如 BAT 都喜欢找一大堆实习生,相应地也会降低一定要求,如果你有大厂的实习经历,那么为你秋招是大大加分的,并且还有机会留用转正,所以现在如果你想去大公司的话,一定是要参加实习生招聘的,积累实习经验、面试经验,才能让你在人群中脱颖而出。

    关于岗位选择

    讲真,上了这么多年大学,很多同学压根就不知道自己适合哪个岗位,其实一点不奇怪,现在的大部分大学专业和工作岗位根本不对口,不知道自己是什么岗位是很正常的,这种情况只能根据兴趣、专业能力来判断你和哪个岗位更匹配了。

    作为程序员,大部分时候可以根据语言去选择岗位,比如 Java、C++、Python 等等。当然也有些公司会根据职责来划分岗位,比如前端、后端、大数据、测试等等。

    选择一个合适的岗位好比选择一所好大学,一定要选适合自己的,感兴趣的,有一定积累,并且愿意为这个方向去努力,去拼搏的岗位。

    很多人看金融火,想去搞金融,看计算机火,又想去搞计算机,结果一看自己的专业和人家八竿子打不着,学校又不怎么样,那你怎么和人家科班出身或者是名校毕业的同学竞争呢。

    假如你在这个岗位基础过硬,学校和专业也还可以,同时又有一些项目和实习经历,那么就算是大公司可能也会对你刮目相看。

    凡是还是得脚踏实地,不要好高骛远,我当年也是空有壮志,0基础就想进BAT,马上就被现实打脸,这个世界上,光有梦想是不够的,还要有行动。

    关于简历

    简历这个问题我说了太多遍了,这里用几句话总结要点。

    1. 长得不好看就不要放照片

    2. 基本信息只要名字、电话、邮箱、年龄,不要什么都往上写,不查户口

    3. 模板简单点,不要花里胡哨,最多三种颜色,少图多字。

    4. 岗位要写清楚,只能写一个,要和投递的岗位一致,不要一份简历到处投。

    5. 所有的经历、技能一定要和岗位有关,千万别为了凑数写一些不相干的东西,比如你的岗位是程序员,你就不要写你干过销售。

    6. 技术岗位的同学请注意,写在简历上的技能你一定要有B数,能说清楚的知识点再写到简历上,答不出来的不要作死写上去。

    7. 实习、项目经历只写和自己有关的,别人造的火箭跟你没有半毛钱关系就别往上写了OK?

    8. 简历请用PDF格式,要不然发到HR那边可能会变成无字天书。

    9. 如果你简历上没东西可以写,那么你真的需要充电了,请抓紧时间,积累技能和经验,赶在招聘之前完善好简历。

    10. 我的简历至少改了20遍,才能变成现在我满意的版本,所以不要想一口气吃成胖子,慢慢修改,慢慢完善吧!

    我实在来不及了怎么办

    很多同学在了解到校园招聘时已经来不及准备了,其实很正常,特别是一些大公司比如BAT,如果你没有长时间的积累,可能连简历关都过不去,但是我的梦想就是BAT,怎么办呢?难道只能望洋兴叹了吗。

    这个问题太多人问过我了,其实也不是没办法,这里就有几种曲线救国的办法。

    考研

    可能你学历不足,能力也不够,又没有经历和经验,怎么办,为何不尝试考研呢,一来提升学历,二来给你2到3年的时间去充电、学习、积累,是不是觉得前途变得非常光明了呢。

    不瞒你说,我走的就是这条路

    保研和出国读研

    如果你本科阶可以争取保研机会,那一定要好好把握,比考研的同学轻松多了。后续努力的途径和上面的考研一致。

    出国读研则是另一条路,相比考研,出国只需要考语言,难度要低很多,同时你可以报名多个学校,这是非常 nice 的。不过有一点前提,就是你得有钱,出国读研还是挺费钱的。

    先随便找个工作,后续再跳槽

    很多人觉得毕业找不到好工作,那么干脆先干几年再跳槽去大公司,感觉也不错。

    当然这也是可以的,只不过大厂的社招难度是比校招更大的,所以这条路并不一定有想象中那么好走。

    总结

    我个人觉得能读研还是先读研,提升学历不说,还有时间可以自学充电,出来工作的第一个平台也会比较高,直接出来工作虽然一开始是要容易一点,但是要逆袭去大公司的可能性相对会低一点。

    如何准备技术简历

    怎样制作一份优秀的技术简历。相信很多同学都对此有疑问,实际上,制作简历这件事,说难也不难,说简单也不简单。

    简单,是因为你只需要它需要的内容其实并不多,只需要你花一下午的时间,找一份简历模板,然后把内容写满即可。

    难,是因为你要把你毕生所学提炼成一纸简历,并且要投其所好,让面试官看到他想要看到的,同时也是你自己最为擅长的。

    要意识到这一点,其实很不容易。很多朋友也拿过自己的简历给我看,质量参差不齐,但是一般愿意把简历拿给我看的朋友,他们是知道自己简历存在不足,想要改进的,而他们的简历确实也属于比较优秀的。

    合格的技术简历是改出来的,从第一份简历开始,不断地积累内容,完善简历,这才是最有效的途径。我们不妨来看看,每一步应该怎么走吧。

    第一份简历

    我的第一份简历是在大学的时候写的,和很多没有求职经验的同学一样,简历,非常粗糙,除了基本信息以外,没什么拿得出手的东西,只好用英语四六级、计算机二级、毕业设计等一些没什么技术含量的内容来滥竽充数了。

    我在大学基本上就是玩过来的,所以什么竞赛、活动基本也没参加过,荣誉奖励这一栏就只能写一写奖学金、优秀学生干部了,相比很多参加过蓝桥杯、数学建模,甚至是 ACM 的同学来说,我那会的简历实在太辣鸡了。

    对于本科同学来说,项目经历、实习经历估计也不会多,于是大家纷纷把自己的课程设计、实训课程搬到自己的简历上去,其实这也是一种办法,毕竟有总比没有好。

    我那时候已经想要转行去做软件了(原来是电信专业)于是在暑假还去过某互联网小作坊实习,干了两个月 PHP,于是便把这段经历也搬到简历上去了,实在没东西写,就只能挑你最拿得出手的东西了。

    于是我的第一份简历就这么“堆”出来了,大学学的是全是电子和通信的课程,毕业设计做的游戏开发、实习做的是 PHP,我甚至把在中国电信打工的经历都写上去了。

    这在我现在看来,简直是不可理喻的,杂乱无章,和目标岗位毫无关联,我竟然还想拿这样的简历去应聘 Java 工程师,我一定是疯了。

    厚积而薄发

    简历这个东西,就是你的个人履历,你要把自己最出彩的东西写到简历上,把最有吸引力的东西拿给别人看。

    假如,你真的没有东西写,那怎么办。这也是很多同学问过我的一个问题。答案很简单,没东西写,那就是积累不够,不管是项目、实习、还是博客、GitHub,没有一样东西是随便能做成的,你需要积累,需要有这些东西为你加持,这个过程是漫长而艰辛的,但是却又是你不得不做的。

    项目:

    首先谈谈项目,简历上的项目一定要和你的岗位有关,投的Java岗位,就不要写游戏开发的经历(我曾经这么干过)如果压根没有关系,那还不如不写,面试官会觉得你很不专业,并且他对你这个项目也不会有什么兴趣。

    没有项目怎么办,都说艺术来源于生活,而项目来源于网络,不管是视频课程、网络资料,还是课堂设计、开源项目等,选一个你感兴趣的,花时间去做完它,只要你付出了对应的时间和努力,这个项目就是属于你的。

    实习:

    比起项目,实习更加不易得,很多同学甚至没有机会去实习,当然,如果学校有组织实习,这样的经历也完全可以写上。

    一般来说,实习分为寒假实习、暑假实习和日常实习,对于课业较紧张,抽不开身的同学,可以考虑寒假实习和暑假实习,寒假实习一般很少,不会统一招,而暑假实习很多,比如这段时间的春招实习招聘,录取的同学一般都是被安排在暑假入职的。

    如果你课业不紧张,那就没必要等到寒暑假了,上面三种实习生招聘你都可以参加,尽早入职,积累实习经验,一定会让你收获颇多的。

    博客:

    我在读研之前,压根不知道有技术博客这个东西。后来我发现,程序员都喜欢看博客、写博客,于是我也跟风去做,一做就是三年。

    读博客,是吸收别人总结的知识,是一种学习的捷径,但你需要花时间去筛选优质内容。

    写博客,是你学习后的输出方式,把知识教给别人,是最好的复习方式,也是检验你学习能力的方式。

    博客是个好东西,如果你已经有了项目和实习经历,但是还是觉得不够,想让你的简历大放异彩,博客可能是一个不错的选择。

    不管是选择自己搭的博客,还是用CSDN、博客园这类平台,亦或是Git Page这类博客,其实都不重要,赶紧开始写博客,才是当务之急。相信我,写博客,绝对没坏处。

    其他:

    除了以上内容,其实还有很多可以丰富你简历内容的办法,比如GitHub、竞赛奖励、校园活动等内容,只要和目标岗位有关的经历,都是可以为你加分的。

    关键在于,要尽快开始,并且持续积累,做出一些成果,才能最终把这些东西搬到简历上去。

    我的简历修炼之路

    改了四年的简历,经历了很多个阶段,扔掉了十多份不合格的简历,目前算是可以能让自己和面试官满意了。

    第一个阶段,就是我刚才说的第一份简历,杂乱无章,没有重点,内容虽多但是都是生搬硬套,和求职意向没有太大关系。

    第二个阶段,明确了自己的求职岗位,简历上只写和目标岗位相关的内容,但是由于相关内容不多,只好加上一些【自我评价】、【校园活动】这类没什么意义的内容。

    第三个阶段,根据岗位要求,学习相关技术,积累沉淀,逐渐转化为博客、GitHub上的一些内容,同时自己做一些Java Web项目,在这期间找到了一些实习工作,于是开始实习,简历上也因此多了两段实习经历。

    这个阶段其实是我进步最大的阶段的,基础更加扎实,并且有了项目和实习经历的加成,即便如此但是由于这些内容很多很杂,我还没办法把最精华的部分提炼出来,在简历上写的东西还不能打动面试官。

    第四个阶段,在一次次简历被筛,面试折戟之后,我意识到简历可能还存在问题,虽然这个阶段简历上已经没有什么内容要补充的了,但是需要做减法,也需要注意细节。

    比如,在掌握技能这一栏目里,只了解一些皮毛的知识点,用“了解”来描述

    了解得比较深入,能够熟练回答相关面试问题的知识点,可以用“熟悉”来描述。

    看过相关书籍、源代码,了解过底层原理的知识点,可以用“熟练掌握”来描述,当然,我绝不敢用“精通”二字。

    对于项目和实习经历的描述,我更加慎重了,不管是措辞、逻辑都更加严谨和专业,只写自己做的,并且要分点叙述,把难点和亮点都介绍清楚。

    我参加校招时的简历大概长这样(仅供参考)

    这份简历仅供参考,切勿盲目模仿。上面我说过,对于掌握情况不同的技术,你需要用不同的形容词去描述,我这里也是这么做的,用词基本都是经过考虑之后才确定的。

    简历上提到的技术点,我基本上都是比较熟悉的,保证能够说出一些有深度的东西来,才敢写在简历上。也只有这样,你才能保证面试官问到相关技术知识点时,你有足够的把握去回答。

      文能码字,武能coding,是我黄小斜,不是黄老邪噢。  

    简历上的项目经历怎么写

    作为一个程序员,想必大家曾经都做过一些项目,可能现在手头上也还有一些项目。

    不过还是有很多学生朋友来问我“没有项目怎么办”,诚然,确实有不少同学没有实习经历,又没有什么像样的项目经历,对于这样的同学,简历上的项目经历难道只能空着了吗。

    其实不然,就算你是跟着一些课程做项目,你也可以通过丰富项目内容的方法把项目变成自己的,只要你真的去做了,真的理解了代码逻辑,同时有所收获,这个项目就是有价值的,是可以登上简历这一大雅之堂的。

    正因为如此,现在很多简历上的项目经历的质量都是参差不齐,同时有的项目经历又非常相似,面试官一眼就能知道你的项目到底是真是假。

    大部分的面试官都会对你的项目经历进行提问,你能不能清晰到位地描述号好你的项目经历,决定了你的项目价值,即使项目再牛掰,你不能把它讲清楚,那么也是白搭。

    所以,回答关于项目方面的问题,是有技巧可循的,比技巧更重要的是 3 条原则,这也是我经历各种面试之后总结出来的东西。

    真实性

    项目经历,贵在真实,简历造假什么的真的不要想了,面试官稍微深入问一下简历上的东西,保证你会一脸懵逼,简历上那些高大上的技术到头来反而成为你被面试官抓住的把柄。

    何谓真实,首先,你要真的做过这些项目,其次,对项目的描述要真实,可以适度修饰,但不要太过夸大。

    项目是真实的,你自己心里才会有底,面试官问的有问题,你才有把握能够回答。退一万步讲,就算你真的骗过了面试官,那你也谝不了你自己,简历造假如果在日后被发现,那处罚也是相当严重滴。

    所写内容一定要和你有关

    很多朋友都犯过一个错误,包括我,就是把喜欢把项目经历写的天花乱坠,比如把整个系统的开发工作都写在简历上,把部门的技术栈搬到简历上,把那些你没参与的工作都写到了简历上。

    其实这只是看起来很美好而已,当面试官问你比较不熟悉的模块时,你就只能说这个不是你做的,那个也不是你做的,这就十分尴尬了,在面试官那里一定也是大大扣分的。

    在吃了几次这样的亏之后,我简历上的项目经历再也没有出现和我无关的内容了,面试官问到实现细节我也能够应对自如,毕竟自己做过,心里肯定清楚呀。

    所以,与其指望着拿别人做得模块来浑水摸鱼,不如想想如何提炼一下你的项目内容吧,就算真的只是简单的CRUD,也没有关系,所谓“亮点自寻”,这个时候你就应该想办法把项目里的亮点找出来。

    比如你用了哪个ORM框架来实现数据库交互,为什么用Mybatis而不用Hibernate,或者是用了哪个Web框架、日志系统、构建工具,又或者用了什么数据库、缓存,为什么要用这些技术。

    除此之外,你也可以介绍一下自己如何优化模块的性能,复杂的业务逻辑又是如何实现的。

    分点叙述,条理清晰

    这一点与其说是原则,不如说是技巧。把“分点叙述”翻译成白话文就是“一个模块用一段话来介绍,如果你做了 3 个模块,那么就分1、2、3点,分别用一句话来介绍所做的内容”

    这里补充一下,你可以在分点描述里提及技术栈,或者是在项目总结的部分介绍相关技术栈。

    比如:1、我负责部门数据运营报表模块的开发工作,使用JUC并发工具、线程池等技术完成该模块的业务逻辑开发,使用MySQL数据库、Hibernate框架完成数据层的处理,同时我对该模块的业务代码进行了优化,提升了数据报表30%的响应速度。

    为什么要分点叙述,其实就是让你的项目条理更清楚,面试官很容易就能看出你做了哪几个模块,可以对应地进行提问。

    以前我没有分点描述项目,结果面试官只能从一大段话中提取一些关键字来提问,这可能让面试官很不满意。

    不只是项目经历里的模块需要分点描述,你自己在介绍自己的项目时也应该通过这种方式来完成,这样的好处显而易见。

    你很快就能够条理清晰地向每一个面试官介绍自己的项目,并且针对每一个模块都可以很自然说出它们的难点、亮点,以及实现过程。

    不要问我为什么知道的,当我面试的次数越来越多时,我已经习惯了介绍项目、回答项目问题了。所以每次遇到关于项目的问题基本上都是张口就来,面试官一问什么我就知道要答什么了。

    虽然以上三点原则不能包治百病,但是对很多同学来说应该是蛮有益处的

    如何准备算法笔试面试

    程序员最头疼的算法题,其实主要指的就是算法笔试和面试题,在国外互联网企业,算法笔试面试题是非常常见的,而如今国内的互联网大厂也很喜欢考察算法题,特别是对于校招同学来说,算法题更是非常重要的敲门砖,过不了这一关,也就没有后面的事情了。今天就带大家聊一聊,如何应对算法笔试面试题。

    为什么要考算法题

    为什么如今的互联网公司都喜欢考察算法题呢,其实主要有几个原因,当然这只是我的观点,分享给大家。

    数据结构与算法是程序员的必修课

    对于程序员来说,数据结构与算法是必修课,每个程序员都应该对其有所掌握,可能大家一开始接触编程都是从某个语言开始,实际上,没有数据结构与算法知识的支撑,你很难理解一些比较高级的语言特性,比如集合类,比如 hash 算法等等。

    数据结构也是 4 门计算机基础专业课之一,可见其重要性。而算法一般也会基于数据结构进行设计,因此有很多关于数据结构的算法题,比如栈和队列、二叉树相关算法,都是基于数据结构来进行设计的。

    算法题有难度

    大家都知道,算法题是很有难度的,因为考察内容很广泛,没有固定题型,需要灵活变通,有自己的解题思路才行。正如咱们初中高中的时候搞的奥林匹克竞赛一样,只有少数人才能参加,能够解题。

    虽然算法题也有难易之分,但是比起其他的基础面试题,更加难以准备。因为考察基础知识的面试题都是可以通过系统复习来进行准备的,也有很多的面经和面试题可以作为参考。算法题有难度,所以更有区分度,更能够区分优秀和普通的同学,虽然这一区分标准并不能让绝大多数人信服,但是确实是一种很有效率的选拔方式。

    外企一直拿算法题作为笔试面试必考的内容,也是基于这一原因,而他们更加认同的一点是,能够解决算法题的同学,解决其他困难问题也不会差多少,这一点其实也是很有道理的。

    算法题从入门到进阶

    如果你是一个算法小白,或者是不知道如何准备算法题的笔试面试,那么这里我将给你们提供一个关于算法题的学习路线。

    这个路线也是根据我自己亲身经历总结而成的,我也是从一个算法小白一步步练习,才能应付一些大厂的算法题,相信这个路线对你们能够有所启发。

    数据结构与算法基础

    数据结构与算法基础是每个算法小白必须要学习的内容,如果你连栈和队列都搞不清楚,那么又如何去解决相关的算法题呢。

    我当时是在考研的时候学习数据结构专业课的,当时完全是一个小白,买了一本《天勤数据结构》就开始啃了起来,但是因为自己完全是零基础,所以光看书还是难以理解,于是上网找视频看,系统讲解数据结构的视频并不多,记得一开始看的是郝斌的数据结构,就这样我顺利地完成了数据结构的复习,最后考研专业课也考了个不错的成绩。

    其实就算不是考研,你也可以按照我的学习方法去学习这门课的。

    刚才说的主要是数据结构方面的内容,其实还有一些算法并不是基于数据结构进行设计的,比如动态规划、递归等算法,其实都是一种思想,这方面的书籍我也看过很多,但是并没有理解多少,后来看到了一些还不错的算法书籍,这里也可以推荐给大家,一本是《图解算法》,一本是《啊哈,算法》都可以作为入门的算法的书籍。

    剑指offer

    学完第一部分的内容之后,相信你对数据结构和算法基础已经有所了解了吧。

    这时候你已经有能力去解决一些基础的算法问题了,而剑指 offer 则整理了互联网企业常考的算法问题,在过去几年里都非常流行,很多互联网企业都会选取其中的题目进行考察,因为里面的题目都很经典,所以非常受大家青睐。

    第一次看到这本书的时候,发现这些题目的解题思路都非常独特,以前从来没有见过,这本书上的代码是 C++ 语言版本的,所以我看着也比较吃力,其实现在网上已经有很多其他语言的代码版本了,我博客里就有基于Java 版本的代码。建议还是找到自己对应语言的版本,正好可以熟悉一些 API,避免发生错误。

    剑指 offer 一共包含40多道算法题目,其中大部分是和数据结构有关的题目,比如字符串、栈与队列、二叉树、链表和数组等等,这些题目如果你从来没见过,可能完全没有思路,但是如果你见过几次,能够自己写上几遍,其实就可以对题目的思路有所理解,下次再遇到的时候就有机会独立解决了。

    LeetCode

    一般来说,剑指 offer 是至少要刷个1到2遍的,你需要了解大部分题目的解题思路,并且能够手写出大致的代码,才能进入到下一个阶段。

    LeetCode 是程序员都知道的一个网站,一个刷算法题必备的网站,但是相信大家一开始接触这个网站的时候,一定会觉得头大,比起剑指 offer 的题,LeetCode 上的题目更加有难度,题型众多,变式也很多,出题的角度也比较刁钻。

    我第一次到这个网站刷题,也觉得难度颇高,无从下手,但是后来还是找到了解决之道。遇到一个从来没有接触过的领域,最好的办法就是听取前辈们的建议,首先,我看了一些 LeetCode 刷题指南,网上有很多,大概会告诉你应该如何去刷题,按照什么样的顺序。其次,我也看了一些LeetCode 刷题视频,里面会告诉你一般的解题思路。有了这些铺垫之后,我终于开始在 LeetCode 做题了,迈出第一步之后,剩下的就是坚持了。

    有一些常见的刷题顺序可以推荐给大家,一个是按照默认顺序,我不是很喜欢,因为题型乱七八糟,不好归纳,第二个方法是按照 tag 刷题,并且避开差评的题目(差评的题目一般用例都比较古怪,很难 ac)我主要是按照 tag 标签进行刷题的,并且只刷一些比较经典的题目,最后一共做了 150 道左右,又花了一些时间重新进行复盘,这才算是有了一定的解题能力。

    真题

    不做真题,即使你刷题再多,恐怕都会吃亏,算法真题和 LeetCode、剑指 offer 其实都不尽相同,因为很多真题是公司自己出的,题目质量良莠不齐,有的题目可能是经典题型的变式甚至是照抄,有的题目则是一些出题人脑洞大开自己想的题目,考察的内容不再以算法思想为主,而是以解决问题为主,题目更加灵活多变,有时候也会结合公司业务场景,甚至是时事热点,总之就是五花八门,等你做多了之后,也就见怪不怪了。

    互联网算法真题其实很多地方都有,比如牛客网,在知乎上、博客上也能找到不少,光我做过的笔试面试算法题,估计也不下200道。这些题目没有什么捷径,多做,多练,多总结,学会快速解题,迅速得分,掌握解题之道,只是时间的问题。

    算法题解题技巧

    算法笔试题和面试题最大的区别就在于,现在的笔试题一般都是线上考试,判卷也是自动化的,对就是对,不对就是不对,面试题则更加人性化,你写个大概的代码框架,也比啥都不写要强得多。

    正因为如此,所以掌握一些算法题笔试解题技巧,也是非常有必要的。

    1 熟悉自己使用的语言这里主要指的是要了解编程语言中数据结构的使用,比如栈,队列,链表,哈希表等等,还要会使用一些排序方法,比较器。除此之外,还得会写基本的输入输出,因为很多在线笔试的网站都要求自己完成输入输出。

    2 科学答题这里说一个小技巧,就是实在想不出来的话,可以直接输出测试用例。

    3 检查错误另外,有些题目可能会超时,原因是复杂度太大,可以考虑空间换时间。

    而有些题报内存问题,此时要检查一下数组大小是不是超过规定的空间复杂度了。

    如果是递归栈溢出,则可能要考虑剪枝或者使用非递归做法。

    另外,记得要检查你的变量类型是否正确,有时候可能需要用long但你却用了int,也会导致白白丢分。

    4 本地调试很多笔试题都支持本地编辑器提交处理,所以你可以先在本地进行测试,如果有问题的话可以考虑断点调试,更容易发现错误在哪里。

    5 黑科技其实很多笔试题在网上都有原题,用好你的搜索引擎和聪明的头脑,相信你可以多得几分的。

    BAT大厂面试的那些套路

    发现一个有趣的现象,网上一些比较热门的文章、博客往往都是“某某公司面试题汇总”、“某某公司面试题解析”,似乎程序员们对面试题总是抱有热情,好像多看了几道面试题,自己的能力就可以很快提高一样。

    作为一个研发工程师,看过很多公司的面试题,也参与过很多公司的面试,发现大厂的面试题更加具有代表性,虽然现在很多大厂的面试官也懒得自己出题了,不过经验老到的他们还是更清楚如何高效率地考察面试者。

    而小公司的面试题往往五花八门,有的更加贴近公司自身业务,希望面试者结合业务给出解决方案,有的干脆直接从书本上找题目,考察一些死记硬背的概念,当然,有的初创公司逼格很高,则会搞一些高难度的面试题,角度刁钻,常常让面试者猝不及防。

    既然大公司的面试题具有共性,那么我们也不妨来尝试探讨一下,大厂面试题到底考察面试者哪些方面的能力。

    1、基础知识

    基础知识无疑是大厂面试官最喜欢考察的东西了。如果面试者的基础都不扎实,那么建立于基础知识之上的实战能力、业务能力都是空中楼阁。

    说到基础知识,首当其冲的就是岗位要求的能力了,比如对于Java工程师,你需要熟悉Java核心技术:反射、多线程、异常处理、集合类、IO流。

    作为一个程序员,你还需要掌握计算机网络、操作系统、数据结构与算法,甚至是计算机组成原理(一般很少考察)。

    这些都是最基本的,除此之外,作为一个Java Web工程师,你需要熟悉Web框架,比如SpringMVC、SpringBoot,能说出它们的工作原理,特性、优缺点等等。

    而作为一个后端工程师,你需要了解MySQL的工作原理、常用命令,了解Redis的常用数据结构、使用方式,了解Java网络编程的基本概念,能够解释NIO和BIO、能够了解JVM,了解GC等等。

    面试官考察这些基础知识的方式很简单,找一些相关的面试题一一进行提问,根据你的回答,基本上就可以了解你对这些知识点的掌握程度了。

    2、知识深度

    也许上面这些问题,你通过背一些面试题,看一些面经,就能掌握得八九不离十了,毕竟面试官提的很多问题也是在网上找到的,所以你可能会放松警惕,觉得这样就足够了。

    其实不然,大厂面试官还有一个爱好,就是对于每个知识点,都喜欢深入往下问,问到没有问题可以问,或者问到你不会为止,这样提问的目的只有一个,就是试探你对这个知识点的理解深度,如果你无法提供足够深刻的回答,结果往往就是失败。

    举个例子来说,大家都知道JVM的GC,一般来说,常见的GC算法、垃圾回收器也都知道那么几个,但是要说到具体的回收过程,可能很多人的理解还是没有到位。

    我们可以这么回答:首先对象先分配到年轻代,下次GC时,活着的对象进入老年代,实际上年轻代还分为Eden和Survivor区,Survivor区又分为From区和To区,From区和To区的对象在每次YGC时都会交换,在Survivor区存活下来的对象的年龄会+1,直到年龄达到进入老年代的阈值,此时Survivor区的对象进入老年代。

    就算答案已经这么冗长,其实还可以被拓展,被补充。面试是一个面试官考察你的机会,也是一个你展现自己能力的机会,所以,每次面试都要毫无保留,把你会的东西全部表现出来,结果往往会令人满意。

    相比于基础知识,要提高你的知识深度更加需要时间和精力,这就不是一朝一夕的事情了,需要你不断地去积累,这方面的内容读者朋友也可以参考我之前的文章。

    3、解决问题的能力

    解决问题的能力,这个主题有点宽泛,但是却真的是大厂最喜欢考察的东西。

    比如面试官拿出一道你没见过的算法题,往往是很容易让你产生畏难情绪的,如果你放弃思考直接回答不会,那你就输了。

    题目可能很难,但是面试官想看到的是你思考的过程,以及解决问题的能力,如果你可以介绍自己的思路,给出一些解决方案,就算题目真的不会写,可能也会给面试官比较正面的影响。i

    当然,如果你有很多题都不会,那可能你解决问题的能力也就这样了。

    除了算法题,智力题也是一种常见的面试题型,这些题目可能涉及概率论、博弈论,题目本身不会很难,你应该给出你的解题思路和思考过程,面试官一般也会引导你打开思路,这类题目也很能反映一个人解决问题的能力。

    如果你有项目经历或者实习经历,那么面试官往往会问你在项目中负责什么,遇到了哪些困难,又是如何解决的,其实也是为了考察你解决问题的能力。

    如果你能很清楚地介绍你所做的东西,并且能够告诉面试官自己通过努力解决了项目中的一些难题,一定会让面试官对你刮目相看,当然,前提是你真的做过这些项目,克服过这些困难,简历造假就是搬起石头砸自己的脚。

    总结:

    说了这么多,其实大厂面试官只不过想要了解面试者的可塑造性,面试题、算法题、压力面试等,都只是一种手段。因为大厂需要的有可持续发展能力的人才,能够为公司和部门长期发展提供更多的可能性。不需要救火队长,也不需要混子。

    大厂技术面试的一些技巧

    校园招聘号角吹响,一大波毕业生正在路上。众所周知,校园招聘中最重要的几个环节就是投简历,笔试和面试了。

    前两个部分的内容我们之前已经讲过了,今天我们来讲一下面试中你要知道的事。

    由于我是技术同学,所以对其他岗位的面试不是很熟悉,我也参加过一些群面,但是毕竟较少,这里就不献丑了。

    正常的技术面试一般有2到3轮,外加一轮HR面。技术面试的技巧其实不管是第几轮都是适用的。这里总结一下。

    自我介绍

    一段好的自我介绍是一场面试成功的基础。自我介绍一般可以围绕着简历来说。

    由于这段时间面试官会看你的简历,所以可以把时间控制为面试官看完简历所需的时间。

    自我介绍最重要的是有条理,突出重点。

    比如我会这么说:

    1 您好,我是xxx,是xx大学研二的同学,专业是软件工程。

    2 我主要学习和专注的方向是Java后端开发

    3 之前我看过一些这方面的技术书籍,写过一些博客,做过一些项目。

    4 去年有两段实习经历,分别是什么什么,大概说一下。

    这样自我介绍说完大概就30秒左右,面试官也基本看完了简历,接下来面试官就可以开始提问了。

    回答问题的技巧

    面试官开始提问,你开始回答,一般这个时间需要持续半小时到一个小时。你需要毫无保留地把你所学的东西表达出来,当然要使用得当的方式来回答。

    概念性问题回答步骤

    概念性问题一般都要分点答题,可以使用总分总的结构,尽量答全面,只说自己比较有把握的部分,不要不懂装懂。

    讲一下 tcp 的三次握手和四次挥手。

    很基础的题目,但是回答也要有条理。一般可以分三步来回答,先说一下握手的过程,注意描述客户端和服务端,并且大概说一下为什么要这么做。

    讲一下 lock 和 synchorized 的区别。

    这道题你最好能分点来答,并且把用法和原理都答上。

    1 sync 和 lock 都是可重入锁。

    2 sync 可以锁类,实例和实例方法,lock 只能锁方法。

    3 lock 可以搭配 condition 使用,以维护多个等待队列,而 sync 只有锁对象一个等待队列。

    4 lock 需要手动释放锁,否则会内存泄露。

    5 sync 底层使用系统调用,需要切换到内核态,而 lock 则使用 aqs 来实现。

    看似简单的问题,如果要回答完整还是很不容易的,这时候分点答题是最好的选择,避免自己的思路混乱,也能让回答显得很有条理。

    算法类问题回答步骤

    算法类题目的答题技巧也是有迹可循的,首先可以先问清题意,让面试官提供足够信息,然后要求思考一段时间,想一个暴力解法来回答,接着和面试官交流,不断进行优化。

    说一下10亿个数找出前十个数的办法。

    1 可以先问一下数字范围,单机内存是否足够

    2 尝试回答建十个元素的小顶堆,数组遍历一遍即可。

    3 如果面试官不满意,再尝试回答哈希分片到多台机器上执行,最后再进行归并。

    总之,算法题一定是一个交流和思考的过程,了解足够多的信息以后,先暴力再优化,实在想不出来可以实话实说,不要打肿脸充胖子。

    实际场景类问题

    这类问题通常不好准备,需要你综合以前所学,加上一些现场的思考来进行回答。不过万变不离其宗,如果你基础扎实,这类问题也难不倒你。

    秒杀系统架构怎么设计

    其实这个题在网上可以找到答案,不过这类的场景题很受面试官青睐。

    1 前端做好请求拦截,时间到之前不提供链接

    2 http访问做负载均衡

    3 请求消息通过消息队列削峰和限流

    4 通过缓存缓解数据库压力

    5 数据库做主从和读写分离

    看似复杂的题,只要你有一定积累,还是可以分点回答清楚的。

    HR面回答技巧

    如果能够面到HR小姐姐,那你已经是很优秀的同学了,HR面说简单也简单,说难也难,重要性自然不及技术面试,但是也要足够重视。

    1 纯咨询类问题

    家长,故乡,女友,学校等等方面的问题,礼貌地回答即可。

    2 灵活类问题

    优缺点

    最有挑战的事

    最成功和最失败的事

    实习收获

    这方面的回答讲究一个扬长避短,把一些不起眼或者是中性的缺点拿出来说,同时要说现在是如何改正这个缺点的。

    这样回答的话,既巧妙地避开了你的缺点,也能让人看出你完善自己的决心。

    当然,分点答题很重要,一定要说清楚自己的逻辑,是什么,为什么,怎么做。

    3 较敏感的问题

    你最讨厌什么样的人

    你在工作中遇到最大的问题

    有几个offer你如何选择

    这类问题一定要思考清楚再回答,避免给HR留下不好的印象,offer选择的话,可以不说的太直白,我一般是说结合公司,岗位和城市进行考虑。

    4 学习和职业规划

    平时怎么学习

    遇到压力怎么处理

    未来的职业规划

    这方面也需要做准备,分点答题即可,对未来规划需要清晰,答到点子上。否则会扣分。

    有什么问题想问的

    我一般会问部门情况和后续面试安排,多了解一些信息总是有益的。并且可以让人感受到你对他们的重视

    压力面试技巧

    压力面的起源不知道是哪里,但是确实会遇到一些压力面,说是压力面,不如说是面试官故意刁难你。

    这时候你的反应是否正确就很重要了,人在情绪激动的时候如果还能理性处理问题,会更让人青睐。

    我经历的一次压力面是这样的。

    1 自我介绍后,面试官先吐槽我的项目没技术含量,然后抛出几个问题。我只好陪笑。

    2 接着我对这个问题尝试做出回答,回答质量一般,被直接驳回。我又尝试咨询问题详情,被不耐烦地打断。此时我已经很不爽了,但我说话还是很和气。生怕再触怒他。

    3 然后他的态度才逐渐缓和,正常地提了几个问题。我也都正常回答了。

    全程我都保持冷静,没有跟面试官正面冲突,而是避其锋芒,为自己争取机会。不管是压力面,还是遇到脾气差的面试官,甚至是故意刁难你的面试官,切记要保持礼貌和理智。

    不卑不亢,保持谦虚,礼貌作答,才是应对任何面试都应该遵守的原则。

    以上就是我的面试技巧总结,如果大家有什么其他想法,也欢迎跟我交流探讨。

    额外内容

    应届生如何获取招聘信息

    关于秋招的一些真相

    实习转正和校招如何权衡?

    校招前几个月,如何高效地进行复习?

    刷完500道BAT面试题,我能去面试大厂了吗?

    从Java小白到收获BAT等offer,分享我这两年的经验和感悟

    2017春招实习面试回顾:从面试连跪到收割offer

    从零基础到拿到网易Java实习offer,我做对了哪些事


    本文首发于 GitChat,未经授权不得转载,转载需与 GitChat 联系。

    阅读全文: http://gitbook.cn/gitchat/activity/5ccb0783c5eb6e70c45303aa

    您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

    FtooAtPSkEJwnW-9xkCLqSTRpBKX

    展开全文
  • 比如,你选择了计算机专业,那么你将面临高等数学、线性代数、C语言、计算机引论、离散数学、电子技术、C++程序设计、汇编语言程序设计、计算机组成原理、编译原理、操作系统、数据库原理……下面一套程序员高考试卷...

    3e2b9ccca2e7f6ca1889e1a85398b494.png

    本文来源网络,作者不详

    你是不是还在怀念曾经逝去的高三,遗憾自己没有超常发挥,或者遗憾自己志愿表没有填好。其实,只要志愿选的好,年年期末像高考。

    比如,你选择了计算机专业,那么你将面临高等数学、线性代数、C语言、计算机引论、离散数学、电子技术、C++程序设计、汇编语言程序设计、计算机组成原理、编译原理、操作系统、数据库原理……

    下面一套程序员高考试卷,带你重温一下高考,顺便测试一下自己是否是一个合格的程序员吧~

    1.本试卷所有题目都是单选题,每题5分,共20题,满分100分;

    2.考试时间为10分钟;

    3.请自己独立作答;

    4.考试结束后,请将本试卷分享到朋友圈。

    1、程序员A:借我1000元吧。程序员B:给你凑个整数。

    请问程序员B借给程序员A多少钱?()

    A. 1000元

    B. 1024元

    C. 1111元

    2、为什么程序员分不清万圣节和圣诞节?()

    A. 因为 31 OCT == 25 DEC

    B. 程序员只有加班/不加班,不过节

    C. 程序员没有女朋友,不过节

    3. 程序员进阶到高级阶段必读的书籍是?()

    A.《C语言程序与设计》

    B.《沉默的愤怒》

    C.《颈椎病康复指南》

    D.《活着》

    4.被黑的最多的编程语言是哪一个?()

    A.Java

    B.JavaScript

    C.Python

    D.PHP

    5.哪一种面向对象方法可以让你变得富有?()

    A.继承

    B.封装

    C.多态

    D.抽象

    6、程序员最怕弹出的窗口是()

    A.

    dc6f53a9f3e13da625d593197806b012.png

    B.

    0a8f2d828ebaddf36b50909d1b9a3ebe.png

    C.

    ee4fdd907f8231964b20f87f704d03b4.png

    7、程序员:“哎,太累了日子没法过了,怎么才能换行啊?”()

    A. 打回车

    B. 不换行,日子不过了

    C. 除了敲代码,都不会,换行还是敲代码啊

    8、程序员会给自己的孩子起什么名字?()

    A. 依依、灵灵、依灵、灵依、依初

    B. Ctrl、Alt 、Delete

    C. 程序员怎么会有女朋友?

    9、怎么杀死一个程序员?()

    A. 找不到 bug

    B. 改三次需求

    C. 加班

    10、如何快速挣到一百万?()

    A. while

    B. 买彩票

    C. 当乞丐

    11、程序员最讨厌康熙的哪个儿子?()

    A. 四阿哥

    B. 七阿哥

    C. 八阿哥

    12、程序员下班前给老婆打电话:老婆,晚饭我带回来吃,你说买些啥?

    老婆:买1斤包子吧,如果遇到卖西瓜的,就买一个。

    程序员买包子时,看到旁边有人在卖西瓜。

    请问程序员带了什么回家?()

    A. 1斤包子

    B. 1个包子

    C. 1个西瓜

    13、达芬奇密码的上面是什么?()

    A. 达芬奇帐号

    B. 达芬奇验证码

    C. 达芬奇头像

    14、我GET不到你的笑点,怎么办?()

    A. 智商不在一条线

    B. 太矮了,踩凳子上

    C. 用Post试试

    15、如果程序员的女友和老妈同时掉进水里,怎么办?()

    A. 先救女友

    B. 先救老妈

    C. 按后退键

    16、程序员的书房里最喜欢挂什么?

    A. hello world

    B. just do it

    C. impossible is nothing

    17、为什么吸烟的程序员不在乎香烟盒上的那个警告?()

    A. 字太小

    B. 程序员眼中只有程序

    C. 不关心Warning,只关心Error

    18、一对程序员恋人面对面坐着,他们在做什么?()

    A. 面向对象编程

    B. 喝咖啡

    C. 抱怨产品经理

    19、老板:小程,下班前新版本一定要上线!

    小程:好的。

    第二天,老板上班,问小程:新版本怎么还没上线?

    小程怎么回答的?()

    A. 版本出问题了

    B. 版本上线前需求又改了

    C. 我还没下班呢

    20、以下谁是二进制思想最早的提出者?()

    A.牛顿

    B.莱布尼茨

    C.艾伦·麦席森·图灵

    D.伏羲

    2fe9c2bb0439d6fb4463cc20dda03ae3.gif
    展开全文
  • Tcl_TK编程权威指南pdf

    热门讨论 2011-03-25 09:30:55
    Tcl_TK编程权威指南pdf 内容简介回到顶部↑Tcl/Tk是第一种能通过Windows、Macintosh和Solaris等主要平台处理企业级任务的脚本语言。本书共分为55章,依次详细讲述了Tcl基础、Tcl高级特性、TK基础、TK组件、TK详解、...
  • python编程初学者指南是一本边学边制作游戏的经典教程,由美国程序员道森(Michael Dawson)编著。通过阅读本书,你不仅会学到很多实用的Python编程知识,还将懂得如何在实际工作中运用这些知识。本书各个章节都配有...

    python编程初学者指南是一本边学边制作游戏的经典教程,由美国程序员道森(Michael Dawson)编著。通过阅读本书,你不仅会学到很多实用的Python编程知识,还将懂得如何在实际工作中运用这些知识。本书各个章节都配有大量能够帮助你理解相关知识的范例。书中的每一个章节都会用一个完整的游戏来演示其中的关键知识点。每一章最后都会对该章的知识点进行小结,还会给出一些小练习让你试试身手。学完这本书之后,你就能熟练地运用Python了。不仅如此,你还可以把本书中学到的基本编程知识运用到其他的编程语言上去。在学习Python编程的过程中,你将创建出许多简单的小游戏,适用于对Python感兴趣的初级和中级读者学习阅读。

    201710151616212773.jpg

    内容介绍《python编程初学者指南》尝试以轻松有趣的方式来帮助初学者掌握Python语言和编程技能。本书共12章,每一章都会用一个完整的游戏来演示其中的关键知识点,并通过编写好玩的小软件这种方式来学习编程,引发读者的兴趣,降低学习的难度。每章最后都会对该章的知识点进行小结,还会给出一些小练习让读者试试身手。作者很巧妙的将所有编程知识嵌入到了这些例子中,真正做到了寓教于乐。本书全书内容浅显易懂,示例轻松活泼,是国际畅销的Python初学者教程,适合对Python感兴趣的初级和中级读者学习参考。

    201710151616406887.jpg

    章节目录第1章 启程:Game Over程序

    1.1 剖析Game Over程序

    1.2 Python简介

    1.2.1 Python易于使用

    1.2.2 Python功能强大

    1.2.3 Python是面向对象的

    1.2.4 Python是一种“胶水”语言

    1.2.5 Python所不在

    1.2.6 Python有一个强大的社区

    1.2.7 Python是免费的、开源的

    1.3 在Windows上设置Python

    1.4 在其他操作系统上设置Python

    1.5 IDLE简介

    1.5.1 通过交互模式进行编程

    1.5.2 通过脚本模式进行编程

    1.6 回到Game Over程序

    1.6.1 使用注释

    1.6.2 使用空行

    1.6.3 打印字符串

    1.6.4 等待用户

    1.7 小结

    第2章 类型、变量以及简单I/O:Useless Trivia程序

    2.1 Useless Trivia程序简介

    2.2 使用引号和字符串

    2.2.1 Game Over 2.0程序简介

    2.2.2 在字符串内部使用引号

    2.2.3 打印输出多个值

    2.2.4 为print指定结束字符串

    2.2.5 创建三重引号字符串

    2.3 使用转义序列和字符串

    2.3.1 Fancy Credits程序简介

    2.3.2 前进一个制表符位

    2.3.3 打印反斜杠

    2.3.4 插入换行符

    2.3.5 插入引号

    2.3.6 触发系统蜂鸣器

    2.4 字符串的连接和重复

    2.4.1 Silly Strings程序简介

    2.4.2 字符串的连接

    2.4.3 使用行继续符

    2.4.4 字符串的重复

    2.5 使用数字

    2.5.1 Word Problems程序简介

    2.5.2 理解数值类型

    2.5.3 使用数学运算符

    2.6 理解变量

    2.6.1 Greeter程序简介

    2.6.2 创建变量

    2.6.3 使用变量

    2.6.4 变量命名

    2.7 获取输入

    2.7.1 Personal Greeter程序简介

    2.7.2 使用input()函数

    2.8 使用字符串方法

    2.8.1 Quotation Manipulation程序简介

    ……

    第3章 条件分支、while循环以及程序策划:Guess My Number游戏

    第4章 for循环、字符串以及元组:Word Jumble游戏 80

    第5章 列表和字典:Hangman游戏

    第6章 函数:Tic-Tac-Toe游戏

    第7章 文件和异常:Trivia Challenge游戏

    第8章 软件对象:Critter Caretaker程序

    第9章 面向对象编程:Blackjack游戏

    第10章 GUI开发:Mad Lib程序

    第11章 图形图像:Pizza Panic游戏

    第12章 声音、动画以及程序开发:Astrocrash游戏

    附录A 配套网站

    附录B livewires参考

    使用说明1、下载并解压,得出pdf文件

    2、如果打不开本文件,请务必下载pdf阅读器

    3、安装后,在打开解压得出的pdf文件

    4、双击进行阅读

    展开全文
  • 数学: 可能会涉及到离散数学、组合数学等。这在 Google 还相对比较常见。例如选取问题 -- N 个中选 K 个的方法等; 图: 有一些问题可能常常会涉及到图相关算法,例如距离,搜索,连通性,环的检测。你需要知道常见的...
  • 大多数程序员肯定已经回到了工作岗位上,小编给您播报一下开年新书,看看喜欢不! 1、开源之迷 适兕 著 丰富的故事和案例,人人都能读懂的开源科普书,AR扫描收获增值视频,Linux基金会亚太区总监、红帽全球...
  • 程序员数学3+线性代数》   ********2017/12/25 已更新227本******** Docker相关 《循序渐进学Docker》 struts 《精通Struts基于MVC的JavaWeb设计与开发》 sql相关 《[漫画数据库].(日)高桥麻奈》 《DB2+...
  • OpenGL编程指南(第四版) 中文版 pdf

    热门讨论 2014-08-30 17:19:04
    OpenGL图形系统是一个软件接口 让程序员能够创建交互式程序 使用计算机图形学技术生成具有真实感的图像 本书是OpenGL ARB推荐的OpenGL 1 4版学习指南 本书首先阐述OpenGL的功能和计算机图形学基本知识 包括状态管理...
  • 程序员学Python

    2021-02-04 06:56:59
    程序员的Python编程入门和进阶指南程序员的Python编程入门和进阶指南,程序设计领域学者裘宗燕教授潜心力作,程序员学Python电子版是面向学过编程、有一定编程经验的计算机专业人员,相关专业的大学生和教师的 ...
  • 程序员常用英语单词1700

    千次阅读 多人点赞 2019-08-01 08:37:12
     向导,指南,入门 224. tree n. 树,语法树 225. environment n. 环境 226. but 但是,可是,除非,不过 227. device n. 设备,器件,装置 228. highlight n. 增强亮度,提示区 229. call v. 调用,...
  • 由于作者Wes McKinney是pandas库的主要作者,所以本书也可以作为利用Python实现数据密集型应用的科学计算实践指南。本书适合刚刚接触Python的分析人员以及刚刚接触科学计算的Python程序员。   Pandas的最佳工具书 ...
  • 中文名: Shell脚本专家指南 原名: Expert Shell Scripting 别名: Shell 作者: (美)彼得译者: 李晓群 付弘宇资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社书号: 9787115230805发行时间: 2010年 地区: 大陆 语言...
  • 本书适合对C/C++有一些了解的程序员进行查缺补漏。因为这里边对知识点的讲解比较凌乱不是很条理,前面的内容有时就用到了后面内容,如果你不是了解的话,读起来就比较困难了。 本书还有一个很大的特点是很多地方...
  • 马上也有了使用“小指南” 话不多说,来康康 当调试出现了Bug时 ↓↓↓ 当产品经理来提需求时 ↓↓↓ 当程序上线喜提Bug时 ↓↓↓ 当公司组织团建时 ↓↓↓ 当程序员下班回家后 ↓↓↓ 当...
  • 高级R语言编程指南pdf

    2021-05-24 08:24:42
    本书为解决各种R语言编程问题提供了非常有用的工具和技术,帮助你少走弯路。书中阐释了R语言简洁、优美以及灵活的核心特点,展示了许多必备的技巧,通过它们可以创建在各个场景中使用的优质代码。...中级R程序员则...
  • 因此,这个方便的参考指南对任何C程序员都是必不可少的。它提供了一个精简的,结构良好的C标准图书馆的所有重要方面的摘要.没有一页长,重复的例子或晦涩的,很少使用的功能。相反,在实践中你需要知道和提防的每一...
  • 第一部分介绍基本的思路,包括神经网络底层的数学知识,第2部分是实践,介绍了学习Python编程的流行和轻松的方法,从而逐渐使用该语言构建神经网络,以能够识别人类手写的字母,特别是让其像专家所开发的网络那样地...
  • OpenGL图形系统是一个软件接口,让程序员能够创建交互式程序,使用计算机图形学技术生成具有真实感的图像。本书是OpenGL ARB推荐的OpenGL 1.4版学习指南。本书首先阐述OpenGL的功能和计算机图形学基本知识,包括状态...
  • 以比较轻快的风格,向零基础的学习者介绍一门时下比较流行、并且用途比较广泛的编程语言,所以,本书读起来不晦涩,并且在其中穿插了很多貌似与Python编程无关,但与学习者未来程序员职业生涯有关的内容。...
  • 一位程序员社畜的2021闲读书单!

    千次阅读 多人点赞 2021-09-29 08:13:20
    书单 《南京传》(已完成) 《正面管教》(已完成) 《养育女孩》(已完成) 《数学之美》(已完成) 《非暴力沟通》(已完成) 《软技能·代码之外的生存指南》(已完成) 《诗经》(循环看) 《软技能2·软件...
  • 给大家带来的一篇关于Python3.5编程相关的电子书资源,介绍了关于Python入门、Python实践、Python编程方面的内容,本书是由中国工信出版集团出版,格式为PDF,资源大小9.85M,埃里克·马瑟斯编写,目前豆瓣、亚马逊...
  • 2020年度程序员新书/经典书TOP10

    千次阅读 2020-12-31 15:49:34
    第一部分介绍基本的思路,包括神经网络底层的数学知识,第2部分是实践,介绍了学习Python编程的流行和轻松的方法,从而逐渐使用该语言构建神经网络,以能够识别人类手写的字母,特别是让其像专家所开发的网络那样地...
  • 程序员要看的书

    千次阅读 2020-08-16 21:37:41
    qt 爬取 https://www.linuxprobe.com/books 书籍,程序员要看的书 截至2020-8-16,爬取2544项,去掉重复项,得到1945项 人为追加3本书 书目录内容->...《VC++编程技术与难点剖析》pdf版电子书免费下载 《.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,622
精华内容 1,048
关键字:

程序员数学指南 pdf

友情链接: csb.rar