1,招聘一个程序员需要多少工资

程序员没什么经验的大概1500=吧有经验的3000+这中问题也要看地方的我在深圳起新也有2800我的其他同学就不同在广州才1600

程序员的工资要3000以上的
最便宜的就是找兼职的了,按劳付款,你也没有压力。因为你这个工作要求比较有经验和实力的员工,所以只能找兼职,如果找专职的话每月没有3000-5000是请不到的。所以最理想的就是找兼职了,再请个长期的中低水平的员工就可以,一些简单的他可以帮你搞定。你最好去人才市场或是找朋友介绍

楼主,你好!我是一名在校大二学生,下面是我用vb编的一些小程序截图,找兼职的话考虑下我不?我还会vc++,网页设计也会一点。

招牌楼上那位老兄好了,看起来还不错~!

大概需要2000~5000元,呵呵!大家认为咋样呢

招聘一个程序员需要多少工资

2,腾讯的程序员招聘有什么要求呢

腾讯公司长年招聘程序员,一般要求三年工作经验,熟悉C++(或者C,Java),能独立承担编码工作。

程序员(英文Programmer)是从事程序开发、程序维护的基层工作人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚。

职责

1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。

2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。

3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。

4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。

5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。

6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。

腾讯的程序员招聘有什么要求呢

3,程序员的招聘要求

怎么说呢,不同的程序员要求是不同的,我们以JAVA程序员为例子: 三个基本要求: (1)学历要求:大学本科以上学历(含本科),专业: 计算机相关专业本科以上;专科以上学历,计算机及其相关专业,3年以上相关岗位经验; (2)工作经验要求:一年以上java开发工作经验;B/S项目开发经验2年以上;3年以上的Java, J2EE, XML等开发经验,1年以上架构设计经验(Windows环境); (3)项目开发要求:具有一定规模的项目开发经验; 其实这三个要求,可以说,是目前大多数开发类技术岗位上,一定都有的要求。 学历来说,只是一个敲门砖,我们没有办法帮你,你达到基本要求即可,当然,如果你的要求不太合适,可以强调你的技术实力。 没办法,这个社会就是这么残酷,大多数公司,都不想花培养人的成本,都希望用熟手。 但另外一方面说,具有一定的项目开发经验,工作起点就会高很多,不管是收入,还是发展,你都会站在一个比较有利的位置上。 实际上,大学生也可以通过一定的训练,积累很多的项目开发经验,达到工作2-3年程序员的水平,这个我们另文专门再说。
要求低,门槛低,每天面试的人太多了,影响员工情绪。 你觉得自己胜任招聘要求中的某一部分工作就可以了,前提是要一门精

程序员的招聘要求

4,Java程序员一般招聘都要求些啥

大厂招聘JAVA程序员有哪些硬性要求-武汉北大青鸟鲁广校区这样回答

00:00 00:48 100% 用户鉴权失败,请先注册成为百度云用户 百度云

5,程序员工资一般多少

程序员工资是不确定的,要根据程序员的历、能力、工作经验、是否刚毕业、工种,工资是不一样的,还与地域和公司有关,但是总的来说,程序员工资都是很高的,《2018中国程序员薪资生存现状调查报告》显示,中国程序员的平均月薪达到1万元,大多数程序员年薪在9-30万元。

现在互联网还是处于大热的时期,高薪职业千千万,但是现在风头最热的还是一个职业:那就是程序员,程序员要面对大量的代码,脑袋也是需要疯狂运转的。程序员工资是不确定的,要根据程序员的历、能力、工作经验、是否刚毕业、工种,工资是不一样的,还与地域和公司有关,但是总的来说,程序员工资都是很高的,《2018中国程序员薪资生存现状调查报告》显示,中国程序员的平均月薪达到1万元,大多数程序员年薪在9-30万元。

上海程序员收入最高,16.9%月入2万及以上。其次是杭州、北京和深圳。Java、PHP、Android的月薪在北京、上海都已过万,在杭州、广州也是普遍8K以上。其中,Java和PHP的平均薪资要高于另外两个岗位。

能够上万的工资基本上只有一线或者二线城市,三线城市上万的可能性就不大,这是消费水平决定,很多三线城市的老程序员工作了十几年也拿不到一万块,一线城市刚毕业的学生基本上就能拿到,这种差距还是非常明显,一线城市如果水平不错很容易拿到两万以上。

6,上海杨浦区引入区块链人才将给予10万住房补贴区块链人才大战愈发

编者按:本文来自36氪战略合作区块链媒体“Odaily星球日报 ”(公众号ID:o-daily,APP下载)

人才储备一直是区块链产业发展的重中之重。在2018中国(上海)区块链技术创新峰会上,杨浦区副区长赵亮称:杨浦区对重点引进的区块链技术核心专业高层次人才,将给予最高不超过10万元的租房补贴,补贴最长时限可达3年;对于入住特定人才公寓的区块链人才,将会给予最高租金额度不超过50%的房租补贴;同时,对区域做出重要贡献的企业高级管理人员,根据其区域贡献,也将给予一定的奖励。

上海杨浦不是第一也不是唯一用住房补贴来吸引区块链人才的城市。

2018年5月,杭州区块链产业园为了吸引高层次人才入驻杭州开始实行购房补贴最高达300万的政策,这是针对现在人才认定标准难以界定的偏财以及专才享受相应的补助,除了解决人才的实际落户之外还会给予相应的公用住房补贴,并且还有云服务补助和研发经费的补贴。

除了住房补贴有些城市也采取送积分等优惠政策。如香港在最新的优秀人才入境计划(QMAS)名单上增补了区块链人才,在申请移民香港时,这些专业型人才有资格获得最高加分30分。

但目前区块链遇冷,招人变得越来越难。业内人士认为,根本原因还在于真正的区块链高端人才极为稀少。

目前区块链人才的招聘薪酬相较年初也变得平稳正常状态之中。较之年初动辄月薪十万,如今给出的薪酬和互联网公司的程序员薪酬没有太大区别。在招聘网站可以发现,一家公司招聘区块链技术专家,月薪为4万-5万元。

由此也引发区块链培训课程的火爆。一些高校已经开设了相关学科。据了解,上海财经大学金融学院拟新开设金融科技项目,该项目为金融专业硕士,其中包括区块链、人工智能、数据挖掘等课程。

目前核心的区块链人才主要分两种:一种是产品经理型,主要工作是研究如何将区块链技术和企业本身的产品进行无缝链接,从而能够大幅提升企业产品的竞争力;另一种是程序员类型,即把产品经理的想法具体落地。

某行业人士表示:“第一种人才相对不易寻找,后者经过区块链行业的起伏,且从薪资的起落已经可以看出,找寻难度已经大大降低。区块链在程序层面的神秘度已经祛魅。而目前国内的政策,鼓励的是区块链服务企业,而不是小微企业基于区块链技术进行ICO等偏金融创新型的模式。”

