程序员职业规划指南最新10篇
【写作参考】一篇好的范文往往能让您的写作事半功倍,下面是由阿拉题库网友为您分享的“程序员职业规划指南最新10篇”优质范例,供您写作参考之用,轻松写作,远离加班熬夜,希望以下内容对您有所帮助,喜欢就下载支持吧!
程序员职业规划指南【第一篇】
热爱自己的本职工作,能够正确认真的对待每一项工作,工作投入,热心为大家服务,认真遵守劳动纪律,按时上下班,有效利用工作时间,坚守岗位,保证工作能基本按时完成。在这一年里,我本着把工作做的更好这样一个目标,开拓创新意识,用心圆满的完成了以下本职工作:
完成基于的用c#语言开发的元器件生产清单软件;。
初步完成订货软件的一个版本,此刻仍在进行另一版本的订货软件编程,已经。
完成新版本的框架搭建,基本实现xxxx的订货功能;。
对xxxx上位机软件进行改善,添加了中英文切换功能,并在界面设计上有所改。
进,此刻仍在根据品管部的测试进行改善中。
这一年下来,我在技术上,主要是c++编程上,能够说是从无到有,且能利用有限的资源完成我的工作任务,也深化了我对面向对象的理解。
三、存在不足:
程序员职业规划指南【第二篇】
java(java教程java培训java培训机构java程序员)是现阶段最流行的编程语言,而且它的涉及范围非常广,自然受到广大编程人员的喜爱。java程序员的发展前景是光明的,选择在这方面发展的人还是很有眼光的。下文介绍的就是java程序员职业规划,希望能给想在这方面发展或者还没有职业规划的朋友一些启发。
(一)java程序员职业规划步骤java程序员职业规划第一步:1、基础必备:至少看过2本语言基础书和一本领域技术书。
2、部分参与项目1-2个。
所需时间:3-12个月java程序员职业规划第二步:1、行业知识领悟、扩展相关应用知识。
2、完整参与项目1-2个。
3、可以指导新人完成工作。
所需时间:6-12个月java程序员职业规划第三步:1、深刻理解面对对象知识。熟悉常用架构,对公司采用的架构能提出改善意见。
2、参与需求讨论并能提出简化方案。
3、能为决策提出一些建议。
2、运用一种架构对项目、产品进行设计。
3、评估项目风险、以及预留方案。
4、实现核心组件、技术难关。
5、行业技术指导。
(二)java程序员职业规划要点(1)只会编程是不够的仔细思考在哪个商业领域投入时间。软件工程师(软件工程师软件工程培训软件工程软件工程师待遇)不能只会开发软件,应该要成为这个业务领域的专家。你的行业经历应该成为你的重要才能。有机会多与公司行业内人士接触,选择一本与你公司行业有关的杂志,找一个行业网站。只有了解了一个行业后,你才能创造性地有所建树。学习行业是如何运转的,了解一些财务基本知识,推荐一本商业教程:theten-daymba.(2)在思维上投资要学会抓住机遇。
多学习新的技术,编程语言,可以改变你的思维方式。
(3)做一名通才你的技术水平应该超越技术平台。
经常学习一些新技术。
(4)成为一名专家不仅应该会处理高端抽象,同时也应该了解实现高端抽象的低端细节。
(5)切忌孤注一掷不要把自己的职业发展完全依赖于一家技术公司。
(6)寻找良师可以依赖别人,但要确保这个人是靠得住的。良师的首要任务是榜样作用,还可以将你的学习过程形成体系,也是值得信任的朋友,可以帮助你作出职业导向,帮助你磨练技术。
(7)安分守己要有雄心,但不必路人皆知。专注于现在的工作,不仅让你更加快乐,也会让你身边的人更加快乐。你的同事,上司和客户都能感觉到。你的工作成绩会反映出你的态度。放弃你想要成功的期望可以提高你的能力,让你走向成功。不要关注结果,要关注做事的过程。
(8)每天都有进步如果在改善自己的道路上,每一天都比昨天多作出一点改变,就会发现-拥有卓越的职业生涯,越来越容易达成,而不再像汪洋大海一样没有边际。
上文介绍了java程序员职业规划步骤和java程序员职业规划要点都是很不错的,准备在java程序员方面发展的朋友可要认真阅读本文,它可以让你顺利成为一个合格的java程序员,因为这些都是java程序员的出的经验,让你在学习java的道路上少走弯路。
程序员职业规划指南【第三篇】
既然必须做出选择,如何选择就是关键。总不能写几个纸条,靠抓阄来决定自己以后的命运。从众多成功者的经历来看,成功的一个关键因素就是做自己感兴趣的和最擅长的事情。如果没有兴趣,就没有百分之百的激情与动力,如果不擅长,就不可能把一件事情做到最好。
刘翔是短跑冠军,王励勤是乒乓球冠军,乔丹是飞人,巴菲特是股神……他们之所以成为英雄,正在于他们都是在做自己最擅长的事情,都是在拿自己的长处和别人的短处较量。他们本来是普通的常人,但因为在某一点上超过了所有的人,因而获得了成功。
职业规划的目的,不是要你变成另外一个人,而是要你变成最好的自己。搞清楚自己的优势在什么地方。做自己喜欢和最擅长的工作。不要羡慕别人的长处,不要绞尽脑汁地琢磨怎样才能像别人那样擅长某方面,不要幻想成为别人--做最好的自己!
成为行业专家。
通常说到程序员的发展前景,一般是指如项目经理、软件架构师之类的,这种规划主要是在it行业内就业发展的规划,更像一个职位的规划。所以,无论是就职资源还是职业前景都包含一定的局限性。随着it行业的竞争加剧和其他传统行业的信息化进程,如今的程序员职业规划发展目标应该超越本职业概念的"行业专家",这里所指的行业,并不是指编程的语言,而是比如电信、互联网、银行、电子商务之类的行业,成为一个领域在行业中应用的专家。而在现实招聘的需求中也大量地体现了这方面的要求,具有某一行业多年从业经验的开发人员一直是众多企业苦苦追寻的香饽饽。
坚持到底。
除了选择,最终要想获得成功,唯一的办法就是"专注".技术是层出不穷的,而人的精力却是有限的,怎样把有限的精力用到刀口上去,那就得认准了某个领域和某个行业坚持不懈地做下去,不但要成为这个领域的技术专家,还要成为这些行业的业务专家,你能熟知这个领域的点点滴滴,并能在这个领域的行业应用上发展创新,这样的人才,我想才是目前最需要的人才。我的一个同学,毕业的时候被公认为是编程水平最高的,但3年来他换了6次工作,他总是对这个感兴趣,对那个感兴趣,做过很多,每换一个工作几乎都是做的全新的东西,总在抱怨工作不如意,其实他换来换去,却始终是在起点上转。而另一个非常坚持的朋友,10年只跳了三次槽,第一个是程序员,第二个是部门经理,第三个是技术总监,不为什么,就因为他是专家,10年来他只做一个行业。用10年来做一件事情,不成功都难。
世界上没有完美的公司,重要的是,你要有自己的目标。知道你自己要的是什么。有些人习惯不满意就跳槽,跳槽可能会增加你的收入,但这种个人收入的增长,与一家企业由小到大而给员工带来的成长是无法相提并论的。职业规划就是要搞清楚自己的优势在什么地方,自己最适合做什么。当有了自己坚定的目标和定位,打工就不再是为别人卖命,而是为了自己的目标在奋斗!用这样的标准来衡量自己的成长和进步,那样的人生也会变得轻松而快乐。
程序员职业规划指南【第四篇】
第五,做合作伙伴。
规划是个长期计划,使为了实现一个远期目标而制定的计划,然后又由数个或者数十个短期计划分解组成,不断实现。
关于职业生涯,很多人不能学以致用,将来的工作和自己的专业关联性不大,在大学里学的东西只能用上20%,(当然除了专业性特别强的),主要的80%的技能都是进入社会中不断学习逐渐实现的。
成功的职业规划,主要的考虑因素在以下几个方面:
2、你的性格适合做什么?不同的工作,适合不同性格的人去做。认清楚自己的性格,是非常重要的一步。
4、你性格本身存在哪些弱点需要克服?不要让弱点成为你成长中的绊脚石。
程序员职业规划指南【第五篇】
1、基础必备:至少看过2本语言基础书和一本领域技术书。
2、部分参与项目1-2个。
所需时间:3-12个月。
1、行业知识领悟、扩展相关应用知识。
2、完整参与项目1-2个。
3、可以指导新人完成工作。
所需时间:6-12个月。
1、深刻理解面对对象知识。熟悉常用架构,对公司采用的架构能提出改善意见。
2、参与需求讨论并能提出简化方案。
3、能为决策提出一些建议。
1、能够对整体需求方案做出精确描述。
2、运用一种架构对项目、产品进行设计。
3、评估项目风险、以及预留方案。
4、实现核心组件、技术难关。
5、行业技术指导。
(1)只会编程是不够的。
仔细思考在哪个商业领域投入时间。软件工程师(软件工程培训)不能只会开发软件,应该要成为这个业务领域的专家。你的行业经历应该成为你的重要才能。有机会多与公司行业内人士接触,选择一本与你公司行业有关的杂志,找一个行业网站。只有了解了一个行业后,你才能创造性地有所建树。学习行业是如何运转的,了解一些财务基本知识。
(2)在思维上投资。
要学会抓住机遇。多学习新的技术,编程语言,可以改变你的思维方式。
(3)做一名通才。
你的技术水平应该超越技术平台。经常学习一些新技术。
(4)成为一名专家。
不仅应该会处理高端抽象,同时也应该了解实现高端抽象的低端细节。
(5)切忌孤注一掷。
不要把自己的职业发展完全依赖于一家技术公司。
(6)寻找良师。
可以依赖别人,但要确保这个人是靠得住的。良师的首要任务是榜样作用,还可以将你的学习过程形成体系,也是值得信任的朋友,可以帮助你作出职业导向,帮助你磨练技术。
(7)安分守己。
要有雄心,但不必路人皆知。专注于现在的工作,不仅让你更加快乐,也会让你身边的人更加快乐。你的同事,上司和客户都能感觉到。你的工作成绩会反映出你的态度。放弃你想要成功的期望可以提高你的能力,让你走向成功。不要关注结果,要关注做事的过程。
(8)每天都有进步。
如果在改善自己的道路上,每一天都比昨天多作出一点改变,就会发现—拥有卓越的职业生涯,越来越容易达成,而不再像汪洋大海一样没有边际。
程序员职业规划指南【第六篇】
作为一个新人来说,不懂就要问!这里我要说两点:
1、如果是单纯技术上的问题,如果可以google到的,我认为就可以自己消化掉!问的问题一定要先google,然后带着自己的想法,去问一些有经验的人,收获会更大!
举个例子:曾经的我,埋头写代码,那时候很怕上司知道自己不会这,不会那!所以拼命的掩盖自己不会的东西,自己查资料,下班了问同学,上论坛发问。但是由于逻辑和现实需求不一样,所以结果并不理想!如果那个时候,我把自己不理解的地方和上司谈,也许会很快的就能完成这个任务,而不是返工。
2、如何提问?问谁?
很多新人不知道如何提问,也不知道问谁。我的建议是,先把你要问的问题梳理好,最好可以有电子版或者打印版的整理,方便其他同事查看和解答。然后就是提出的问题,要让回答的人感兴趣,这样他不但会给你解答问题,还有可能将问题延伸,让你学到更多的知识。对于如何让回答的人感兴趣,就是仁者见仁,智者见智了!看个人发挥了!
对于问谁,我觉得你不了解其他同事的时候,要先问你的上司,当你了解了你的同事每个人擅长的领域之后,就应该把自己的问题归类,然后问最擅长的人。这样会事半功倍!
二、任务分解。
程序员职业规划指南【第七篇】
当今社会,it行业发展速度突飞猛进,技术更新换代周期小,专业方向和领域更是林林总总、百家争鸣,若没有一个明确的目标而漫无目的'的乱走一遭,岂不殆误时机,浪费年华?俗话说,欲行千里,先立其志。因此,要为自己拟定一份职业生涯规划,将自己的未来好好的设计一下。有了方向的指引,自然才会有乘风破浪之帆。
“知己知彼,百战不殆”,进行职业规划首先要“知己”,即全面、深入、客观的分析和了解自己。
1)我的优点
热爱学习,对新鲜事物及不懂的知识有着浓厚兴趣,喜欢凡事问个为什么,有条件的话会不断钻研直至懂得原理为止;热爱工作,只要进入工作状态常常到达忘我境界,做事情考虑周全,以大局和未来为重,并且在懂得应用知识后会去了解知识背后的核心,从经验上升到理论。
2)我的缺点
过分自信,执着的有些过头;性格急躁,自控能力一般;自身专业知识水平、能力有待于进一步提高。
3)个人职业倾向
目前从事的是java服务端的软件开发工作,希望可以成为一名技术管理双能的工作者。
程序员一般有两个大方向:技术与管理。
走技术路线的人,一定是对技术痴迷的人。但要走得长远,我们需要把技术做穿、做透。如何做穿、做透?计算机底层(c、汇编、逆向工程、驱动、内核)、计算机算法(网格计算、音视屏压缩、语音识别…)、架构(软件工程、跨平台、多语言等)都要有涉及。只有我们掌握了这些,才能做到”看问题看到本质”、”思想有穿透力”。这些才是最宝贵的,需要沉淀下来,仅仅靠做项目、写代码是无法达到的。
对于走管理路线的人,是具有“完成任务为第一要务”、“有计划、善于管理时间”、“善于与人打交道”性格特点的人,重要的是“综合素质”,而不是“专攻”。必须从思想上发生根本性转变:技术是解决问题,而管理则需要满足“多快好省”。
而本人对程序员职业的认知是:技术与管理并不是物理上的独立,而是相辅相成的。只做技术无法深刻理解全局思维,无法更好地为业务服务;而只做管理,则与程序员渐行渐远,最终成为一名行外的管理人员,无法在团队内部树立威望。因此,个人希望可以成为一名技术管理双能的工作者。
程序员通常被认为是相当不错的工作,原因非常多。收入高,福利好(有可能非常好),工作富有挑战性(通常是正面积极的挑战),根据目前的就业形势和程序员的需求量,这种职业竞争压力很小。
但是,在国内的it环境下,要成为一名合格的程序员并不是容易的事。在国外,五六十岁还坐在电脑前敲代码的程序员比比皆是;则在国内,程序员则靠吃“青春饭”,三十岁还需要靠敲代码的程序员甚至被称为loser。这主要因为it技术的高速发展,程序员必须不断地更新专业知识,以适应社会的需求。而上了年纪的程序员由于思维和身体原因,无法与刚步入社会正值旺年的年轻一代的学习能力相提并论,只能苦苦挣扎在茫茫学海中,或被迫进入自己并不擅长的管理层面里。
当然,随着对程序员的认知越来越广泛,这种情况经已有所缓和,但是从教育角度上看来,国内形势还是十分严峻。现在各个大学、it培训机构为了赚钱拼命扩招,所以不仅it专业的学生人比较多,而且其他专业的学生人数也比较多,“僧多粥少”就通常意味着就业压力大。但是反过来看,现在很多it企业都存在“人才荒”的问题,也就是很多企业都招不到合适的人才,一些从事it人力资源方面工作的人都普遍反映现在企业里很难招到合适的人才。初看起来很奇怪“每年有很多it专业大学生毕业,很多都找不到工作”,而“企业每年都缺人,招不到合适的人才”,造成这种奇怪的“人才断层”现象的根本原因就是现在毕业生的素质明显下降了,大学招的人多也意味着教学资源平均下来降低了,培训机构为了赚更多的钱以最快的速度培训出一群“知其然不知其所以然”的学生,所以教育质量也降低了,这些就造成了“学生需要工作,企业需要人”的这种状况。
程序员职业规划指南【第八篇】
现今,对于职场人来说,跳槽已是一件很平常的事了,但值得注意的是,在跳槽的过程中,我们得尽量避免负面的影响,不要误认为跳槽是意味着对过去的结束和否定,而要积极处理好新旧职场里的各种关系,提炼出积极有用的东西,带着你的“金子”去跳槽,这对今后的发展有着很多的益处。
一、留有余地,不要埋下人际的“地雷”
当我们离开原先的单位而跳槽时,原因会有很多,比如对上司看不惯、人际关系不如意、事业的前景不好或是对薪水不满意等等,但不论出于什么原因,不管你感到多委曲,你也没必要为泄一时之愤,在走的时候与原先单位里的上司或是同事弄僵,于你来说已是于事无补,并且对你以后有害而无益。
因为与原单位的争执就像是埋下了一颗“地雷”,在以后随时会炸响,让你防不胜防。人生之路还长,很难断定我们在以后的工作中不与原单位及人员发生这样那样的关系,一旦这颗“地雷”引爆就或多或少对你产生影响,甚至毁了你的前程。所以不管你出于何种原因跳槽,还是留有余地为好。
二、珍惜你的人力资源。
很多人都以为跳槽后,就可以与原单位道声“拜拜”,一走了之,“挥挥手不带走一片云彩”,这样做起来看似洒脱,其实你会无意之中丢失了许多让你今后受益的东西。因为你在一个单位工作过一段时间,可能你所得不多,但与不少的同事毕竟有种亲近感,甚至是好朋友,他们说不定在以后会对你有所帮助,你不妨把他们看作你的人力资源库。所以在你跳槽高就时,不妨珍惜这一机缘,而不要丢弃这份宝贵的财富。
要认识到在现代竞争社会里,拥有丰富的人力资源有助于你的事业运转自如,所以每当我们跳槽时,要有保护自己人力资源的意识,从过去的工作里掏出属于你的“金子”来,这样的话,你过去的时光就没有白白浪费,你即使是空着两手走出原单位的大门,但你已经带走了一份很有价值的财富。
三、跳到一个高起点。
跳槽之后,你在新的单位里翻开了自己人生中新的一页,与先到的同事相比,无疑你是处于零的起点上,这是不是就意味着一切从头做起呢?如果这样,你以往的一切付出都等于白费,损失太大了。其实你可以把这个起点弄得比其他人高,而以往的经验可以为你提供这种可能,因为不论你过去从事的工作与现在有什么不同,但就如何待人处世、把握自己等许多方面都可以总结出有价值的东西。
请你记住在跳槽时不要抛弃过去的一切,好好地总结经验,把过去的经历当作一面镜子反省一下自己,然后校正自己的不妥的行为,经营自己的长处,这是你从过去工作中积淀下来的“金子”,有助于你跳到一个新单位后有个高的起点,那么,你的跳槽转职更易取得成功。
热门的职业规划资料分享,欢迎大家关注:
职场定位的重要作用。
职业生涯的四个迷茫期。
大学生职业规划的特点。
女性平衡职业生涯的8点注意事项。
程序员职业规划指南【第九篇】
第一招:先见之明。有明智的学生,一进入大学的时候就知道自己的未来到底是何做什么工作,所以他们很有条理性的安排自己的大学生活,每一天都不会虚度年华,所以他们总是早出晚归,勤勤恳恳的学习,力求在学习上有所建树,获得专业前三名,能够拿到国家奖学金,业余还可以成为学生会的主席团成员,这样的话,不仅可以得到老师和同学的尊敬,更重要的是能够为以后的工作镀金,比起其他同学手里的空空,这绝对是一种优势。
第二招:进外联部。这是很多学校的一个特别有名气的协会组织,有名气不仅仅是说这个组织可以锻炼人,更重要的是很多外联部的学生通过在外联部的工作找到了工作,到底是什么秘密,很简单,首先你要知道外联部是干什么用的,外联部是联系社会与学校的重要部门,最主要的任务就是为学生会和学生活动筹集资金,也就是拉赞助,这是一向相当艰苦的工作,没有一定的交往能力,人际关系与社会背景是很难做好,由此可见最有效。
第三招:沟通老师。和老师沟通交流不是一般的那种平常的师生的关系,而是你要真正的和老师打成哥们关系的师生,似乎你们就是好朋友,不是老师与学生的关系,一般的同学从来不把这一点当成好主意,而是觉得不管用,其实他们错了,老师是很好的途径,因为老师在当地的人际关系是相当的好,通过做可研报告的方式,认识很多公司企业的负责人,所以结交一到两个对你有用的老师未尝不是好绝招,当然多一点更好但是要求质量的。
第四招:父母亲戚。诚如上面那位通过父母的关系找工作一样,利用父母找工作真的是一件好事情,不仅可以省去很多的求职窘迫,还可以轻松的过日子,我想之所以很多人鄙视这些利用自己的父母找工作的学生,是因为他们没有这种关系可以利用,也就是没有葡萄可以吃,所以给出冠冕堂皇的理由说:没有独立自力更生的本事。我看倒是没有什么,只要找到工作无论是什么途径都不是可耻的`,最可耻的那些通过违法的途径找工作的人。
第五招:网上求职。自从网络开始在学生中普遍使用以来,许多有心的同学充分利用网络资源,搜集各种找工作的信息,首先对自己进行职业规划,觉得自己的适合哪方面的工作,于是对症下药,开始在网络上搜索,这种方式非常的实用,当很多的同学出去到人才交流市场把自己当青菜出卖时,我们中间的很多同学已经利用网络找到自己满意的工作,在这里向大家推荐我们学校广为流传的一个《本站》希望对你找工作有用处。
第六招:毛遂自荐。当大四的学生马上就要毕业的时候,学校会组织外面的企业公司来校内进行招聘活动,不过在我看来凡是来校招聘的一般没有好职位,据我在学校的观察和理解,就算有好的职位,那个职位也只是摆设,根本不会轮到你,所以这个时候,你要大胆的出去,不是去人才交流市场,而是找到适合你的公司,或者你喜欢的企业,大胆的上去去面试,即使这位老总或者负责人第一次拒绝了你,没有关系,你没有失去任何东西,反而找到了一些面试的经验,那么你接着第二次去面试,效果总会比第一次好的,你的坚持总是会认可的。
第七招:朋友介绍。在大学中多交几个好朋友是非常重要的,他们的不仅是你们的哥们,还是你们的合作者,甚至是领路人,有些朋友的能力可能非常强,很快的得到公司的认可,而就是你的朋友的引荐就会让你意外的得到惊喜,知心朋友会帮你的一生,那些只知道吃饭、喝酒、玩游戏、睡懒觉的狐朋狗友只会害了你一辈子的幸福,看看你身边的师哥师姐们是如何告诉你周围的朋友的重要的,只有你找学长谈话时,才知道朋友的幸福。
第八招:自主创业。现在国家是鼓励大学生进行自主创业的,不仅是因为大学生又精明的头脑,更重要的是大学生能够更快的接受新事物,能够较快的与时俱进,而国家给予的政策也是非常的优惠,比如说:对从事个体经营符合条件的,免收行政事业性收费,提供政策咨询、项目开发、创业培训、创业孵化、小额贷款、开业指导、跟踪辅导的“一条龙”服务,并保障其合法权益,符合规定的,可享受社会保险补贴政策,这是不错的选择。
第九招:实习单位。大学是大学生进入社会的一个最后的台阶,这是一个由学校过渡到社会的舞台,谁能够在这里做好,谁就能够笑傲职场,在大三的时候,学校往往会给同学们找一些实习单位,这些实习都是不错的,错的是一些同学没有珍惜,总是觉得自己的还能找到更好地,最后发现自己的眼高手低,好高骛远,一无所有,泪眼汪汪,所以还是劝解这部分学生,要懂得利用资源去实现自己的目的是最聪明的,而不是把时间花在怨天尤人,很多事实的结果都是自身造成的,我们要学会的是应对的方法,利用好实习单位说不准就成了你的工作。
第十招:就业指导。很多的同学通过很多自己的途径找到了工作,但是还有那些找不到工作的同学,心急如焚的苦恼,于是只剩下最后一招了,就是利用学校的就业指导中心,现在很多的大学的指导中心,建设的非常完善,不要小瞧了这个指导中心,里面有很多信息对你来说是有用的,比如说村官信息,公司招聘,最新的实习单位,等等。有一点,你你必须要记住,你不可能一下子就能够完全找到你自己如意工作,要学会先就业后择业。
程序员职业规划指南【第十篇】
与其他岗位相比,程序员相对来说会内向一些,思维也会更严谨、更有个性。企业招聘程序员就是要求他能和团队一起完成既定的开发任务,所以重点从技能水平、学习能力、团队合作及工作心态等几个方面考察程序员。
技术水平是对程序员最基本的要求,很多企业会通过笔试来辅助考察。技能的考察主要看面试者技能匹配度、对技术发展趋势的了解以及自己的职业规划。
1. 你认为自己最擅长的技术是什么?
2. 谈谈你对xx行业/技术发展趋势的看法?对最近xx技术问题发表下你的看法?
3. 在五年的时间内,你有什么样的职业发展规划?
技术快速更替,员工的求知欲和学习能力比他现在的技能更为重要。宁愿招聘一个学习能力很强的员工,也不要一个靠吃老本、不愿学习的员工。
1. 你最近有看哪些书或参加过什么样的培训?有灌技术论坛的习惯吗?
2. 今年有什么学习计划?今年有什么目标?
3. 研究过开源项目吗?有什么收获?
在现在的软件开发中,已经没有所谓的“孤胆英雄”,项目主要靠团队合作来完成,而团队合作能力可以通过考察以往项目,来了解面试者对团队的理解、遇到问题的解决思路等。
1. 你做过哪些项目?最成功的是哪个?为什么?
2. 辛辛苦苦工作半年的项目失败了,你怎么办?
3. 评价下你过去的团队?你喜欢在什么样的团队中工作?
4. 你的业余爱好是什么?
招聘新员工,需要了解面试者对工作的心态和价值取向,并且与他沟通公司的企业文 化。如果你所在企业需要快速发展,有高强度的研发任务,而他想找一份轻松的工作,可能就不是很合适了。
1. 为什么选择离开上一家公司?
2. 有了解过我们公司的产品/服务吗?
3. 你对加班的看法?你家人或朋友抱怨你加班怎么办?
4. 如果在试用期发现你技能不符合要求,该怎么办?
最后,技术人员的有效沟通能力也非常关键,特别是对问题的分析和说明,所以在整个面试过程中你要观察面试者的分析思路,对问题重点的把握以及表达。经常有一些滔滔不绝、 但不知所云的面试者,让人非常头疼!
程序员的能力分为两种:技术能力和非技术能力。技术能力包括编码能力、系统分析与设计能力;非技术能力包括写作能力、沟通与协作能力、组织与管理能力等。而根据程序员的能力水平,可以将程序员分成初级、中级、高级三个级别。因此,在面试过程中我会针对初级、中级、高级程序员三个级别来提出不同的问题。
在技术能力方面,重点考查初级程序员的编程能力、中级程序员编程能力并兼顾系统分析的能力、高级程序员的系统分析与设计能力。在非技术能力方面,重点考查初级程序员的沟通与协作能力、中级程序员的写作能力(主要指编写技术文档,如需求分析文档、用户手册、部署手册等)、高级程序员的组织与管理能力(如指导、协助中级程序员进行问题分析和开发)。
在面试时,程序员首先要将自己的技术能力展现出来,以一种交流的心态去面对,不要紧张,要有自信,即使面试失败自己也要下去总结失败的原因,找到技术弱点加以弥补;其次,面试中遇到不会的问题要讲明自己的思路,因为有些问题不是考你的编程能力,而是逻辑思维的能力;最后,对照程序员能力模型进行自我分析与评价,做好职业规划,不断学习,提高自己的编程能力和抽象思维能力。
以sql server为例,我来分享一下面试时常问的一些技术问题。
1. 聚集索引和非聚集索引有何区别?应该怎样使用?
2. sql的一张表中有一个自增的id字段,但是现在不连续,写一条sql语句取出某个位置到另一位置(如50~60)之间的数据。
3. 如何判断和防止sql注入?
4. 如何对海量数据进行处理?
第1题考查基础知识;第2题考查sql语句的编写能力和技巧,属于初级程序员的问题;第3题考查sqlserver的安全性,属于中级程序员的问题;第4题考查sqlserver的性能,属于高级程序员的问题。通过这几个问题可以判断出应聘程序员的数据库水平。
从个人经历来说,我会对以下五个问题比较感兴趣。
1. 请说出3个你觉得至今都没有算法可以解决的问题。
这是一个开放式问题。从回答中我们可以了解到被面试者的思维方式和思维敏捷度,而这两点是一名优秀程序员不可或缺的。我预料一般有两类回答:第一,学术类,比如有人会说一些关于寻找质数之类的现在还无法解决的问题;第二,生活类,我比较期待这一类有意思的回答,如果被面试者可以结合一些现在的社会现象作出回答,也可以从另一个角度反射出其社会属性。
2. 请从技术角度谈一下《黑客帝国》的观后感。
同样又是一个开放式问题,完全没有所谓的标准答案。《黑客帝国》是程序员的必看“教材”,整个故事最精彩的莫过于构思。我觉得能具备这样的构思能力是程序员的最高境界。那么从技术角度,对于这个构思的框架搭建以及实现等,我想听听程序员的不同理解和实现方法,从侧面了解他们的潜在创造能力和对身边事物的建模能力。
3. 你比较偏向于把程序员比作翻译、建筑师还是设计师?
问这个问题的目的是看你怎样理解程序员这个职业。一个人对自己职业的认识以及定位将直接决定其在这个职位上的积极性和创造能力。我的答案是程序员既是翻译,又是建筑师,更应该是设计师。并且随着这三个职业的排序,正是我认为的程序员职业能力升华台阶。
4. 请设计至少两个不同的算法解决将一个蛋糕平均分为6份的问题。
比较实际的专业能力题。这是一个既简单又综合的考验。除了对程序员这个职位的正确认识之外,实际操作能力毕竟是影响今后实际工作的第一要素。这道操作题,考察应聘者对问题的思考,以及分析能力和解决问题的动手能力。
5. 比较一下这两个算法,你觉得哪个更好,依据是什么?
比较算法,还是考察的专业能力,目的是看你怎样判断一个算法的好坏。对这道题,没有接受过专业训练的应聘者应该无法给出全面且科学的分析。并且请他们评论自己设计的算法,也是对自我认识的一种衡量。程序员的概念有点宽泛,为更有针对性,我主要分享对“网络程序员”的观点。简言之,我们主要关注面试者的硬条件、软条件两个方面。硬条件是指学历、技术经验、语言等能直接呈现的能力。技术是实在的东西,有就有,没有就没有,由不得半点浮夸。
我们比较感兴趣的问题如下。
1. 做过什么:是写代码、设计还是架构?
2. 做成功过什么:是大型的平台吗?其特质如可扩展、高并发、交互式。
3. 擅长做什么:使用的编程语言是哪种?使用经验有几年?
4. debug的经验,遭遇什么复杂的问题(需例证其复杂性)?
技术面试的后续往往是笔试或上机,比如,在所有你使用过的designpattern中,请解释对比其中两种,如commandpattern和visitorpattern(可以文字回答,也可以画图)?domparser与saxparser的区别在哪儿?什么情况下采用domparser而不是saxparser?大家在面试之前可以google一下类似的题目。
如果面试外资公司,需要英文达到流利读写的水平。因为项目的完成往往需要协同全球多个国家的同事,如果缺乏英文技能,在外企的发展是比较受限的。计划今后进入外资公司的朋友,一定要加强练习。
软条件是指性格、兴趣、职业规划等非直接呈现的能力。公司对于程序员一般会看重两种性格特质:爱技术、乐分享。
“爱技术”的人才会自发的钻研,不浮躁,也才会在这一行做得长久。对于这点,面试官可能希望了解你工作之外喜欢做什么。我听到过很多分享:经营自己的博客或者技术论坛;尝试新技术、新设备,学习新技术是一种乐趣而不是负担;当然,下次你可以说你平时喜欢阅读《程序员》。
“乐分享”的人才能带动团队整体进步。对于这点,面试官可能希望了解你在团队中是什么角色。有的人可能讲我是mentor,我们遇到技术问题时要内部讨论,我往往是能给出solution的人,所有人都解决不了,我们会求助于互联网——说明你不只愿意分享,而且有东西可以分享。
以前曾在面试中听说,程序员是青春饭,3~5年之后一定要转做manager。我觉得职业发展一定要切合自己的性格,并不是每个人都很享受并善于处理人事管理。有的资深开发人员转成manager几年之后,又转回纯技术(inspanidualcontributor)。而资深技术人员对于公司是非常宝贵的财富,不管从受重视程度、薪资福利待遇都是非常有吸引力的。
程序员面试中,面试官会经常询问一些技术性的问题,有的问题可能比较简单,都是历年的笔试面试真题,求职者在平时的复习中经常遇到,应对自然不在话下,但有的题目可能比较难,来源于google、microsoft等大企业的.题库或是企业自己为了招聘需要设计的题库,求职者可能从来没见过或是从来都不能完整地、独立地想到解决方案,而这些题目往往又是企业比较关注的。
如何能够回答好这些技术性的问题呢?编者建议,对于简单的题目,求职者要努力做到完全正确,毕竟这些题目,只要复习得当,完全回答正确一点问题都没有(编者认识的一个朋友据说把《编程之美》、《编程珠玑》上面的技术性题目与答案全都背得滚瓜烂熟了,后来找工作简直成了“offer杀器”,完全就是一个bug,无解了),对于难度比较大的题目,不要惊慌,也不要害怕,即使无法完全做出来,也要努力思考问题,哪怕是半成品也要写出来,至少要把自己的思路表达给面试官,让面试官知道你的想法,而不是完全回答不会或是放弃,因为面试官很多时候除了关注你的独立思考问题的能力以外,还会关注你技术能力的可塑性,观察求职者是否能够在别人的引导下去正确地解决问题,所以,对于你不会的问题,他们很有可能会循序渐进地启发你去思考,通过这个过程,让他们更加了解你。
一般而言,在回答技术性问题时,求职者大可不必胆战心惊,除非是没学过的新知识,否则,一般都可以采用以下六个步骤来分析解决。
(1)勇于提问
面试官提出的问题,有时候可能过于抽象,让求职者不知所措,或是无从下手,所以,对于面试中的疑惑,求职者要勇敢的提出来,多向面试官提问,把不明确或是二义性的情况都问清楚。不用担心你的问题会让面试官烦恼,影响你的面试成绩,相反还对面试结果产生积极影响:一方面,可以给面试官一个心思缜密的好印象;另一方面,方便后续自己对问题的解答。
例如,面试官提出一个问题:设计一个高效的排序算法。求职者可能丈二的和尚摸不到头脑,排序对象时链表还是数组?数据类型是整型、浮点型、字符型还是结构体类型?数据基本有序还是杂乱无序?数据量,有多大,1000以内还是百万以上个数?此时,求职者大可以将自己的疑问提出来,问题清楚了,解决方案也自然就出来了。
(2)高效设计
(3)伪代码先行
有时候实际代码会比较复杂,上手就写很有可能会漏洞百出、条理混乱,所以,求职者可以首先征求面试官的同意,在编写实际代码前,写一个伪代码或是画好流程图,这样做往往会让思路更加清晰明了。
切记在写伪代码前要告诉面试官,他们很有可能对你产生误解,认为你只会纸上谈兵,实际编码能力却不行。只有征得了他们的允许,方可先写伪代码。
(4)控制节奏
如果是算法设计题,面试官都会给求职者一个时间限制用以完成设计,一般为20分钟左右。完成的太慢,会给面试官留下能力不行的印象,但完成的太快,如果不能保证百分百正确,也会给面试官留下毛手毛脚的印象,速度快当然是好事情,但只有速度,没有质量,速度快根本就不会面试中加分。所以,编者建议,回答问题的节奏最好不要太慢,也不要太快,如果实在是完成的比较快,也不要急于提交给面试官,最好能够利用剩余的时间,认真仔细地去检查一些边界情况、异常情况、极性情况等是否也能满足要求。
(5)规范编码
回答技术性问题时,多数都是纸上写代码,离开了编译器的帮助,求职者要想让面试官对自己的代码一看即懂,除了字迹要工整,不能眉飞色舞以外,最好是能够严格遵循编码规范:函数变量命名、换行缩进、语句嵌套、代码布局等,同时,代码设计应该具有完整性,保证代码能够完成基本功能、输入边界值能够得到正确的输出、对各种不合规范的非法输入能够做出合理的错误处理,否则,写出的代码即使无比高效,面试官也不一定看得懂或是看起来非常费劲,这些对面试成功都是非常不利的。
(6)精心测试
在软件界,有一句真理:任何软件都有bug。但不能因为如此,就纵容自己的代码,允许错误百出。尤其是在面试过程中,实现功能也许并不十分困难,困难的是在有限的时间内设计出的算法是否各种异常都得到了有效的处理,是否各种边界值都在算法设计的范围内,等等。
测试代码是让代码变得完备的高效方式之一,也是一名优秀程序员必备的素质之一。所以,在编写代码前,求职者最好能够了解一些基本的测试只是,做一些基本的单元测试,功能测试,边界测试以及异常测试。
其实,在面试时,求职者往往会存在一种思想误区,把技术性面试的结果看得太重要了。面试过程中的技术性问题,结果固然重要,但也并非最重要的内容,因为面试官看重的不仅仅是最终的结果,还包括求职者在解决问题的过程中体现出来的逻辑思维能力以及分析问题的能力。所以,求职者在与面试官的博弈中,要适当地提问,通过提问获取面试官的反馈信息,并抓住这些有用信息进行辅助思考,从而博得面试官的欢心,进而提高面试的成功率。