程序员招聘求职的

2024-10-18

程序员招聘求职的(精选8篇)

程序员招聘求职的 篇1

给大家分享一篇一名程序员的求职自我介绍。

我出生在农村,在甘肃的大山里,印象中最深的就是看不到头的山,走不完的山路。但我喜欢山,喜欢山的朴实无华,喜欢山的巍峨大气。

初中就离开父母去市里上学,自己租房住,自己做饭吃,一直延续到高中毕业。也许是从小就独立生活的原因,在思想和行为上本人相对独立,喜欢按照自己的想法去做事,按自己的想法去生活,简单的说就是走属于我自己的路,活我自己的人,也因此和父母产生了不少的矛盾和冲突,上了大学后,自己有意识到去缓解这些矛盾,我知道,要不是因为儿女,我们的父母原本可以过得更好。“父爱如山”,大学毕业了,我才渐渐的体会到这句很简单的话的涵义。

我现在是一个程序员,在公司担任项目经理,每天在计算机面前一坐就是10多个小时,我现在都分不清是为了更好的生活而玩命工作,还是为了更好的工作而用心生活,在生活和工作之间我很难找到一个平衡点!

和所有的男人一样,我崇尚尊严,喜欢荣誉,渴望成功。通向成功的道路是孤独的,工作之余,午夜时分,我静静的躺在床上,一个人品味着这份属于自己的孤独,但在孤独的背后,我渴望一份真挚的爱情,渴望有人在乎我,就像我在乎她一样,不需要惊天动地,不需要海誓山盟,只要相濡以沫,彼此搀扶着、陪伴着走完人生的旅途。

本人比较传统,不喜欢看韩剧,尤其是韩国的娱乐节目,不喜欢“非主流”,也不喜欢什么事都云里雾里的女孩子,我不在乎你的出生,你可以外表平平,但我会毫不犹豫的排除思想平庸的女孩子,我喜欢看欧美的电影(喜欢美国口音和欧美人的思维方式),喜欢看足球比赛(不**的比赛)---球场上我穿的是10号球衣。

任何事都需要一个过程,相识、彼此了解亦如是,如果觉得我们投缘,可以给我发邮件,最好有个简单的自我介绍(简单的介绍一下自己目前的工作、生活,还有个人的喜好),所有的邮件我都会回,要是我觉得合适我就会留下我的联系方式,方便彼此以后更好的交流。

程序员招聘求职的 篇2

一、程序化人力资源招聘存在的问题

程序化人力资源招聘是采用定量的考评分析方法, 主要是通过信度和效度的测量来实现考评招聘的, 是一种数量科学方法的招聘模式。信度是指测试的可靠程度和客观程度, 即测验的一致性;效度也就是有效性或者正确性, 是指一种评判技术能够真正衡量它所要衡量的对象的程度。但是, 人力资源管理是管理学的一个学科分支, 管理学是一门不精确的科学, 这是因为管理是以人为核心的科学, 就科学现有的理论并不能完全解决人的心里意识问题, 对于人的非理性行为更不能精确描述。因此, 在实践运用中, 程序化人力资源招聘存在不精确性与缺陷, 主要体现在如下几个方面:

1. 招聘程序管理的一致性缺陷

人力资源招聘管理过程以程序化为主体, 程序化就意味者一致性, 一致性必然导致对每个人都适用的共性要素的管理。例如:对就读学校偏好的选择;对学历要求的选择;对专业选择的要求;对学历选择的要求;对职称、职务选择的要求;对经历和经验的选择的偏好;对性别、年龄、家庭、出身、环境背景的选择要求等等。再如:招聘时的报名程序、筛选程序、笔试程序、面试程序、录用程序等等。这些一致性从某种程度上体现了其科学性, 并在实践中不断总结完善, 但无论怎样总结完善, 其管理程序的一致性也会使一部分具有卓越能力和具有极大潜能的人才资源流失。原因则是那些具有卓越能力和具有极大潜能的人才, 他们一般都具有十分突出的个性, 这种个性与程序化之间具有冲突, 或者对于程序化说是一种本身的缺失。从人力资源的创造价值角度来看, 是招聘程序化管理的缺陷, 这种缺陷是因为一致性造成的。

2. 招聘程序管理的差异性缺失

程序化招聘管理差异性缺失主要体现为对所招聘人才共性能力把握较准确, 而对人才的差异性能力把握存在缺失。目前的人力资源管理理论与实践对这方面问题认识、研究、重视的不够, 在我国人力资源招聘管理中, 这方面的缺失表现的尤为突出。而“有效的招聘方法能帮助公司利用优先的人力资源成功地进行竞争, 为使竞争优势最大化, 公司必须选择能快速和经济地挑选出最佳候选人的招聘办法”。程序化招聘管理的一致性缺陷与差异性缺失, 只能使人力资源招聘在某一个深度层面上获得一致性, 招聘管理中量化的一致性必将错失具有突出个性人才, 差异性缺失必将导致招聘管理对具有个性人才深入认知、考评和职位提供的缺失。大凡具有深度创造力的人才都具有某种独特的个性, 这种个性在程序化考评的价值观和认知理念中使具有形式上的缺陷的, 同时程序化招聘模式也决定了不会去深度挖掘这种类型人才内在品质和创造力。

二、非程序化人力资源招聘的必要性

所谓非程序化人力资源招聘, 是指能够以人才及人才个性为人力资源管理的核心理念, 以最大限度得到人才而打破程序限制为有效途径的人力资源管理。程序是死的, 如果人力资源招聘者的人力资源招聘管理不能打破程序对人才的限制、埋没。阻隔。甚至扼杀等副作用, 程序化招聘一般只能招聘到人力资源平均水平及以下的人才。

根据“冰山理论”, 人的才能或素质分为可见部门——“水上部分”和不可见部分——“水下部分”。“水上部分”包括基本知识、基本技能, 这些知识可以通过学习得到, 各种学历证书、职业证书可以用来证明应聘者这方面的能力, 或者可以通过专业考试来验证。而“水下部分”是人的潜在的能力或素质, 它们构成整个素质中的大部分, 只有在比较长的时间内我们才能够观察到一个人潜在的能力。