由此可见,产品经理型的区块链人才将是未来市场主要争夺对象。

7,程序员应聘

作为一名软件公司的曾经的管理人员,我想告诉你: 文凭不是最重要的,但的看你在什么地方工作。如果是北京等大城市,文凭相对还是很看重的。 只会VB和C,一般能聘上的可能性很小。但我要说,你必须有拿的出手的技术。比如你必须会数据库及相关查询语言,编程其实就是在和数据打交道。 在大学中,几乎80%的学生都通过了VB和C的考试,但他们中间又有几个可以真正从事编程工作的。所以,这条路,你还很远。 但我希望你不能自悲自己的学历。只要你肯努力,肯低调,你慢慢一定会成为高手的。永远不要放弃。有梦想就有可能。 好运!
我以前基本上和你一样,根据我的经历,我建议你先别着急找工作,vb和c不能说是淘汰,但是用的已经不太多了,新手出去找工作是很难的,建议再学一下java,c#这类的语言,到自己独立的写一些完整的拿得出手的项目时,你再去找工作,现在这些语言是比较流行的,你求职的成功率会比现在高很多的! 当然了,路是自己走出来的,你想出去瞧瞧当然也可以,就算找不到工作也能增加一些经验,找到就更好了!加油吧,哥们..
VB和C仅仅是入门语言而已,应聘的话不大可能了…… 要学习C++ 或者JAVA、C#之类面向对象的语言,比较好应聘
具备以下能力: 1、版本控制系统(vcs) vcs也许是计算机课程最大的疏漏。这些课程光记得教如何写代码,但却往往忘记教学生如何去管理代码。而每一个程序员都应该懂得利用git或subversion有效地创建repository(仓库)、编辑与提交代码、进行分支与合并、了解项目工作流。 2、写作 身为程序员要写的不只有代码。你还要撰写项目的发布说明,给版本控制写提交消息,在系统里面编写漏洞报告。这些和许多地方都需要清晰有效的文字表达——但这个技能计算机科学却很少强调。 3、正则表达式 正则表达式本身就是一门语言,每一个现代程序员都需要熟练掌握。每一门现代语言都支持正则表达式或者有相关标准库。如果代码需要校验某字符串是否含有5个字符、1个破折号和1个数字,应该马上就能写出 /^[a-z]-\d$/。 4、库的使用 现在已经是2014年,没人需要用正则表达式从url析取主机名。因为每一门现代编程语言都有执行常用功能的标准库。程序员需要明白,那些经过开发、测试和调试的代码通常要比自己重新写的代码更好。更重要的是,无需编写的代码实现起来要快得多。 5、sql 很多程序员的sql竟然是在工作中学会的。把数据存进平面文件的时代已经结束了。一切东西都要进出数据库,而sql则是存取数据的语言。这是一门说明性语言,不是程序语言,所以用它来解决问题时需要新的思考方式。每一个程序员都应该了解数据库标准化基础,能够执行select(及inner、outer join)、insert、update和delete。 6、ide、编辑器及cli工具 只懂用锯子的木匠永远也无法出师,所以计算机专业毕业的人只懂notepad或pico的话实在令人惊诧。编程工具帮助操纵代码及其他数据,令程序员生活变得容易。所以每一个程序员都应该知道命令行、shell脚本、find、grep及sed的使用。 7、调试 每一个程序员都应该知道利用交互式调试器或在代码中点缀一些输出语句来调试程序。通过逐步求精来跟踪问题的能力实在是太重要了。 8、防错性编程 错误总是难免的,哪怕是明星程序员也不例外。失控是世界的常态,出错毫不奇怪。防错性编程正是理解了这个事实。如果东西不会出错,我们就不会检查文件打开成功与否,不会检查客户id是否合法数字,不用测试代码是否允许正确。程序员需要知道,编译器告警是有用的工具,可让生活得更舒适,而不是要避而远之的麻烦事。每一个程序员都应该知道为什么每一个php程序都要这样开头:seterrorreporting,为什么每一个perl程序都要写上这些语句:use strict; use warnings;。 9、团队协作 很少有编程工作会让你自己一个人完成,如果经常这么做,智力会受损,表现会变弱。你的代码必须与别人的交互或者混合。再有才的程序员,如果无法与别人协作,都会给项目造成负面影响,并迅速成为团队的负担。 10、利用现有代码 在学校的时候,每一次作业都是一个新项目,但实际工作不是这样的。对于刚工作的人来说,所接到的第一项任务往往是修改代码漏洞。然后,再在现有代码库的基础上为现有系统增加一个小功能。设计新代码那是几个月后的事情,如果幸运的话。所以作为程序员的第一步,需要学会利用现有的代码。

8,现在需要招聘程序员招聘信息该怎么写

