1. 程序员的招聘要求
各大招聘网站对程序员的要求 ,以PHP为例。
1.本科及以上学历,3年以上PHP开发经验,有大型项目开发经验者优先。
2.精通PHP语言,有面向对象开发经验者优先。
3.熟悉LAMP体系的开发,熟悉Linux操作系统,熟悉Apache系统配置。
3.熟悉JavaScript和CSS,有Jquery经验者优先。
4.品格端正,有强烈求知欲和工作责任感,能承受一定的工作压力。
5、可进行主流开源php程序的二次开发、模板改进和系统重构;
6、精通XML、HTML/XHTML、CSS、Javascript、AJAX、JSON等Web页面技术;
7、熟悉数据库,精通SQL和数据结构,具有MySQL/MSSQL等关系型数据库开发。
经验;
8、熟悉Linux/Unix基本操作,熟悉Apache、MySQL、PHP等软件的编译安装和最优化置,了解这些软件的版本差异和不同安装/运行方式及原理;
9、具备良好的沟通合作技巧,较强的责任心及团队合作精神;
10、有良好的团队合作能力,具备Subversion/CVS协同开发经验,善于沟通,热爱开发;
11、要求面试时能够提供程序项目地址及演示源代码;
12、能独立承担商业动态网站/行业门户网站后台程序的开发工作;
13、思维清晰有条理,工作热情敬业有耐心;
14、能与美工配合完成较复杂的网站功能;
15、年龄21-28岁。
2. 如何招到一个靠谱的程序员
1. 简历看人
阅读简历永远是面试的第一步。好的简历一定是正确、清晰并且能够体现候选人最有价值一面的。我首先会过滤掉那些包含错别字,文句不通或没有逻辑性的简历,因为如果一个程序员连自己的简历都不愿意去仔细检查并完善的话,很难想象他写出来的代码质量会如何。接着,我便会重点阅读简历中的项目经验部分,在这里我能够看到面试者的开发经验,技能栈,并且判断他们熟悉的技术框架、工具是否与目前公司要求相匹配。
这里,我还会特别关注面试者是如何来写这部分项目经验的,你需要用尽可能简练的文字来描述项目的背景,你在项目中承担的角色、参与项目的时长,你用到的技术、以及你在项目中的亮点等信息。优秀的程序员们往往有一个共同的特质,那就是善于归纳,并能够一针见血的发现问题或把一个问题说清楚。我经常看到面试者在简历中像写故事一般地描述他们的项目经历,光这一个章节就有好几页,其实这反而会给你减分,因为这会让面试官判断你缺乏必要的归纳能力。
最后你的一些与编程有关的社会化活动,如:你在GitHub上的开源项目,在知乎、V2EX中给他人的解答以及你的个人技术博客等等都会给你加分,因为这说明你对所从事的工作有着极大的热情,并愿意在业余时间去学习和提高自己,就像在我之前的 “给职场新人的10点职业建议” 一文中提到的,如果你要成为一个领域的专家,那你必须花费超过10,000小时,而这光靠工作时间是远远不够的。
2. 给面试者10分钟介绍自己最擅长的
当面试者通过了笔试和HR面试之后,你就需要面对面地对候选人进行面试。我远不是什么面试专家,但我有一些自己的独特方法。我讨厌问一些很个人的问题,比如你的职业规划是什么?你为什么想换工作?等等。我更愿意给面试者10分钟时间,让他介绍自己最擅长和最感兴趣的领域。这往往能帮助我很快作出下面的判断:
这个人对他所做的事情是否充满激情
他们是否能在团队中很有效地进行沟通
他们是否在专业领域足够擅长
你的团队是否会乐于和这个人一起工作
这一招我在面试中用得很多,而实践证明也确实非常有效。
3. 基础打牢了吗?
一般,有一定规模的公司都会为面试者安排机考或笔试,从而能首先筛掉一批未能通过的面试者。另一些规模较小的或初创公司则会让面试官直接进行技术面试。其实,我觉得这两者的差别不大,有经验的面试官往往能够通过几个最简单的技术问题,判断出面试者的技术基础是否牢固,这不是为了证明他有多优秀,而是用来判断他是否是一名合格的程序员。对于我来说,并不看重机考的成绩,因为机试的考题很多能够在网上得到,特别对于一些外包公司,他们总是能够通过各种途径得到考题,从而使得他们推送的外包能够顺利通过笔试。
下面是我经常会问的几个问题(JAVA):
HashTable与HashMap有什么区别?
Servlet是线程安全的吗?
JSP中 @include跟jsp:include的区别
HTTP的response code 403和500分别代表什么
......
这些问题都很简单,但一些基础不牢的程序员往往会在这个时候露馅。当然,根据面试岗位的不同,你还可以有针对性地问一些问题,例如,你需要找一个能写核心算法的程序员(比如 银行的总账计算,或者保险公司的保费计算),那么你可以问一些算法相关的问题。
4. 技术深度够吗?
具备牢固的技术基础,一般就可以满足项目中普通程序员的要求了,但如果你需要找的是一个资深程序员,那么你还需要对面试者的技术深度进行考察。我们现在做项目时都会大量使用框架,这能使我们的开发效率和质量都得到提升和保障,但同时也降低了对于程序员开发技能的要求。因此我一般会询问面试者下面的问题,来考察他对所使用框架的掌握程度。
请你描述一下,在这个项目中,从一个HTTP请求发起,到最终的Response返回,它在你的系统和框架内部是如何流转的?
这个问题往往能够判断出面试者对于相关技术掌握的深度。较初级的开发人员描述的层级往往比较浅,比如使用Spring MVC框架的,只能说到实现一个Controller继承BaseCommandController(甚至很多开发人员只知道继承了一个公司内部框架的基类),至于再往下Spring框架是如何进行内部流转的,就再也说不清楚了。而更资深的开发人员,往往能说出框架内部的实现机制,以及如何调用和处理的。在面试者描述的过程中,你还可以穿插询问一些比较有深度的问题,比如框架中某个类这样设计是哪一种设计模式的体现,采用这样的设计有什么好处等等。这比让面试者默写一个设计模式代码要有效、自然得多。
除了技术层面上的考察之外,对于资深开发人员,还需要考察他们的设计能力。说到软件设计,大部分面试者都能熟练地背出面向对象的三个基本特性:继承、封装、多态,也能把它们的概念描述清楚。但我一般会问下面的这个问题来考察他们的面向对象设计能力。
请用一段程序代码描述我们所在的这间房间。
我惊讶地发现至少有一半的面试者都很难准确使用Interface和Class来给房间建模,也有一些人会将最基本的代码语法或关键字写错。
5. 选择适合所在企业文化的人
这一点也曾是我经历的一个误区,我总是希望能为团队招到技术能力最强的人,而忽略了他是否与整个公司和团队的文化相匹配。这往往会造成,虽然招到了人,但没过多久就因为理念不同不欢而散的结果,反而给公司带来了损失。让我们看看GitHub的负责人是怎么说的。
我们很严肃地看待我们自己关于招聘流程的哲学。我们希望每一个GitHub员工都了解他们所要面对的环境,并保证他们是能够很好适应的。这包括我们所创造的文化、哲学、计划、错误甚至是晚餐。比起他们的技能是否满足要求,我们更看重他们的潜力以及是否能够适应我们的企业文化。
我曾在具有鲜明文化差异的不同公司或团队工作,看到许多崇尚开放、开源的程序员在一个相对封闭,具有很多流程以及规范限制的公司中很难发挥,最终选择离开。因此在招聘程序员时,选择合适的往往比选择最优秀的更重要。
6. 行为面试法
行为面试法可能是我在整个面试过程中唯一用到的教科书面试方法。一个程序员是否能够很好地工作,不仅取决于他能否顺利地完成开发任务,更重要的是在遇到一些特殊场景或问题时,他能否合理有效地处理和解决。行为面试法能够帮助我们从面试者描述的过去某一具体事件中,预测未来他在工作中可能的表现。下面便是一个我经常用到的问题。
请谈谈你在这个项目中遇到的最大困难或挑战是什么,你是如何解决的。
从面试者对上面这个问题的回答中,我能够很好地判断他是否有较强的独立解决问题的能力,而我认为这是除技术能力之外,程序员最应具备的能力。
7. 给他们一个虚拟任务
经过上面的这些环节,你可能对面试者的整体情况已经比较满意,但先别急着下结论。我曾见过能够顺利通过上面所有面试步骤,并且被雇佣的程序员,当他们进入实际工作后却没能把事情做好。
在你确定是否录用他们之前,可以给他们一个虚拟任务。我不是说一个抽象的程序问题,而是指一个真实的,可能就存在于你当前项目中,并且需要在一两个小时之内完成的一个开发任务。我曾经出过这样的考题:
写一个小程序将一个以特定格式(如CSV)存储的文本文件转换为XML格式,并存储为另一个文件。
你可以给他一台已经配置好开发环境以及IDE的电脑,让他当场编写代码。当然如果时间有限,你也可以直接询问面试者的实现思路,并简单用伪代码来描述处理过程。通过这个测试,你能够看到很多细节,比如面试者是否有良好的编码习惯,异常处理是否规范,代码逻辑是否缜密高效,以及他的开发效率是否足够高。如果面试者给出了非常优秀的解答,那么你就应该能够判断他确实是一个优秀的候选人了,因为我从没碰到过能够通过上面的测试,却在实际工作中无法做好的人。
3. 腾讯的程序员招聘有什么要求呢
腾讯公司长年招聘程序员,一般要求三年工作经验,熟悉C++(或者C,Java),能独立承担编码工作。
程序员(英文Programmer)是从事程序开发、程序维护的基层工作人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚。
职责
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
4. 在招聘的时候,怎么猎到最佳员工
想要招聘优秀人才,其实需要提前做好很多准备工作,譬如:一、岗位人才的胜任力分析;二、优质人才的获取渠道;三、人才面试的方法优化;四、留住优质人才的政策制定
优秀人才招聘不只是在招聘环节,更需要对整个岗位及需求也提前做好相关分析,最后还要有留任的政策和留住人才的优势,优秀人才来了留不住,招聘也是白做。
人都是趋利的,有能力的人总想挣更多的钱,老板是很难留住的,所以很多老板都是年复一年的招新人去培养,等到新人成长起来就会跳槽或者自己出来单干,这一直都是个无解的难题。所以关键的地方在于钱的分配,让员工真正能获益才行。
5. 如何找到合适的程序员
我原来就是在网络公司工作的做网站销售方面,所以相对来说也接触过一些程序员在大公司小公司都待过,对于招聘程序员也有一定的了解下面就来简单聊一聊这个话题。
会一定美工
一般来说,如果不是很大的公司,用人当然是希望多具备几项功能,我们原来公司刚刚开的时候招的程序员等于就是和美工合体的,又会做前台,又会做后台,当然要求不能太高。很多客户本来也没什么要求,都是超别人的网站,平面设计,要不然就是模板网站,然后再来做后台。这样对于小公司来说,可以稍微节省一点,人力开支。
所以说,不管是公司招程序员还是程序员选公司,这个现在都是双向的。人才走到哪里都是受到欢迎的,所以我觉得最重要的就是提高自己的能力。
6. 程序员的招聘要求
怎么说呢,不同的程序员要求是不同的,我们以JAVA程序员为例子:
三个基本要求:
(1)学历要求:大学本科以上学历(含本科),专业: 计算机相关专业本科以上;专科以上学历,计算机及其相关专业,3年以上相关岗位经验;
(2)工作经验要求:一年以上java开发工作经验;B/S项目开发经验2年以上;3年以上的Java, J2EE, XML等开发经验,1年以上架构设计经验(Windows环境);
(3)项目开发要求:具有一定规模的项目开发经验;
其实这三个要求,可以说,是目前大多数开发类技术岗位上,一定都有的要求。
学历来说,只是一个敲门砖,我们没有办法帮你,你达到基本要求即可,当然,如果你的要求不太合适,可以强调你的技术实力。
没办法,这个社会就是这么残酷,大多数公司,都不想花培养人的成本,都希望用熟手。
但另外一方面说,具有一定的项目开发经验,工作起点就会高很多,不管是收入,还是发展,你都会站在一个比较有利的位置上。
实际上,大学生也可以通过一定的训练,积累很多的项目开发经验,达到工作2-3年程序员的水平,这个我们另文专门再说。
7. 招一个靠谱的java程序员有多难
真实体会,很难。现在虽然Java满大街,但是很多都是培训机构学习出来的,填鸭式教育,让这些学生基础都很薄弱,然后就强行学习一大堆框架,项目也都是老师帮着做了一大半,把一些关键知识点加入到项目中去,一般的学员项目做完后,都一头雾水。还给他们包装工作经验,刚学习出来的就说自己做过2年左右的开发。这样的人一旦进入工作中,就会发现,效率很低,交给他工作任务,无从下手。当然了,好的Java程序员很多,但是这类人,一般跳槽都很有计划,一般都是奔着好公司去的。
8. Java程序员,一般招聘都要求些啥
1、代码能力
代码能力是基本功,Java语言本身,包括语言的各个方面包括对并发的理解,对内存使用对理解,对Java运维的理解等等,语言本身外,社区里常用的框架是否可以十分清晰的了解,包括spring,包括他实现的ioc,aop,orm,web机制是否有清楚的认识,有丰富的经验等等。
2、对常用中间件的理解
毕竟在一个大系统中,各种中间件是是否常见的,缓存中间件,消息中间件,例如
redis、memcache、rmq这些,要理解常用中间件使用场景,使用姿势(例如redis的常用命令),甚至包括他的一些运维,一旦出了问题,除了专门的运维人员,也需要你参与问题的排查,因为有时候这些中间件出现问题,是不当的使用姿势引起的。
3、架构、业务落地能力
前面提到了语言本身,各种中间件,如果你有很好的业务抽象能力和架构思维,就可以把一款部门内部产品很好的设计并实施了,这点蛮难的,想必都有过接手现有项目的经历吧,有时候真恨不得把之前的设计者拿出来批斗,作为一个设计者,你能否做到当下一个接手它的人会说一句,这个系统设计的真好,稳定又可拓展,理解起来也很容易。
4、沟通协作
毕竟一个部门内部产品,是不可能由一个人完成的,所以需要沟通协作,把设计好的方案,要和2-3个小伙伴一起实施,包括同样身份的后端人员,前端人员,产品等角色,这个级别的人可能会参与带2-3个人,例如应届毕业等,所以你自己对知识的把握,分享精神,leadership都是很好的加分项。
9. 程序员需要什么学历
程序员对学历并没有必须的要求,大专学历以上都可以,甚至有一些没有上大学的人也在做程序员。
程序员的实际工作经验和积累是企业招聘时尤其关注的,对学历没有具体要求,但企业在招聘开发人员时有些根据自身岗位所需有设定一些学历上的条件。
但是如果大家有意向入行IT行业,就要把精力用到专业能力学习上,毕竟实战开发能力才是更为关键的,如果学历上也比较出色的话,那么锦上添花肯定在就业时也会更有利。
(9)如何招到有经验的程序员扩展阅读:
程序员的必备技能
1、熟练开发工具
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。
2、需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求。
要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
3、模块化思维能力
作为一个优秀的程序员,思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。
这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。