现代企业的发展依靠企业中的人才, 企业的竞争是人才的竞争, 如何将人才招聘到企业中关系到企业的生存与发展。在程序化招聘理论指导下, 招聘者只要招聘到能够胜任该招聘岗位的人才, 任务即告完成。为此, 招聘者根据应聘者掌握的知识和技能来确定岗位人选。这样, 虽然能够招聘到与岗位匹配的人才, 但这种做法忽视了人的潜在能力, 往往不能招聘到具有较好“潜在素质”的人才。诚然, 拥有丰富专业知识固然重要, 但是否真的具有较高水平来管理一个公司?是否有能力管理自己的团队?是否能将专业知识与实际有效地结合?他们对岗位的了解及把握程度如何?这很难说。知识与操作技能对于工作的完成是重要的成分, 然而它们相对来说比较容易获得或发展, 通过培训比较容易见成效。而人的创新能力和潜在素质如:社会角色、自我概念、特质和动机等, 是比较难以评估和改进的, 但是它们对于工作的进行具有不可忽略的价值。

三、人力资源招聘程序化与非程序化的管理

具有创新能力的人才和卓越潜力的人才一般都与程序化具有某种天然的冲突, 如何在人力资源招聘管理中发现、挖掘这样的人才, 需要对人力资源管理结构进行有效的构建, 即人力资源管理招聘的程序化与非程序化相结合才是有效招聘。从量化的角度来说, 人力资源程序化招聘部分只能占整个招聘的80%, 而非程序化的人力资源深度招聘要占整个招聘的20%左右。

1. 程序化招聘的管理

任何企业开展招聘工作前, 都要进行工作分析, 制定明确、详细的工作说明书和科学、标准、专业的流程化招聘程序, 按照岗位需要, 制定考评指标, 并对考评指标一一细化说明。这样有利于招聘工作的有序进行并确保提高招聘有效性。在组织面试前, 提前对面试官, 授权分工, 并进行招聘工作的培训。面试官须是一个公正的人, 且需对招聘工作充满热情, 并须注意自身的形象;通过明确的分工, 面试官可以知道在面试的过程中注意考察应聘人员的哪些方面, 做到考察详实;通过对面试官的培训, 可以使其掌握相应的面试技巧, 并为以后的招聘工作打下良好的基础。通过上述招聘前的准备工作, 加强程序化招聘工作的管理, 为提高招聘有效性提供有力保障。

2. 非程序化招聘的管理

如果要实现非程序化的有效招聘, 解决程序化招聘对应聘者信息的虚实难辨, 以及程序化招聘对应聘者创造性思维与创新能力人才的桎梏, 就要求企业内部的管理者或人力资源管理团队具有以人才能力为核心标准的责任力, 具有结构性洞察与直觉判断人才的敏锐能力;人力资源管理团队具有经验、知识、程序化操作、非程序化捕捉、直觉判断、理性决策等知识力和理性力。非程序化招聘就是要允许招聘在组织人力资源管理中是以非常规模式进行的招聘。非程序化招聘管理则是要对人力资源管理者或团队加以高效的激励机制, 以便激活人力资源管理者或团队的责任力、知识力和理性力, 最终提高非程序化招聘的有效性。

3. 程序化与非程序化相结合是招聘工作有效性的保证

程序化招聘可以从数量科学的方面了解到应聘者基本的能力素质和知识结构, 但其的一致性缺陷与差异化缺失, 只能使人力资源招聘在某一个深度层面上获得有效性, 招聘工作中量化的一致性又错失具有突出个性的人才, 而非程序化招聘恰是依靠人力资源管理者或团队的责任力、知识力和理性力, 选拔具有“潜在素质”的人才, 弥补了程序化招聘的不足。因此, 程序化与非程序化招聘工作相结合, 可以较好保证企业招聘工作的有效性, 为企业增强了核心竞争力。

摘要:在现代人才竞争日趋激烈的环境下, 如何改善传统人力资源招聘体系, 提高人才招聘的有效性已提上人力资源管理工作的日程。本文从程序化人力资源招聘存在的问题分析入手, 就人力资源有效招聘问题, 对非程序化人力资源招聘的必要性、程序化与非程序化招聘的管理等问题进行了深入探索。

关键词:人力资源,非程序化,招聘

参考文献

[1]王中志:程序式人力资源招聘管理的激活研究[J].商业研究, 2005 (6) :172-173

[2]劳伦斯S.克雷曼:人力资源管理 (中译本) [M].北京:机械工业出版社, 1997

程序员的职业转型 篇3

关键词:程序员职业转型职业规划

0引言

高薪的IT行业是众多年轻人的职业梦想,然而,一旦身入其中却发觉没有想像中那么美好。被称为IT蓝领的程序员,工作强度大,像个编码“机器”;技术更新换代快,饭碗不稳定。随着年龄的增长,IT程序员该何去何从。据调查,IT人才市场的整体年龄状况趋于年轻化,22岁以下的择业者占总体比例的71%,而35岁以上的只占10%,年轻的人才给市场注入了活力,也使得IT行业的竞争更加白热化——人才流动性很大,岗位相对不够稳定。因此,笔者认为正在从事或即将从事编程工作的程序员们,应该好好思考自己的职业发展,做好相应的职业生涯规划,而不知是吃青春饭。

1职业生涯设计的步骤

职业生涯是指个体职业生活的历程,包括职业的维持与变更、职务升迁与职位的变动等,它是个体职业发展的整体“路线图”。而职业生涯设计就是在对个体的内在心理特征和外在环境条件进行评定、分析、研究的基础上,为其设定明确的长期职业发展目标,并制定相应的发展步骤和具体活动。职业生涯设计包括六个步骤:

1.1自我评估。在进行职业生涯设计时,首先就是要帮助个体进行自我评估,即了解自我。自我评估是对自己作出全面的分析,主要包括个人能力、兴趣、性格、气质、受教育水平、职业倾向和职业能力等的分析评估。自我评估是非常重要的,只有通过自我评估才能够对自身作出全面的了解,才能知道自己具备那些资本,通过这些资本能够做到哪些事。

1.2环境评估。每个人都处于一定的社会环境中,或多或少与各种组织有着这样那样的关联。因此,职业生涯规划也就离不开对这些环境因素的了解和分析。

1.3理想职业目标选择。理想职业目标首先源于个人的志向。志向是一个人为之奋斗的最终目标,是成功的前提,立志是人生的起跑点,反映着个人的理想、胸怀、情趣和价值观,对个人的成长有决定性的影响。理想职业目标就是个体对所立志向的具体化和形象好,是建立在自我认知和对环境科学分析的基础上,具有最大实现可能性的志向。

1.4职业生涯路线选择。每个人的现实状况与理想目标之间都存在有多种可供选择的路径,可以选择不同的行业,选定了行业还可以选择不同的企业,选定了企业还能选择不同的职位起点等。

1.5实施。所有的规划、设计都要依靠个体具体的实践来完成。计划的实施过程也就是个体的各种工作经历,具体内容包括实际工作、职能培训、学习深造等。