一、招聘设计 招聘设计主要是指内容表述方式、书写文字、设计图样等等,这些内容都是要统一一个风格。 如果一个招聘信息文字一个繁体一个简体,看起来就很头痛;表述方式一会幽默一会严肃,就会让人感觉不严谨。 在招聘信息中,整体的格式要确保条理清晰,容易阅读。 关键方面可以使用精准的目录、加粗的文字,以此来引起求职者的注意。 二、招聘标题 在这个互联网信息泛滥的时代,太过于普通的标题,很多用户都会直接过滤掉,更别说阅读你的招聘内容了。 因此,招聘标题首先一定要简洁醒目,才能吸引人,罗里吧嗦的只会招人厌烦。 其次标题需要个性化, 通过标题去勾起求职者的好奇心。 三、招聘内容开头 开头主要叙述招聘原因,引出招聘信息正文的出现。常见的有三种开头方式: (1)引子式 直接干脆,三言两语。直接引出招聘正题,简洁明快,以招聘信息的发布为主。 这比较适合知名度较高的企业采用。 (2) 简介式 在开头部分,首先对公司进行简要介绍,使求职者对公司有个大致的了解。 这种开头方式,对于知名度不高或新办公司来说,比较适合,适当地自我介绍使求职者在作出选择时有所依据。 (3)议论式 现在常见的招聘信息中,第二种常常变成公司的产品广告和业务介绍,偏离了“招聘”这个主题; 第三种开头方式现在还不多见,这其实是应该大力提倡的。 把用人单位的用人哲学和对人才的要求,用文学化的语言表述出来,远比枯燥、单调的内容要吸引人得多;但是也不能大话连篇,脱离本公司的实际。 四、招聘内容正文 (1)企业描述与简介 一份好的招聘信息不仅要能让求职者清晰地了解企业的需求,还能吸引人才主动投递简历。 所以,招聘信息不仅要向求职者介绍企业的相关信息,还要站在求职者的立场,告诉他们企业能提供什么,比如工作环境、成长空间等。 这一步要专业而精简,良好的开端给人以良好的印象,也是提升公司形象的关键一步。 在招聘信息中,应该包括关于公司地点的准确描述和前往公司的交通指南。 要知道,互联网是全球性的,地球上任何一个地方的人都可以通过互联网看到你的招聘信息。 (2)完善的职位说明 在求职者看到你发布的职位后,职位相关说明的内容就显得十分关键了,专业而吸引人的职位说明会对招聘起到事半功倍的效果。 还要注意职位的描述具体清晰,最好能让人从职位名称中就能明白该职位的大概方向。 当然了,对于每一个职位的职责描述要精准。 这个职位的日常工作是什么?怎样融入到团队中?为什么求职者希望得到这份工作? 在描述每个岗位时,要尽量将岗位向求职者“推销”出去,吸引具备相应能力的求职者来应聘这个岗位,而不是简单的描述草草了事。 (3)对招聘对象的具体要求 包括招聘人员的工作性质、业务类型,以及招聘人员的年龄、性别、文化程度、工作经历、技术特长等。 这个职位有哪些技术是必须需要的?除此之外,求职者具备哪些其他的技术,企业会更优先考虑? 对于这些确定的技能要求,也要在招聘信息中明确反映出来。 描述的越清楚,接下来的招聘工作也会更省事。 (4)招聘人员受聘后的待遇 该项内容一般要写明月薪或年薪数额,写明执行标准工休情况,是否解决住房,是否安排家属等。 要想吸引人才,福利政策十分重要。大多数求职者如果没有在招聘广告中看到薪资的相关信息的话,就不会投简历应聘这个职位。 因此,对于每个职位的薪资待遇,企业最好注明一个大概的范围。 同样的,假期、养老金、保险等对求职者来说极其重要,如果公司还有一些独具特色的福利政策那就更好了,如一些提高技术水平的培训或团队活动。 (5)清晰的面试程序引导 想在求职者看完招聘信息后接下来做什么?是通过邮箱投递简历,还是通过招聘网站申请? 在招聘信息中,要有清晰明确的面试程序引导。明晰面试流程,可以减少咨询的时间,方便了招聘者和应征者。 最好让求职者感到你这个职位是非常紧急需要的,以此来提高应聘者的求职积极性,尤其是公司确实急需这方面的人才。 五、招聘内容落款 很少HR会注意这个地方,一般都是只写上发布信息的时间和公司名称,就没了。 其实还可以写一个小小的温馨提示:面试需要带的东西、联系的地点、联系人、电话号码、邮箱等等都可以写清楚。这样更会事半功倍! 六、招聘的注意事项 招聘启事要遵循实事求是的原则,对所招聘的各项内容,均应如实写出,既不可夸大也不缩小。 招聘启事的各项内容,可标项分条列出,使之醒目。也可用不同的字体列出以求区别。 招聘启事的语言要简炼得体、要庄重严肃又礼貌热情。 总之,一份好的招聘信息,在追求专业性描述的基础上,要力求简洁,明确。 主要目的是减少招聘成本,减少求职者的决定时间,在最短的时间内找到最合适的人才放在最合适的岗位上。
主要问题是你要招php程序员来做什么,简单补充下。 这个很重要, 因为程序员也分三六九等的,同样是php也会有不同方向。 要知道你想要做什么才能知道要什么样的程序员,这样也方面定工资。

9,程序员降薪求职到底该不该

编者按:本文来自微信公众号“CSDN”(ID:CSDNnews),作者 小谦。36氪经授权转载。

几乎所有程序员都想当上CEO成为人生赢家,但对于大多数的程序员来说,从菜鸟到资深专家需要度过一个漫长的求职/离职生涯。

在求职、离职的无限循环中,伴随着生活压力的提升以及自我能力评估的提升,大家对于自己薪资的要求会越来越高,甚至还出现有些程序员就因为求职薪资的问题而倍感焦虑。但是每个人的性格不一样,每个程序员在不同阶段所追求的东西其实也都不一样。

那么,下面我们就围绕新入行程序员、求稳型程序员、想创业型程序员、想当高管型程序员这几个类别,来聊聊究竟应不应该降薪求职?今天,笔者就来谈谈对于这一话题的一些看法。

1.保障生活开支是前提,但刚入行时这些东西比工资更重要

不管是老牌的程序员还是刚刚入行的程序员,生活永远是第一位。某种意义上来说,程序员在保障生活开支的前提下再去做出降薪的选择,这确实很有道理。但是,这个道理也不是绝对的,尤其对于新入行的程序员。

众所周知,在实习期间工资低或者没有工资,很多人都可以以锻炼自己来平衡自己薪酬获得不够的心情。但正式上班之后,很多人就会失去学校给自己安排的房子,不得不在房租和吃饭这个方面提升生活成本。这时候,要保障生活的开支,成本也提升了很多。

这种情况下,能够保障生活开支肯定是最好的,但是,不管是培训机构出身还是科班出身,很多刚刚入行的程序员都可能会碰到自己所学的东西在解决市场需求之时不够用的情况——这时候在生活成本的压迫下,如果是去的一般创业公司,很容易形成频繁的离职求职行为。

所以,如果想在程序员道路上走的更远一点,那么刚刚正式步入这个市场之后,如何提升技术力量、如何提升行业人脉这其实才是最重要的事情。如果说将公司未来前景、主管老大、内部学习机会这样的因素算进去,新入行的程序员才会对这家公司给予的“薪酬”有更深的理解。

2.工资不是求稳型程序员的唯一薪酬,隐形福利是否齐全非常关键

如果入行几年后依然没有转行,很多程序员就会逐渐出现事业的定型,甚至对其未来发展已经有了明确的目标。比如是不断提升技术能力未来拿个高薪?还是未来想要做CTO做技术管理甚至创业?这时候,基于不同类型的程序员,他们对于薪酬的考虑也就有所不同。

针对所有的老牌的程序员来说,本身可能房贷车贷的压力就已经非常大了,同时可能还有老婆孩子父母岳父岳母的压力所在,那么要保障生活开支的所需金额其实就真的比刚刚入行的时候高多了。

这时候,在基本保障了生活开支之后,如何从福利方面来看待薪资,这是老牌求稳型程序员所需要考虑的事情,尤其是五险一金是否按实际工资缴纳。要知道,当下很多企业的运营压力都非常大,如果没有五险一金这样的福利就更难吸引人了。

所以在现在,购买五险的企业很多,购买五险一金的企业就会少很多,其中大多数缴纳五险一金的企业都是按照最低标准缴纳的。这时候,如果一个企业愿意给稳定性的程序员按实际工资缴纳,那这些隐形福利就会给程序员的生活带来莫大的便利。

公积金最主要的用处就是可以用来贷款,并可以用来还房贷,即使你不用公积金买房,你也可以通过封存的方式将所有的公积金全部都提取出来。

而五险中,虽然看上去其实确实没太多用处,但既然都是保险,其实就和很多程序员家里也花了高价购买商业保险,但是大多数情况其实用不了的情况一样。从某种意义上来说,人们都不希望动用保险,因为这时候就会出现对本人身体或者事业方面来说非常不利的因素。

