❶ 你要面试一个程序员,应该问他什么问题
首先面试程序员分有没有经验
面试没有经验的程序员就随便问问点ssm,ssh五大框架问题,多线程什么的,再问问是否会点前端技术
有经验就看看他的简历,问他简历项目上的问题,可以围绕着简历上的项目问,通过他的回答涉及到的技术点之类的,拓展出去问其他的
❷ 程序员技术面试中,当面试官问“你还有什么问题”,应该怎么回答
应聘程序员,在技术面试的时候,结束时面试官通常会问一个问题:你还有什么问题吗?众所周知,面对这个问题不能直接说没问题了,因为这是你掰回一句或者加深认可的好机会。但是下面这4个问题在技术面试时最好不要问:
1、“我能拿多少工资?”
注意你参加的是技术面试,尽量不要问跟技术不相关的东西,这在技术面试的过程中是一个减分项。一般面试官如果对你有兴趣会主动地询问你的理想薪资。
2、“五险一金有没有?交通补助有没有?”
这个问题一般不建议去问,这些问题在技术面试后人事会主动告诉你或者自己主动去询问人事都可以的,但是在技术面试官面前,问这些跟他本职工作没有关系的问题会让面试官觉得不耐烦。
3、“公司经常加班吗?”
作为开发人员加班的情况肯定是会有的,只是经不经常可能得看公司的实际情况。在面试时问这个问题你可能只是想了解一下公司的加班情况,但却会让面试官质疑你的抗压能力,给面试留下不好的印象。
4、“您觉得我今天能面上吗?”
有些小伙伴可能急于求职,所以会有些迫切地问这个问题。如果面试官觉得你有希望肯定会给你一些信号,如果面试官不看好你,问这个问题可能让双方都比较尴尬。
上面说了4个不该问的问题, 那在面试官问“你还有什么问题吗?”时应该问一些什么问题?
再次点题,在技术面试最好提跟技术相关或跟本职工作相关的的问题。第一,可以问一下关于产品的问题,比如一下产品用的什么技术,想回去了解一下,或者关于一些新的技术比如大数据、spring boot公司是怎么用的。这些问题既能让面试官有兴趣回答,又能展现你的知识面。
❸ 程序员面试的时候考官一般问什么问题(比较流行的)
给你提供点参考信息,希望能帮助到你:
1、使用相同的工具和时间限制模拟面试训练
Google和微软都会让应聘者在白板上手工解答编程问题,但通常大部分的应聘者都是习惯于在电脑上利用编程工具系统编写程序。因此面试的时候,某些应聘者离开了熟悉的电脑光标,站在白板前感觉手足无措不知该如何起行。又或者他们不习惯在编程之时旁边有人观看,这会让他们感到紧张而无法正常思考。
在现实生活中,如果你想要横渡英吉利海峡,自然不能总是在室内游泳池练习。你必须投身于大海在波涛之中训练,在准备面试的时候也是如此。
在面试开始之前你最好向招聘单位询问面试形式和面试问题。如果招聘单位让你在某个房间考试且仅提供没有汇编程序的编辑器,那么就应该在家中按照这种情景进行练习。如果招聘公司单位让你在白板上回答问题并会安排考官在旁监督,那么你就要找一位软件工程师来扮演考官配合你练习。即使找来的考官经验不如你也没有关系,他们依然能帮助你消除在他人面前出错所带来的紧张感,这样可以让你适应有人在旁边盯着看的面试氛围。
如果你恰巧认识我并希望由我来帮你联系,那我的条件就是必须请我吃饭:如果你已经工作了就吃日本寿司大餐;如果你还是学生,那么吃比萨饼也可以。
2、在面试过程中不要对细小错误耿耿于怀
我曾不止一次的在面试过程中碰到这种情况:当应聘者知道编程问题后,他马上就想到了最佳的方案、确定了边界条件,然后开始编写程序。但在编写过程中,应聘者犯了诸如首先检查是不是操作顺序错误或忘记设定某变量等无关大局的小错误,当我指出其错误之后,应聘者立刻变得十分紧张,这种焦虑情绪影响了他在后面环节的正常发挥。
其实这种恐惧心理完全不必要。一名优秀的程序员在编程过程中出现错误也是很正常的,就像是小提琴手在演奏高难度的巴赫交响乐时也会偶尔失误。音乐会的听众可能会觉察到这些错误,但是听众绝对不会因为这种细小失误就把出色的小提琴手看作是门外汉。
即便应聘者彻底搞砸了某个编程问题,面试考官也可能会提出不同的问题并会容忍应聘者在某个问题上的失误。再退一步说,就算某次面试彻底失败,你也有机会在其它面试上补救。
我的一位同事(一个项目的技术负责人)最近面试了一个人,在开始面试时他觉得面试者的交流方式存在问题,因此开始表现的相当不友好。但经过了整个面试过程后,面试者证明了自身的能力,而我的那位同事也成了那位面试者最坚定的支持者。在过去的一年中,我从未见过这位同事如此强烈的支持哪位面试者。
所以,因此就算面试进展不顺,也务必坚持到底不要放弃。
❹ 面试一年经验的程序员,会问哪些问题
在当今的互联网大军中,不少人顺应时代潮流,选择了PHP开发作为自己的发展方向,进行PHP培训。技术很重要,面试技巧也很重要,讲一下:Java程序员面试失败的5大原因。
一、说得太少
尤其是那些开放式的问题,如“请介绍下你自己”或“请讲一下你曾经解决过的复杂问题”。面试官会通过你对这些技术和非技术问题的回答来评估你的激情。他们也会通过模拟团队氛围和与你的交流互动来判断你的经验和能力。
所以,仅仅只用两三句话来回答不但不能显示出你对这个专业的兴趣,还会让整个面试过程显得非常无聊。如果你不能很好地说明你的经验、成就和技能可以给企业带来的价值,那么你的竞争力毫无疑问就高不起来。所以,你需要对一些最常见的开放式问答作充分的准备,学会推销自己。
二、说得太多
不断地说,不断地说,却并没有什么实质性的内容。换句话说,就是废话连篇,言之无物。如果你不能简洁的解释问题,那么面试官就会怀疑你在工作时的表现是不是也会像你的谈话一样拖泥带水?可以先问问面试官,确定是否真的需要详细解释。
解释也是一门艺术,关键是确定重点,如果需要的话再深入到细节。当聊到业务的时候,就应该从业务的角度看问题,不要涉及任何技术术语。学会用简洁明了的方式解释问题。如果你能时刻把握主旨,那么这一点也不是问题。
三、回答不出一些必知的基本技术问题
面试不是技术竞赛,不是看谁答对的问题多,但是有一些“必须知道”的核心Java和Web基础知识,你不能不知。例如,对于Java开发人员
1)不知道“==”和equals()之间的区别。
2)不知道equals()和hashCode()方法被隐式调用时的约定。
3)不知道OO的概念和设计原则。
4)不能很好地处理多线程。
5)不知道如何在HTTP客户端与服务器端之间保持状态。
6)不能解释曾投入精力过的应用程序的高层体系结构。
7)不知道SQL。
四、既写不好简单的代码,又回答不出如何解决棘手的问题
作为一个开发人员,你应该根据自己的经验水平,来针对给定的问题和情况编写代码。特别是如果碰到一个比较棘手的问题,那么即使你还没有解决方案,也应该将你的思路讲给面试官听。当然这在面试时会让人特别紧张,尤其是在还有时间限制的情况下,但是你也必须保持冷静,至少应该说明你将如何试着去解决问题的方法。
五、糟糕的礼仪和态度
迟到,不适宜的着装,抖手抖脚,没有眼神接触,过于紧张,没有提问,显示不出对这份职业的兴趣,“我什么都知道”的高傲态度,贬低你的现在和以前的雇主,遇到技术问题时烦躁不安或者垂头丧气,为自己找理由而不是虚心接受错误,与面试官发生争执,不好的肢体语言,随波逐流而没有自己的看法,过于呆板,撒谎,嗓门太大,无法成为良好的倾听者,等等。
提示:面试官要找的不是技术明星,而是实实在在具备了合适的技术技能、软技能、端正的态度以及能为企业获取利益、全面的专业人才。因此,不妨先研究下想要应聘的机构,深入了解其工作规范以调整回答问题时的方向和重点。将每一场面试都当作免费的培训课程,积极调整心态,不但能达到一个双赢的局面,还可以减少紧张的情绪,从而获得更好的表现。这样即使你并没有得到那份工作,也可以由此学到点什么,获得进步。
❺ 产品经理面试一般都会问什么问题
1) 问一些你以前的工作情况;
这应该属于面试中的基本问题了,不管你应聘哪家公司这个问题都会被问到,而且往往是第一个。一来是了解一下你以前的工作情况,第二也为接下来的提问做好铺垫。当然以前的工作经历简历中都有写,所以面试官大多都是针对简历中的某些项目来问一些他所关心的问题,例如在某个产品中你起到的作用、你的具体职责,对于某些功能点设计的出发点是什么等等。每个面试官都会有自己的特点和关心的着重点,所以关心的问题也会有所不同。
在这个环节中也可能会问到你以前工作都用过什么工具,写过什么文档,工作流程是怎么样的这些问题。要说做产品工作使用的最专业的软件就应该算是Axure了,但是工作久了以后谁都明白,工具并不重要,何况这些工具一学就会。即便不会用Axure直接在纸上画出来也可以,而如果你的Axure用的再好,但是产品本身不好,那也等于白搭,关键的还是在于表达能力。当然了,我个人还是秉持着高保真原型的原则,因为毕竟这样的话在你工作中会省去很多麻烦事,节省沟通成本。
2) 谈一下你对某个产品的看法;
我在以前的博文中曾提到过,相比较做技术工作的人来说,做产品工作的更倾向于软能力,而这种软能力体现在个人的产品思想上,更或者说做产品的思维或理念。所以在面试的过程中很多面试官都会问你对某个产品的看法。“某个产品”有可能是应聘公司所做的产品,或者是你做过的产品。因为一个人很难在短时间内有自己的判断(特别是对于工作经验不足的产品人员),所以有的公司也会让你说一下你对自己最常用的产品的看法,一来考验你的产品感觉,第二也是看你个人的观察能力。更有甚者会拿出电脑打开一个网站,让你针对某一个页面或功能谈一下自己的看法。这个环节中会考察产品人员的产品分析或竞品分析的能力。
产品人的逻辑思维很重要,有的面试官会在面试中先抛出一个问题,接下来伴随着一系列“为什么”、“理由是什么”,这样一种循序渐进的提问方式。既考验了求职者的逻辑思维性,也考验了求职者的产品能力,不过对求职者而言,这样的面试方式压力可能会比较大。另外,谈起产品未来的发展,产品人的发散思维很重要,例如搜索引擎产品,谈及它的未来,可能你就要围绕着搜索引擎的用户需求这个层面去思考,怎样才能让用户更方便的在搜索引擎中得到结果等。这考察的是一个产品人的思路。
3) 详细的问到一些产品中的规则;
前面说到有些公司会问你用过的最熟悉的产品是什么,除了有可能让你谈一下对这个产品未来的发展趋势的一些看法外,还有可能让你说一下某个功能的规则,例如新浪微博搜索人物时的排序规则。产品人员在使用一款产品的时候除了本身作为用户外,还有一层意义就是本着自身的专业性,发现别人家产品内在的意义,除了最外层的看之外还要更深层次的懂。在产品经理的能力中有一条就是学习能力,所以很多公司会在这个问题上考验你的观察能力和学习能力。
4) 产品自身层面的一些问题;
做产品除了本身的产品设计能力外,还有一点就是产品的思想。同一种产品不同的产品做出来后产品形态都会不同,特别是对于一些有独特产品特质的公司来说,如果招聘一个虽然产品能力很强,但是做产品思想跟公司不一致,那么在以后的工作中大家的合作就会出现问题,降低彼此的工作效率。这种问题看似并不严重,但是在实际情况中却不是很容易解决。当然并不是说不可能解决,只是说找个符合公司产品气质的人,就不会存在那些不必要的问题了。
在这一方面,很多公司会问你,你认为做产品最重要的素质是什么,你如何看待用户需求等等。类似于这样的问题其实没有标准答案,每个人都会有自己的看法,而就是这样的问题会突显出一个的产品经理自己的思想体系。产品是公司战略的体现,产品领导人的观点跟公司战略发展不吻合的话,那么这将关系到产品未来的关键性死亡。所以对于把握产品方向的产品经理来说,面试的公司就会着重考虑这个问题。也许大家做出来的产品形态会有不同,但彼此的思路必须要是一致的。
5) 怎么与同事沟通;
产品经理很重要的一项工作内容就是与人沟通,因为在一个产品从创意到诞生的过程中,产品经理要实时跟进和监督,保证开发计划和产品质量,这就需要与各个部门的人进行沟通。很多人都说做产品的苦逼,痛苦之处在于一个产品的成功上线需要多方面的配合,产品经理需要去协调各个部门的资源配置。因此在面试的过程中面试官会问你一些问题来考察你的沟通能力,典型的问题例如当你与同事在某个产品问题上发生了争执怎么办,当技术部的同事要砍掉你的功能模块或者说认为你所设计的某个功能不重要这时候你怎么去说服技术的同事等。关于沟通问题,我个人感觉一方面跟个人的性格有关,另一方面也要看沟通技巧,而这些技巧要靠在长期的工作中磨练。产品经理在与其他部门沟通的过程中要努力建立起自己的信任度。当然这需要一个长期的积累过程,特别是当你到了一家新的公司。
有时候一个产品经理去面一家公司之所以失败了,并不是因为产品能力问题。面试官通常都是富有经验的产品人,在工作中形成了自己的一套判断事物的标准,所以说每个人对产品经理的考核标准也会有所不同。人无完人,很多时候是要看你的缺点是否是他在乎的,你的优点是否是他特别赏识的。而且在产品方面的很多事情并无是非之分,之所以失败或许也是因为面试官和求职者的价值观不同。我最近有个感触,做产品经理的人貌似都有点傲气,特别是当你做出成功产品之后,而这种傲气往往会使自己过度自信而不接地气。
最后说一下,因为我自己做产品的年限并不是很长,所以面试的产品岗位级别也不是很高,接触到的问题也不会太深,所以以上问题或许比较适合初级的产品人员。如果是更高级的产品人员的话,可能还会遇到很多产品管理和产品战略方面的问题。我知道在行业里,很多公司都喜欢找有相关经验的产品人,的确有经验确实是优势,因为同一个发展方向的产品所需要做的功能有很大的相似性,有经验的话做起产品来会更得心应手一些,既提高了工作效率也降低了犯错误的概率。但就跟技术语言似的,当你学会了一种C语言后,再去学习PHP也会更容易一些。虽然产品是不同的,但是方式方法是想通的,也确实有一些跨领域的产品经理做的特别好的。话虽如此,但仍然要承认有些行业的产品经理确实是需要具备这个行业的知识背景,例如金融和健康行业,但是当一个产品经理有非常好的的产品思想意识和学习能力的话,他们在跨领域的产品中也可以做的很好,最关键的还是要看个人的学习能力。
❻ 作为一名程序员,你真的理解需求吗
作为一个程序员,最重要的职责就是: 按时保质保量地完成需求开发。
像开发新业务这样的复杂需求, PM (Proct Manager,产品经理) 一般会写出详细的 PRD (Proct Requirement Document,产品需求文档) ,甚至可能会制作高保真原型。
而像调换两个按钮顺序这样的简单需求,PM有可能只会口头通知一下,最多在JIRA之类的项目管理平台上创建一条只有标题的ISSUE。
如果是有和用户交互的需求,负责设计的部门或人员一般会提供设计图。专业一点的话还会帮你把图都裁好,并准备不同屏幕分辨率下使用的多个尺寸版本。
当然,如果你在一个刚刚成立的创业公司,很有可能是创始人在白板前(或者是饭桌上)讲了半个小时,然后就问你:“需要多长时间把它做出来?”
不管提出需求的是PM还是创始人,他们的脑海中一定为这个需求设想好了一个自洽的逻辑和形态。PRD也好,口头宣讲也罢,都是在描述这个逻辑和形态。他们提出需求,就是希望程序员能够最大程度地还原他们的设想。
说起来简单,做起来难。 我们可以通过一个小实验来揭示这一点。
首先,你需要找一张长方形的纸。如果你在办公室,那就找一张A4纸;如果你在家,那就找一张纸巾。然后按照下面的步骤进行操作:
你的作品是什么样子?中间开洞了吗?边上呢?角上呢?如果再做一次,你能完成同样的作品吗?
你可以拿着同样的纸去找你的家人、同事或朋友,请他们来完成同样的操作。在你不施加影响的前提下,他们完成的作品极有可能和你截然不同。
为什么会这样呢?
如果你仔细观察他们操作的过程,就会发现:
由于每次对折都会可能产生两种不同结果,在撕第一个角时纸的朝向有四种可能性,旋转180度时有两种可能。所以仅仅两个撕角的位置,就至少有 2 x 2 x 4 x 2 = 32 种不同的可能性。
就这样,我们还没有考虑撕角的大小、角度的区别,还有极少数人是会沿对角线对折的……
上面撕纸的需求,其实是我自己拿了张纸随意摆弄,然后记录下来的操作流程。我照着这个流程,可以十分轻松地做出完全相同的作品。但是如果让别人来做,结果就完全不一样。其原因就是,我在完成作品的过程中,不光是按照流程进行操作,还隐含了自己的一些小习惯,却并没有把这些细节记录下来。
如果把所有细节都完整地记录下来的话,需求应该是这样的:
同样,PM在写PRD时,很有可能会漏掉一些自己认为应该是“常识”,无需再进一步说明的内容。比如“把一张纸对折”,我们很容易想当然地认为,应该是沿着长边对折,但事实上并非所有人都是这么理解“对折”的。
由于每个人的成长经历不同,其认知结构之间必然存在差异,因此对同一概念未必持有相同的理解。 你所认为的“常识”,我可能并不知道,或者拥有和你截然不同的理解。所以程序员在看PRD时,一定要把自己对需求的理解复述出来,跟PM确定是不是这么回事。否则就容易出现开发中、提测甚至上线后发现逻辑性错误,需要紧急修复甚至返工的情况。
此外, 很多问题在设想阶段是发现不了的,只有到了具体实施时才会暴露出来。 PRD不可能真正做到完备,也不能保证没有错误和遗漏。比如一个表单需求,很可能在做的过程中发现某个非法数据case是PRD里没考虑到的,这时的用户交互怎么做?文案怎么定?这都要和PM沟通来解决,而不能自己拍脑门决定。
PRD只是需求的一个快照性描述文档,并不是需求本身。 程序员应该对需求负责,而不是对文档负责。 只有和PM保持沟通,不断地细化需求,才能让需求真正落地。当发现PRD里有不合理或者有疑问的地方时,一定要提出来让PM进行解释。千万别视若无睹,甚至干脆将错就错,等着看PM笑话。
如果我们拿到了一份图文并茂、十分详尽的PRD,是不是应该马上照着文档开工呢?那可不一定。
一位优秀的程序员,应该在开工之前把下面这些问题想清楚:
程序员有责任对需求方案进行review,并协助PM改进设计。 要知道,PM一般不会从技术角度对需求进行考虑,所以往往提出的并非最优方案。有时只要做一点点调整,技术实现的难度就会大大降低,却不影响目标的达成效果。
比如某个业务需要用到日期选择器组件,PM为此专门设计了一个,而你知道系统中某个功能页面里有现成可用的同类组件。这时就应该和PM沟通是否可以直接复用,或者在原有组件的基础上进行功能扩展。这样既节省了开发资源,又保持了用户体验的一致。
程序员要对整个产品的可用性负责,全面评估需求可能导致的不良影响,谨慎对待有破坏性的需求。 PM由于不了解系统的底层实现和实际数据的组织方式,所以很可能无法全面地评估需求的影响面。如果程序员忽视在这方面的思考,只是机械地按部就班地执行方案,就很可能导致严重的线上事故。
比如要对某数据进行批量修改,在做的过程中时发现该数据有多个业务正在使用。这时就应该必须停下来和PM沟通,因为PM可能只了解自己负责的那一块业务,不知道修改可能会对其他业务产生影响。此类需求要和相关各方沟通协商,确认修改没有不良影响后才能继续。
程序员要有魄力去拒绝那些明显不靠谱的需求。 有的时候,PM提出需求的动机不是为用户创造更多的价值或提升用户体验,而是为了冲绩效完成自己的KPI。为此拆东墙补西墙,从兄弟业务手里抢流量入口;甚至杀鸡取卵,以严重破坏用户体验的方式拉量。遇到这种事,程序员一定要坚持自己的原则,守住自己的底线。