1.6评估与反馈。在人生的各发展阶段,由于社会环境的巨大变化和许多不确定因素的存在,原来制定的职业生涯规划和现实之间肯定会存在着一定的偏差,这时,需要对职业生涯规划进行评估和做出适当的调整,以便更好地适应自身的发展和社会的需要。它是个人对自己不断认识的过程,也是对社会不断认识的过程,同时也是使职业生涯规划更加有效的手段。

2那么对于具有丰富工作经验的程序员们,结合职业规划技术进行分析,可对他们的职业转型作出如下建议。

2.1出路一:向IT培训师转型

分析:IT企业在招聘新人后,一般都须经过培训才能上岗,这个培训有时是在岗位上进行的,由富有实践经验的“老人”负责。年轻人想要进入IT行业,必须接受这样的专业培训。如今IT培训市场蛋糕相当大,利润空间可观,行业发展前景看好。根据国际数据公司(IDC)统计数据显示,2004年中国IT培训市场共实现销售额24.4亿元,相比2003年增长了22.1%,2005年市场前景发展更为可观。“老人”无论是在IT公司内部转型担任培训工作,还是到IT培训机构担任教师,都应该有发展空间。这样的工作不会有太大压力,且比较稳定,对年龄也没什么要求。更何况,这还没有脱离程序员所喜欢的IT行业。

优势在这个行业工作了多年,拥有丰富编程、项目经验,曾参与过许多成功案例,这都是阿欢的优势。而多年积攒的行业人脉关系,还可以帮助他发展企业客户,顺便担任市场拓展工作。

挑战:程序员在过去工作中一直埋头苦干,大多数时间是和计算机打交道,缺少培训工作经验。如果要向培训师转型,程序员需要接受一些专业训练,提高担任培训师的能力。

2.2出路二:向IT营销转型

分析:IT与其它行业不同,由于技术性较强,营销人员一般也须有较强的技术背景,且最好有着丰富经验。互联网公司、电子商务公司、软件公司目前都需要有技术背景的营销人员;另外,电子商务的再度火爆,使得传统企业开始重视电子商务营销,也需要有技术背景的营销人员。这类工作薪水不低,加上提成应该可以拿到高于程序员的薪水,同时也比较稳定。

优势:深厚的技术背景仍然是“老人”的核心竞争力,在多年的从业经历中,阿欢广泛涉猎了各种编程软件和工具,对IT行业也有相对深入的了解,这些都为他转向营销提供了平台。

挑战:程序员过去的工作主要是跟机器打交道,而营销工作恰恰需要跟人打交道,这对阿欢来说是最大的挑战,要求他彻底改变工作方式,加强沟通能力与人际交往能力;此外,营销工作会面临销售指标的压力,这些问题都是程序员转型前必须深入考虑的。

2.3出路三:向项目管理努力

分析:如果说前面两条出路转型的成分多,那么项目管理可以说是阿欢更为便捷的发展之路。目前,软件项目经理是人才市场上炙手可热的人才,有丰富经验、外语好的软件项目经理是抢手的香饽饽,供不应求,薪水自然也是水涨船高。在上海市劳动部门新发布的2005年软件行业薪资调查中,项目主管的薪水是同层次主管中最高的,年薪高位数达到21101 1元,平均年薪达109414元。最重要的是,一个优秀的项目经理可以在这个岗位上长久工作下去,并且有向高层进一步提升的可能。

优势:对“老人”这样有经验、有技术、有人脉、有能力、参与过多个软件开发、有一定经验的人,项目管理无疑是其发展的一个很好的方向。

挑战:“老人”以往参与过不少项目的开发,但一直是项目团队里的一分子,没担任过项目带头人。而很多公司在招聘项目经理时,都需要有带领团队进行项目开发的经验,这是“老人”的一个劣势。建议他参加一些项目管理方面的培训课程,自学相关的知识,增长自己在流程管理、沟通协调等方面的能力,以便积累资本,逐步向项目管理岗位迈进。

一位女程序员的求职奋斗史 篇4

我所读的学校是中国西部的一所普通高校。我进大学后也和大多数同学一样,过着60分万岁的日子,除了对编程比较感兴趣外。(呵呵,好多室友都说我外表女人,内心却男人:喜欢写程序,喜欢和男打星际,喜欢打CS选土匪,拿AK47)四年的大学生活淘进了我刚进校时的傲气与自尊,在栀子花开的季节,我面对的却是无法把握的未来。毕业了,是的,四年象梦一样。男友执意去了中国最繁荣的大都市,我却希望留守相对平静的近在咫尺的西部城市,结局是可想而知的。痛苦十分短暂,因为迫在眉睫的生存问题变得急为严峻。幸运的是,2004年7月我很顺利的找到了一份程序员的工作。

我的第一份工作比较轻松,就是做MIS系统,写写C#代码。工作很轻松,带我的经理也很照顾我。于是我每天过着上班下班的生活,每天穿梭在熙熙攘攘的人潮当中,全然没了生活的压力。这样的生活也让人讨厌,日子太无聊了,无非就是写着重复的代码,再就是在天涯上闲逛。这样的日子结束于我看到的一篇文章,题目我记不太清楚了,好像是:成为IT精英,我奋斗了7年。

当时很受鼓舞,也很自责。大学的四年已经荒废,难道还要重蹈覆辙?于是我有了想离开这个安逸的城市,去节奏相对较快的城市锻炼一下自己。

于是在今年年初,我毅然背起行囊,踏上了南下的火车。。

二。初来乍到

一下火车,我来到人山人海的车站广场,看着人山人海,心里没有底气,毕竟是第一次出远门。但是只觉告诉我,先要找个落脚的地方。虽然我带了5000块,但是我却不敢乱花一分钱,因为在我印象中这座城市消费比原来的城市高多了。我得想办法尽快找到工作。

面试我的是位女经理。30分钟过后,我们谈得比较好。我自信满满的,呵呵。

最后经理问我期望的薪水时,我咬咬了牙,很小声的说了句3500.经理说,其实你比较符合我们的要求,但是薪水可能不会那么高。我小声问她能给我多少,她说句2000。但是我心都冷了,我来这个城市之前的工资也有1500啊。我说了句考虑考虑后,出了yy公司的大门。在传说中,这个城市不是每个人都拿高工资的么?怎么会这样?失望和痛苦同时袭来。

回到旅馆我仔细总结了一整天,得出结论:1.不是没有高工资,而是所掌握的技能门槛比较低,导致没有什么竞争力。2.一个规律:IT技能(不精通的情况下),技术门槛低的入门较容易的,在市场上竞争力不大(精通后,每项IT技能的竞争力相差不大。)。3.所以我决定,去学习新的东西,门槛稍稍高那么一点的东西。