换句话说,有时候人这辈子很多东西就没办法预估,真发生什么事情的时候,平时看似不起眼的保险也能稳定地发挥一些帮助。

比如社保,在牙疼看病的一些问题中,社保保险虽然不是很多,但是确实有时候可以不用花多少钱就解决身体问题。而对于女生来说,生育险更是关键,一个是本身社保在生孩子的时候会有报销,另外一个就是在产假期间国家会给予孕妇一定补贴,总的金额大概可以达到10000多。

而失业险,这个其实也是一块被忽视的保险。有时候,大家在心情状态不佳的时候,很有可能很久不想上班,要么就待在家里,要么就出去旅游。这时候,如果你购买了失业险,每个月都可以去基于你工作年限去政府部门听课然后领取至少1000多一个月的失业补贴,还不用扣税扣社保的。

因此,对于求稳型的程序员来说,本身离职的概率就会少一些。但是如果降薪求职后,原来的企业在五险一金方面都按实际的缴纳,并且可能还有餐补、交通补贴、电话补贴等多类福利,而现在的企业只有纯粹的工资,五险一金也都是按最低标准缴纳。

那这样一来,确实不太适合求稳型程序员的降薪创业的标准,求稳型程序员纵然会有降薪求职的可能性,那也应该是福利更多,同时企业本身底蕴强且未来稳定,这样少了一点工资其实还不算什么事。

如果不能成为从亲自写代码转型到带技术团队做管理,那么这样的程序员未来的竞争力就会很差,求职方面就会很困难。

3.高管型或创业型程序员,降薪求职只求更多人脉提升更强能力

一定程度上,降薪求职是大多数程序员无法接受的事情,所以这也注定了那些当技术高管或者走上创业道路的程序员,终归是少数。

无论是正规大学还是培训机构,几乎都不会主动培养大家的管理能力。但在整个开发工作中,一个项目经理或者一个CTO的价值,很难被替代。这不仅需要有较强的管理能力,同时还需要能够持续找到一些能够解决一些技术需求的人,这离不开人脉的魅力。

做管理,在技术本身存着一定标准化体系和规范的情况下,程序员如果待在创业公司,大概率情况下是很难以在技术管理能力方面有明显提升的。所以,对于本身想做高管或者想创业的程序员来说,如果降薪求职后可以进入类似于BAT这种巨头或者行业头部的一些企业,那么这不管是加强管理能力、提升技术水平还是提升有价值人脉,都会有着非常明显的帮助。

尤其是对于未来想创业的程序员来说,降薪求职后进入大公司,能够有机会参与到一些重磅级产品的开发中,这对于未来在融资或者商务合作的过程中加大背书,从而提升融资和商务合作的可能性,都会有着莫大的帮助。

因此,笔者觉得降薪求职该不该这个话题,关键还是得结合程序员本身的情况以及其未来的目标来做分析。大公司有大公司的好,小公司也有小公司的优势,关键是在于这个岗位这个公司是否适合自己的职场计划。

那么身为程序员的你,是否愿意降薪求职呢?

10,不要做一个只会面向搜索编程的程序员

编者按:本文来自微信公众号“CSDN”(ID:CSDNnews),作者 Mathias Biilmann(Netlify 的创立人和 CEO),译者 弯月,责编 唐小引。36氪经授权转载。

在当今前端开发人员的世界里,JavaScript 疲劳已非常普遍。似乎每天都会出现新的框架、架构、命令行工具或 SaaS 服务。新事物的持续涌动让开发人员倍感疲倦。

为了避免这种情况,树立一种可靠的本能很重要——即甄别那些值得花时间去研究的技术和产品的能力,有些技术和产品在历经昙花一现后就销声匿迹,关于它们的文章在科技博客上也被归档,最后连正反两面的评论也都被遗忘了。

大约在 30 年前我拥有了第一台自己的计算机,从此便开始了编程生涯。那是一台二手的 Commodore 64 的电脑,进入“Basic V2”时闪烁的光标像是在欢迎我。

从那以后,开发的世界里唯一不变的就是变化,以及不断学习和发现的需要。关于如何在不断涌现的新事物中立于不败之地,我有下面一些看法。

01 了解历史

在这样一篇讨论如何在变革中处于领先地位的文章中,谈及历史可能有点出乎意料,但是为了了解和评估当代科技,你必须先了解该领域的历史。

该领域中变化繁多且频频发生,很容易让人觉得那些新东西真的是新的。但令人惊讶的是科技发展的是周期性非常明显;表面看似是新东西,其实往往有深刻的历史渊源。

2004 年,Ruby on Rails 问世,并迅速崛起,对整个行业产生了巨大影响。与此同时,它的基本思想还是基于模型视图控制器(Model View Controller,MVC)模式,以及 Ruby 面向对象模式的基础,这些技术可以追溯到 70 年代末的 Small Talk 编程环境。

作为当时熟悉主流网络平台(PHP、Java、ASP)的开发人员来说,Ruby on Rails 不仅推出了具有全新语法的新语言,还提出了新的概念和主要的元编程的新范例。然而,对于那些一直关注 SmallTalk 的兴衰以及受其启发而创建的语言和平台的开发人员来说,Ruby on Rails 是一个很熟悉的概念(新型的语法,并采用一些 SmallTalk 应用程序的方式来实现 Web 应用)。他们仅需掌握 Ruby 和 SmallTalk 之间的差异(很重要但是差异并不大),以及 MVC 在 Web 和 Small Talk 应用程序之间的差异。

与之类似,React 的出现把整整一代 JavaScript 框架都扫进了垃圾堆。其中大部分框架都受到了 Rails 的启发,试图将 MVC 模型转移到浏览器中。对于很多开发人员来说,它似乎与依赖双向数据绑定模板的单页面的应用程序框架有很大的不同,与 JQuery 等简化的代码库也不一样。但是 React 的核心其实是受到了函数式编程语言(尤其是 OCAML)的启发,这可以一直追溯到计算机的早期阶段。

React 的创始人 Jordan Walke 最近在叙述自己的经历时,回顾了创建 React 的历史背景:

在很长一段时间里,我以为“天啊,我觉得我只是个奇怪的程序员。”后来,我参加了一门关于编程语言基础的课程(课程的大部分使用了 ML(SML)),而我终于掌握了一些如何描述我想建立的应用程序的一些基本术语。我还学习了编程风格,吸引我的既不是古怪,也不是新颖的思想,实际上是一些最古老的编程语言的思想(那些从未成为主流的思想),这些思想在软件业界经历了 20 多年的风吹雨打(在我看来都在朝着坏的方向发展)。

网页链接

对于很多前端开发人员来说,React 中完全成熟的状态管理融合了 Redux 的形式(也许是结合了 Immutable.js)让人一时有点难以理解。但是对于了解其后的历史背景并关注函数式编程(其概念可以追溯到 1958 年出现的 LISP)再现的开发人员来说,React 反映了熟悉的概念和想法。

