做一份工作,实际就是追寻梦想的过程,而为了完成梦想,必须有一个长期规划,从而指导我们选择工作。它是择业过程中最本质和最原始的参考借鉴。 下载链接
为此,小云为你精选一份程序员面试书单,分为职业规划、编程技能两部分,适合刚毕业的大学生、正准备换工作的程序员们,涵盖算法工程师、Java工程师、测试等多个领域。
软技能 代码之外的生存指南 约翰 Z森梅兹 著
这是一本真正从“人”(而非技术也非管理)的角度关注软件开发人员自身发展的书。书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中“人”的因素,全面讲解软件行业从业人员所需知道的所有“软技能”。
本书聚焦于软件开发人员生活的方方面面,从揭秘面试的流程到精耕细作出一份杀手级简历,从创建大受欢迎的博客到打造你,从提高自己工作效率到与如何与“拖延症”做斗争,甚至包括如何投资不动产,如何关注自己的健康。
编程珠玑(第2版)乔恩·本特利(Jon Bentley) 著
作者虽然没有给出解决这些问题的具体代码,但始终非常富有洞察力和创造力地围绕着这些折磨程序员的实际问题展开讨论,从而引导读者理解问题并学会解决问题的技能,这些都是程序员实际编程生涯中的基本技能。
为此,本书给出了一些精心设计的有趣而且颇具指导意义的程序,这些程序能够为那些复杂的编程问题提供清晰而且完备的解决思路,书中还充满了对实用程序设计技巧及基本设计原则的清晰而睿智的描述。
PS:本书在第一版的基础上增加了3个方面的新内容:测试、调试和计量,集合表示,字符串问题,并对第一版的所有程序都进行了改写,生成了等量的新代码。
重构 改善既有代码的设计马丁·福勒(Martin Fowler) 著
软件开发的不朽经典,生动阐述重构原理和具体做法,普通程序员进阶到编程高手必须修炼的秘笈。
重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是《重构:改善既有代码的设计》原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。《重构:改善既有代码的设计》也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。
《重构:改善既有代码的设计》凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与《重构:改善既有代码的设计》最初出版时不可同日而语,但书中所蕴涵的意味和精华,依然值得反复咀嚼,而且往往能够常读常新。
C和C++程序员面试秘籍 董山海 著
众多高级语言都从C/C++有所借鉴,所以说C/C++的语言基础对从事软件开发的人员来说非常重要。
本书是一本解析C/C++面试题的书,可以帮助求职者更好地准备面试。《C和C++程序员面试秘笈》共包含12章,囊括了目前企业中常见的面试题类型和考点,包括C/C++程序基础,预处理、const、static与sizeof,引用和指针,字符串,位运算与嵌入式编程,C++面向对象,C++继承和多态,数据结构,排序,泛型编程,STL,算法和逻辑思维等最常见的面试题。《C和C++程序员面试秘笈》通过技术点解析、代码辅佐的方式让读者能深刻领会每个考点背后的技术。
本书紧扣面试精髓,对各种技术的剖析一针见血,是目前想找工作的C/C++程序员和刚毕业的大学生的面试宝典。
Java程序员面试宝典杨磊 著
本书对程序设计面试中Java常见的题型和常用解答技巧进行了介绍,对现代职业人如何有效求职、面试考官如何关注求职者动态等做了详细解说。本书将为您揭开知名IT企业面试、笔试的核心机密;传授程序员岗位求职的关键技巧。
编程之法:面试和算法心得 July 著
本书涉及面试、算法、机器学习三个主题。书中的每道编程题目都给出了多种思路、多种解法,不断优化、逐层递进。本书第1章至第6章分别阐述字符串、数组、树、查找、动态规划、海量数据处理等相关的编程面试题和算法,第7章介绍机器学习的两个算法—K近邻和SVM。此外,每一章都有“举一反三”和“习题”,以便读者及时运用所学的方法解决相似的问题,且在附录中收录了语言、链表、概率等其他题型。
书中的每一道题都是面试的高频题目,反复出现在最近5年各大公司的笔试和面试中,对面试备考有着极强的参考价值。全书逻辑清晰、通俗易懂,适合热爱编程、算法、机器学习,以及准备IT笔试和面试,即将求职、找工作的读者阅读。
C#与NET程序员面试秘笈 靳华 著
《C#与NET程序员面试宝典》取材于各大IT公司的历年面试题252个(包括研发类笔试及口试题目、情商及智商类题目),详细分析了应聘C#与NET程序员职位的常见考点。《C#与NET程序员面试宝典》主要内容包括:面试流程、基础语法和技术框架、数据访问及XML应用、高级特性及应用进阶、测试及质量保证、跨国公司经典面试题等。
软件测试工程师面试指导 蔡为东 著
对于想要得到一份软件测试工程师职位的朋友来说,可能会有一些疑问,如软件测试这个行业究竟怎么样什么样的人适合做软件测试面试当中要注意什么软件测试的基本知识点都有哪些笔试都会涉及哪些内容等等。本书将解答以上所有的疑问。
本书共6章内容,主要包括软件测试行业概貌、软件测试从业人员的基本要求、如何找工作、软件测试技术基础、典型的测试工程师笔试题等。本书内容丰富,讲解深入浅出,能让读者朋友在短时间内掌握基本的测试技术,了解求职过程的各个环节,熟悉各种类型的笔试题,领会面试技巧。本书后附有一些实用的附录,例如简历模板、新人工作指南等,尤其是“我在微软做软件测试外包”这一部分内容,寓故事性和知识性于一体,讲述了作者在国际软件巨头——微软公司做软件测试外包的亲身经历,相信对于广大的读者朋友有阅读和参考的价值。
本书适合想要从事软件测试工作的朋友,也可供初级软件测试工程师学习之用,另外也可作为大专院校软件测试培训的教材之一。
Android高薪之路 李宁 著
《Android高薪之路:Android程序员面试宝典》取材于各大IT公司面试真题,所给出的试题尽可能地覆盖了Android应用开发的各个方面,而且大多数试题都有解析部分,读者可以通过这部分更深入地理解试题中所包含的技术内容,希望真正做到由点成线,举一反三。
《Android高薪之路:Android程序员面试宝典》中还将Android中涉及的各个常用技术问题进行筛选、分类。这样读者可以有的放矢,对自己还没有掌握的Android技术进行重点攻破,从而起到事半功倍的效果。除了对每道题目都有详细的解析和回答外,对相关知识点还有扩展说明。
《Android高薪之路:Android程序员面试宝典》对面试中Android常见的题型和常用解答技巧进行了介绍,它不仅能帮助求职者快速复习相关知识点,也对现代职业人如何有效求职做了详细解说。《Android高薪之路:Android程序员面试宝典》对于读者从求职就业到提升计算机专业知识都有显著的帮助。
编程之美 《编程之美小组》
《编程之美—— 微软 技术面试心得》收集了约60道算法和 程序设计题目,这些题目大部分在近年的笔试,面试中出现过,或者是被微软员工热烈讨论过。作者试图从书中各种有趣的问题出发,引导读者发现问题,分析问题,解决问题,寻找更优的解法。
书中绝大部分题目都提供了详细的解说。 每道题目后面还有一至两道扩展问题,供读者进一步钻研。
书中还讲述了面试的各种小故事,告诉读者微软需要什么样的技术人才,重视什么样的能力,如何甄别人才。回答读者关于IT业面试,招聘, 职业发展的疑问。 这本书的很多题目会出现在IT 行业的各种笔试,面试中。但本书更深层的意义在于引导读者思考,和读者共享思考之乐,编程之美。
软件工程师——顾名思义做软件开发的工程师,所谓工程师就是要对开发的程序、软件、系统有良好的逻辑思维能力,善于开拓创新,能快速的罗列出一个系统的大概构架,然后再来解决程序编程问题。其实软件工程师主要不是做编程,编程是专门给程序员来做的活,工程师把开发的系统大概的思路,构架都跟你说明清楚然后给程序员来用代码实现。所以要做一名软件工程师需要的不仅是扎实的编程功底,还要有比较好的逻辑思维和大胆创新的精神,记住要做一个软件工程师需要的是冰冻三尺非一日之寒的努力、踏实、上进、求新、求变、求实的态度和决心!
-物理层
物理层定义了设备接口上的一些电子电气化的标准,比如RJ45接口,光纤接口。传输介质双绞线,无线,光,电。等
--数据链路层
二层定义了一个重要的表示,MAC地址,准确的说他必须在一个LAN内是唯一的。他又48位的十六进制组成,前24位是厂商表示,后24位 是厂商自定义的序列号。有时候 MAC地址就是表示了一个设备的位置。
--网络层
网络层是用来逻辑上选路寻址的,这一层最重要的一个协议就是IP协议。基于ip 又分为 ARP,RARP,ICMP,IGMP等
--传输层
这一层定义类了 两个重要的协议 TCP和UDP 。还有就是端口号的概念。这一层关联的是一个主机上的某个程序或者是服务。比如 tcp 80 的web服务 udp 4000的QQ 程序等。
--会话层
主要作用是建立会话和管理会话。我一般这样理解 会话的 比如 telnet 一台主机,是一次会话的链接。打开百度的网页,就和百度的服务器建立了一次会话。
--表示层
因为底层传输的是二进制,应用层无法直接识别。所以根据这一层的名字可以直接理解为他是一个翻译。比如把一长串的数据“翻译”成rmvb格式,交给上层的 快播 这个程序,把另一串数据“翻译成”MP3格式交给 音乐播放器。其实这一层的工作很多。
压缩,解压缩,加密,解密等
--应用层
为用户提供了一个可以 *** 所的界面,如windows的桌面化或UNIX的字符界面。
OSI七层的每一层是独立工作的,但是层与层之间是相互“合作”“兼容”的关系。
12 [三层交换和路由器的不同]
虽说三层交换机和路由器都可以工作在三层,但本质上还是有所区别。
一 在设计的功能上不同
现在有很多的多功能路由器,又能实现三层的路由功能,包括NAT地址转换。有提供了二层的端口,有的还配置了无线功能。再有就是还具备防火墙的功能。但是你不能它单独的划分为交换机或者是防火墙吧。只能说是个多功能的路由器。防火墙二层交换只是他的附加功能。三层交换也一样,主要功能还是解决局域网内数据频繁的通信,三层功能也有,但不见得和路由器差很多。
二 应用的环境不同
三层交换的路由功能比较简单,因为更多的把他应用到局域网内部的通信上,主要功能还是数据的交换
路由器的主要功能就是选路寻址,更适合于不同网络之间,比如局域网和广域网之间,或者是不同的协议之间。
三 实现方式不同
路由器能够实现三层的路由(或转发) 是基于软件的实现方式,当收到一个数据包要转发的时候,要经过查看路由表,最长匹配原则等一系列复杂的过程最终实现数据包的转发,相比三层交换效率略低。而三层交换是基于硬件的方式实现三层的功能,他成功转发一个数据包后,就会记录相应的IP和MAC的对应关系,当数据再次转发是根据之前的记录的表项直接转发。这个过程成为“一次路由,多次交换”。
总之,三层交换和路由器的最大区别是路由器可以基于端口做NAT,而三层交换机不能。路由器直接接入光纤可以直接上网,而三层交换机不能。主要是三层交换机的每一个接口都有专有的MAC地址和特定的ASIC集成电路。
13 [静态路由和动态路由的区别]
静态路由特点
静态路由是管理员手工配置,精确。但是不够灵活,是单向性的。考虑到静态路由稳定,节省资源(内存,cpu,链路带宽)。在网络TOP不是很大的环境中常用。
动态路由的特点
动态路由的好处就是路由器本身通过运行动态路由协议来互相学习路由条目,在大型的网络环境中,一定程度上减少了工程师的工作量。动态路由协议分为很多种,IGP和EGP,IGP中根据工作的原理分为链路状态型和距离矢量型的。但是不管哪一种动态协议,他都要经过以下几个过程。
1“说话” 向其他的路由器发送路由信息
2“收听” 接收其他路由器发来的路由信息
3“计算”不同的动态路由协议有不同的算法,每种路由协议通过自己特有的算法把收到的路由信息计算,得出最好的路由条目,加载到路由表中。
4“维护” 维护路由表,当TOP发生变化的时候,及时的更新自己的路由表,并发送变更的消息
在生产环境下,应当更具不同的网络规模,选择不同的路由协议。
14 [描述一下ACL和NAT]
ACL:acl访问控制列表是用来制定规则的一种机制。他用来告诉路由器那些数据包访问那些资源是允许的,那些是拒绝的。他可以分为两种方式,一是标准的访问控制列表,只能基于源地址进行限制。而是扩展的访问控制列表,他不仅可以基于源地址和目标地址进行过滤,还可以根据端口来进行限制。ACL的工作原理就是读取数据包的三层和四层,和访问控制列表中的条目进行匹配,如有相符的,直接按照策略(允许或拒绝),不在往下匹配。如没有匹配的条目则按照默认规则。
NAT:nat网络地址转换,是为了解决ipv4地址空间不足产生的。
Nat的原理就是替换掉数据包中的源ip+端口或目标ip+端口,以达到私有地址不能再公网上传播的这种情况,或者是局域网中服务器的发布。Nat一定程度上提高了局域网用户的安全性。
实现方式大概可以分成 静态NAT,动态NAT PAT(端口复用)
15 [描述一下VLAN]
VLAN 是为了避免二层出现广播风暴给大面积用户带来影响,所采取的一种手段。
Vlan 带来的好处
减少广播风暴
提高一定的安全
简化网络的管理,有易于故障排查
Vlan 是把局域网进行逻辑上的分割,实现方式有两种
1静态vlan 基于端口的vlan (常用)
2基于MAC地址的vlan (适合于移动用户)
Vlan之间的通信需要配置TRUNK链路(中继) 封装模式有两种
Isl 思科私有的技术,在数据帧的头部和尾部添加30字节的标示符
Dot1q 通过 在mac地址后面打标记的方式 标识vlan 共4个字节 公有协议
16 [RIP和OSPF的区别]
两者都属于IGP协议,rip是典型的距离矢量动态路由协议。Ospf是链路状态型的协议
Rip是整张路由表进行广播更新(v2是组播),学习未知的路由条目,有存在环路的情况
并且没有邻居表,网络收敛速度比较慢。因为有环路的缺陷,不适合较大的网络使用。
Ospf组播更新,并且只有TOP发生变化的时候才出发更新,把收到更新的路由会放置在LSDB中,并生成路由。Ospf本身没有环路的产生,并且是有分层的结构,而rip是平面的没有层次化。所以ospf比rip收敛速度快。在NBMA网络中还会有DR和BDR的概念,促进了ospf的收敛。
Rip 管理距离 120 ospf 管理距离 110
17 [解释以下术语的意思]
LAN 本地局域网
WAN 广域网
VLAN 虚拟局域网
WLAN 无线局域网
*** 虚拟专用网
AD 管理距离,用来衡量不同路由协议生成去往同一目标的可信值
Metric 度量值,用来判断同一种路由协议生成去往同一目标的优先级
18 [简述一下stp是什么]
Stp 生成树协议。
一个良好的网络应该要考虑到链路的冗余,比如二层的交换机做冗余,来防范单点故障带来的问题。但是二层做冗余的话会带来一些问题:
1广播风暴,因为二层对未知数据帧的处理是进行广播,而且二层的封装结构又不像三层那样有TTL 的机制来防护。所以一旦广播风暴产生,其他的交换机就会跟着广播,造成链路的堵塞瘫痪。
2MAC地址的重复。因为二层的工作原理,会造成交换机对一个MAC的多次重复的去学习,造成不必要的资源浪费,直到设备瘫痪
3MAC地址表的不稳定,因为要重复去学习一些地址。造成转发效率缓慢。
二层环路带来的后果是严重的 ,stp协议就是在冗余的环境下,逻辑上去DOWN掉一个借口,打破环路的产生,同时做到冗余。当环境变化时,会自动跳转down的接口。
19 [STP计算的过程]
1选择根网桥
2选择根端口
3选择指定端口
4指定阻塞端口
20 [描述一下HSRP]
热备路由协议 是Cisco私有的网关冗余协议。它是由一组路由器(最低2台)构成的一个热备组 作用是为用户提供一个不间断的网关ip,用户通过这个ip访问互联网,即使真实的网关设备DOWN掉一台,也不会影响客户的正常工作。
原理: 热备组中包含4中路由器的角色,
活跃路由器:负责承载发往虚拟ip地址的流量,是真正转发用户数据流量的路由器,
同时向UDP1985发送hello包 表明自己的状态,一个组中只有一台
备份路由器:监听整个HSRP组的状态,是成为下一个活跃路由器之前的状态,一个组中只有一个 同时向组中发送
其他路由器:静听整个HSRP组的状态,是备份路由器的候选者
虚拟路由器:为客户端提供一个虚拟的ip和MAC 能够然活跃路由器转发。
当活跃路由器Down后 备份路由器收不到hello包 就会成为活跃路由器。而这个转换的过程用户是感觉不到的。
请添加详细解释
以上就是关于软考程序员考试下午题如何解答全部的内容,包括:软考程序员考试下午题如何解答、前几天去面试,面试官问我对所应聘的软件开发工程师的理解应如何回答、面试网络维护工程师会被问到哪些问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)