原来以为自己有多厉害,其实自己差得要命。不懂虚函数有什么用,不知道除了构造函数,析构函数外还有拷贝函数,还有深浅拷贝之分。不懂什么是多态,不懂什么是抽象类,不知道C++里居然还有个STL库。随便拿本VC的书就写程序,甚至不知道APPWIZARD生成程序的入口。

也许是我心高气傲,当经理跟我说转正给我3000的时候,我拒绝了,我觉得自己可以拿更高的薪水。于是我辞职了。

程序员招聘求职的 篇5

一、才智尚招聘网站

1.本科及以上学历,3年以上PHP开发经验,有大型项目开发经验者优先。

2.精通PHP语言,有面向对象开发经验者优先。

3.熟悉LAMP体系的开发,熟悉Linux操作系统,熟悉Apache系统配置。

3.熟悉JavaScript和CSS,有Jquery经验者优先。

4.品格端正,有强烈求知欲和工作责任感,能承受一定的工作压力,有团队合作精神。

二、智联招聘1、2年以上开发工作经验,具有大型网站项目开发经验者优先;

2、精通PHP,可独立编写应用程序,代码编写规范,深入了解PHP的性能最优化和安全最大化;

3、可进行主流开源php程序的二次开发、模板改进和系统重构;

4、精通XML、HTML/XHTML、CSS、Javascript、AJAX、JSON等Web页面技术;

5、熟悉数据库,精通SQL和数据结构,具有MySQL/MSSQL等关系型数据库开发

经验;

6、熟悉Linux/Unix基本操作,熟悉Apache、MySQL、PHP等软件的编译安装和最优化置,了解这些软件的版本差异和不同安装/运行方式及原理;

7、具备良好的沟通合作技巧,较强的责任心及团队合作精神;

8、有良好的团队合作能力,具备Subversion/CVS协同开发经验,善于沟通,热爱开发;

9、要求面试时能够提供程序项目地址及演示源代码;

10、能独立承担商业动态网站/行业门户网站后台程序的开发工作;

11、思维清晰有条理,工作热情敬业有耐心;

12、能与美工配合完成较复杂的网站功能;

13、年龄21-28岁。

三、前程无忧

1、本科及以上学历,3年以上LAMP/WAMP工作经验;

2、熟悉Linux下,Apache的PHP环境配置和PHP应用;

3、熟练掌握各种设计模式和设计原则,具有2个以上中大型分布式系统设计验,4、至少在成功的中大型项目(产品)中担任主设计师;

4、熟悉MYSQL数据库,掌握各种调优技巧,熟悉各种nosql者优先;

5、熟悉memcache/redis、MVC/REST架构、模板引擎、中间件的原理与应用者优先;

6、熟悉TCP/IP、HTTP协议者优先;

7、有团队精神,能够主动和队友沟通、分享;

求职的程序与技巧 篇6

第一步:制定职业计划

先要清楚自己是什么样的人。这包括要清楚自己的天赋、自己的兴趣、自己的个性特点和自己所擅长的技能等,是它们决定了最适合自己发展的职业。只有了解自己,才能知道自己的意愿,才能制定合理的职业计划。职业计划为以后的探索提供稳定的方向,免去我们的茫然和择业时的摇摆不定。

第二步:研究行业挖掘职位

确定了职业方向,我们再着手研究希望进入的行业和企业。要认真研究的是:这些企业的产品和服务是什么?它们怎样运作?竞争对手是谁?对于它们,可以通过桌面研究和实地调查进行了解。你可以向前辈、有经验的人、甚至企业内部的人了解并探讨困扰企业的问题。

第三步:准备个人简历

简历是为了获得面试机会,简历在你接触企业时帮你向企业展示自我,

你的简历除了说明个人的资料,还向企业传达:你具备足够的知识和技能为企业创造利润,你将是一个出色的员工。应聘不同职位准备重点不同的简历。必须是针对应聘岗位进行设计,如无必要,无需展示“多才”。若专业不完全对口,则重点表达你的能力。

第四步:参加面试

自我介绍和自我评价。按照你希望的形象来介绍自己,用你追求理想工作的热情来主导你的看法,就是说,你希望自己将来成为什么人,你就把自己当作什么人来介绍!你的健康、诚实、积极、向上的精神将会感染面试官,令他们正面地评价你。第五步:决定接受或拒绝工作

面试之后,你马上就要判断这个工作是不是值得接受。你和企业对工作内容的理解不一样,企业所说的工作不适合你,与你的工作能力不一致,与你希望的发展不一致;或者这个工作岗位是不必要的,对企业来说没有大的价值或仅仅是临时的;又或者你与企业老板的脾性志趣不投,你们没法一起工作;更严重的可能是你没法调和与企业价值理念的不一致,等等。你都要做出判断。

假若求职失败,就需要马上改变策略,你可以问面试官你目前欠缺的是什么,还需要补充哪些新的东西。不管你是否同意这些观点,马上将这些建议按记住的样子写下来,几天之后再拿出来看,你会发现一些有用的东西。你也可以给企业留下好印象,有机会的话,他可能会将你推荐给合适的职位。求职失败同样可以使我们完善自己,为下一次的成功奠定基础。(黄均雄)

程序员招聘求职的 篇7

对于程序员在软件开发、维护等工作中产生的行为的收集和分析对于软件工程有着重要的意义。例如,通过监控程序员的行为可以进行程序员开发行为模式的挖掘、匹配和行为建议。此外,还可以通过监控程序员正在使用的API,主动为其搜索在线资源,并推送相关的搜索结果。当然,也可以用在对不符合组织定义的软件过程的探测以及容易发生bug的软件行为模式的探测上。

然而,无论希望实现以上的哪个功能,都需要以收集到真实完整的程序员开发行为流并将其处理为按照时序排列的结构化事件为前提条件。因此,设计一种全面、客观且忠实地记录程序员的开发过程的工具就显得极为重要,它能提供程序员开发全过程的第一手数据,从而避免了使用调查、访谈或问卷等其他调研方法中不全面,不细致的弊端。

针对以上问题,本文基于Eclipse的可扩展性提出并实现了一种程序员开发行为监控插件。插件由监控模块和数据处理模块组成,通过对Eclipse的插件监听接口和扩展点进行研究和探索,实现了对程序员开发行为完整、自动、无侵扰性地进行细粒度的监控,并对行为发生的时间信息和上下文空间环境进行记录,按照统一的接口格式将监控所获得的这些数据保存到关系数据库。

