Ⅰ 程序员 面试 如何回答
做一份工作,实际就是追寻梦想的过程,而为了完成梦想,必须有一个长期规划,从而指导我们选择工作。它是择业过程中最本质和最原始的参考借鉴。下载链接
为此,小云为你精选一份程序员面试书单,分为职业规划、编程技能两部分,适合刚毕业的大学生、正准备换工作的程序员们,涵盖算法工程师、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 行业的各种笔试,面试中。但本书更深层的意义在于引导读者思考,和读者共享思考之乐,编程之美。
Ⅱ 程序员有哪些交流社区或者论坛
作为一名低代码平台领域的厂商,经常去的一些国内社区网站及论坛,关于程序员的交流社区或者论坛,这里收集一些比较好的开发者社区供大家参考,具体如下:
1、CSDN -专业开发者社区 IT技术交流平台
2、IT圈,圈圈精彩 - 原软媒论坛、IT之家,国内最人气的科技社交圈层,继软媒论坛、IT之家社区演变而来。
3、51CTO技术论坛-中国领先的IT技术社区 国内主流IT技术社区,论坛拥有大批IT技术人/IT专家
4、快速开发平台社区 -天翎论坛低代码平台技术社区,主要是以低代码开发平台为主的技术性论坛社区
Ⅲ 程序员问答类的平台,区别都有什么啊
问啊,直接一对一解答,回答比较快,并且回答的人都要经过测试,专业性就会高很多。csdn,SF,大的网站,有问题可以先去搜索下可能已经有人答完了,但是做不到及时的解决,比较耽误工作。qq群的话,就是回答的专业性无法保证。
Ⅳ JAVA程序员回答:请描述一下你的生活状态,要真实!
其实程序员的生活没有你们想象的那么枯燥,程序员的本职工作就是在那编写所谓的代码,不过,当一个团队集体开发一个项目,各司其职,协力合作,一起探讨项目的开发过程,遇到困难,解决困难。当项目完成时,这确实是一个激动人心的时刻,我们可享受着团队合作的快乐,我们彼此都享受着这种生活!
Ⅳ 1.问答题
一、什么是系统分析
在具体的研究需求分析之前,我们先了解一下软件工程这个概念。软件工程分为三个层次,过程层、方法层、工具层。在最基础的过程层,最重要的就是一组被称为关键过程区域(KPAs)的框架(KPA的概念在讨论CMM的书中有详细的概念说明)。关键过程区域构成了软件项目的管理控制的基础,并且确立了上下文各区域的关系,其中规定了技术方法的采用、工程产品的,模型、文档、数据、报告、表格等,等的产生、里程碑的建立、质量的保证及变化的适当管理。方法层主要是过程在技术上的实现。它解决的问题是如何做。软件工程方法涵盖了一系列的任务:需求分析、设计、编程、测试、维护。同时他还包括了一组基本原则,控制了每一个的关键过程区域。工具层就很好理解了,他对过程层和方法层提供了自动和半自动的支持。这些辅助工具就称为CASE。事实上需求分析是跨越了软件工程的三个层次的。这一点是和其他的过程是一样的。
可以看到需求分析的位置,它是我们软件开发的第一步。是对用户需求的定义,对软件系统的描述。系统分析的任务:将用户的业务逻辑转化为程序逻辑,计算时间和成本。根据开发人员的理论知识和实际的经验,人们会采用各种满足实际情况的系统分析、开发方
法、步骤以及文档等等。一般情况下,在系统分析书中应该有以下内容(视项目而定):
1、 系统需求说明 说明系统是一个什么样的系统,用市场上现有的系统来类比,
用客户(或是我们自己)需要一个什么样的系统进行说明,力求完整。并对系统的发展
可扩充性进行描述(现在没有哪个系统是一次OK的)。说明与现有的系统有什么相同什
么不同,说明未来系统的发展方面以及可移值性等能预见的事情。
2、 系统资源说明 对系统所需要的软件、硬件资源进行说明。描述系统所需要的
所有的TCO成本。包括人员、时间、设备、系统、一次性投入资金、持续性投入资金这样
的所有资源。
3、 系统可行性分析 对系统的实施中的资源进行分析,说明投入的合理性和必然
性,对其中的所有不可预见性的投入进行合理的量化说明,来说明系统的实施的可行性
。
二、系统分析员与程序员
大家应该对这两个词很熟悉了,但是对词里包含的意义可能并不是特别清楚。首先必须说明的是,程序员和系统分析员不存在谁高级谁低级的分别,他们是两种职业,对职业技能的要求完全不同。所以厉害的程序员就是系统分析员的说法是不对的。当然,系统分析员的技能要求他必须要懂得如何写程序,但是他的重心在于如何把一个很大的项目切割成适合个人的小块,然后将这些小块组织起来。程序员的职责就是如何更好更快的实现这些小块。
三、系统分析的方法和工具
UML全称:Unified Modeling Language,统一建模语言,是面向对象的建模语言,主要用于软件系统的面向对象建模。
UML是以面向对象图的方式来描述任何类型的系统,具有很广泛的应用领域。特别是在建立软件系统模型中,它支持从系统需求、系统分析到系统设计的整个建模过程。由于UML建模是一门专门的科学,而我们这门课程的任务是数据库系统开发,所以对于UML我们将有限的注意力集中在认识UML各种图示上。
可以使用Rational Rose 2003来建立UML模型
1) 建立角色
2) 创建用例
3) 创建角色用例关系图
4) 创建时序图
5) 创建协作图
四、系统分析员思想
全局观念是系统分析员必须具备的观念。
如果系统分析员设计时太注重细节,往往会陷入在某个问题上纠缠不清的泥潭。(93年,我论文指导老师的一席话影响了我随后几年对软件开发的理解——今后计算机会越来越快,多写几行代码少写代码无关紧要,最重要的是整体;一开始就错了,某个部份编得再好,也是没有用的) 系统分析员要有面向用户的思想。系统分析员应当有能力将自己扮演成用户,来了解要交付的项目看起来想什么样式,感觉想什么,从而了解用户的想法并挑选出合理部份去开发。从这个意义上说,系统分析员才能获得有意义的见解去引导他的开发组成员。系统分析员头脑中要对项目结局有一个清楚的认识,并保证项目不偏离方向。系统分析员要有根植于技术,高于技术思考问题的
思想。纯粹的程序员通常对最终结果考虑的不是很多,当一种新的技术在市场上出现时,他们对能否按时交付的考虑就比较少,而强烈希望他们的计划能够建立在新的技术之上。因此,系统分析员的想法和行动要象一个用户,又要能够站在技术的高度,成为真正的用户、程序员之间的代言人。
任务难度的预测能力
系统分析员要具备快速的任务难度预测能力以及具备快速确定开发小组人员构成和任务划分的能力。(我将这条归为思想,而不是能力)昆虫自然会长出翅膀,而思想却需要长期的浸润。要做到这点,需要大量的思考、学习。设计远比编程重要。当今软件业的发展,各种开发工具的出现,编程已经不是什么问题,程序员的工作某种程度上讲是将别人现成的东西拼凑堆砌起来。系统分析员要清楚的认识到,现在大多数程序员没有学会怎么去整体的了解一个系统,有些甚至不了解编程(这不是说他们不会写代码)。可视化的开发工具加五花八门的控件,程序员可以偷点懒了。(这可不是夸大,我好几年的管理工作,接触过大量的程序员)基于技术,跳出框架。基于现有技术结合用户需求思考问题,设计时跳出
框架。
系统分析员的关键
获得信任。系统分析员最重要的素质是获得信任,这是成为优秀系统分析员的关键。成熟最为关键。成熟可以为整个项目组提供正确的支持,能够理解技术怎样才能解决用户的需求。
系统分析员的准备工作
统一的各种文档模式,这其中包括今后软件变量、字段命名规则。我推荐用pb制定的规则做基础,通过改造成为适合自身实用的标准。统一的文档管理。统一的分析软件。比如说rose(uml 太规范,国内的软件管理水平根本用不上,只不过尽量应用,你自己对系统分析的理解有好处)方法是思想的放映,在具体方法上就不多说了。我托人从u$a 弄到几本书,用于面向对象系统开发的使用》、《面向对象的分析》、《项目管理》等都是很不错的,推荐大家看看。
我在拙作" 在中国没有人懂计算机" 里发了点牢骚,听说挨了部份人(习惯性的)骂。其实,bbs 本来就是发泄的地方,在这里从来就罕有有内容的文章。
自从" 维纳斯" 登陆深圳后,大家更着眼于从宏观看中国的it业了。中国it这棵小树,说实在的,长到今天实在是不容易。一些人提出了" 反对微软霸权"的口号,不少人呼唤中国" 硅谷" 的出现。微软的成功不是技术的成功,更多的是商业运作的成功。中国it这棵树能长多高,取决于他所植根于的土壤。而现在
的事实是,这片土壤实在是太贫瘠了!如果按我们现在的思路和搞法,是长不成大树,更别指望能结?quot;微软" ," 硅谷" 这样丰硕的果实。如果说,我们的软件技术落后美国十年,我们的硬件制造技术则落后美国二十年,我们的管理水平落后美国至少三十年。而最终决定发展速率的恰恰是我们的死穴——低劣的管理水平。低劣的管理水平的形成的原因有着深厚的背景和多方面的原因。
系统分析工作是解决一个问题的工作,目标是将一个对计算机应用系统的需求转化成实际的物理实现,其中复杂就复杂在实际的面太多。在系统分析过程之中注意问以下的问题,可能会所进行的系统分析设计工作有帮助
1 )您所完成的系统目的是什么?注意不是功能要求,而是目的。也就是为什么要建设、为什么要现代建设。在考虑系统目的时,我更多的侧重于系统的最终目标考虑,因为一个系统不可能一下子完美,为系统留些余地。
2 )您所完成的系统有哪些方面参与,各方面的初衷是什么?那些人可能在系统建设中起重要作用,他们会采取什么样的态度?你对他们有多少影响力?中国it行业的失败之一就是人" 太年轻" ,一定要有领导的支持,否则完蛋。不要认为自己对他们会有多少影响力,即便有,也要尽可能的认为是决策者再影响他们。在中国,一个技术员,你算老几?说到这里我很悲哀。哪些人在系统中起重要作用并弄清楚他们的态度,这点十分关键。
3 )您的系统是否有一个明确的评价标准?最好从参与的各方面都进行考虑。
不知道这样说对不对,在系统建设之前,对你的程序员、对你的领导要有至少不同的两种评价。
4 )你的系统设计思想是什么?是否能够得到各方面的认可。如果高明,对领导、对程序员都采用引导,得到认可的最好办法,就是让他们认可他们自己的想法。(我力图这样做,但做得不好,系统分析员有一点要学会韬光养晦,忍)
5 )你对参与系统设计开发的人员了解吗?他们的特长在哪里,是否愿意与你合作,为什么?你对他们有足够的影响力吗?软件发展到一定的程度,不是编程,不是数学,而是管理。
6 )你的系统开发计划是否完善?你的计划表有明确的阶段吗?任何一阶段都应该怎样完成?如何对这一阶段完成的情况进行评价?
7 )你对所采用的系统开发方法以及工具是否熟悉?你的伙伴是否熟悉?事实上,不是每种好的工具都要使用,也并不一定都要他们熟练掌握。提醒诸位一句,当你将方案做得可以不依赖某个程序员,你在程序员面前就无信任可言,因为从此程序员将受到更大的生存压力。我坚决不在公司使用rose.
8 )你所完成的系统是否有原型?计算机的或者物理的。
系统分析员基本功
以上的几个问题都是在系统分析以及系统规划时涉及到的,供各位参考。
这文章很好,我的话是:" 需求分析实际应该是问题分析".含义是系统要解决的是问题。而不是用户提出的需求。经常发现系统完成后,客户说" 我的问题还没有解决".可是,需求分析稿上的目标都搞定了。
既然是问题分析,所以,熟悉目标系统的知识就是必要的。甚至,可以说,一个好的系统分析员也应该是好的业务专家。
我很高兴在这里遇到许多分析高手,可以交流分析中的问题。我赞同从来的观点。在中国作分析重要的是人气,因为中国的企业级信息系统的建设在很大程度上可以说并非确有需求,而是迫于某种压力。用户在很多时候考虑的不是系统的长远发展,而只是短期的成果,要求开发单位在很短的时间内完成一个很大的系统的开发,没有时间对系统进行周密的分析,在这种情况下,很多开发商就会粗分析,粗设计,尽快进入编码阶段,这样的系统的生命周期肯定不会很长。说了这么多,只是想说,系统分析员确实应是业务和管理专家,并且需要有很好的语言组织能力,他需要根据问题域中存在的问题去尽力说服用户,引导用户需求,毕竟,我们是专家,如果让用户牵着鼻子走,系统不会是成功的系统。(当然了,这要建立在用户是可引导的前提下)本人拙见。
在理解和分析用户的需求时,应说服用户明白:建立计算机应用系统并不是简单地用计算机代替手工劳作,它更应该是管理思想的一次革命,是现用户模式的一次升华和提高。如果系统不能高于现实,开发的系统将长期陷入需求的反复修改,其软件的生命周期也短了。
参考资料:http://www.chinaitpower.net/A200508/2005-08-07/183576.html