精华内容
下载资源
问答
  • 程序员能力评估模型

    2019-02-21 12:47:23
    根据程序员的学习能力、协作能力、技术知识能力等21项指标打分,将程序员划分为助理工程师、初级工程师等8级别。按此模型研发人员进行能力评估并以此为依据制定薪资
  • 今天项目经理让我写份自我能力评价报告!但是我都不知道要写些什么!希望有人能给点思路!告诉下怎么写!谢谢
  • 一个好的程序员

    千次阅读 2018-02-28 13:52:09
    我们认为的一个好的程序员一个不好的程序员具备的特点。 编辑器 如果一个程序员还在用 记事本,没有 SublimeText 或者 VSC 、notepad++,那么这个程序员不是一个好的程序员。 除了使用 IDE ,文本编辑器在...

    这是我和舍友在路上说的,于是今天我把它写下,告诉大家。我们认为的一个好的程序员和一个不好的程序员具备的特点。

    编辑器

    如果一个程序员还在用 记事本,没有 SublimeText 或者 VSC 、notepad++,那么这个程序员不是一个好的程序员。

    除了使用 IDE ,文本编辑器在程序员的使用时间是很多的。如果现在还没开始寻找一个好用的编辑器,我就推荐使用 VSC。

    操作系统

    如果一个程序员还在用 win7 而且说这个系统足够稳定不会去升级,那么这个程序员不是一个好的程序员。如果要说稳定,为何现在还去买智能机,以前的非智能机已经用了10几年,非常稳定。

    程序员一般都是在追求最新,因为技术淘汰很快,如果没有去接受新的,很容易就赶不上。

    新技术

    如果一个程序员害怕新技术,那么这个程序员不是一个好的程序员。程序员的接受能力应该是最强的,无论遇到什么都能很快接受。

    白日梦

    如果一个程序员不会幻想着自己的软件会改变世界,那么这个程序员不是一个好的程序员。

    博客

    如果一个程序员没有自己的博客,那么这个程序员不是一个好的程序员。网络的精神就是自由和分享,如果没有分享精神,那么这个程序员就失去很多和别人交流的机会,所以不会是一个好的程序员。

    合适的信心

    如果一个程序员没有合适的信心,那么这个程序员不是一个好的程序员。如果他的信心太大,那么难以虚心向其他人学习。这个行业方向太多了,大多数人都只能在自己的方向,部分人是有研究很多的方向,但是不得说的是,在一个方向是世界级的,但是在另一个方向可能就是新手。遇到不同方向的程序员,需要虚心向他们学习。

    如果没有足够的信心,如何去解bug,无数的bug会让自己无法在这个领域继续。

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

    展开全文
  • 一个毕业一年程序员的感悟

    千次阅读 多人点赞 2018-07-22 00:01:04
    段看到朋友圈里的学弟学妹们开始晒毕业照,这一晃据我毕业也一年多了。走出了校园,工作了一年...这问题,我在毕业半年之后就意识到了。经常听到有人说“学校里的知识都是过时的,没用的,工作中顶多也就能用...

    这里写图片描述
    前一段看到朋友圈里的学弟学妹们开始晒毕业照,这一晃据我毕业也一年多了。走出了校园,工作了一年,见得多了,体会和感触也随之变多。所以,又开始习惯性地复盘过去的一段经历,用现在不成熟的想法去回顾之前更不成熟的想法,哈哈。


    挑出我认为比较重要的四点感受来说吧。

    一.理论知识的重要性

    这个问题,我在毕业半年之后就意识到了。经常听到有人说“学校里的知识都是过时的,没用的,工作中顶多也就能用到10%”。我承认这句话在某些角度上有一定的道理,但我认为理论知识并非无用,学好理论其实是很必要的。

    我来告诉你为什么。首先我们来分析一下宣扬“无用论”的那些人。我猜大部分应该都是对行业理解不深的开发小白或者是普通的开发人员,这些人可能刚刚工作没几年,觉得自己从零基础到能开发出一些模块就已经很满足了,觉得编程不过如此;还有那些可能是计算机专业出身,但是毕业后却从事不相关的行业的那些人,茶余饭后可能调侃一下专业无用论。

    后者我就不说了,那其他行业确实用不到计算机理论知识。但对于前者,在我看来,混日子或者满足于现状的人居多吧。如果他们不改变自己认知,很难在这个行业走得长远,程序员中年危机了解一下?真正牛逼的人,理论基础一定很强!

    最简单验证我的观点的方法就是,大家去招聘网站看看大公司开发岗的招聘要求就知道了。很多岗位明确要求,计算机理论基础扎实、数据结构与算法基础扎实。再结合往年BAT校招情况,哪个技术岗不考察基础知识的?据我在BAT工作的同学说,这样的行业巨头,无论是校招和社招,在面试时技术知识都会作为重点考察内容,尤其是校招。
    这里写图片描述
    我本科是CS专业,虽然我不是学院的学霸,但我专业课的成绩还算是中上游。一开始工作的时候,我也觉得以前学的专业知识对工作好像没多大帮助。但是越往后,理论基础带给我的优势就逐渐突显出来。

    这里我举几个例子。不了解计算机组成原理的人,在工作日常可能就分不清CPU、内存、硬盘等硬件相关的内容。经常碰见有的开发人员,明明花了4、5千买了一台新笔记本,但是开发用起来还是很卡,结果是因为内存仅有4G;在编码日常,就拿Java来说,有关对象的引用,实际上就是C中的指针的概念。如果不清楚计算机内存工作原理,就很难理解引用这个概念;同理对于不了解操作系统原理的人,可能就很难理解多线程;不了解网络原理的人,可能就不清楚ip、端口、http协议之间的关系等。

    培训行业之所以这么火爆,是因为单纯论编程技能,经过培训或者大量练习,的确可以做到快速上手。但培训机构很少会将有关计算机理论方面的知识,而这也是需要长期学习积累的。所以很多人反映从事开发几年了,到某一时间点就感觉总也提升不上去,遇到了瓶颈,其实绝大部分原因就是基础欠缺造成的。

    当我认识到这个问题后,这半年来我开始针对性地复习相关基础知识。虽然有些理论学起来枯燥乏味,甚至感觉没什么用,但是一旦理解了其道理,再来看眼前的工程,感觉就完全不一样了。

    二.解决问题能力的重要性

    工作中,对于没遇到过的问题,会不会往往不要紧,拥有解决问题的能力是最关键的。那什么是解决问题的能力?就是当问题发生的时候,能够用科学的、高效的方法,迅速解决它。我的一位领导说过一句让我印象非常深刻的话——“当出现问题时,不要找100个借口证明它的困难性,而是要找100个方法去全力以赴解决”。

    刚入行的时候,每天要花大量时间在基础的编码任务上。但越往后,编码本身往往不再是难点,遇到问题并解决才是工作的重点。没有人会知道所有的问题的答案,就算他知道,那每天还会有各种各样未知问题的产生。所以评判一个工程师它牛逼与否,除了看他懂得多少以外,还要看他解决问题的能力,是否能又快又好地解决问题。

    拿我个人来说吧,本科毕业一年,从事开发工作两年。我也不是那种每天都疯狂学习的人,大学四年也不敢说自己积累了多少,所以要论知识和经验,我要学习的东西还有很多。但是,这并不影响我现在从事的工作。虽然经常遇到难点,但迅速通过各种资源学习、整合解决遇到问题,是我参加工作以来一点点不断在提升的能力。我可以自信的说,只要不是超出我能力范围太大,交给我的任务或者遇到的问题,我都可以找到办法解决,尽管在这之前我不会。

    而且现在,对于开发人与来说,编程似乎越来越简单了。工程中遇到的大部分问题,其实早就有人遇到过了。互联网时代,各类技术博客论坛平台的内容越来越多,还有强大的“同性交友网”Github等开源社区,以及各种技术交流群社区等,我们很容易就能在网络上找到我们想要的解决方案。所以,对于现在的程序员来说,解决问题的能力其中一大主要部分其实是检索能力。掌握了高效的搜索能力,几乎可以解决70%的问题。这里就不展开说了,以后有时间我再整理一些我总结的搜索技巧。

    所以说,如果你拥有强大的解决问题的能力,那你的竞争力就会变得非常高。从校招就可以看出来,为什么现在互联网公司动辄能给应届生开出20W、30W甚至更高年薪,难道是现在应届生都懂得多么?说白了,每届应届生毕业时的水平都是差不多的,企业心里都有数。但企业投资的不是应届生本身,还是那句话,会不会不要紧,是否具有学习能力和解决问题能力是企业所看重的。

    同理,在面试中,面试官除了考察面试者知识技能积累情况,也会重点考察逻辑思维,其实就是解决问题的能力。有时候面试官的问题,没什么标准答案或者就是超纲的问题,以此来模拟遇到问题的情况,来观察面试者如何应对。有关面试相关的感悟,我会另写一篇来详细说。
    这里写图片描述
    各家互联网公司的给应届生的薪资概况

    三.学历的重要性

    要说我目前的遗憾之一,就是没有在本科结束后去读研究生。当然,只是遗憾,我并不后悔我的选择。我之所以这么说,就是因为我觉得学历往往很重要,但也绝不是百分百的重要。

    在某知名匿名交流社区,经常会看到抱怨HR只认学历的帖子,什么非985、211简历不看、专科靠边站等,抨击中国的学历社会多么不公平,这样的帖子很多,下面的评论也是说什么的都有。其中我觉得挺有意思的评论是“别人寒窗苦读12年考上名校和你随随便便考个专科,如果能在毕业时同等待遇,那你认为公平么?”

    如果单纯认为高学历等于懂得多,那就容易产生抱怨情绪——你看,虽然我学历不高,但通过这么多年的努力,见得也多了,懂得也不少,还非要拿个高学历去证明一下么?这其实就是对学历的一种误解,高学历背后的重要性其实有很多点,我简单和大家扒一扒。

    1.工作优势。有的工作只要985/211本硕的学生,这是硬伤。这里有人一定跟我说,985、211里也有混子,身边某某某普通学校出校混得比重本好的言论。没错,我承认,你说得都对。我还可以告诉你,马云还是杭州师范大学毕业的呢,然后呢?这个世界上,总有人用个别例子去硬怼大概率事件,或者总痴心妄想小概率事件会发生在自己身上。事实证明,985、211里大部分学生的各项能力要比普通学校学生强,所以优秀的企业,肯定会择优挑选名校学生。尽管其他学校也有牛逼的人,但相比于筛选劣质简历的人力成本,企业宁可漏掉他们。试想你是一个知名公司的HR,每天收到上千上万份简历,你会有时间一个一个分析低学历者的简历判断他们的能力么?

    2.在攻读高学历的过程,会培养并提升解决问题的能力、科学思维的方式。这也是我前面提到的,这种能力是很具有核心竞争力的。论智力水平,绝大部分人先天情况都差不多。所以这种后天训练出来的思维能力,会让一个人在人群中脱颖而出,而且一个人是思维高度,往往决定一个人能走多远。

    3.人脉优势。人往高处走,水往低处流。其实很多人忽略了高学历的潜在价值,就是你会结实一群大概率未来都会发展不错的人,你们会成为同学朋友,这是你人生中宝贵的个人财富。这比财富10年之后,会越来越值钱。大家看看那些知名企业的高管就知道了,很多都是名校出身,再看看他们身边的合作伙伴或者同事,也大多是名校出身。身处于这样的圈子,圈子就是价值。

    所以不要只认为人家高学历只不过是多读了几年书。一纸文凭确实只是一张纸,那张纸的价值是有限的,但是背后隐藏着的价值,如果利用好了,就是无限的。所以,之所以有人读了几年研究生还不如本科生、专科生,实际上就是没有利用好隐藏价值。

    不过我还是那句话,学历往往很重要,但也绝不是百分百的重要。我是普通学校本科出身,但我也拿着一份还算不错的薪水,没有比名校出身的差太多,我身边有很多优秀的同学,也没有名校光环,但也照样在大厂混的如鱼得水。当然了,这同时也要付出更多的努力,才有可能跟名校出身的人站在同一高度。你可以认为这是鸡汤,但我想说的是没有理由会阻碍你变得牛逼。按照之前我说的思路,所以如果你能够通过其他方式获得那些隐藏价值,学历的重要性会一定程度被弱化。正所谓弯道超车,机会总是会有的。

    四.坚持写作的重要性

    我从去年毕业开始,正式在CSDN上写博客,主要以技术为主,记录、整理工作中遇到的问题的解决方案以及学习笔记。看我朋友圈的朋友可能会知道,前几天我发了一个博客访客截图,开博一年多以来,访客超过10W+,排名3W+。这也是算是对我一年以来坚持写作的非常重要的一次鼓励吧。
    这里写图片描述

    为什么说要坚持写作?

    1.逼着自己把知识学透。之前也提到了,开发这个领域,程序员每天的主要工作就是学习和解决问题。如何验证自己有没有真正掌握学到的知识?大家可以类比一下学生时代,同学之间互相辅导。有时候明明自己可以解一道题,但是给别人讲的时候讲不明白。这其实就说明自己没有完全掌握这道题,如果你能给给别人讲明白你学到的东西,就说明你掌握了所学的内容。而工作中,一般也不会有给别人当面讲课这样的机会,所以通过工作笔记、博客、公众号等方式分享个人学习心得、整理学习内容、传授经验就是最方便的讲述方式。我的体会最深的就是,每次自己学习的时候,碰到不好理解的、困难的内容,如果抱着要写成博客给别人看的心态,就能逼着自己把它学会,原因很简单——我不想在博客上胡说八道误导别人。

    2.锻炼自己的逻辑能力、表达能力。有时候就算自己真的掌握了某个技能,但是依旧没办法给别人讲清楚。这就说明自身的逻辑能力和表达能力还有欠缺。经常听外行的人评价程序员话不多、社交少,这正恰恰说明了大部分理工科出身的程序员的弱点——不善于表达交流,而这也是很多人遇到瓶颈的障碍之一。虽然你做了很多,但是别人不知道啊。因此我认为,一个真正出色的工程师,一定是善于表达的,他不光自己会做,还要有逻辑地讲出来、帮助其他人一起成长,这才是出色工程师应该具备的能力之一。腾讯马化腾、微信张小龙、小米雷军、百度李彦宏、360周鸿祎就是很好的例子。

    3.写作可以提高工作、学习效率。不止一次,我的同事问我一些技术问题,恰巧这些问题我以前遇到过,花费了一定的时间去解决并整理成博客,这时候我就可以直接把博客地址发给他,这样就节省了很多时间。同时,通过记录自己学习过的知识,也极大地方便了日后的复习,避免了很多重复筛选信息的时间,而且自己整理的内容也是最适合自己的。

    4.建立个人品牌,扩大影响力。评价一个程序员牛不牛标准有哪些,学历高?薪资高?职级高?大厂出身?GitHub上有万个Stars项目?要我说,有知名个人品牌的程序员就很牛逼。经常看到有人在社区抱怨自己不是名校出身,学历不高,又没有大公司工作经验,找工作困难,能力得不到认可。而学历、学校、过去的工作经验都是已经板上钉钉的事,再怎么抱怨也没用。但这些可都不是阻碍自己建立个人品牌的理由。我们应该感谢这个时代,我们几乎没有成本就可以在各个平台上建立个人账户,发表自己的观点和内容。如果能有个百万级访问量的博客、或者运营一个有几十万粉丝的个人公众号,我相信就算你没有名校名企光环,也一样可以得到其他人、其他公司的青睐。谁会拒绝一个有影响力的人呢?

    所以,写作几乎是一件有利无害的事。当然了,我反对为了写博客而写博客。写的乱七八糟有头无尾不说,排版混乱或者干脆扔一堆代码在上面,没有注释没有自己的讲解,甚至不经审核把错误的内容发表出来,这种博客不光浪费自己的时间,更耽误其他人宝贵的时间。所以我一直坚持原创,坚持质量为主,拒绝冲量,拒绝抄袭,我也相信我的文字随着时间的积累,会给带给我巨大的价值。


    以上是我毕业一年以来的思考与总结,其实还有很多其他“重要性”,有时间再跟大家分享。一年仅是个节点,未来还有很长的路要走。时刻保持清醒,不断思考,坚持总结与复盘。最后,如果你喜欢我的分享,觉得有帮助的话,给个赞呗,哈哈。


    本文同步发表于我的个人公众号【小码叨叨】,来听马叨叨的日常叨叨,打消你一切对程序猿的误解。喜欢的朋友可以扫码关注哦~
    这里写图片描述

    展开全文
  • 程序员的自我评价

    千次阅读 2021-02-24 11:32:33
    注重专业基础学习和实践能力的培养,在校期间不仅做过多课程设计暑假期间也去过单位实践过,java编程和网站开发具有浓厚的兴趣。 篇二:优秀的程序员自我鉴定 优秀的程序员自我鉴定 以下篇是名优秀并且有...

    篇一:程序员简历自我评价

    程序员简历自我评价

    本人勤奋踏实,工作认真负责,自学能力强;性格开朗,容易与人相处,注重团队协作精神,且能承受较大压力。

    注重专业基础学习和实践能力的培养,在校期间不仅做过多个课程设计暑假期间也去过单位实践过,对java编程和网站开发具有浓厚的兴趣。

    篇二:优秀的程序员自我鉴定

    优秀的程序员自我鉴定

    以下一篇是一名优秀并且有工作经验的程序员的自我鉴定范文:

    大家好,我叫xxx。我性格开朗,乐于与人交往,诚实,正直,有教强的上进心,较强的学习能力,在学校团学会的工作使我组织和协调能力得到进一步加强,有较强的社会责任感。

    我的计算机能力: 程序员 语言能力:英语(一般);普通话(标准) 熟悉windows,能够熟练使用word,powerpoint等office软件; 熟悉c,c#,html,xml,了解数据结构©,软件工程学,c,c++,java,ajax。 熟练掌握c#语言。 熟悉开发工具vs、net…; 且利用b/s开发过物业网络管理系统。 在公司从事教育软件的开发。
    我曾经获得物业管理系统
    软件环境:windows系统 开发环境:vs.net XX(c#) sqlXX 项目描述:本系统主要包括前台和后台两部分,前台主要实现了管理员登录、物业管理人员信息、公告信息、住户欠费信息、住户投诉、住户报修、欠费查询等。后台主要对本网站进行管理,主要实现了受理物业信息管理、物业管理、公告管理、基本设置、系统维护等。

    XXXX年-XXXX年 “优秀团员”称号、“三等奖学金”、“校篮球比赛第一名” XX年-XX年被评为“系团总支学生会宣传部部长” 、“校书法大赛第一名”

    XXXX年-XXXX年 “优秀学生干部”、“优秀团干”

    通过以上的自我鉴定,我能更好地了解自己,了解自己在各方面的实力。作为一名有工作经验的计算机程序员,我为自己而感到骄傲。

    篇三:JAVA程序员个人简历范文

    (一)

    个人信息

    姓名:***

    性别:男

    年龄:22

    学历:本科

    专业:计算机

    联系电话:***

    毕业院校:广东XX大学

    主修课程:汇编语言程序设计、C#程序设计、JAVA程序设计、数据库原理、操作系统

    英语水平:通过国家六级考试。有较强的阅读和翻译能力,能进行日常英语对话。

    计算机水平:通过全国计算机等级考试三级网络技术。熟练操作OFFICE办公软件。

    实践与实习

    2012年上学期----与同学共同开发校园网站,完整地学习了网站的建设流程和相关技术。

    个人技能

    1、熟悉网站开发流程,开发文档格式;

    2、熟悉MVC体系结构模式、C/S模式,掌握面向对象的设计开发思想;

    3、熟练掌握JSP、Servlet、JavaBean、Struts、Hibernate等相关建站技术,熟练运用HTML、CSS、XML、JavaScript等页面控制技术;

    4、熟悉UML,了解PowerDesigner等建模工具;

    6、熟练掌握SQL语言,MySQL的设计和构建过程及相关维护,了解Access、MSSQL、Oracle等常用数据库;

    7、熟练运用Eclipse等开发工具,Apache、JBoss等服务器开发平台;

    8、能在WindowsServer、操作系统,上搭建网站平台及进行相关维护,了解RedHat、FreeBSD等Linux操作系统。

    求职意向

    JAVA软件工程师

    个人简介

    热爱编程,有良好的分析问题、解决问题的能力。能

    吃苦耐劳、待人热情、真诚,有较强的适应能力和团队协作精神。

    (二)

    个人资料

    姓名:个人简历

    性别:男

    目前所在: 广州 年 龄: 23

    户口所在: 广西 国 籍: 中国

    婚姻状况: 未婚 民 族: 汉族

    身 高: 160 cm 体 重: 45 kg

    求职意向

    应聘职位: 软件工程师:JAVA软件工程师 工作年限: 2 职 称: 中级

    求职类型: 全职 可到职日期: 随时

    月薪要求: 3500–5000 希望工作地区: 广州,

    工作经历

    广州东方标准信息科技有限公司 起止年月:2008-03 ~ 2010-06

    公司性质: 民营企业 所属行业:计算机/互联网/通信/电子

    担任职位: java程序员

    工作描述: 1.参与需求的挖掘;

    2.负责java程序开发, 测试,维护;

    3.带领实习生进行项目开发,并协助其攻克技术难点;

    4.重构“个人简历范文www.dlqql.com”。

    教育背景

    毕业院校: 广西职业技术学院

    最高学历: 大专 获得学位: 毕业日期: 2008-07 专 业 一: 计算机 专 业 二:

    起始年月 终止年月 学校(机构) 所学专业 获得证书 证书编号

    2007-11 2008-02 新东方IT培训学校 JAVA软件工程师 - -

    语言能力

    外语: 英语 一般 粤语水平: 一般

    其它外语能力:

    国语水平: 优秀

    工作能力及其他专长

    1.具有面向对象思想,扎实的编程功底以及良好的编码习惯;

    2.熟练应用Struts+Hibernate,SSH2框架和MVC三层架构开发模式;

    3.熟练Oracle数据库的操作,能够编写存储过程,熟悉Mysql和SqlServer数据库;

    4.熟练Tomcat服务器的部署及应用;

    5.熟悉版本管理器SVN;

    6.熟练使用Jsp,HTML,JavaScript,Jquery,Ajax,Css等WEB客户端技术;

    7.了解设计模式,代码重构和项目过程管理,能够编写文档。

    自我评价

    我身体健康,性格随和,五官端正,不怕苦不怕累。两年多的程序员生活锻炼了我坚强的意志,缜密的思维,以及强的抗压性;我做事有耐心,并且乐于

    学习新知识,更注重巩固旧知识。作为一名程序员,更重要的品质就是要懂得团队合作,而我恰好拥有团队合作精神,对工作认真负责。

    项目经验

    2010/3–2010/6:综合管理系统

    软件环境:TOMCAT6.0+ MYSQL

    硬件环境:windows

    开发工具:MYECLIPSE5.1

    项目描述:项目团队: 开发人员4人

    开发语言:JAVA

    SCM工具:SVN版本管理器

    项目技术:STRUTS 2+SPRING+HIBERNATE3.0、LOG4J、JQUERY、AJAX

    软件描述:“综合管理系统”专门针对社会各类培训学校、培训中心而开发的一套综合性管理软件,对学校的日常事物进行记录,提高学校管理的工作效率。主要有“权限管理”,“历史记录”,“教务管理”,“学员管理”,“教学管理”,“财务管理”等模块。 责任描述:

    1.带领实习生进行项目开发,从需求挖掘到程序开发;

    2.协助实习生攻克技术难点;

    3.负责“教务管理”,“学员管理”模块的开发;

    2009/12–2010/2: 创业测评系统

    软件环境:TOMCAT6.0+ ORACLE10g

    硬件环境:windows

    开发工具:MYECLIPSE5.1

    项目描述:项目团队: 开发人员4人,经理1人 开发语言:JAVA

    SCM工具:SVN版本管理器

    项目技术:STRUTS+HIBERNATE3.0、JQUERY、AJAX 软件描述:“创业测评系统”是省劳动保障厅主办项目“广东远程职业培训网”的一个子项目;以“广东远程职业培训网”的用户为用户,主要实现“测试”,“统计”,“行业方向管理”,“题库管理”,“测评报告管理”功能。

    责任描述:负责“统计”,“题库管理”模块的程序开发;

    1.“统计”中“自定义”统计功能以存储过程方式实现;

    2.以树形菜单显示题目种类。

    2009/2–2010/6:广东远程职业培训网

    软件环境:TOMCAT6.0+ ORACLE10g

    硬件环境:windows

    开发工具:MYECLIPSE5.1

    项目描述:项目团队: 开发人员6人,经理1人 开发语言:JAVA

    SCM工具:SVN版本管理器

    项目技术:STRUTS+HIBERNATE3.0、IBATIS、JSP、JAVASCRIPT、JQUERY、AJAX

    项目描述:“广东远程职业培训网”是省劳动保障厅主办项目,是一项长期项目;主要有以下功能:

    1.“后台管理系统”,用于管理学员信息,课件信息,三级权限分配,对各地市级的学员进行统计等;

    2.“学习平台”与FLASH进行交互,播放flash课件,提供给学员学习课程;

    3.“CMS新闻发布系统”丰富页面内容。

    我的任务:

    负责“学员管理”,“课件管理”模块的程序开发;重构“统计”、“注册”模块。

    1.“学员管理”实现增删改查,导入导出等功能。

    2.以树形结构显示课件信息,并实现增删改查,停用启用功能。

    3.重构“注册”功能,采用jquery.validator插件进行校

    验,ajax异步获取数据。

    责任描述: 负责“学员管理”,“课件管理”模块的程序开发;重构“统计”、“注册”模块。


    提示:上述信息仅供参考

    篇四:程序员转正自我鉴定

    程序员转正自我鉴定

    年的见习期就要到了,现就本人在这一年里的工作情况先作一整理,并做如下自我鉴定:

    在这一年里,我经历了从学校到企业、从学生到员工、从理论到实践这三个转变,围绕着这三个转变,我始终保持良好的心态,一步步成长。

    我于XXXX年XX月开始到xxx公司工作。在开始几个月的工作和学习当中,在各位领导和同事的指导和关心下,学习专业知识,向前辈请教经验,向同事学习专业技巧,正是在这个过程中,认识到自己不足,也深刻体会到了团队的力量和魅力,并且很快认识并融入这个团队,为我以后的工作树立一个良好的开端.

    在这段工作时间里,我做了一个比较棘手的项目——XXX系统。为什么说棘手呢,因为我以前没有做过这方面的项目,而且我问遍了所有认识的朋友,搜遍了网络也没有找到如何解决的方法,之后我翻书籍,接着搜索网络。功夫不负有心人,终于我找到一个聊天室的小例子,但是功能差的太远,于是我把这个示例一点点的研究,从一点也不懂到后来慢慢看懂,从对AJAX技术一无/fanwen/1600/所知到基本熟练运用。接下来我就开始自己开发,到最后终于把它开发了出来,虽然不是很完美,功能不是很强大,但是它是我辛苦的劳动结晶,我相信以后会把它开发的更强大,更完美。

    通过见习过程,我知道短暂的迷茫和情绪的低谷,有了各位同事的帮助和关心,以及个人的努力,可以让我顺利突破困境,找回自信和充实!

    在此,这就是我试用期的工作情况及心得体会的汇报,希望公司领导能对我的工作态度、工作能力和表现,以正式员工的要求做一个全面考虑,我会以炙热的工作热情继续投入到今后的工作当中,以自己踏实努力的工作,报公司知遇之恩!

    年的见习期就要到了,现就本人在这一年里的工作情况先作一整理,并做如下自我鉴定:

    在这一年里,我经历了从学校到企业、从学生到员工、从理论到实践这三个转变,围绕着这三个转变,我始终保持良好的心态,一步步成长。

    篇五:程序员的自我定位与思考

    程序员要做什么?

    版权所有:不知道

    以下文章都是经典,看不看随你的便,我只希望知识掌握在更多中国人的手里! 中国有很多小朋友,他们18,9岁或21,2岁,通过自学也写了不少代码,他们有的代码写的很漂亮,一些技术细节相当出众,也很有钻研精神,但是他们被一些错误的认识和观点左右,缺乏对系统,对程序的整体理解能力,这些人,一个网上的朋友说得很好,他们实际fans,压根没有资格称为程序员,但是据我所知,不少小网络公司的Cfans,拿着吓人的工资,做着吓人的项目,项目的结局通常也很吓人。

    程序员基本素质: 作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具有的素质。

    1.团队精神和协作能力

    把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有限的,即便如linus这样的天才,也需要通过组成强大的团队来创造奇迹,那些遍布全球的为linux写核心的高手们,没有协作精神是不可想象的。独行侠可以作一些赚钱的小软件发点小财,但是一旦进入一些大系统的研发团队,进入商业化和产品化的开发任务,缺乏这种素质的人就完全不合格了。

    2.文档习惯

    说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。

    3.规范化,标准化的代码编写习惯

    作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。

    fans叫嚣高水平程序员写的代码旁人从来看不懂,这种叫嚣只能证明他们自己压根不配自称程序员。代码具有良好的可读性,是程序员基本的素质需求。

    再看看整个linux的搭建,没有规范化和标准化的代码习惯,全球的研发协作是绝对不可想象的。

    4.需求理解能力

    程序员需要理解一个模块的需求,很多小朋友写程序往往只关注一个功能需求,他们把性能指标全部归结到硬件,操作系统和开发环境上,而忽视了本身代码的性能考虑,有人曾经放言说写一个广告交换程序很简单,这种人从来不知道在百万甚至千万数量级的访问情况下的性能指标是如何实现的,对于这样的程序员,你给他深蓝那套系统,他也做不出太极链

    的并访能力。性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经验才有可能有心得。

    5.复用性,模块化思维能力

    经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成了熟练程序员的主要工作,而这些,其实是完全可以避免的。

    复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入到创新的代码工作中去。

    一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模块都能适合的很好,而现在我看到的是,很多小公司软件一升级或改进就动辄全部代码重写,大部分重复性工作无谓的浪费了时间和精力。

    6.测试习惯

    作为一些商业化正规化的开发而言,专职的测试工程师是不可少的,但是并不是说有了专职的测试工程师程序员就可以不进行自测;软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。

    测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常调用下完成基本功能,这是最基本的测试职责,可惜在很多公司这成了唯一的测试任务,实际上还差的远那;第二方面就是异常调用的测试,比如高压力负荷下的稳定性测试,用户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频发的异常请求阻塞资源时的模块稳定测试等等。当然并不是程序员要对自己的每段代码都需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到需求理解能力。

    7.学习和总结的能力

    程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。

    善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。但是学习也要找对目标,一些小coding有些codingTO就是这样的coding上只是一些Cfans们,他们也津津乐道于他们的学习能力,一会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂中断向量处理,这样的技术人员,不管掌握

    了多少所谓的新语言,永远不会有质的提高。

    善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。

    一个不具备成长性的程序员,即便眼前看是个高手,建议也不要选用,因为他落伍的时候马上就到了。具备以上全部素质的人,应当说是够格的程序员了,请注意以上的各种素质都不是由IQ决定的,也不是大学某些课本里可以学习到的,需要的仅仅是程序员对自己工作的认识,是一种意识上的问题。

    那么作为高级程序员,以至于系统分析员,也就是对于一个程序项目的设计者而言,除了应该具备上述全部素质之外,还需要具备以下素质:

    1.需求分析能力

    对于程序员而言,理解需求就可以完成合格的代码但是对于研发项目的组织和管理者,他们不但要理解客户需求,更多时候还要自行制定一些需求,为什么这么说呢?

    一般而言,进行研发任务,也许是客户提出需求,也许是市场和营销部门提出的需求,这时候对于研发部门,他们看到的不是一个完整的需求,通常而言,该需求仅仅是一些功能上的要求,或者更正规些,可能获得一个完整的用户视图;但是这都不够,因为客户由于非技术因素多一些,他们可能很难提出完整和清晰,或者说专业性的性能需求,但是对于项目组织者和规划者,他必须能够清醒认识到这些需求的存在并在完成需求分析报告的时候适当的提出,同时要完整和清晰的体现在设计说明书里面,以便于程序员编码时不会失去这些准则。

    程序设计者必须正确理解用户需求所处的环境,并针对性做出需求的分析,举例而言,同样一个软件通过ASP租用方式发布和通过License方式发布,性能需求可能就是有区别的,前者强调的是更好的支撑能力和稳定性,而后者则可能更强调在各种平台下的普适性和安装使用的简捷性。

    2.项目设计方法和流程处理能力

    程序设计者必须能够掌握不少于两到三种的项目设计方法(比如自顶至下的设计方法,比如快速原型法等等),并能够根据项目需求和资源搭配来选择合适的设计方法进行项目的整体设计。设计方法上选择不当,就会耽误研发周期,浪费研发资源,甚至影响研发效果。 一个程序设计者还需要把很多功夫用在流程图的设计和处理上,他需要做数据流图以确立数据词典;他需要加工逻辑流图以形成整体的系统处理流程。一个流程有问题的系统,就算代码多漂亮,每个模块多精致,也不会成为一个好的系统。当然,做好流程分析并选择好项目设计方法,都需要在需求分析能力上具有足够的把握。

    3.复用设计和模块化分解能力

    这个似乎又是老调重谈,前面基本素质上不是已经说明了这个问题吗?作为一个从事模块任务的程序员,他需要对他所面对的特定功能模块的复用性进行考虑,而作为一个系统分析人员,他要面对的问题复杂的多,需要对整体系统按照一种模块化的分析能力分解为很多可复用的功能模块和函数,并针对每一模块形成一个独立的设计需求。举个例子,好比是汽车生产,最早每辆汽车都是独立安装的,每个部件都是量身定做的,但是后来不一样了,机

    器化大生产了,一个汽车厂开始通过流水线来生产汽车,独立部件开始具有一定的复用性,在后来标准化成为大趋势,不同型号,品牌甚至不同厂商的汽车部件也可以进行方便的换装和升级,这时候,汽车生产的效率达到最大化。软件工程也是同样的道理,一个成熟的软件行业,在一些相关项目和系统中,不同的部件是可以随意换装的,比如微软的许多桌面软件,在很多操作模块(如打开文件,保存文件等等)都是复用的同一套功能模块,而这些接口又通过一些类库提供给了桌面应用程序开发者方便挂接,这就是复用化的模块设计明显的一个佐证。

    将一个大型的,错综复杂的应用系统分解成一些相对独立的,具有高度复用性的,并能仅仅依靠几个参数完成数据联系的模块组合,是作为高级程序员和系统分析员一项最重要的工作,合适的项目设计方法,清晰的流程图,是实现这一目标的重要保证。

    4.整体项目评估能力

    作为系统设计人员,必须能够从全局出发,对项目又整体的清醒认识,比如公司的资源配置是否合理和到位,比如工程进度安排是否能最大化体现效率又不至于无法按期完成。评估项目整体和各个模块的工作量,评估项目所需的资源,评估项目可能遇到的困难,都需要大量的经验积累,换言之,这是一种不断总结的累计才能达到的境界。在西方一些软件系统设计的带头人都是很年长的,比如4,50岁,甚至更老,他们在编码方面已经远远不如年轻人那样活络,但是就项目评估而言,他们几十年的经验积累就是最重要和宝贵的财富。中国缺这么一代程序员,主要还不是缺那种年纪的程序员,而是那种年纪的程序员基本上都是研究单位作出来的,都不是从专业的产品化软件研发作出来的,他们没有能积累那种产品化研发的经验,这也是没有办法的事情。

    5.团队组织管理能力

    完成一个项目工程,需要团队的齐心协力,作为项目设计者或研发的主管人,就应当有能力最大化发挥团队的整体力量,技术管理由于其专业性质,不大同于一般的人事管理,因为这里面设计了一些技术性的指标和因素。

    首先是工作的量化,没有量化就很难做到合适的绩效考核,而程序量化又不是简单的代码行数可以计算的,因此要求技术管理人员需要能真正评估一个模块的复杂性和工作量。 其次是对团队协作模式的调整,一般而言,程序开发的协作通常分为小组进行,小组有主程序员方式的,也有民主方式的,根据程序员之间的能力水平差距,以及根据项目研发的需求,选择合适的组队方式,并能将责权和成员的工作任务紧密结合,这样才能最大发挥组队的效率。

    一个代码水平高的人,未必能成为一个合格的项目研发主管,这方面的能力欠缺往往是容易被忽视的。

    综上可以看到,作为一个主管研发的负责人,一个项目设计者,所需要具备的素质和能力并不是程序代码编写的能力,当然一般情况下,一个程序员通过不断的总结提高达到了这种素质的时候,他所具有的代码编写能力也已经相当不简单了,但是请注意这里面的因果关系,一个高水平的项目设计者通常已经是代码编写相当优秀的人了,但是并不是一个代码相当优秀的程序员就可以胜任项目设计的工作,这里面存在的也不是智商和课本的问题,还是在于一个程序员在积累经验,逐步提升的时候没有意识到应当思考哪方面的东西,没有有意识的就项目的组织和复用设计进行揣摩,没有经常性的文档习惯和总结习惯,不改变这些,我们的合格的项目设计者还是非常欠缺。

    另外,为防止有无聊的人和我较真,补充一点,本文针对目标是作商业化的软件项目和工程,那些科研机构的编程高手,比如算法高手,比如图象处理高手,他们的工作是研究课题而非直接完成商业软件(当然最终间接成为商业产品,比如微软研究院在作的研究课题),因此他们强调的素质可能是另外的东西,这些人(专家),并不能说是程序员,不能用程序员的标准去衡量。

    最后补充一点东西,一个软件项目研发的设计流程是怎样的呢?以通常标准的设计方法为例,(不过笔者喜欢快速原型法)。

    第一个步骤是市场调研

    技术和市场要结合才能体现最大价值。

    第二个步骤是需求分析

    这个阶段需要出三样东西,用户视图,数据词典和用户操作手册。用户视图是该软件用户(包括终端用户和管理用户)所能看到的页面样式,这里面包含了很多操作方面的流程和条件。数据词典是指明数据逻辑关系并加以整理的东东,完成了数据词典,数据库的设计就完成了一半多。用户操作手册是指明了操作流程的说明书。

    注意,用户操作流程和用户视图是由需求决定的,因此应该在软件设计之前完成,完成这些,就为程序研发提供了约束和准绳,很遗憾太多公司都不是这样做的,因果颠倒,顺序不分,开发工作和实际需求往往因此产生隔阂脱节的现象。

    需求分析,除了以上工作,笔者以为作为项目设计者应当完整的做出项目的性能需求说明书,因为往往性能需求只有懂技术的人才可能理解,这就需要技术专家和需求方(客户或公司市场部门)能够有真正的沟通和了解。

    第三个步骤是概要设计

    将系统功能模块初步划分,并给出合理的研发流程和资源要求。作为快速原型设计方法,完成概要设计就可以进入编码阶段了,通常采用这种方法是因为涉及的研发任务属于新领域,技术主管人员一上来无法给出明确的详细设计说明书,但是并不是说详细设计说明书不重要,事实上快速原型法在完成原型代码后,根据评测结果和经验教训的总结,还要重新进行详细设计的步骤。

    第四个步骤是详细设计

    这是考验技术专家设计思维的重要关卡,详细设计说明书应当把具体的模块以最‘干净’的方式(黑箱结构)提供给编码者,使得系统整体模块化达到最大;一份好的详细设计说明书,可以使编码的复杂性减低到最低,实际上,严格的讲详细设计说明书应当把每个函数的每个参数的定义都精精细细的提供出来,从需求分析到概要设计到完成详细设计说明书,一个软件项目就应当说完成了一半了。换言之,一个大型软件系统在完成了一半的时候,其实还没有开始一行代码工作。那些把作软件的程序员简单理解为写代码的,就从根子上犯了错误了。

    第五个步骤是编码

    在规范化的研发流程中,编码工作在整个项目流程里最多不会超过1/2,通常在1/3的时间,所谓磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高,编码时不同模块之间的进度协调和协作是最需要小心的,也许一个小模块的问题就可能影响了整体进度,让很多程序员因此被迫停下工作等待,这种问题在很多研发过程中都出现过。编码时的相互沟通和应急的解决手段都是相当重要的,对于程序员而言,bug永远存在,你必须永远面对这个问题,大名鼎鼎的微软,可曾有连续三个月不发补丁的时候吗?从来没有!

    第六个步骤是测试

    测试有很多种:按照测试执行方,可以分为内部测试和外部测试;按照测试范围,可以分为模块测试和整体联调;按照测试条件,可以分为正常操作情况测试和异常情况测试;按照测试的输入范围,可以分为全覆盖测试和抽样测试。以上都很好理解,不再解释。

    总之,测试同样是项目研发中一个相当重要的步骤,对于一个大型软件,3个月到1年的外部测试都是正常的,因为永远都会又不可预料的问题存在。

    完成测试后,完成验收并完成最后的一些帮助文档,整体项目才算告一段落,当然日后少不了升级,修补等等工作,只要不是想通过一锤子买卖骗钱,就要不停的跟踪软件的运营状况并持续修补升级,知道这个软件被彻底淘汰为止。

    写这些步骤算不上卖弄什么,因为实话讲我手边是一本《软件工程》,在大学里这是计算机专业的必修课程,但是我知道很多程序员似乎从来都只是热衷于什么《30天精通VC》之类的,他们有些和我一样游击队出身,没有正规学过这个专业,还有一些则早就在混够学分后就把这些真正有用的东西还给了老师。

    fans乱嚷嚷,混淆视听,实际上真正的技术专家很少在网上乱发帖子的,如笔者这样不知天高地厚的,其实实在是算不上什么高手,只不过看不惯这种对技术,对程序员的误解和胡说,只好挺身而出,做拨乱反正之言,也希望那些还fans们能认真想想,走到正途上,毕竟那些聪明的头脑还远远没有发挥应有的价值。沉迷于一些错误人士的coding


    关注我

    喜欢别忘了点赞+关注我

    展开全文
  • 题目是比较复杂的,它包含的...因为技术招聘除了考察人的协作精神和工作态度,大目标便是判断人的技术能力和实际水平。在这件事情上多做观察、思考是很有意义的。 对于考察人的技术等级,学界是有认真的研...

    这个题目是比较复杂的,它包含的东西比较多,认真讨论估计能写几万字。如果是专业研究,我看能写一本书了。这里打算根据自己的学习过程和工作经验,谈一下要点问题,均属个人看法,欢迎讨论。

    写这篇文章的初衷,跟前段时间跟朋友们聊招聘有关。因为技术招聘除了考察人的协作精神和工作态度,一大目标便是判断人的技术能力和实际水平。在这件事情上多做观察、思考是很有意义的。

    对于考察人的技术等级,学界是有认真的研究的。参见:德雷福斯模型解说。

    德雷福斯模型把人的技能水平,分成 5 级:新手、高级新手、胜任者、精通者、专家。

    对不同技能等级的认定是这样的:

    新手:依靠指令清单,必须按部就班。就是必须给出详细而具体的操作规则,才能工作。比如你做一道从未做过的菜,需要看菜谱的说明,第一步做什么,第二步做什么等等,直到最后烹饪结束。

    高级新手:有限的情景洞察力,同等对待工作的各个方面。对全局性、体系性的东西没兴趣。这是小工的水平。比如他能跟着师傅干点活,打打下手。可以靠着反复检索搜索引擎、StackOverflow 解决具体的小问题。

    胜任者:能够独立解决各种各样的领域内问题。这是一般的企业招聘,比较希望招到的等级,招进来稍作适应就能干活了,省心省力。

    精通者:经验丰富,可以自我纠正、自我改进。这类等级的人,思考可以指向内在,通过反省、反馈改善技能。这种在企业可以算上高手、大拿了,培养不易。

    专家:依靠直觉工作,不需要解释和理由。实际你让他解释,他可能也说不出个所以然,就是直觉给出答案,然后还是对的。专家人数稀少,需要很长时间训练、实践。通常的说法是 10 年出专家,10000 小时定律。

    这个是理论上的研究,实践中比较缺乏操作性,难以迅速的判定应聘者的实际情况。不信你打开收进来的大把简历,刚毕业的学生,每个技能名词上面都是一堆堆的“精通” – 你相信么?但它可以当成一个职业技能等级判定的参照标准。

    于是乎,各家企业开启了各种“笔试”、“机试”,多轮面试,并且严格要求学历以及出身院校,试图以此过滤掉不合意的应征者,留下合格的人选。它当然是可行的,但是效果一般,而且容易出错,错失有思想有水平的人。不然也不会催生出各类“推荐式”的招聘。

    看重学历、学校当然也有其优点:它是快速过滤的手段,毕竟能考上好学校的人智商不会太差吧。但在大数字公司的一朋友说,公司里面还有初中毕业,一直精研安全领域的人,技术能力也是十分出色。如果严苛对待背景,这些人就会错过了。因为人的生活多种多样,有各种历史的背景因素影响经历。而部分人的经历,就是跟一些人不同的,可是不妨碍他们同样可以变得优秀。招聘,实际上是建立信任关系。如果有充足的信息证明,应聘者足够优秀,这就够了。条条框框只是辅助手段,并不是目的。

    任正非的洞察力一流

    推荐式的招聘实际要靠谱的多,因为人很容易了解熟悉的人的水平。这是靠推荐者的信用背书。人平时沟通时说什么话,日常看什么书,关注哪些领域,琢磨过啥问题,哪些东西很熟,这个经常聊的熟人往往都知道。可是,这类招聘局限性也很大:面窄、靠机缘。靠推荐能招几个好手啊?好手往往是各家争抢的对象,窗口期有限,基本不会缺工作的。

    说了一圈,还是要在技能水准判定上有更高效率的办法,招进合适的人来。

    回到开头的德雷福斯模型,既然人的技能是分级的,那么对待不同的职位要求,也应该侧重不同的考察角度。如果千篇一律的走招聘流程,就容易出问题了。比如你明明要找的是“精通者”,可上来就让人一堆笔试、机试,这是不合适的。对方会十分的厌烦。体现高水平技术能力的并不在默写什么“字符串算法”那里。这反倒是刚毕业的人占便宜,因为才学过不久,印象深。不信你让工作 10 年的人跟计算机专业应届生比比写排序算法,真未必能赢。但是这并不重要 – 你干活不看手册不查文档吗?聪明人从不死记硬背。重要的地方在于对问题域的准确、深刻的理解,对各类技术优劣点、各种条件平衡的评判和把握。

    对待初阶新人,应着重考察的是基本功是否扎实,专业成绩是否优秀。更重要的,是他对职业的热情,学习能力和研究精神。某类人要说起技术来,滔滔不绝,两眼放光,充满热情,对未知的、新生的各类概念、技术非常好奇,这种人想差都难。因为他会自我驱动,不用督促,自己就钻研前进。反之,觉得这个职业待遇高,只是想混饭吃的人,很少走得长远。这类初阶新人以毕业生、工作年限少者为多。测试考核,可以笔试查看其对基础概念的理解是否准确,知识领域的大致范围。甚至,布置一个有点挑战性的小任务,让他尝试解决,说明思路。

    考察胜任、精通者的策略不一样。笔试做题没啥用,原因前面说了。这类招聘是重头戏,企业都喜欢找这样的,能干活。所以考核评估的地方也较多。我觉得可以分成几个方面去看。意识是否先进,是否会反省思考;是否善于解决问题,富有创造性;是否有比较深的积累和广阔的知识面。

    业界的开发思想也是在不断变化,工具链一直在革新。聪明的人不用蛮力,而爱用工具提升效率,喜欢自动化操作解放人力。要查看人用什么开发工具链,用什么开发环境,解释下为什么?好的开发者会及时注意新出现的工具,挖掘它能解决什么问题,并尝试吸收,解决自己的需求。如果没有这个思想意识,工作效率就会打折扣了。因为你会落后行业发展水平。人善于自我反省,则会催动自我纠正,这正是精通者的特征。参考:优秀的开发者为什么要学习研究新的编程语言?

    解决问题的能力是重头戏,也是企业招聘人的主因。人要善于解决实际问题,而且,要学会聪明的解决问题。解决问题要看思路,看手段,看是否有创造性,这是真正考验人能力的地方。好的开发者,会考虑很多可能选项,预估各种优劣,给出一个较优的方案。 遇到难题,会用各种方法尝试。经验丰富的人,常常会使用技术的组合手段来处理难题,而不是一个语言一个工具到处用。所以,要查看下过往的项目经历遇到的问题、困难,是如何解决的,思路如何。一些公司据说不招聘不会用谷歌的工程师。谷歌打不开?嘿嘿,这就是你要克服的困难啊。这你都解决不了,还做什么研发。谷歌是人类最全、最新知识的总索引,充分利用事半功倍。

    考察知识的深度、广度,对重要领域的概念是否有深刻的理解和掌握,以及从各类工作经验中得到的认知。问问他看过什么书,研究过什么东西。说白了,知道的东西是否多。一些公司很喜欢用 CheckList 模式来考核,列一堆领域的知识点、概念,问人懂不懂,知道就是水平好,不懂就是水平差。实际情况并非如此。人的工作过程是独立的,一些事情如果没有工作机会去接触并解决,那么一些冷僻的问题就永远都碰不上。当然也就不知道。但你能说没做过就一定做不好么?

    另外,人的技能树,其实也是“犬牙交错、参差不齐”的。什么意思?技术领域非常的广阔,你真的没办法每个领域都很精通,实际上是这个做的多,懂的多,那个用的少,知道的少。这个时候,应看具体知识领域,是哪一类。它是否需要复杂的、难度较高的背景。门槛高的技术,需要的配套技能多得多,比如 AI、机器学习。而一般产品应用领域则不然,了解核心概念、设计意图,看着手册、最佳实践,也就能上手了。这个暂时不会,实际无关紧要的,工作一段学的认真点就会了。但是门槛高的领域,就需要很长时间的学习了。这是本质的差别。

    我曾看见某公司放出的职员技能树,包罗万象,几乎一切 IT 领域的知识技能都在里面了,还声称要求“全部精通”。我不知道它如何定义的“精通”,如果按德雷福斯模型的定义,能做到的那是神,不是人类。这个纯属吹牛皮,我压根就不信。如果真有这样的人,出来让我膜拜下。因为每个稍大点的领域,都足够让你钻研一辈子,因为它们也在迅速发展呀。业内流传“全栈工程师”的说法,鼓吹自己是全栈的人经常是前端工程师。而研究后端工作领域的技术高手经常鄙视这类人:真以为会点 Node.js 就能解决一堆后端的事务了么?我也懂一些前端,也能号称“全栈”,但在不同领域的专业性是什么水准,自己明白的很。前端要解决的事情也有很多复杂性。全栈实际是反专业化的,是人力资源稀缺时候的低成本选择。

    更高一层,则是考察人本身了。人的视野够广阔么?其它领域的知识有了解吗?一些问题的解答并不在问题域本身,而是在外面的领域。所谓“功夫在诗外”。公司讲求团队协作,总要面临不同的分工合作问题。比如产品、运营的人提需求,可以换位思考吗?合作意识强么?谁也不想招个刺头进来吧?把团队的气氛和人际关系搞的一团糟,大家做事都不痛快、不顺心,又如何安心做好工作?最终只能让团队工作效率下降,甚至瓦解。

    要说专家,实际上有研究者认为是需要刻意练习 + 充分实践才能功成。并不是每个人经过足够的工作年限,都自动成为专家。有的人工作 10 年,可能后面 9 年都在重复第一年的工作任务,毫无改进。而职业上的训练机会,又跟大环境乃至运气息息相关,并不是每个人都有机缘的。但是把个人的职业技能做到胜任乃至精通,则是完全可行的,这只需要认真和勤奋,工作态度问题。

    微信公众号:javafirst

    扫码关注免费获取更多资源 

    展开全文
  • 性格开朗容易与人相 处注重团队协作精神且能承受较大压力 注重专业基础学习和实践能力的培养在校期间不仅做过多课程 设计暑假期间也去过单位实践过 java 编程和网站开发具有浓厚 的兴趣 篇二 java 程序员简历 ...
  • 说实在的,对于一个刚实习不到一年的程序员来说,也才...就比如说,那一个语言沟通能力很强的程序员一个语言沟通能力很差的程序员分别和客户交谈,探明需求,就算两者都可以达到目的,可其过程所花费的精力却大...
  • 对于某位网友对程序员评价有感

    千次阅读 2016-09-23 16:32:57
    1.程序设计行业是项科技含量高的行业: 金融行业低级的有业务员、交易员,高级的有分析师、精算师。 建筑行业普通的有包工头、制图员,高级的有结构师和设计大师 IT行业新手的有熟记api的编码员、有静态某...
  • 怎样评估一个程序员

    千次阅读 2016-07-20 12:57:43
    1、计算机理论基础:计算机理论技术原理:现在大多数视频教程培养出来的新手,这个东西普遍不被重视,但是在实际工作,分析清楚一个问题的因果脉络,这方面还是有一定要求的,实际工作中很多人欠缺问题分析能力的...
  • 记得之前在知乎上看到一个...综合来讲,其实评判一个程序员是否优秀的标准就一个:就是解决问题的能力。 在项目开发中,一个程序员能力往往就等于其解决问题的能力。假如想有个尺度来衡量这个能力的话,一个程...
  • 一个程序员的沉淀整理

    千次阅读 2017-05-12 01:27:45
    坐标北京,我是一个搞了四年开发普通的android程序员,学历这个东西不可否认,本科毕业之后能找到的都是在做业务功能类的工作,积累到的都是处于“用”的水平的东西,平时花在学习上的时间也是很少,看我之前的博客...
  • 一个程序员多年的收藏

    万次阅读 热门讨论 2013-06-08 15:50:17
    [置顶] 一个程序员的多年珍藏(1月23日最新更新) 文章分类:Java编程 程序员珍藏的东西会是什么?呵呵,除了平时写的代码,就是那些百看不厌的电子书了。 昨天很郁闷,我用了5年的移动硬盘,莫名奇妙的坏掉了。...
  • 一个程序员老总的年终总结2015版

    千次阅读 2015-12-31 07:33:55
    但只要是真情流露的就会有读者,我是一个喜欢总结和反省的人,但有时这恰恰也是我的弱点,一个人思考得太多太重,有时会阻碍前进的步伐,虽然看起来很稳很理性,但没有速度没有高利益,这是程序员创业者的一个重大...
  • Java 一个java程序员的年终总结

    千次阅读 2013-06-24 11:14:36
    我不是牛人,但是自我感觉还算是合格的程序员,有必要写下自己将近4年来的经历,给自我以提示,给刚入行的朋友提供点参考。 第. Java程序员需要不断的学习; 貌似这一点适应的行业最广,但是我可以很肯定的说...
  • 一个程序员笑话看软件开发管理

    千次阅读 2013-08-26 22:48:30
    一个笑话是这样的: 1. 程序员写出自认为没有Bug的代码。 2. 软件测试,发现了20个Bug。 3. 程序员修改了10个Bug,并告诉测试组另外10个不是Bug。 4. 测试组发现其中5个改动根本无法工作,同时又发现了15个新...
  • 给广大单身妹子提供一个新思路:找不到程序员当男朋友的话,不如试试把男朋友培养成程序员~ 我对象本科是学机械的,现在在某top3读计算机视觉方向博一,主要使用语言是python和c++,除了完成学校小导师的科研任务...
  • 一个iOS程序员的BAT面试经验

    千次阅读 2016-04-05 11:45:09
    一个iOS程序员的BAT面试经验
  • 如何辨别一个程序员水平的高低?

    千次阅读 2018-06-15 09:44:15
    之前公司有同事,满嘴跑火车,说他朋友多么牛逼,什么月薪多少K,什么技术最牛逼,之类的。每次听他说话我都只能微微笑以作回应。后来项目上线后出了点问题,让他排查,结果他一点头绪都没。遇到报错,他就顿...
  • 一个程序员工作三年的思考

    千次阅读 2015-12-22 22:43:35
    2012年下半年我参与了一个新的页游项目,做了一年多,我努力工作,积极进取,一个人顶两个人,那一年我被评为S级员工,于是加薪,升职。 那还是Flash的年代,我之所以比其他人手快,并不是因为我聪明,是因为我大学...
  • 如何辨别一个程序员水平的高

    千次阅读 2018-08-29 20:18:23
    程序员大神 先来看小故事: ...小王:人家没写这块,只有我这里才需要文件内容进行特殊处理。 老大:那么问题就在这块儿了。(缩小问题范围了) 小王:我只是把文件内容写好了就导入了数据库了呀...
  • 本文标题:好与坏的程序员:如何客观评价程序员的水平? 本文地址:https://www.oschina.net/news/87295/good-and-bad-programmer 有感于知乎上的篇关于程序员的讨论。让我突然之间心有戚戚然的感觉。最近段...
  • 面试:如何评价程序员

    千次阅读 2018-06-02 14:38:00
    他 们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其实我是一个程序员 自己有哪些优势?  1,具有良好的英语阅读能力,能够阅读英文资料...
  • 当我们评价一个程序员是否优秀时,要从多个方面进行评估。 专业技能、专业知识、创造力、经验,这些都是重要的因素。当然,还有他们的工作态度、工作效率和工作质量。如果程序员的工作是没有效率的,那就意味着他们...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,123
精华内容 14,449
关键字:

对一个程序员的能力评价