为了验证所提出方法和工具的有效性,本文设计了一个典型的程序员开发任务轨迹记录的应用案例。该案例基于本文开发的插件扩展,增加了在UI上与程序员的交互,根据程序员的开发行为监控来为程序员实时分析并提供建议,并允许程序员及其团队回看监控记录下的任务开发的每个环节步骤。通过案例实验证明了工具的有效性和易用性,为进一步实现行为信息的深入挖掘和共享打下了基础。

1 相关工作

对于程序员行为的研究,国内外已有不少相关的工作和文献。如Eclipse的顶级项目Mylyn[1,2]就是一种集成在Eclipse中的插件,可以匿名记录程序员的相关行为和上下文并以XML格式保存。Mylyn可以在界面上给出相关的建议,使程序员聚焦在与任务相关的上下文和代码提示上。夏威夷大学开发的Hackystat[3]工具采用“传感器———服务器”模式来进行收集和分析软件开发过程中程序员产生的行为,这些行为通过处理之后会被上传到云端服务器。McKeogh J等人[4]的工作实现了一种Eclipse插件来监控程序员行为,该插件使用SWT提供的监听器来监控在Eclipse编辑器上的浏览、编码等事件。Shi Lei等人[5]的工作提出了一种以方法为粒度的Eclipse过程数据采集框架。罗悦等人[6]的工作提出了一种基于Eclipse的代码错误提示和快速修复的插件,该插件在Eclipse的文档编辑器上添加监听器,当发生代码编辑事件时,插件可以即时地获取被编辑的代码片段,启动代码检查线程来确定这部分代码潜在存在的问题,并结合Quick Fix快速在UI线程中加以提示。

以上工作为本文提供了很多有益的启示,但这些工作在程序员行为监控方面普遍还存在以下这些不足。一是粒度不够细,多数工具的粒度只记录到文件或类;二是对程序员行为监控不够全面,往往只关注于浏览、编码,而忽略了测试、调试等其他行为,这些工具所监控的事件类型较为有限(如Mylyn只使用4个核心监控点,Hackystat也只有6个,每个监控点对应一个监听接口,监控一类特定的事件);三是没有记录并利用相关行为上所附加的时间信息,而时间信息往往反映了程序员的思路,对于后续的行为分析和理解具有重要的意义。为此,本文通过E-clipse这个最流行的跨操作系统开发平台作为程序员行为监控工具的载体,利用其优秀的扩展性和丰富的监听接口设计并实现了程序员行为监控的插件,力争能克服以上的这些问题。

2 方法框架

2.1 插件的总体架构设计

本文插件的总体架构设计和主要的工作原理如图1所示。

图1的外层虚线框标识了本文实现插件的功能边界,该边界由内层虚线框标识的Eclipse平台上的插件部分和保存程序员行为的关系数据库部分组成。插件部分分为以下三个模块:

程序员行为监控模块。利用Eclipse丰富的扩展性和监控接口在Eclipse的环境中部署26个监控点,每个监控点监控一类行为,当这类行为发生时,所绑定的处理方法即被触发。

上下文监控模块。以最细的粒度记录当前行为在Eclipse工作区中所处的包、文件、类和方法等上下文信息。

数据处理模块。将上述监控得来的程序员行为结合其发生时间和上下文环境信息等经过统一的处理,保存到关系数据库中,以便后续对原始行为数据的分析和应用工作。

插件中三个模块的关系及主要工作原理如下:当程序员产生原始开发行为(编码、调试等)时,在Eclipse平台上注入的程序员行为监控模块和上下文监控模块会同时根据各自的监控逻辑捕获该行为的各属性数据和行为所处上下文环境,并把两个监控模块所获得的信息经过数据处理模块进行预处理后形成统一格式的行为数据,保存到关系数据库中,为将来充分分析和挖掘这些信息的后续工作奠定基础。

2.2 插件设计的技术标准

为了真正能使程序员行为监控插件在软件开发的效率和质量上发挥作用,其所监控得来的数据应当符合后续对这些数据预期使用的要求且监控行为应最小程度地对程序员正常开发产生干扰。为此,本文在设计实现之前将先行确定本插件应当达到的技术要求:

完整性:插件应当能够完整地记录程序员从启动Eclipse开始到退出Eclipse为止的所有行为。

自动化:插件的启动、记录、暂停、退出等行为应当由插件本身和其所处的Eclipse环境自主决定。

无侵扰性:插件对于程序员行为的监控应当在后台进行,在获得程序员的授权之后,监控行为本身不应在UI上展现,以使其对程序员的干扰降到最低。

时序性:插件收集的程序员行为应当附带有时间戳的信息,对于可合并的连续事件应当包括开始和结束时间。

原子性:插件收集的程序员行为应当是原子行为,即不可再分割的行为,这些行为可能是由程序员触发的,也可能是自动触发的系统行为。

细粒度:插件收集的程序员行为应当以当前行为所处的可以获得的最细的上下文粒度来进行记录,如类、方法、变量、甚至行号。

非匿名性:插件收集的程序员行为在经过授权之后应当是非匿名性的,既可以用来分析单个程序员的编程习惯个性,也可以将所有的程序员行为放在一起分析共性。

3 工具实现

3.1 行为监控模块

1)对于Eclipse IDE监控机制的探索

本文基于Eclipse插件开发环境PDE(Plug-in Development Environment)进行,通过实现Eclipse各组件提供的监听API和声明各组件提供的扩展点,如UI、Debug、JUnit、SVN等,无缝地使本插件和Eclipse开发环境结合。其中,每个组件提供的监控方法又有所不同,大致来说分为以下两类。

(1)监听器(Listener)机制

这种监控机制的原理如图2所示。Eclipse核心平台及很多插件提供了监听接口,这些监听接口遵循观察者模式,被注册在各类组件上,当该组件监听的特定事件发生时,注册在该组件监听接口会被自动通知,触发监听器中的处理方法。当然,由于不同接口由不同插件提供,其实现方式、注册监听方式都各有不同。本文的工作即是寻找并实现这些监听接口,查阅其API,并将它们注册到相应组件上,并实现相应的处理方法。

一个典型的使用监听器机制进行监控的例子是对于透视图(Perspective)行为的监控。它的监听器接口定义在org.eclipse.ui包中,名为IPerspective Listener,该监听器提供了两个方法,分别为perspective Activated()和perspective Changed(),分别在透视图被激活和被更改时被触发。要使该监听器正常工作,还需要将其注册到相应的组件上。通过查阅IPerspective Listener的API Usage,可知应将监听器注册在通过Platform UI获取到的当前活动窗口上。一旦透视图发生变更或被激活,当前活动窗口就会通知所有注册在其上的透视图监听器,触发相应的方法,再根据3.3节方法将其进保存。