即使在积极尝试学习新技术时,历史也可以起到很大的帮助。当 Rails 首次发布时,除了一些在线文档、教程和源代码本身(稍后将详细介绍源代码)之外,很难找到相关的资料。然而,有很多关于 MVC 演变到 Small Talk,再到 Objective-C 的文章,以及很多基于 Small Talk 的消息传递机制的元编程和 OOP 的经验教训。

这可以成为学习新技术的一个好工具,提高学习速度;我们无需再阅读最新的教程和新出现的文档,而是要弄清楚它们的灵感来源,以及它们引用的之前的知识和创立的基础。很多关于旧技术、想法和方法论的资料更加成熟,你会发现很多经验教训也完全可以使用该领域的新成果。

扎实的历史知识可以为你提供一个非常好的工具包,在面临新技术时可以想想:这次有什么不同?该问题的答案通常会决定一个新技术的成败。

02 人、文化和社区都很重要

人们往往以为工具和科技可以自行发展。例如,面向对象编程演变成了函数式编程,文本编辑器发展成了完全成熟的集成开发环境(IDE),还有动态语言转变成了静态类型语言。然而,新技术和框架不仅仅沿着自身的道路发展。它们是由人、组织和社区发明、构建并传播的。

当一种新型的工具或技术涌现时,其背后的技术基础(它有什么不同?构建的基础模式是什么?)和动机(为什么有人选择现在创建这个?哪些人会对此感兴趣?这项技术可以为公司解决哪些问题?)非常重要。

我最喜欢的一篇关于为什么有些工具可以获胜而有些被淘汰的文章是 Richard P. Gabriel 于 1989 年写的《The Rise of Worse is Better》[1]。文章描述了为什么 Unix 和 C 战胜了基于 LISP 的技术(其原因与两种解决方案内在的品质无关)。

在文章中,Gabriel 描述了“糟糕的设计却有更好的发展”,他比较了新泽西学校和麻省理工与斯坦福大学的设计,表明实现的简单性比终端界面的简单性或正确性更重要。正是这一点使得 C 和 Unix 在市场上击败了 LISP。C 编译器比 LISP 编译器更加容易实现、移植和优化,这使得 Unix 的实现人员可以更快地向用户交付软件。这导致这项技术被迅速采纳,并最终意味着更多人(和公司)向 C 和 Unix 生态系统的发展和完善投资。

在学习新技术时,不仅要理解它们的目标,以及在技术上的实现方法,还要了解它们的传播方式,以及社区的发展。通常变成重要的主流编程社区的技术正是那些能投为后续问题提供最佳解决方法的技术,即使有时它们看似是在旧技术的基础上发展起来的。

但真正的秘密是:

有时候领先于技术的工具注定无法得到广泛的采用(我敢打赌很快我们就不会用 Idris 语言编写 Web 应用了)。LISP 从未成为主流,但是当今很多主流框架、语言、代码库和技术都源自 LISP 的发明和探索的创意,即使在今天学习 LISP 也可以让我们更好地了解未来的技术。

如果你发现有的工具正处在这样的交叉路口,那么掌握这些情况可能会让你成为下一个超级开发。

03 知其然,更要知其所以然

在我做开发的时候,与 StackOverflow 非常接近的是带有源代码的计算机杂志,你可以手动将这些代码输入到你的机器上并运行程序。

我是一个粗心大意的打字员,我从来做不到输入完整的程序而不会有任何错误。与复制和粘贴 Stack Overflow 的代码段相比,这实际上是印在纸上的计算机程序的一个好处(无可否认的仅有的几个!),因为为了跑通代码,你需要真正理解代码。

作为开发人员,我们常常面临最后期限迫在眉睫的情况,我们需要背负压力尽快将新功能和改好的 Bug 交付到客户手中。我见过那些急于求成的开发人员,他们只是将代码库和代码片段放在一起,根本没有时间去理解其中的工作原理。或者,他们发现有什么不对的地方,然后只是尝试不同的解决方案,而不是首先花时间了解为什么系统出了问题。

不要学他们。记住,永远不要无脑地借用 Stack Overflow 或其他地方的解决方案,你需要花时间掌握解决方案可行的原因。更进一步挑战自己,弄清楚为了找到你自己的解决方案,你需要花费多少时间,需要哪些资源等。

有时你会发现一个小的改动(也许只是使用了另一个库,调用了不同的函数等)就能改好一个 Bug,但是你并不明白其中的原因。不能就此打住,你需要深入研究,搞清楚为什么原来那个解决方案失败了,而现在这个可行。这种深入研究常常可以让你找到一些蛛丝马迹,并发现潜伏在系统其他地方的 bug。

学习新技术时的状况也一样。不要专注于表面的学习。学习不同框架的语法或语言对你没有太多好处,但是了解这些技术下面的决策过程可以从根本上让你成长为更好的开发人员。

当一项工作或学习结束以后,最重要的不是你学到了什么(哪个框架、哪个工具、哪种语言),而是通过学习的过程你学到的了什么。

04 付诸实践

即便是对资深程序员来说,选择合适的工具也并不简单。选择依赖众所周知的、值得信赖的和可靠的工具,还是采用新技术(用新的更好的方法来解决问题),我们需要在这两者之间权衡利弊。但是,作为开发工作的一部分,一些事前工作可以帮助你成功地选择新工具并利用新工具实现功能。这实际上是一项不断发展的实践。下面是本文建议的几种做法。

一、了解历史

历史知识可以让你拥有扎实的基础,帮助你思考:“这次有什么不同?”该问题的答案常常会决定这项新技术的成败。新鲜事物很酷,新鲜事物很有趣。但是如果过快的发展速度和 JavaScript 带来的间歇性的爆发,让你感觉难以接受时,你可以放慢脚步,记住这是一个漫长的过程,并且顺应大趋势比不断急于用最新的框架重写应用更为重要。

Peter Norvig 就这个问题发表了一篇很好的文章《十年内自学编程》(Teach Yourself Programming in Ten Years)

链接:网页链接。

二、人、文化和社区很重要

感谢 GitHub、Stack Overflow 和 NPM 的迅速崛起,我们可以更加轻松地了解社区的发展,以及开发人员的雄心壮志。虽然贡献度和给星表明很多项目已经取得成功,但在初期从这两点并不能看出项目的成功与否。然而,你会用下列方法选择技术来创建自己的软件或选择自己想去的公司,你也可以用相同的逻辑来确定一个项目是否会被社区接受:

是否有明确定义的愿景?

是否有明确的用户需求?

是否有合适的人员、资源和文档可以扩展?

是否具有可扩展性?例如,是否可以扩展或采用新兴技术或用户类型?

背后的支持者是谁?

三、知其所以然