(2)扩展点(Extension Point)机制

这种监控机制的原理如图3所示。扩展点是Eclipse中的一种关键机制,每个插件都可以通过扩展其他插件的扩展点向Eclipse平台添加新功能。这种允许不断改进的松耦合功能被广泛地使用,本文的工作即是寻找对于监控有价值的扩展点,在插件中声明扩展该扩展点并实现相应的方法。

一个典型的使用扩展点机制进行监控的例子是对于控制台输出(Console)内容的监控,控制台是输出运行结果或运行错误的UI组件。对于控制台的扩展点,声明在org.ecipse.debug.ui.consoli Line Trackers,下一步在本插件中声明对该扩展点的扩展,实现相应的类和接口方法,如init(),line Appended()和dispose(),它们分别在控制台被初始化,控制台输出运行结果和控制台被销毁时触发,再根据3.3节中的特定机制在这三个方法中将这些控制台行为进行预处理后保存。

(3)两种监控机制的关系

监听器机制和扩展点机制都是对Eclipse上的程序员行为进行监控和采集的有效手段,两者互有异同。相似之处在于,它们都利用了Eclipse平台的可扩展性,对其现有的开放监听接口(类)进行了实现(继承)扩展。

从图2和图3中可以看出两者的区别。对于监听器机制,当程序员发生操作后,监听器机制会通知行为的接收者(被注入监听器的组件),再由该组件通知所有注册在其上的监听器,由监听器来处理程序员行为,其本质是利用了Eclipse原生插件提供的接口,通过查阅API后添加相关的监听器及其处理方法至相应组件上,在不改变原有组件的基础上扩展了相关功能;对于扩展点机制,当程序员发生操作后,Eclipse平台会直接通知被扩展的组件,由该组件直接来处理程序员的行为,其本质是以扩展后的新组件替代了原生的Eclipse组件,新组件不对原生组件的功能做任何的修改,只是附加了监控捕获和处理的机制,并不会影响到程序员的正常开发行为。

2)各类监控接口和扩展点的实现

结合上述两种Eclipse程序员行为监控方法,本插件一共实现了26个监听接口的实现和扩展点的扩展,它们被分为8个行为类别,分别从不同的角度对各类行为进行监控。这些监控点就像探针一样,分布在Eclipse的环境的各处,随Eclipse打开而打开,无侵扰地在后台监控着程序员的一举一动。

Eclipse UI行为。负责监控Eclipse的UI事件,如工作区、窗体、页面、透视图以及视图和编辑器等组件的事件。

Eclipse控制行为。负责监控Eclipse环境的非UI事件,如Job任务事件,首选项Preference参数设置更改等事件。

开发行为。负责监控程序员的开发行为,核心是Java代码编辑器行为监控,包括SWT的监控(键盘、鼠标、滚动条、帮助事件等),文档变更监控,代码自动补全监控、对于菜单栏菜单项和快捷键命令的监控(复制、粘贴、重构、搜索、编译等)、选择行为监控、元素变化监控等其他开发过程中的行为监控。

调试行为。负责监控程序员的调试行为,包括断点管理和调试管理。断点管理负责监控断点的添加、移除、变更断点触发条件等,调试管理负责监控调试行为,如继续、暂停、终止、步进、跳出等调试事件。

测试行为。负责监控程序员的测试行为,依赖JUnit框架,负责对于测试套件和测试用例的启动、结束等事件的监控和流逝时间计算。

版本管理行为。负责监控程序员的版本管理行为,依赖CVS和SVN框架,负责对CVS和SVN的资源库操作和版本管理事件,如对提交、检出等事件的监控。

资源控制行为。负责监控工作空间资源文件增加、变更、删除事件的监控。

日志行为。负责日志事件监控,如Error Log日志监控,控制台输出监控和对Problems视图发生变化时的监控。

结合以上8类事件的监控,本文实现的插件基本可以覆盖几乎所有的程序员常见行为,其完整的结构图和涉及到的监控接口及扩展点如表1所示。

3.2 上下文监控模块

1)程序员行为的上下文

程序员从打开Eclipse进行工作之时起,产生的每一个行为都几乎都会意图施加在一个工作空间的对象上,它可能是一个包,也可能是一个文件、类或方法甚至是某一行代码。为了更加客观地监控程序员的行为,对程序员每个行为的施加对象及其所处的上下文环境和状态都应进行监控。这种上下文信息为程序员的行为后续的分析工作提供更丰富的信息,如果结合时序信息,则可更清楚地分析理清程序员开发过程中的思路。

但并不是所有的行为监控都会提供接口告诉监控模块行为的对象是什么,这就为实时监控每个行为的上下文带来的困难。如图4所示,程序员先“打开”了个A项目,然后点击“编译”按钮编译了A项目。此时,该场景由两个事件组成,一个结构选择事件和一个命令事件。而命令事件监听接口IExecution Listener所监听到的编译事件(Build)并不能告知其编译的到底是哪个项目,对于这样的情况,本文插件会根据前序捕获的“打开”行为来做“根据时序的最近猜测”,即判断编译事件施加的对象即为前序“打开”的A项目。

这种解决思路有一个前提:程序员每进行一个操作之前,都会先切换到该上下文环境中进行。换而言之,只要在每次程序员切换上下文时将其捕获,之后所有的行为都可以认为是在这个上下文之中进行,直到下一次捕获到程序员切换上下文的行为。在大多数情况下,这种前提应当是合理的。基于这种最优猜测的思路,本文提出了三种重要的上下文切换行为:

(1)结构化选择行为

JFace中的结构化选择(IStructured Selection)监听接口继承于org.eclipse.jface.viewers的ISelection接口,指包含元素的选择事件。它们广泛地存在于Eclipse环境中,如包资源管理器(Package Explorer),大纲视图(Outline),类型层次(Type Hierarchy)等视图中,当这些视图中的元素发生切换时,结构化选择事件即被触发,此时即可认为程序员接下来要进行的操作应该是要施加在这个文件(或类、方法等,下同)上,在此基础上根据选择的元素进行判断,如果判断为编程元素(如包、文件、类、方法等),就可以切换上下文来指向当前编程元素。

(2)文字化选择行为

JFace中的文字化选择(IText Selection)监听接口同样继承于org.eclipse.jface.viewers的ISelection接口,指包含文字的选择事件。它们广泛地存在于编辑器浏览代码的过程中,当把文字化选择事件接口注册到相应的代码编辑器的Source Viewer上,且程序员将光标选择了某段代码或将光标定位在该代码编辑器内(长度为0的文字选择事件)时,此时文字化选择事件被触发,可以合理地推断当前光标定位的部分正是程序员正在关注的代码片段。

(3)元素变更行为

元素变更行为(IElement Changed Listener)监听接口定义于JDT的core包,是专门针对Java元素的监听事件。当把元素变更监听器注册到Java Core上后,一旦元素对应的Java模型发生了变化,监听器中的事件即被触发。这种变化常见于代码的编辑、重构等事件中。每当Java模型变更时,插件会自动捕获该Java元素的变化增量(IJava Element Delta)。监控模块对该增量的类型进行判断,如果是增加(Add)或变化(Change),则将该增量所属的句柄更新为新的上下文,如果是删除(Remove),则将该增量所属的上一级非空句柄更新为新的上下文。

2)特殊情况的处理

以上提到的思路已经可以监控大部分情况下程序员的行为上下文,但在特殊情况下,程序员的行为并不意图施加在某一个编程元素上,比如修改Eclipse IDE的首选项(Preference)参数设置事件,控制台输出事件,打开“关于Eclipse”事件,以及从Eclipse Market安装新的Eclipse插件事件等等。对于这些行为,本插件不会记录该行为其上下文环境(因为对后续分析没有意义),而是枚举这些事件,只记录在3.1节中行为的属性值,如首选项参数设置前后的值,并将其保存在数据库中。

3.3 数据处理模块

通过行为监控和上下文监控的模块,插件已经基本可以捕获各种类型的程序员行为,但是由于每个监控都是由不同的插件提供,其接口或扩展的实现方法、提供的数据格式也不尽相同,要想将这些行为数据真正用于后续的分析和利用,还需要将这些数据经过统一的预处理后保存到数据库中去。

数据处理是承上启下的模块,它既与监控收集得来的数据契合,也为后续数据的利用提供统一的接口和平台。和监控模块一样,数据处理模块也是静默地在后台调用异步线程运行,而不对程序员的正常开发造成侵扰。它将每个程序员行为结合发生的时间信息和所处的上下文空间信息一并转化为统一的数据格式,存储到数据库中。数据库的存储格式如表2所示。

4 案例研究

4.1 场景定义

为了验证本插件的有效性和易用性,在完成上述工作后,本文在已实现的插件基础上扩展了一个典型的实用案例场景研究:任务轨迹记录。场景的典型用例是:程序员可把即将进行的一项工作预定义为一项任务,并点击工具栏上的“开始”按钮启动录制任务的开发行为轨迹。在开发过程中的所有行为都将由插件保存,视图“上下文推荐”会动态地更新所有涉及和该任务有关的文件、类、方法等,这些元素根据其被编辑的时长长短显示在上下文视图中。任务结束时,再点击工具栏上的“结束”按钮结束录制行为轨迹。这些轨迹可以允许程序员通过视图“行为轨迹”回看,并上传到SVN上。由于本插件对于程序员行为监控的非匿名性,当团队中任何一名成员希望查看这个功能是怎样被实现时,都可以从SVN上调出这个任务的行为轨迹记录,查看这个任务详细的每个步骤。

4.2 场景实现

本场景在已实现的监控插件基础上,又扩展了UI的相应功能,使监控插件不再仅限于后台静默运行,而加入了和用户的前台交互,通过分析监控插件得来的程序员行为信息即时地为其提供相关的建议。具体体现在在Eclipse UI上增加了两个视图:“上下文推荐”和“行为轨迹”,并在工具栏上增加了两个命令按钮:“开始”和“结束”。

无论任务是否开始,程序员行为监控插件始终都会根据3.3节中的逻辑将每个开发行为保存。而当任务一旦开始,插件就会自动在数据库“任务”表中建立一条记录,记载该任务开始的时间,并在数据库“任务与上下文关联”表里开始记录涉及该任务的上下文及其之间的关联,根据每个上下文元素编辑活动的时间计算其与该任务的关联度,动态地根据计算结果在“上下文推荐”视图中做出相关的推荐,如图5所示。当任务结束时,该记录便会记载任务结束的时间。如果程序员想要再次将这些记录轨迹调出,可根据“任务”表中记载的任务的起始时间和终止时间来抓取3.3节中数据库记录下来的相应区间的行为数据,并在“行为轨迹”视图中用表格形式展示,如图6所示。

4.3 场景分析和评价

图5展示了一个任务“添加调试事件监控特性”的上下文推荐截图,通过给任务的开始和结束打上时间戳,可以客观地将程序员整个任务的行为序列按时间顺序记录下来,使程序员可以更加聚焦在与这个任务相关的包、类、文件上。同Mylyn等成熟插件相比,本插件加入了更多的时间信息,利用这些事件信息,可以根据每个元素编辑时长为程序员提供时间相关度更高的建议。

图6展示了一个任务“添加JUnit Test监控特性”的部分行为轨迹截图,每一行记录都是一条原始行为的轨迹。该任务共记录了173个程序员主动触发事件和824个非主动触发事件。该轨迹反映了程序员完成该任务的思路:开始任务后,程序员首先按下了F1键进行了Help查阅API Usage,然后建立了继承自TestRun Listener的监控类Junit Test Listener,随后进行了编码,重载了父类的五个方法,对五个方法的公共部分进行了重构提取,随即在Junit Core上注册了该监听器,并将其注册到插件类Eclipse MonitorPlugin的初始化代码中,最后进行了断点的设置、调试运行后结束任务。

通过回看程序员的任务轨迹,可以清晰地掌握他们开发的思路,学习他们是如何从架构设计到具体实现、了解程序员何时进行了版本管理、判断断点设置的条件与位置、学习重构的策略甚至是使用快捷键的技巧。另一方面,可以对行为进行统计意义上的分析,如分析程序员在某个任务中浏览、编码、调试、查阅帮助的时间比例,或利用数据挖掘的技术来挖掘程序员的行为模式等。

案例场景对团队开发也有很强的现实意义。对于团队合作来说,领导者可以通过回看任务轨迹来评判任务工作量,进而评判程序员在开发的过程中是否遵循了预先定义的软件过程。未来还可以对本场景进行扩展,建立在线的云任务库。每个程序员在完成某个特定任务之后,都可以选择将当前任务的开发过程轨迹记录上传到库中,待后续的程序员要想再进行类似的开发时,就可以直接在任务库中搜索之前已完成的任务。与传统的学习开源软件直接提供的源代码相比,这样的云任务库可以利用记录下来的时序信息更多反映程序员当时的思路,为后人提供更多有益的软件实践,避免之前走过的弯路。

5 结语