不要专注于表面,我们需要关注底下的暗潮涌动。学习不同框架的语法或语言可以让你做好工作,但是了解这些技术的决策过程可以从根本上让你成为更好的开发人员。

Michael Feathers 列出了“每个开发人员应该阅读的 10 篇论文”[2]。所有这些文章都是关于语言、架构和文化的基本思想,并可以让你初步了解诸多趋势背后的基本思路,而这些直到今时今日仍然活跃在编程业内。

大胆地拥抱新事物!但是要有条不紊。让自己建立正确而坚持的基础。最终可以让你更快地采用新技术,更深入地了解它们,并更彻底地评估它们的持久力。

参考资源:

[1] 网页链接

[2] 网页链接

英文:Leveling up: why developers need to be able to identify technologies with staying power (and how to do it)

链接:网页链接

11,再谈我是怎么招聘程序员的

* 在豆瓣上看到“知乎上某人写面试豆瓣产品经理的经历,很欢乐”(亮点是面试官现身知乎亲自作答)所以,我很想把自己的这些新的想法再次写下来的。还是和以前一样,这篇文章同样是献给面试官的。我认为,面试的好坏完全在面试官而不是面试的人。下面是我对“我是怎么招聘程序员的”一文中的一些加强性的观点。为了让我的文章有连续性,请允许我重申一下前文的几个重要观点。* 只有应聘者真实和自然的表现,才能了解到最真实的东西 * 重要的不是知识,重要的是其查找知识的能力 * 重要的不是那个解题的答案,而是解题的思路和方法操作,知识,经验,能力我们有很多的面试官似乎分不清,什么是操作能力,什么是知识,什么是经验,什么是能力,这导致了我们的面试官经常错误地对面试者下结论,我认为分不清这些事的人是没有资格做面试官的。所以,我有必要在这里把这个问题先讲清楚。* 操作。我们的面试官分不清楚什么是操作技能,什么是知识,他们甚至认为操作技能就是知识甚至经验。比如他们会 问如下的问题,请问Java中的 final是什么意思?怎么查看进程的CPU利用率?怎么编写一个管道程序?怎么查看进程的程序路径?VI中的拷贝粘贴命令是什么?包括面向对象的XX模 式是什么。等等。我以为,这些能够通过查况相关操作手册或是能够google到的东西只能说明这个人的操作技术,并不能说明他有知识或有经验。* 知识。知识是一个人认知和学习的体现,可能会是一些基础概念和知识。比如这些问题:TCP和UDP的优缺点比 较,链表和哈希表的优缺点的比较。什么是堆什么是栈?进程间是怎么通信的?进程和线程的优缺点?同步和异步的优缺点?面向对象的XX设计模式的主要原则是 什么,等等。我以为,“知其然”只是操作技术,“知其所以然”才是真正的知识。知识不够并不代表他不能工作,会操作技能就可以应付工作,但是知识的欠缺一定会限制你的经验和能力,同样会影响你的开发质量。* 经验。经验通常跟一个人的经历有关系。一个人的知识范围,一个人经历过的事,通常会成为一个人经验的体现。面 试中,我们会问这些问题:你解决过最难的问题是什么?你是怎么设计这个系统的?你是怎么调试和测试你的程序的?你是怎么做性能调优的?什么样的代码是好的 代码?等等。对于工作年限不长的人来说,经历和做过的事的确会成为其经验的主要因素,尤其是业务上的有行业背景的东西。但是,我更以为,经验可能更多的是你对知识的运用和驾驭,是你对做过事情的反思和总结,是你对他人的学习,观察和交流。* 能力。一个人的能力并不会因为知道东西少而不行,也不会因为没有经验而没有能力。一个人的能力是他做事情的一种态度,性格,想法,思路,行为,方法和风格。只要有热情,有想法,有好的行为方法,以及好的行事风格,那么知识和经验对他来说只是一个时间问题。 比如:学习能力,专研精神,分析能力,沟通能力,组织能力,问题调查能力,合作能力等等。所以,对于一个新手来说,也许他的知识和经验有限,但并不代表他 能力上有问题,但是对于一个老手来说,如果其存在知识和经验欠缺的问题,那么通常都是其能力的问题。你可能暂时怀才不遇,但我不相信你会长期怀才不遇。如 果是的话,那么你必然些问题其让你的能力发挥不出来。而此时,“没有经历过”只会是你“没有能力”的一个借口。我不否认这四样东西对于一个优秀的程序员来说都很重要。但是,通过上述的分析,我们可以知道,能力和经验和知识需要分开对待。当然,这些东西是相辅相成的,你的能力可以让你获得知识,你的知识可以让你更有经验,你的经验又会改变你的想法和思路,从而改善你的能力。在面试中,我们需要清楚的认识到,应聘者的操作技能,知识和经验只是其能力的必要条件,并不是充要条件,而我们更应该关注于应聘者的能力。* 如果面试只是考查这个人的操作技能的话,那么这个面试完全失败。这是一个没有资格的面试官。 * 如果面试只是在考查这个人的知识和经验的话,那么成功了一半。因为你了解了基础知和做过的事,但这并不代表你完全了解他的真正能力。 * 如果你能够在了解这个人的知识和经验的过程中重点关注其能力(态度、性格、想法,思路,行为,方法和风格),并能正确地评估这个人的能力,那么你的面试算是非常成功的。也许用这四个词来描述定套东西并不太合适,但我相信你明白我想表达的。 不要肤浅地认识算法题和智力题很多公司都会在面试的时候给一些算法题或是一些智力题或是一些设计题,我相信算法题或是智力题是程序员们在面试过程中最反感的事了。很多人都很BS面试官问的算法题,因为他们认为面试官问的这些算法题或智力题在实际工作当中用不到。但我想在这里说,问难的算法智力题并没有错,错的很多面试官只是在肤浅甚至错误地理解着面试中的难题的目的。他们认为,能做出算法题和智力题的人就是聪明的人就是有能力的人,这种想法实在是相当的肤浅。其实,能解难题并不意味着这个人就有能力就能在工作中解决问题,你可以想想,小学奥数题可能比这些题更难,但并不意味着那些奥数能手就有实际工作能力。你可 以想一想你们班考试得高分的同学并不一定就是聪明的人,也不一定就是有能力的人,相反,这样的人往往者是在应试教育下培养出来的书呆子。所以,我认为解难题的过程更重要,你要主要是通过解题查看这个应聘者的思路,方法,运用到的知识,有没有一些经验,和你一起交互时和沟通得是否顺畅,等等,这些才是你重点要去观察的。当然,最终是要找到答案的。我想,让面试者解决一个难题的真正思路是:* 看看他对知识的应用和理解。比如,他是否会用一些基础的数据结构和算法来解决算法题? * 看看他的整个解题思路和想法。答案是次要的,他的想法和行为才是重要的。 * 看看他是如何和你讨论交流的。把面试者当成你未来的同事,当成你的工作伙伴,一起解题,一起讨论,这样可以看看大家是否可以在一起工作。这些方面才是考查应聘者的能力(思路,方法、态度,性格等),并顺带着考查面试者的经验和知识。下面是一些面试的点:* 应聘者在解算法题时会不会分解或简化这个难题。这是分析能力。 * 应聘者在解算法题 时会不会使用一些基础知识,如数据结构和基础算法。这是知识。 * 应聘者在解题 时和你讨论的过程中你有没有感到应聘者的专研精神和良好的沟通。 * 应聘者在对待这个算法题的心态和态度。如,面试面是否有畏难情绪。 * 等等。在解难题 的过程中考查应聘者的能力才是最终目的,而不是为难应聘者,不然,你只是一个傲慢而无知的面试官。 模拟实际中的挑战和能力作为面试官的你,你应该多想想你的工作,以及你的成长经历。这会对你的面试很有帮助。你在工作中解决问题的实际情况是什么?你写代码的实际情况是什么?你的成长经历是什么?你是怎么获得知识和能力的?你喜欢和什么样的人工作?相信你不难会发现你工作中的实际情况和面试的情况完全是两码事,那么,你怎么可以用这种与实际情况差别那么大的面试来评估一个人的能力呢?所以,最为理想的面试是一起工作一段时间。当然,这个在招聘过程中,操作起来几乎不可能,因此,这就要求我们的面试官尽可能地把面试的过程模拟成平时工作的 过程。大家一些讨论来解决一个难题,和应聘者一起回顾一下他已经做过的事情,并在回础的过程中相互讨论相互学习。下面举一个例子。我们知道,对于软件开发来说,开发软件不难,难是的下面是这些挑战:1. 软件的维护成本远远大于软件的开发成本。 2. 软件的质量变得越来越重要,所以,测试工作也变得越来越重要。 3. 软件的需求总是在变的,软件的需求总是一点一点往上加的。 4. 程序中大量的代码都是在处理一些错误的或是不正常的流程。所以,当我们在考查应聘者的代码能力时候,我们为什么不能模拟这样的过程呢?比如,让应聘者实现一个atoi()的函数,实现起来应该很简单,然后 不断地往上加新的需求或新的案例,比如:处理符号,处理非数字的字母的情况,处理有空格的情况,处理十六进制,处理二进制,处理“逗号”,等等,我们要看 应聘者是怎么修改他的代码的,怎么写测试案例的,怎么重构的,随着要处理的东西越来越多,他的代码是否还是那么易读和清晰。如果只是考查编码能力,一个小时,就问这一个问题,足矣。真正的程序员每天都在和这样的事打交道的。如果要考查应聘者的设计能力,同样可以如法泡制。不断地加新的功 能,新的需求。看看面试者的思路,想法,分 析的方法,和你的讨论是否流畅,说没说在 点上,思想清不清晰,会应用什么样的知识,他在设计这个系统时的经验是会是什么样的,面对不断的修改和越来越复杂的需求,他的设计是否还是那么好?
于是,有了下面这样一篇的文章,希望本文对你的职场经历有用,特别是那些正在招聘和面试程序员的朋友,我觉得这篇文章会对大家有很多启示。此外,做为被面试的人,你可以看看本站的《别的程序员是怎么读你的简历的》《程序员需要具备的基本技能》《优秀程序员的十个习惯》其它一些和程序员相关的文章。对于招聘方来说,在招聘程序员的时候,我估计面试应聘者时,最主要想知道的是下面三件事:这个程序员的是否够聪明?这个程序员能否把事情搞定?这个程序员能和我的团队在一起工作吗? 我相信,这是所有团队经理招人要考虑的三个问题,所有的问题也基本上围绕着这三个问题。有些时候,你也许觉得程序员的技术技能可以同时解决这三个问题,一个技术能力优秀的人必然是一个聪明的,可以搞定事情的人,当然也就能和团队一起工作了。是的,感觉看起来是这个样子,但其实并不是这样的。有些人的确很聪明,但却不能处理好工作上的事情,这样人应该是你的朋友,你的顾问,但不应该是你的雇员。有的人为人很不错,和团队所有人都合得来,但并不是很聪明,但工作很刻苦很努力,这样的人可以成为你的下属,比如某个下属骨干的助手,或是整个团队的助手。如果某个人不能和团队一起工作,无论其有多聪明,解决问题的能力有多强,你都不应该和他在一起工作。人个认为,团队的和谐是一切事情的前提。对于传统的面试招聘过程,基本上来说都是下面这样的样子的:阅读应聘者的简历,让应聘者做个自我介绍。问一些比较难的非常细节的技术问题,以一问一答的形式。给面试者一些和几个编程难题。(比如某些怪异的算法题) 我个人觉得这种面试方法很可笑,也很糟糕,尤其是后面两点。通常来说,这样的面试只会让你面试到一些“书呆子”或是一些“技术痴迷者”,下面让我来一条一条地剖析一下这几条的弊端。你很难从一个人的简历或是自我介绍上了解一个人。因为这些都是当事人自己写的,或是自己阐述的。所以,这并不是很准确的,通过简历,你只能知道很简单的事情,这对于是否能招入团是远远不够的。而在面试的开始,让应聘者做自我介绍,只会让面试者以很正式的态度来面对整个面试。一但面试过程很正式,很严肃,就会让人很拘禁,其实,这并不是我们想要的,我要的是应聘者真实和自然的表现,从而才能了解到最真实的东西。问几个技术难题。比如:我个人经历过的——“ps的-a参数是什么意思?”,“vi中删除换行符的命令是什么?”,“c++的关键字explict,mutable是用来干什么?”等等,等等。以前做为一个应聘者来说,我非常讨厌这样的问题,因为这样的问题查一下手册就知道。难道他要招的是一个字典手册?不是一个人?对于这方面,重要的不是知识,重要的是其查找知识的能力。给应聘者一个或几个很难的算法题,给上十几分钟,然后让面试者把伪代码或是代码写下来。这样的做法是相当可笑的,不能讨论不能查资料,让人在一种压力状态下作答,这根本就不是实际工作中的状态,而我们的面试也就成了一种刁难(我最变态的经历是,当我把写在两页纸上的代码上交上去后,面试官把其交给旁边程序员输出电脑做校验,结果程序员说,编译出错。于是,面试官说,“很遗憾,可能你写的程序还不多”,相当可笑)。对于这点来说,重要的不是那个解题的答案,而是解题的思路和方法。 我以前经历过很多的面试,当技术人员来和我做面试的时候,我发现,“技术人员的思维”对于某些人来说根本分不清面试和考试,在潜意识里,他们在很多时候不是在面试这个人,而是在刁难这个人并以此展示自己的技能。我个人认为我是一个好的程序员,但我可以告诉你我无法通过那样的面试,因为那样的面试是为他们自己准备的,而不是为应聘者准备的。那么,我又是怎样去面试的呢?一、确认简历。首先,阅读一下别人的简历是需要的,从简历上,工作经历,项目经历,技术技能这三个事情是你需要了解的。一般来说,你可以先通过电话确定一下他的工作经历,项目经历和技术技能,然后,如果他和你需要的人条件相符的话,可以叫到公司做面对面的面试。千万不要把别人叫来,你又说你的经历和我们的工作有差距之类的话。(我有过一次面试经历,公司我不说了,反正是那个号称需要有良好沟通的公司,面试了我9次左右,从一般的程序员,pm,经理,到总经理,而最后一次直接告诉我,我以前的经历和他们的要求差距很大。我不禁要问了,前面若干次的面试他们都在干什么呢?)二、面试开场。其次,把人邀请来公司面试,应聘者到了公司来面试,有一点很重要,那就是你一定要让整个面试过程变得很随意,很放松,就像普通的聊天和一般朋友间的交流一样。这样应聘者才会放松并拿出真实的样子来和你谈话和聊天,你才能在很短的时间内了解得更多。让应聘者放下心理负担,让其表现得自然一些,这是招聘方的责任。千万不要说,别人太紧张发挥的不好,有时候,招聘方得想想自己的问题。面试开场的时候,千万不要让应聘者介绍自己,因为,应聘者早就给你发过简历了,而你也给其打过电话了。另外,应聘者对这个面试惯例通常都会准备得非常不错的,另一方面,这会让整个面试过程太正式太严肃了。所以,不妨问问应聘者是怎么过来的?最近怎么样?还可以和应聘者谈一个大众话题,比如喜欢什么体育,音乐,电影,社会热点什么的,自己也别板着个脸,说说笑笑,试图让大家都放松下来。另外,通过这些闲聊,你可以知道他/她的与人交往能力和一些性格。另外,不要让桌子放在你和应聘者之间,把环境搞得随意一些。三、多让应聘者说说他的经历。接下来,如果你要觉得这个应聘者是否是一个可以解决问题,是一个可以把事情搞定的人,不用问他/她会做什么,直接问问其做过什么?干过什么事?对于一个好的程序员来说,很难想像其没有相关的实践,就算你是在大学里,你也应该做过什么。如果你有解决问题的能力,那么,很显然,今天你应该解决了很多问题,也搞定了很多事情,听听应聘者说一说他的那些事。(不要使用一问一答这种方式,应该让应聘者多说,而多听,多想)在他讲他的项目的时候,通常来说你要注意下面几点:沟通表达能力。应聘者能不能把一个事情讲清楚。如果这个人聪明的话,他就可以用最简单的语言把一个复杂的事情讲清楚。而且,这是一个好的程序员最基本的能力。而且,你可以在应聘者一边描述其经历的时候,你可以和应聘者有一些的良好的来来回回的交谈,这样就可以知道,他的沟通能力和沟通方式,从而了解他的性格,。角色和位置。也许他参与了一个很大的项目,但只是做了一个很简单的模块。所以,了解其在项目中的担任的角色和位置是非常必要的。当应聘者说到“我们”或者“大家”之类的词汇时,一定要向下细化和明确。做出的贡献和解决了什么的问题。这个很重要,通过了解这个,你可以知道面试者是否聪明,是否有能力解决问题,是否有好的技术底子。演示。如果可能,你可以让应聘者展示一些其写过的代码,做过的设计,或是直接给你看看他写的程序的演示。(从设计上,代码的风格,重用性,维护性上你可以了解很多很多)基础知识。了解该项目中应聘者使用的技术的一些基础知识,比如,通过整个过程,你可以问一些网络,语言,面象对象,系统的一些基础知识。基础知识是非常重要的,这直接关系到了他的能力。流程和工具。了解应聘者所熟悉的项目的流程(银弹,瀑布,敏捷,……),还有流程中的一些工件(如:需求文档,设计文档,测试方档等),以及在开发过程中使用的工具(内存测试,代码检查,bug报告,版本维护,开发调试……)(关于程序员的基本技能,你可以参考——《程序员需要具备的基本技能》) 有人会说,应聘者的经历可以被他自己编出来的,他可以把一些不是他做的事说成是他做的。是的,的确是有这种可能。不过,不要忘了,一个谎言背后需要用更多的谎言来圆谎的,所以,你不必担心这个问题,只要你在应聘者的描述过程中逐步求精,细化问题,你会知道应聘者是否是在编故事的。千万记住下面几点:谈话风格要随意和自然,不要正式。在了解应聘者以前做过的事的时候,不要太投入了。因为招聘方也是技术人员,所以有时候,招聘者自己会因为应聘者所做的项目中的技术太过迷人而被吸引了。要注意引导应聘人。相信我,应聘的程序员十个人有八个人讲不清楚以前做的是什么。因为他们直接跳过了项目背景和要解决什么样的问题,而直接进入具体实现。不要一问一答,应该多让应聘者说,这样才能多全方位了解一个人。了解一个人的过去,了解一个人做过的事情,比其会做什么更重要。了解一个人的性格,想法,思维和行为,比了解其技术技能更重要。沟通能力,表达能力,语言组织能力,理解能力,等方面的能力,关系到了是否能和别人一起工作。基础知识比知识的点滴要重要得多。你可能不知道其个c++的关键字,但你应该要知道c++的继承和多态。技术技能固然很重要,但比其更重要的是这个人获取知识的能力,学习能力是在计算机这样变化飞快行业中必需具备的。是否可以进行培养,比掌握的技能更重要。 四、实际参与??这一步可能是很不好实施的。因为,这需要一些应聘者付出一定的时间,如果是毕业生,那没有问题,先让他来实习一段时间。但如果别人有工作,就不好了。也许你会说,这就是试用期的用处了。不过,我个人觉得,你得要尊重应聘者,人家把那边的工作辞了,来你这边工作,三个月试用期间,如果没有什么原则上的问题,你作为一个招聘方又反悔了,这样做很是相当的不好。如果发现这样的事,只能是招聘者自己的问题。在面试过程中,一些招聘者会让应聘者们一起做个游戏,或是搞个辩论比赛,或是现场组个团队干个简单的事情,有的甚至让应聘者请一天假到自己的公司里来和自己的团队一同工作一天,并要完成某个事情(甚至给其设置上deadline),并通过这些来考量应聘者的实际参与能力。是的,如果没有一起工作过,没有一些实际的事情发生,单靠几个小时的面试很难了解一个人的。设置上这些面试的环节,在最短的时间内来了解应聘者的一切,对于招聘方来说无可厚非。而且有的时候也能得到不错的效果。在这里,我只提一点,有时候这样的周期拉得很长,让应聘者付出了很多,反尔会让应聘者产生反感和厌烦情绪,从某种意义上来说,这实在是对应聘者的不尊重。对于这一点,我一直持疑问的态度,所以,我在其后打了两个问号。

文章TAG:招聘程序员  招聘一个程序员需要多少工资  招聘  程序  程序员  
下一篇