本文通过对Eclipse IDE中的监控机制的研究,在前人工作的基础上,调研了相关的Eclipse开放的监听接口和扩展点,并加以实现和扩展,将不同的插件所提供的监听接口和扩展点监控得到的程序员各类事件进行统一数据接口的整合,通过异步线程保存到数据库。在此基础上,本文设计了一个任务轨迹记录的案例分析,通过场景实例和分析评价有效地证明了本插件的有效性和易用性。

本文所提出和实现的插件还仍有一定的局限性。到目前为止,插件的主体部分还主要局限在后台静默捕获程序员的行为,和前台的交互相对还不够充分和成熟。在今后的工作中,将把插件更智能地与程序员交互运行,如根据监测程序员正在使用的API,智能搜索和该API相关的在线资源后推送,或是根据优秀的行为模式库来监测当前程序员的开发是否符合最优代码实践或是否有任何bug的隐患;可视化也是未来发展的方向,以类似于UML顺序图的形式展现出来,更加方便理解。

摘要:程序员在软件开发过程所产生的浏览、编码、调试和测试等行为可以转化为带有时序信息的行为数据,为提高软件质量和开发效率提供有价值的信息。针对如何全面、客观地记录程序员开发行为数据的问题,基于Eclipse的可扩展性提出并实现了一种程序员开发行为监控插件。该插件可以对软件生产中程序员的行为及其上下文进行实时监控,将原始行为预处理后转化为统一格式的行为数据并保存到数据库中。在此基础上,设计了一个典型的程序员开发任务轨迹记录的应用案例。该应用允许程序员定义任务、记录任务行为轨迹、回看轨迹,并允许整个开发团队共享任务行为信息。案例研究结果验证了该插件的有效性和易用性,为进一步实现行为信息的深入挖掘和共享打下了基础。

关键词:Eclipse插件,行为监控,上下文监控

参考文献

[1]StaM.Origo Mylyn plug-in and advanced issue management[D].Swiss Federal Institute of Technology Zurich,2008-2009.

[2]Eclipse Mylyn Project[EB/OL].2013-12-1.http://www.eclipse.org/mylyn/.

[3]Johnson P M,Hongbing K,Agustim J M,et al.Practical automated process and product metric collection and analysis in a classroom setting:Lessons learned from Hackystat-UH[C]//Empirical Software Engineering,2004.ISESE’04.Proceedings.2004 International Symposium on,IEEE,2004:136-144.

[4]McK eogh J,Exton C.Eclipse plug-in to monitor the programmer behaviour[C]//Proceedings of the 2004 OOPSLA workshop on eclipse technology eX change,ACM,2004:93-97.

[5]Shi L.Eclipse IDE Software Process Data Collection Technique[R].Beijing:Software Engineering Institute of Peking University,2009.

[6]罗悦,刘辉.基于监控与Quick Fix的代码错误提示和修复方法[OL].[2014-02-10].中国科技论文在线.http://www.paper.edu.cn/releasepaper/content/201402-120.

[7]Murphy C,Kaiser G,Loveland K,et al.Retina:helping students and instructors based on observed programming activities[C]//ACM SIGCSE Bulletin,ACM,2009:178-182.

[8]Majid I,Rabillard M P.NaC IN:an Eclipse plug-in for program navigation-based concern inference[C]//Proceedings of the 2005 OOPSLA workshop on Eclipse technology eX change,ACM,2005:70-74.

一个APP程序员的自我修养 篇8

《技术元素》

作者:(美)凯文·凯利

出版社:电子工业出版社

为什么instagram会取得巨大成功?微信在短短时间就吸引了数亿用户,有什么过人之处?下一个一夜成名的App会是怎样的?每个人都想知道答案。在成为一名App开发者之前,建议读一读著名极客杂志《连线》前主编的新作《技术元素》,他将科技趋势归结为:要顺应人的需要。成功预测过Web 2.0时代到来的他是这样预言下一个世代的:届时,手机、电脑将会消失,任何时间任何地点,都可以随时上网,我们将生活在云时代。

《精通Android 3》

作者:克曼特内呢,麦克莱恩,哈希米

出版社:人民邮电出版社

Android是Google的开源移动开发平台。这是本关于Android主题的书的第3版,介绍的就是如何使用Java语言为Android平台上的设备开发应用程序,概念、代码和教程组成了这本书的基本要素。一本书即从入门到精通,《精通Android 3》囊括了Android开发人员所需的一切知识,是一部全面更新且同时适合初学者和专业人员的编程指南。

《The App & Mobile Case Study Book》

作者: Rob Ford,Julius Wiedemann

出版社:Taschen GmbH

翻译过来就是移动应用案例研究。这本书在国内还没有译本,乍看标题,可能会误以为又是一本解析编程的书,错了!它是特别针对设计师、产品经理和广告专业人员等而编写的,本书编排图文并茂,其中包含了80个热门应用的品牌故事和设计概念,包括愤怒的小鸟,杰米的20分钟用餐时,史蒂芬?弗莱的Flipboard,myFry应用程序,weetDeck、Instagram、Adobe的公司理念,BBC新闻和SAS生存指南等,是APP UI设计者和产品运营者不可错过的一本好书,也是任何对移动应用体验充满兴趣和好奇心的人该去翻阅的一本书。

《IOS 5 基础教程》

作者: Dave Mark,Jack Nutting等

出版社:人民邮电出版社

IOS是如今炙手可热的移动平台,苹果公司为其推出了强大的软件开发工具包IOS SDK。本书由资深的Mac和iPhone移动开发技术专家所编写,是一部关于IOS SDK开发的基础教程,内容翔实、语言生动。本书具有较强的通用性,编程领域的各层次读者都能通过本书快速学习IOS开发,提高相关技能。

如何打造一枚神App

受访者

广州火鹰信息科技有限公司总经理莫国勇

确定方向

以苹果AppStore为例,共有生活、社交、教育、商业等21种类别。选择你所擅长的领域大展拳脚吧。

明确竞争对手

选好方向后,要了解这款软件目前行情如何,是否有市场前景,目前同类软件有多少款,并深入分析它们的功能长短处,取长补短。

取一个朗朗上口的名字

独特、易记的名字会提高传播度,前辈如比如“微信”就是一个例子,既易读,又能显示软件的功能内涵。

创作一个帅图标

软件写好后,还要给它创作一个漂亮的桌面图标,App每天都会跟用户在手机桌面打照面,当然要漂亮才有粘合力。

构建一个漂亮、简洁的界面

功能再好的App,若只有一张土的掉渣的面孔,用户对其印象大打折扣。UI界面设计要美观大方,这样才能让用户用得倍儿爽。

发布后,宣传推广

上一篇:镇党风廉政建设和反腐败汇报材料下一篇:英语专业大学生自荐书