开发人员_开发人员配比 - CSDN
精华内容
参与话题
  • 软件开发人员的职业发展规划

    万次阅读 2018-08-25 12:42:13
    如何引导我们年青的技术人员进行职业规划,帮助他们快速成长,同时也为公司培养人才、留住人才,成为各部门经理人面临的一个重要任务。   我们的各级经理在指导团队成员进行职业发展规划时,需要注意三个基本要点...

    几年来,随着公司每年的“校园行”、“金种子”等招聘项目的开展,越来越多的新鲜血液加入到我们这个大家庭。如何引导我们年青的技术人员进行职业规划,帮助他们快速成长,同时也为公司培养人才、留住人才,成为各部门经理人面临的一个重要任务。

     

    我们的各级经理在指导团队成员进行职业发展规划时,需要注意三个基本要点:

    1.         首先要了解团队成员,才能根据他的个人性格、兴趣、能力设计适合他自己的职业生涯发展路线。当下的80后90后个性都很强,一人一个想法,但可以大致分为以下几种类型:

    •   进取型:不甘于现状,刻苦学习,出现任何新机会都要去争取,渴望创业。
    •   自由型:不受束缚,希望有一个空间供他们发挥能力,最好是不用上班,在家里做SOHO一族。
    •   安全型:寻求工作上的稳定,愿意做重复性、无压力、不加班的工作,并可以一直维持下去。
    •   平衡型:工作很认真,表现也不错,但是工作是工作,生活是生活,分得清清楚楚,决不愿意工作挤占了生活的时间。
    •   攀登型:特点比较明显,目标高远,想进入企业高层,最好是能干总裁,如果没有机会就迅速跳槽。
    •   技术型:性格内向,喜欢独立思考,做事谨慎细致。不愿意浪费时间去管其他人的事。
    •   管理型:考虑问题比较理智,善于从宏观角度考虑问题。能在信息不全的情况下,分析解决问题,善于影响、监督、率领、操纵、控制组织成员,善于使用权力。

    2.         其次要分析团队成员所处的环境。大到社会环境、行业发展阶段、市场环境,小到公司发展阶段、项目背景、个人机遇等都可能对一个人发展产生很大影响。

    3.         还要了解团队成员的个人目标,他的短期目标、中期目标、长期目标各是什么?目前处于目标路线的什么位置?他的个人特性和当前环境对他实现目标有什么影响?是否有一种途径可以让他现有的职业与其人生基本目标相一致?

     

    经理可以根据以上三个基本要点,针对不同的个人,指导他们进行职业定位和规划。按照GC目前业务状况和发展趋势,我们认为可以将技术人员的职业生涯大致分为三个阶段,每个阶段有不同的职业路径可供选择:

    1.         第一阶段为起步期,一般为毕业后的3年之内。不论何种背景,这一阶段的主要工作基本是编程、测试和维护;主要目标是学习和掌握公司产品/项目的基本技术、工具和流程。本阶段是软件行业所有职业的起点和立身之本,不论将来担任何种职位,都必须依赖于这一阶段打下的基础。当前这一阶段的职位主要有三类:

    •   软件开发方向:主要职位有“助理软件工程师”、“软件工程师”。
    •   软件测试方向:主要职位有“助理测试工程师”、“测试工程师”。
    •   软件技术方向:主要职位有“系统工程师”等;

    2.         第二阶段为成长期,一般为毕业后的3~10年。这一阶段的人员已经掌握了基本的技术技能和经验,能够独立工作、指导或带领他人工作。公司为这类人才提供了专业和管理两条发展通道,具体地说有以下七大类发展途径:

    l  软件技术方向

    •   职业通道:高级软件工程师—主管软件工程师——软件架构师——高级架构师——技术专家
    •   特点:善于独立思考,做事谨慎细致,热衷于专研技术及其创新,对新技术敏感,技术涉面广。属专业技术人才。
    •   准备:努力专研技术,紧跟行业动向,深入研究,掌握精髓,做到该领域的专家;经常发表技术文章,总结交流技术经验;获得IBM、MS、Oracle等各主要技术的认证、攻读软件硕士/博士学位等。
    •   风险:由于IT业发展很快,如果所专研的技术领域逐渐被市场淘汰(如COBOL、SYS390、PB),需尽快转型到新的领域。
    •   目标:对于进取型,可以考虑IT公司的技术专家,或科研单位的研究人员;对于平衡型,可以考虑大型软件公司的资深开发工程师,或企业信息部门的系统维护工程师。

    l  开发管理方向

    •   职业通道:高级软件工程师——主管软件工程师——开发经理/项目经理/产品经理——项目总监——技术管理总监
    •   特点:首先要精通产品和技术,然后还有具备良好的协调沟通能力、能团结人。精通软件工程的流程与进度控制、质量控制、资源的有效使用等。属复合型技术人才。
    •   准备:需要有软件开发各生命周期(如开发、测试)的工作经验,至少在一项技术方面具备专家水准,能触类旁通;精通项目管理的知识、技术、技巧与方法;获得PMP、CMM、软件工程、MBA等方面的认证和学位等;具备一定的行业知识。
    •   风险:项目管理比较辛苦,压力比较大,时常出差。
    •   目标:对于进取型,可以考虑IT公司的CTO;对于平衡型,可以考虑非IT企业的CIO。

    l  测试技术方向

    •   职业通道:软件工程师/测试工程师——高级测试工程师——测试分析师——测试专家
    •   特点:做事谨慎细致,重视细节;精通QC与QA等技术和方法,熟悉IT技术及项目管理流程,精通至少一个行业(如电信、金融、物流等)的业务流程;强调沟通,属专业技术人才。
    •   准备:精通测试理论、方法与工具,如黑盒/自动化/安全/性能/白盒测试等;有一定的编程能力;获得GB2000、ISO9001、CMM等质量体系及软件工程、质量控制等方面的认证和学位;学习业务知识。
    •   风险:目前来看测试与业务流程密切相关,如果不懂行业的话很难深入测试。
    •   目标:对于进取型,可以考虑IT公司或专业测试公司的测试专家;对于平衡型,可以考虑大型软件公司或专业测试公司的资深测试工程师。

    l  质量管理方向

    •   职业通道:软件工程师/测试工程师——高级测试/品质保证工程师——测试/品质保证主管——测试/品质保证经理——测试/品质保证总监
    •   特点:做事谨慎细致,重视细节,有具备良好的协调沟通能力、能团结人。精通软件工程的质量控制、流程与过程控制、风险管理、质量保证等。属复合型技术人才。
    •   准备:需要有软件开发各生命周期(如开发、测试)的工作经验,至少在一项技术方面具备专家水准,能触类旁通;学习业务知识;获得PMP、CMM、ISO9001、ISO27001、GB2000、敏捷开发、MBA等方面的认证和学位等。
    •   风险:质量管理需要精通相当广泛的专业知识,如开发、测试、流程、QA、项目管理等。
    •   目标:对于进取型,可以考虑IT公司或专业测试公司的CQO/ CTO,或质量管理咨询公司的质量认证顾问;对于平衡型,可以考虑大型软件公司的项目管理/品质保证/流程控制负责人。

    l  IT实施方向

    •   职业通道:软件工程师/测试工程师——高级测试工程师——实施顾问——高级实施顾问——实施经理——实施总监
    •   特点:首先要熟悉IT技术及项目管理流程,然后还有具备良好的协调沟通能力和行业知识,精通产品,偏重于产品与行业的结合。
    •   准备:了解各类平台的软、硬件、网络知识,安装与使用;精通所要实施的应用系统结构,以及该产品所在的应用行业知识;参加项目管理、PMP、软件工程培训等;注重衣着言行等职业形象的培养。
    •   风险:实施工作压力比较大,时常出差。
    •   目标:对于进取型,可以考虑的是IT公司的实施总监;对于平衡型,可以考虑的是大型软件的资深实施顾问(如SAP、Oracle、SSA)。

    l  IT咨询方向

    •   职业通道:软件工程师/测试工程师——高级测试工程师——咨询顾问——高级咨询顾问——咨询经理——咨询总监
    •   特点:首先要熟悉IT技术及项目管理流程,然后还有具备良好的协调沟通能力和深入的行业知识。偏重于行业业务,如财务、金融、HR、SCM等。
    •   准备:熟练掌握至少一类IT技术;深入的行业知识,能够达到该行业的专家水准;攻读MBA学位或CPA、CFA等行业认证;要具备良好的文字能力和外语水平;注重衣着言行等职业形象的培养。
    •   风险:咨询工作需要快速学习、工作压力比较大,时常加班。
    •   目标:对于进取型,可以考虑的是专业咨询公司的咨询总监、行业顾问;对于平衡型,可以考虑的是专业软件研发机构的资深系统分析员。

    l  IT营销方向

    •   职业通道:软件工程师/测试工程师——售前工程师——客户经理——销售经理——销售总监
    •   特点:首先要熟悉IT技术、产品及应用方案,然后还有具备优秀的协调沟通能力和深入的人脉关系。
    •   准备:掌握相关行业和解决方案;对行业流行的应用系统的架构非常熟悉;培养自己的市场概念和思维,精通市场营销知识、策略和技巧;攻读营销、MBA等学位;积累庞大的人脉关系,学会和用户打交道,培养市场意识和决策能力;注重衣着言行等职业形象的培养。
    •   风险:工作压力比较大,没有固定的工作时间,时常出差,人际关系要广。
    •   目标:对于进取型,可以考虑的是IT公司的市场总监。对于自由型的人,可以考虑自己创业。

    3.         第三阶段为发展期,一般为工作10年以后。这一阶段的人员已经成为组织内的技术或管理骨干,可以向更高层次的综合管理和企业战略方向发展。如果说第一阶段比较容易实现,第二阶段通过一定程度的努力可以实现,而第三阶段则主要靠机遇和个人奋斗了。

     

    最后,经理还需要引导团队成员,确定好自身的职业发展目标后,要专注进取,不要频繁更换岗位,特别是不要为了多谋一点工资而转移阵地,否则最后对哪个行业和技术都没有摸透,永远是新手!

    展开全文
  • 好的开发人员需要具备的那些素质

    千次阅读 2019-06-20 17:06:03
    1、积极,主动性 这个其实比较重要,如果说技术实力不强,有些东西没用过,这些其实都不是问题,只要主动的去学习,主动的去发现问题,跟进问题,其实很多技术类的问题都不是问题了。这个放在第一位的素质。...

    1、积极,主动性

    这个其实比较重要,如果说技术实力不强,有些东西没用过,这些其实都不是问题,只要主动的去学习,主动的去发现问题,跟进问题,其实很多技术类的问题都不是问题了。这个放在第一位的素质。

     

    2、有风险提前抛出来

    做项目肯定有风险,没有风险项目也就没有挑战了。如果仅仅靠项目经理去把控,一来项目经理没有那么多精力,二来每个人的视野有限制,这两个原因导致可能考虑不全,而这个时候,就需要每个开发同学能够主动的发现风险,并提出规避方案,如果没有规避方案,那提出来也行。

     

    3、区分主次,合理规划

    对于系统中的功能进行核心/非核心、主流程/非主流程、高优先级/低优先级的划分。优先完成出核心、主流程、高优先级的部分。避免铺地毯式的一步一步的逐步推进。

     

    4新的想法打算用在项目中的,自己提前搞demo验证过

    有些同学,包括我自己,都会尝试一些新东西,例如新框架,新的工具等。但是有个前提,不要在项目开始或者进行中的时候才考虑用新东西试一下,项目一般都是有时间限制要求的。之前有同事说想在项目中用XX框架,这时候一般会考虑之前有没有搞过,如果搞过,那就放心去用好了,如果没搞过,在项目来临的时候,最好不要用。项目一般有预研阶段,这个时候,如果有新的想法,可以尝试做一些例子。为啥要这样呢?因为新东西有学习成本,这个倒是其次,有些新东西有坑在里面,因为这个世界没有银弹的方案。

     

    5主动承担没人负责的模块

    有些模块的划分,可能没法划分到具体的人,因为可能是两个模块衔接的,这时候,如果时间允许,建议开发同学主动的承担一些没人负责的模块。例如两个模块的衔接、整体页面的安全方案考虑、单元测试的集成、持续集成等。

     

    6自己负责的部分完成之后帮助其他同事

    这个和上一个重复了?没有。刚才的那个是没人负责的,这个是其他同事的,项目内部人员的技术素质可能是参差不齐的,有些东西可能熟悉的人几个小时就能搞定,有的可能需要一天时间,这个时候,如果你熟悉一个模块,而另外一个同事不熟悉,你就可以帮助一下了。

     

    7代码注释充分

    由于我们参与的大多是业务项目,有个特点就是复杂。这时候,就需要有充分的注释,当然是非常必要的环节才加。至于一看就能懂的,那就没有必要添加了。

     

    8代码自测充分,高质量的完成自己负责的模块

    这个必须提一下,开发同学代码编写好了之后,需要提交给测试同学进行测试,有时候测试还分几轮。这时候,bug的情况体现了代码的质量,而质量的保证,除了经验和代码review之外,还需要自己完成一些自测的事情。尤其是主流程必须有,还有就是自己觉得一些边界的条件下。有人说着不是浪费时间吗?时间上这个是节省时间,自测充分之后,后续bug就少,返工就少,讨论问题就少,省了很多时间的。

     

    9畅通的沟通氛围

    项目中有各个角色,沟通必不可少,为啥说要自己创造一个好的沟通氛围呢?因为你需要找别人讨论问题,别人也需要找你讨论问题,如果沟通态度和语气啥的有问题,就会给彼此构建一个屏障,而这个屏障会导致大家沟通不是很顺畅,最终可能就导致一个问题大家理解的不一致。讨论过程中,注重沟通的方式,要做到对事不对人。

     

    10、重构

    重构!重构!重构!重要的事前说三遍。写代码就像写文章,不是一蹴而就的。需要反复的修改和重构。当你发现代码重复、类结构不合理的时候,或者自我对代码感觉不太好的时候,就去重构。技术人员需要一些代码洁癖

     

    11、编码前充分设计

    编码前宁可多花时间进行方案的详细设计,千万不要一接到需求就进行编码。提前进行详细设计,会缩短编码的时间,也会降低bug的发生。变写变想,反而会降低开发效率,还很有可能在临近功能写完时,进行二次修改。

     

    12、学会换位思考

    一个项目是需要多方协作的,例如需要业务、开发、测试、产品、UED,那不同的人必然会有不同的想法,因为大家的知识积累以及经验积累肯定不一样,在大家想法不一致的时候,可以更多的是做个换位思考,先理解对方的观点,了解这个观点背后的原因,然后再来反观自己的想法,相信之后的争吵肯定会少很多,同时在互相理解的基础上,做事情的默契和结果也会有很大的提升;

    在协助中多一些换位思考,多站在对方的角度思考和理解问题,最后大家在协作中能够实现共赢

    开发功能之前站在用户的角度去思考,假如你作为业务用户,你对这个功能会有什么样的需求。

     

    13责任心

    这个放在最后,其实并不是说排名在最后,这个我认为也是很重要的,试想一个没有责任性的人写出来的代码,别人能信得过吗。写代码前要进行深度的思考。写完后要对自己的代码进行充分的测试。上线前需要反复确认自己的代码有没有问题

     

    展开全文
  • 开发人员提升自己的四种方式

    万次阅读 多人点赞 2019-11-19 14:53:54
    在提升软件开发技能方面,有哪些必备的妙招可以帮助自己呢?...如果你问高级开发人员、开发经理或技术总监:“初学者、初级、中级和高级之间的区别是什么?”那么很有可能他们会给你截然不同的意见。 由于存在各...
    640?wx_fmt=gif
    在提升软件开发技能方面,有哪些必备的妙招可以帮助自己呢?

    640?wx_fmt=png

    作者 | Skill Pathway
    译者 | 弯月,责编 | 屠敏
    出品 | CSDN(ID:CSDNnews)
    以下为译文:
     
    开发人员之间所谓的不同“级别”的界线是模糊的。如果你问高级开发人员、开发经理或技术总监:“初学者、初级、中级和高级之间的区别是什么?”那么很有可能他们会给你截然不同的意见。
    由于存在各种各样的意见,因此想花时间搞清楚如何成为“高级”或“中级”开发人员,实际上并没有太大帮助性,所谓的“级别”在大多数情况下都纯属个人意见。
    因此,在本文中,我们想提出一些你可能没有考虑过的方面,如果你照做了就有可能提升自己的开发水平。
     
    640?wx_fmt=png
    建立一个实质性的项目
     
    ReactJS计算器?看着很酷,但并不务实。待办事项清单应用程式?也是很有趣的小工具,但不务实。在本文中,我们来谈论一些与众不同的教程,大多数人都可以尝试一下。
    这些与众不同的教程将从不同的视角、端点和功能出发,构建具有独特性且能展示开发人员创造力的应用。
    那么,我们认为“实质性项目”的例子有哪些呢?
    • 照顾狗狗。

    • 宠物小精灵爱好者的微型社交网络。

    • 供其他人使用的Web后端或前端框架——不是说让你加入框架大战,而是让你了解如何构建框架!

    • 利用你平时主要使用的编程语言构建一个程序包,并在多个项目中使用。

     
     
     
     
    网上有很多时髦的例子,但重点在于你需要围绕你超级感兴趣的事物构建一个更大的项目,或者构建一个完全超乎你当前理解范围的事物。很明显,这两种项目都可以提升你自己,因为你会遇到各种新概念。
     
    640?wx_fmt=png
    向开源做贡献
     
    构建你自己的开源软件包/应用程序,或向现有的代码库贡献代码。
    你自己的开源软件包
    如果你想构建自己的软件包,那么首先请确保不是来自某个教程,而是你真正想发布给别人的东西。
    记录你的创作过程
    如果你可以创建博客文章或视频系列,记录创建方式/原因以及思考过程,那么就更好了。这不仅可以让你从讲故事的角度思考问题并获得新的见解,而且还可以很好地证明你的能力,此外,还可以让成千上万的读者通过你的这个项目受益。
    别人的代码库
    你可以查看一些非常流行代码仓库,比如PHP、Python、java软件包和插件(它们都在GitHub上)。很有可能这些软件包中都含有很多未解决的问题。
    仔细阅读代码库制定的代码贡献指南,通常在代码根目录下的某个.MD文件中,你应该首先阅读该文档,然后开始解决问题。而且你可以更进一步添加一些实用的功能。
    这样做的目的有很多:
    • 证明你能够遵循编程准则(展示给潜在雇主)。

    • 你是开源社区的一员,某个代码库的贡献者中有你的名字。

    • 你熟练掌握了分叉、拉取请求与提交。

    • 你可以了解社区维护的软件包,而且有机会采用一些更好的编程实践。

     
     
     
     
     
    640?wx_fmt=png
    阅读高级开发人员的代码
     
    这是开发人员提升自己的最快方法之一。因为大多数时候,你所阅读的代码都超出了自己当前的水平。
    努力理解这些代码,并与自己的代码进行比较,设法寻找可以改善自己的实现的模式,同时记录下所有能够提高自己的工作流程的技术细节。
    如果你目前没有在某家公司就职的话,那么可能没法这样做。如果你真的没有在公司就职,那么可以从社区寻找开源项目,社区的开发人员经验非常丰富,你可以阅读并理解他们的代码。
    在阅读其他开发人员的代码时,如果有人能够回答你遇到的问题,那么就更好了。你需要让他们知道你在努力理解高级代码,请求他们回答你的一些问题。很多人都愿意提供帮助。
     
    640?wx_fmt=png
    了解更多的编程设计模式和原理
     
    你应该研究一下SOLID、KISS、YAGNI、MVC以及其他种类繁多的设计模式和原理。维基百科上有两个与设计原理和模式有关的页面:
    • https://en.wikipedia.org/wiki/Software_design_pattern

    • https://en.wikipedia.org/wiki/Category:Programming_principles

     
     
    你可以仔细阅读每个模型的定义,然后搜索每个模型的示例——每个示例都非常重要,因为如果你对每个模型实现的前因后果有一定的了解的话,那么才能深入理解这个模型的实现。
    很有可能有些设计模式你根本没听说过。大部分招聘经理也不会全部记住,所以快速阅读一部分设计模式,巩固你的记忆,就能改进编程的过程。
    原文:https://dev.to/skill_pathway/4-ways-you-can-level-up-as-a-developer-17ol
    本文为 CSDN 翻译,转载请注明来源出处。

    【END】

    2019年Python全栈工程师,都是开发人员改怎么转向高收入?

    https://edu.csdn.net/topic/python115?utm_source=csdn_bw

    640?wx_fmt=jpeg
     热 文 推 荐 
     
     
     

     

     

     

     

    640?wx_fmt=gif点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。
    640?wx_fmt=png
    你点的每个“在看”,我都认真当成了喜欢
    展开全文
  • 最近在了解一下关于开发的事情,觉得一些文字对开发人员的总结和思考相当不错。 进 入IT的人员都是基本素质不错的人员,但IT产业似乎总是缺少合适的开发人员,为什么会产生这样现象,关键是缺少合适的开发人员,...

      最近在了解一下关于开发的事情,觉得一些文字对开发人员的总结和思考相当不错。

    进 入IT的人员都是基本素质不错的人员,但IT产业似乎总是缺少合适的开发人员,为什么会产生这样现象,关键是缺少合适的开发人员,也就是说我们并不缺少开 发人员,而是确认高级或者说专业的人员,从而使我们的整体人力优势无法体现出来,在这里说一下我自己在工作期间对软件开发人员的发展过程的一些感受和体 会。
        首先,大致的说一下自己给IT人员发展过程的分类,以及和工作时间的大致关系(以下观点属于个人观点)
        阶段名称              工作年限 
       1入门阶段          本科毕业1-2年以及刚毕业的研究生
       2中级人员          本科毕业3-4年以及研究生毕业1-2年
       3高级人员          本科毕业5-6年以及研究生毕业2-3年
       4架构师            本科毕业7-8年以及研究生毕业3年以上 
       5项目管理人员      本科毕业9年以上以及研究生毕业4年以上

       这是根据我的经验做的一个大致的阶段以及和研发人员工作资历的一个简短的对应情况。关于这个对应关系有几点需要说明,
        1 本科毕业是指软件工程专业,或者相关专业,一些大学的计算机科学等专业和软件工程专业是有很大差别的,比如软件工作专业强调数据结构、算法、软件工程、操作系统、数据库设计概论等专业课程的学习,而其他计算机相关专业是没有这些课程的,其中数据结构、算法、软件工程对开发人员的工作能力和发展影响比较大。
        2现在的本科和研究生虽然数量增加了不少,但从整体能力上来讲水平下降了不少,这和整个社会风气以及自身的素质有关。总体上将,现在的研究生的工作能力和10年前的本科差不多,现在的本科和原来的大专差不多。
        3 博士学位我没有加进去,主要是博士的研究方向太专,一旦单纯的软件行业的博士比较少,多是其他行业的专业博士,这些人的特点是一个整体素质比较高,有很多人,在做开发的时候对软件专业的了解比很多软件专业的硕士要精通很多,但更多的对软件开发的细节重视不够,而往往是这些细节会给项目带来很大的风险,所以不太好做一个标准来说。
        4项目管理人员是我写的最后一个。这个职位和其他的职位似乎不是一个系列的,但在实际工作,技术人员最终的发展都是这个职位,如果你有很好的技术背景和项目经验,成为一个项目管理人员不是一个很难的事情,但如果没有扎实的技术基础容易出现外行领导内行的现象,结果是上级压,下级反,两面受气。
        好了废话说了不少,开始说正题吧。评价一个开发人员有很多方法,我自己一般会从几个方面评价一个开发人员工作能力(只评价能力,而不评价态度,实际工作中开发人员的工作态度对工作能力影响是很大的,这一点大家千万要注意)。A代码编写能力,B设计能力,C调试能力,D文档编写能力,E调研能力,F代码阅读能力,作为高级技术人员还需要G项目管理能力(包括沟通能力,项目控制能力等)


        我们以本科毕业的工作人员来讲述开发人员的不同发展阶段以及相关表现吧
        1入门阶段          本科毕业1-2年以及刚毕业的研究生
         处于入门级别的工作都是刚毕业不久的大学本科学生,一般来说他们没有太高的工作能力,各项技术能力是他们的弱项(中国的教育的确很失败),他们的优势是在于他们的心态,现在的本科一般来说都了解自己的就业情况,所以你一旦给他们一个机会,他们往往会抓住不放,努力地去工作。如果真能努力的去工作,2-3年以后他们的实际工作能力往往比刚毕业的研究生要强很多。好了具体说一下。
        缺点:
           1代码编写能力差,一般在大学4年的全部代码行在1-2万行以下(这个数量在10年前的本科是无法毕业的),另外一个重要的问题,单个程序的代码行比较少,基本在1千行左右,缺乏大代码复杂程序的编程经验,而在实际工作中2-3千行是不可能是一个有效的系统的。由于代码量少,他们对很多理论的理解基本上基于纸面上的。由于对基础理论的忽视,造成了他们在开发的时候急于编码,而不是进行设计,这样做的效果就是编写了一大堆鸡肋代码。这对于其他开发人员来说简直就是灾难,而别人对他们代码的评价又直接打击了这些人员工作信心。
           2设计能力,虽然现在的代码开发环境比10年前方便了许多,但由于代码量的限制,他们对系统的整体结构和异常情况缺乏清晰的认识,他们设计的系统在正常使用的时候一般可以正常运行,但一旦遇到异常情况则完全无法使用,而产生的问题,严重的时候不但会影响自己,而且会影响其他模块,甚至造成整个系统的崩溃.所以一般不应该让他们做太大的系统设计,另外需要格外说明的一个问题,对设计方法的使用是他们的一个很大的欠缺,比如设计数据库结构的时候采用拍脑门法,设计面向流程的程序不会使用流程图,设计面向对象的时候不会使用UML都是他们的特点。
           3 会编码,不会调试,不会发现问题,不会分析问题发生的原因,和排查错误。在测试人员将问题提高给他们的时候,他们一般的表现不是首先检查自己的代码,而是将问题归给别人,什么测试人员测试数据不规范用户不会这么变态输入这些错误的数据,什么这是上边接口传过来的数据,他传错了,我也没有办法处理等等。即使确定是他们的问题,怎么去重现这个问题,定位这个问题发生的地点的方法和手段是他们缺乏的,往往是一筹莫展。
           4基本没有文档编写意识和能力,仿佛项目的最后成果就是代码,不知道文档可以起到什么作用,也不知道如何编写,解决问题,讨论问题最爱用的方法是拍脑门法和直接交流,所以你在项目进入阶段往往会看到几个新开发的人员在一起吵得一塌糊涂。而讨论的内容无非是,上回说好了是这么做,怎么现在又变了,或者,你不给我什么东西,我的功能就做不下去了,等等。。。而这些东西其实在是方案讨论和编写相关文档的时候就应该已经解决的问题了。由于没有文档编写能力,他们往往无法描述一个商业流程或者程序处理流程,(有经验的开发人员是可以在不借助文档的情况下直接给你写出来这些流程的,这些流程经过思考和文档编写过程已经映入了他们的大脑中)。
           5调研能力,刚参加工作的开发人员是不应该去做调研工作的,做调研工作的技术人员应该是项目组中技术能力最强的工作人员,可惜在实际中却不是这个样子,很多刚入门的技术人员没有经过任何培训就被派去做调研,做系统该调研什么内容,如何和客户进行有效的交流,或者真实的需求(而不是表面的肤浅的需求)。如何将这些需求用文字正确的无二义性的表达出来,都是问题,而那种40-50页的需求文档是一个项目失败的第一个信号。
           6 代码阅读能力,这里说的代码阅读能力不是说在阅读什么《java小程序》之类的书的时候对书中的代码的理解,对于一个好的开发人员来说,真正的代码阅读能力是你能否阅读那些真实的系统的代码,甚至在没有任何技术文档和程序注解的代码的阅读,能否通过对这些代码的阅读了解系统的架构、系统的操作过程以及发现程序中的错误,这种阅读代码的能力是非常重要的,不过可惜的刚毕业的开发人员代码阅读能力基本为零,一个能很好理解《java小程序》的代码的入门级的开发人员已经很不错了。让他们直接阅读2000行以上的应用系统的代码基本是不可能的。
        

        说了这么多,估计很多刚参加工作的技术人员要气死了,现在让我们看一下他们的优点吧。
            1心态好,能够接受别人的意见,特别是老鸟们的意见(当然对对同级别的人可能不行),不要小看这一点,是否善于接受别人的建议对开发人员的成长是极为重要的,而入门级别的开发人员在这一点往往是做得最好的。
            2 有工作热情,肯加班。加班不是一种好的工作方式,但对于刚入门的开发人员来说,却是很重要的事情,效率*时间=工作成果。如果效率很高,工作时间少,工作成果也不会差,但既然我们的新工作人员无法一下提高工作效率,却可以提高工作时间的方法来保证工作成果,另外,随着工作时间的增加,工作经验也是同步增加的,而这也会使你的工作效率逐步提高,让我们假设一个工作人员每天比别人多工作1小时来计算,一年220个工作日,如果你可以坚持你比别人的提高是多少倍大家可以自己计算一下。(为什么菜鸟看老鸟是什么高不可攀,你算一下就知道了)
             3你可以犯错误,新人必然犯错误,甚至是很低级别的错误,而且由于你年轻,你会有更多的机会,所以这个阶段的技术可以利用自己的有时尝试各种方法。
        以上就是人门级别的IT开发人员的一些特征,对于如何迅速地帮助他们成为一个好的开发人员我们在以后的文章里介绍吧    
        

     

    2中级人员          本科毕业3-4年以及研究生毕业1-2年
         中级开发人员一般都有了一定的编码经验,一般来说,如果你的工作比较饱满的话,一个中级的开发人员应该有7-8万行左右的代码量,他们对某种语言的使用已经比较有经验了,对系统架构有一些了解,至于文档,他们现在只编写过一些无用的文档,为什么说他们编写的文档是无用的,主要是指他们对文档的作用没有更深刻的理解,他们可以很清晰地说出在开发过程中需要那些文档,但对这些文档应该包括那些内容,这些内容对以后的开发能够起到什么作用却不甚了解。也就是这个原因,他们编写的文档更多地是为了对付单位的检查,而不是对开发有什么实际作用,很多开发人员就是因为这个问题一直没有克服,使得他们一直处于中级开发人员(有时候会持续几年甚至十几年)。好了,说说中级开发人员的一些特征吧。
         1代码编写能力:重视语言的差异,是JAVA还是。net好,是他们热衷讨论的问题,但对编程的一些基础理论的却很少重视,他们由于在3-4年的时间里一直使用开发语言,对某种开发语言会比较精通,而且可以在短时间内生产大量的代码,比如在一天之内编写1-2千行的代码对他们来说是很正常的事情,但代码的质量如何就不好说了,出现这个问题的原因有时候大致有两个,一个对代码编程规范的了解,比如什么是高内聚低偶合,如何提高代码的复用等问题,作为一个开发人员如果不考虑这些问题,其代码质量是不可能很高的,另外一个问题就是调研、设计质量对编码质量的影响,我们开发的实际情况是开发人员往往是调研/设计/编码一勺烩的,如果前边的调研和设计问题多多,必然降低代码的有效性和质量。最后说一个就是是否有快速掌握一种开发语言的能力对中级开发人员来说一个很重要的能力。如果你无法快速学习一种新的开发语言并使用它进行新系统的开发,你恐怕还不是好的中级开发人员。


         2设计能力,应该说设计能力是中级开发人员和初级开发人员的主要区别。但实际情况却不容我们乐观。我们的中级开发人员的设计能力现在对项目的制约,对自己的以后的发展都产生了很大的阻力,其中最主要的表现就是设计工作的不正规。有时候简直如同儿戏。让我们举几个例子吧。
         1不会使用正规的设计方法,在面向过程的设计不会画流程图和DFD图,面向对象的设计方法不会使用UML,设计数据库不知道3NF和BCNF等,最好使用的方法就是拍脑门来进行各种设计。
         2各种设计方法混用,一会儿使用面向过程的方法,一会儿使用面向对象的方法,还有就是将流程图和系统结构图结合起来一起用,总之最好的设计是一个四不象,如果你问他为什么这么做,他总会告诉你这样画清楚,其实这都是对基础的设计方法掌握不好的表现。
         3 层次结构不清晰,单一层次复杂,中级开发人员一个衡量的标准就是是否可以独立完成一项任务,这是初级人员和中级技术人员标志性的差别,独立处理问题,最主要的一个技能就是是否可以将复杂问题简单化,而简单化的最常用的方法就是将问题分不同的层次,简化同一层次的复杂度,从流程图的设计上来看,就是根据问题复杂度不同,分层次画图,而同一层次处理的模块不应该超过8项,这样你可以很好的掌控你的程序。如果系统的确很复杂,可以不断将处理模块细化下去,直到最低层的处理模块。
         4设计无法和代码结合起来,无论是采用那种设计方法,好的设计都可以代码对应起来,如果你做的设计报告很详细,设计报告甚至可以和代码逐行对应起来的,如果你不能做到这一点,只能说明你对系统的理解和设计是有问题的
         5 无法说明处理的详细流程,所谓详细流程是指是否可以说出来计算机在做一个事情的步骤,如果你的可以说出来计算机每一个处理步骤(最详细的步骤可以细到变量的赋值),如果你真能说的出来,说明你对系统有了详细的了解和考虑,一般来说你编写的代码出问题的可能性比较小。顺便说一句,这也是概要设计和详细设计的一个检查方法。
         6不考虑系统出现异常的情况以及异常情况的处理,这里有两个问题,一个是你是否熟悉客户的商业流程,以及处理方法,如果你不了解客户的商业流程,你很难发现有那些异常情况以及这些异常的处理方式,而在实际情况这些异常情况总会出现,如果缺乏这些问题的考虑那你就准备不断的修改你的代码吧。
         7接口问题的考虑,以及设计是体现开发人员能力的一个方面, 
         在中级开发人员的思维中,总会出现用自己的想法替代用户的实际需要,比如,他们总是说,我认为客户应该是怎么怎么样,或者说,客户需要什么什么功能等,用一些模糊,不确定的语句描述系统是中级人员一个特征,而这些模糊的语言是系统开发失败的一个标志。


         3 文档编辑能力:作为中级开发人员,你是否在系统开发的时候可以不编码而只用文档就完成你的设计工作?我想很多人是做不到这一点的,在我们的实际开发环境中,似乎开发能力就是指代码编写,但实际上文档的编写能力才是最重要的,如何编写文档,如何让自己编写的文档让别人看得明白,如何让自己编写的文档成为真正的有效文档,这都是中级开发人员应该具备的基本素质,而文档编写的好坏一个体现了你的设计能力(没有好的设计能力是不可能编写出好的设计文档的),另外一个是体现出了你的文字功底的,如果你只能做,而不会表达,你怎么可能带领一个团队去完成一个复杂的项目。
        4调研能力:80%软件项目的失败是由于调研的问题,这个统计结果充分说明了调研能力在软件开发中的重要地位,一般来说调研工作是应该由一个项目中最富有开发经验的工作人员来完成,但可惜的是,在我们的实际开发中却往往不是这个样子。如何调研?调研那些内容?调研的步骤有那些?调研需要细致到什么程度?这些问题都应该是很明确的,否则你无法进行有效的调研,我们的开发人员一般在调研系统的时候经常提交几十页的调研文档,如果可以有一百多页就认为很有成就了,这就是中级开发人员在调研中表现(如果能提供一百多页的调研报告一定是不错的中级开发人员了),实际上这种程度的调研报告很多地方是很模糊的,这种模糊的调研报告无法满足实际开发的需要,而在开发过程中又很难进行补充调研,所以在设计和编码阶段会表现出很明显的一些现象,比如开发人员在设计阶段拍脑门决定功能或者在编码的时候不断发生争吵都是需求不完善的表现。

         5调试能力:工作3-4年的开发人员应该已经掌握的调试的基本方法,但他们面临的问题是否可以掌握和别人联调的能力,几个人合作开发,接口问题,问题定位对中级开发的考验都是比较大的,特别是稳定的确切的发生地点的定位的能力是体现中级开发人员的能力的标志,另外就是你帮助其他人进行调试的能力,对一个你了解不多的代码中进行调试,发现问题发生的规律,对一个中级开发人员是很重要的,特别是调试那些不规范的代码的时候,是中级开发人员经常要做的事情。


         6代码阅读能力,中级开发人员有一定的代码阅读能力,否则他无法和其他开发人员进行联合开发和联合调试,但中级代码人员缺乏的是快速阅读能力,和其他语言的阅读能力(指那些未学习过的语言)。所以中级技术人员最怕开发平台的变化。
         说了这么多。关于中级技术人员说一点自己的的看法。中级技术人员是一个承上启下的阶层,一方面他们要完成自己的工作,另外一个方面他们要完成技术的传播,带人门级别的工作通常是他们的正式或者非正式的任务之一,但令人遗憾的是:由于他们的技术水平的现在,往往让新技术人员走更多的弯路。如何提高自身的技术水平,是他们面临的最主要的问题。另外要格外强调的一点就是方法论(做事情的方法)的掌握往往比做具体事情更为重要,不过这一点是很多技术人员忽视的一个问题,这个缺陷造成了我们的技术人员总是在一个层次上低水平循环,而不是螺旋式上升。由于没有掌握做事情的方法,中级技术人员总是有一点怕接受新的,自己不熟悉的东西。由于自己技术基础不牢靠,会遇到多次技术生涯的失败,失败的开发经历以及不知道失败的原因,无法找到解决问题的有效方法,造成了大量中级实际人员离开技术岗位(别跟我说编码只能做到30岁,我见过很多50。60岁的软件开发人员)。而正式由于这一个级别的技术人员少而且技术水平不能符合开发的要求(包括技术上和其他方面)。使得我们的软件开发流程很不规范,而这种不规范往往又会造成项目的失败,从某种程度来说,中级技术人员的技术水平的提高和保证一定数量的合格的中级技术人员是保证项目成功、企业发展的重要因素。
        下边说一下对中级技术人员的提高技术水平的一些个人的看法
        1重视方法论
        中级人员和初级人员最大的区别就是中级开发人员应该掌握了一定的开发方法而不仅仅是某一个工具的使用,要做到知其然知其所以然。如果你没有关注你的工作方法的改进,拿你只能是做一个低层次开发人员,不断进行低水平循环,而这种低水平循环很容易让你丧失对开发的兴趣。比如无论是那种开发方法都存在对问题的抽象,如何抽象出问题的本质就很重要了,很多开发人员在讨论的时候不会抽象,或者采用的抽象方法不对,成了空对空导弹。在比如如何降低问题的难度,在你写各种技术文档以及代码开发的时候是否能够将问题分层次,好的层次划分不但可以降低问题的难度,而且可以增加系统的灵活性,在系统需求发生变化的时候可以降低解决问题的难度,这些问题都是属于方法论的问题,在说一个最简单的问题,如何编写文档,如何不落下任何东西,如何保持文档结构的清晰,如何让自己的文档不成为枯涩难懂的所谓的纯技术文档,如何检查文档这些都是有一些方法和窍门,你是否掌握了这些方法直接关系你的以后技术生涯的方法,的确是不能不重视的问题
        2注意交流,不要搞技术封锁
        一招鲜吃遍天,这是中国的一句古话很有道理,精通一门技艺对我们这些开发人员的确很重要,但如果把这句话理解为对别人的技术封锁就不对了。由于有二,第一现在的技术发展很快,在IT行业基本不存在会一种技术可以吃一辈子的情况,而网络发展使你的封锁基本成为一个不可能。说一个我自己的技术人员的故事吧,2005年的时候,我招聘了一个测试人员,年底的时候我让他学习QTP自动化测试技术。这个同志学习很认真,很快掌握了这个工具的使用,后来我让他总结一下经验写一个总结,将自己在学习的时候遇到的问题做一个总结。奇怪的是他很长时间没有写出来(他平时的工作效率不是这样的),后来在一次聊天的时候他才告诉我真实的原因,原来是他母亲告诉他,如果这些东西都写出来并且发表的网络上,怕对以后的有影响。知道这个事情后我很明确的告诉他,首先QTP这个东西是一个一时性的工具,而不是一世的工具。我工作15年来,开发平台经历了DOS-WIN30-WINNT-WIN2003,原来在的开发工具和代码现在已经不能使用了,所以根本没有必要去保密。另外如果愿意将自己的知识和其他人共享,你可以扩展自己的朋友圈,为自己的技术生涯创造更好的环境。后来他还是完成了QTP使用的总结,当时一共回答了80多个在使用QTP的时候会遇到的问题。这个电子文档他发表在了www.51testing.com上的测试论坛。结果也不错,首先引起了斑竹的注意,把他从初级战友提升为高级战友(我到现在还是初级战友,哈哈)。其次有很多朋友问他问题,后来北京的一个朋友约他周六、周六去讲课,500元/日。哈哈,效果好的让人惊讶。所以作为中级技术人员,要各位注意和他人交流,不断总结自己的经验和别人共享,单纯的技术封锁无论对个人的发展还有是对项目团队有没有任何好处。  
        3他山之石可以攻玉
         要成为高级开发人员,有两个方面的知识是必须具备的,一个是专业知识,包括对开发平台/工具的了解,对开发流程的理解和使用(软件工程)。另外一个方面就是对客户的商业流程的理解。如果只了解单纯的开发知识很难成为好的高级技术人员。我们现在的应用系统都要和具体的应用相结合才可能成为一个真正实用的使用的系统。比如做办公自动化系统你不了解国家机关的公文流转的规矩,做ERP系统不了解财务系统、物流管理,做手机开发不了解通讯系统、用户使用习惯都不能保证你的系统是符合用户的真实的需求的,所以作为中级开发人员如果要向上发展成为高级技术人员除了对开发专业知识的了解,会需要对开发设计的行业知识,行业规范多了解,而这种了解一方面要通过各种行业文件来了解,另外一个重要的方面通过和客户交流去了解。
        4注意情商的培养
       作为中级开发人员,其交往的人群比初级开发人员的范围要广得很多,从大范围来划分,有客户、公司管理人员、技术人员等,而每一种类型人员都可以细分比如技术人员就有,高级技术人员,同级别技术人员(中级技术人员)。低级技术人员,由于不同角色的差异,交往的内容和方式都有很大的不同。即使同一类型的人群,由于每个人脾气秉性的不同,交往的方式差异也很大,作为中级技术人员能否和其他合作者,处理好彼此关系,善用其他的力量,是起进一步发展的关键,而你的情商在这个时候往往比你的智商要重要的多。
      总之,中级开发人员情况往往会决定一个单位和部门的发展,他们是公司发展最中坚的力量,是否会引导他们不断进步是一个公司和部门领导要格外注意的问题。在我自己的开发经历中,中层人员的流失不但是某一个公司或部门的问题,而是整个IT行业的问题,很多开发人员在没有经过训练就不得不承担中级开发人员要承担的工作,由于综合能力的问题,等待他们的往往是一个又一个的失败,而在看到很多做销售的同龄人,无论在收入和地位和自己的差别后,纷纷转行,这又进一步造成了中级技术人员的流失。中级技术人员整体素质和人员的流失才是中国IT人员真正的痛

    展开全文
  • 开发人员(图)

    2019-06-26 15:37:50
    转载于:https://www.cnblogs.com/song1900/p/9206539.html
  • app开发人员配置【职责】

    千次阅读 2018-08-22 09:16:15
    app开发人员配置组成 作为一个独立APP开发项目的开发项目,人员必须包括:产品经理,程序开发人员(ios开发工程师,Android开发工程师,服务端开发工程师),UI设计,测试工程师,运营团队。各职位要求如下: 1.app...
  • 再谈开发人员和测试人员的比例

    万次阅读 热门讨论 2010-11-19 21:00:00
    软件企业中开发人员和测试人员的比例往往是管理者关注的一个问题,也可能是下面测试经理头疼的问题,似乎没有人知道什么样的比例是合适的。幸好,倒是有个学者做个这方面的调查得到一些数据,可以供那些对此感兴趣的...
  • __之前一直在用谷歌的chrome浏览器,新版的 Edge 浏览器换了Chromium内核,据说功能和用户体验上可以和chrome浏览器相媲美,所以就想试一试。从官网下载了最新版本,安装后的第一件事情就是给浏览器装插件,提高...
  • 什么是后端开发

    万次阅读 多人点赞 2017-12-28 09:29:47
    点击上方“中兴开发者社区”,关注我们每天读一篇一线开发者原创好文英文:https://dzone.com/articles/what-is-back-end-development软件...在Web开发的篇章中,我们主要讨论Web开发,因为它涉及与最终用户的直接互动
  • 在一些软件大会上,人们常常会问这样一个问题:测试人员与开发人员的比例究竟多少是合理的?而这样的问题,很难直接给出一个答案。为什么会有这样的问题,可能来自于两方面的压力:许多公司领导总是希望得到一个合理...
  • 敏捷开发流程总结

    万次阅读 多人点赞 2010-07-20 15:36:00
    Agile——敏捷开发,作为CMM神话崩溃后被引入的一套新的软件开发模式,这几年来被广泛引起关注,并被寄予厚望。敏捷开发在其他业界的应用是否理想不得而知,但以下总结了我所在公司的敏捷开发试验,希望可以...
  • 软件开发的组织和角色分工

    万次阅读 2014-08-01 17:02:37
    随着软件规模的不断膨胀和软件开发技术的发展,软件开发的分工和组织也变得越来越复杂,如何合理的组织和分工越来越成为能否成功开发的一个决定...l 开发人员 l 测试人员 l 项目实施人员 高级经理 具体参与项
  • 3、如果开发说测试环境问题, 让他说明清楚测试环境问题是什么,按照他说的验证一遍, 如果确实如他所说, 关闭bug,但是不是他说的那样,继续激活bug给开发解决,确保产品质量。 4、如果开发说用户不存在这种使用...
  • IE8 F12 不显示开发人员工具窗口
  • IE的F12开发人员工具不显示

    万次阅读 2013-04-02 09:47:34
    IE的F12开发人员工具不显示问题: 按下F12之后,开发人员工具在桌面上看不到,但是任务栏里有显示。将鼠标放在任务栏的开发人员工具上,出现一片透明的区域,选中之后却出不来。将鼠标移动到开发人员工具的缩略图...
  • 项目开发文档编写规范

    万次阅读 多人点赞 2018-05-13 17:50:38
    开发项目的过程中,我深刻的意识到,文档存在的意义并不是无用的报告,简洁明了的文档不光能记录你当下所做的,还能在繁重的工作中分神思考下一步该做什么时为你节约精力,并且在项目周期内,使整个项目保持一致性...
  • 软件开发人月成本估算方法

    万次阅读 2016-09-09 15:26:56
    1 开发人员工资 B 2 国家规定的福利(五险一金):0.476B 3 奖金以及物资奖励(过节费等):0.2B 4 办公成本(办公场地,水电费,差旅费,其他费用):B/3 5 人力资源储备费(企业人员流动,人员储备及...
  • (开发环境就是每个开发人员电脑上的开发环境,只有开发人员可以配置和开发,写数据测试放在测试环境) 2.测试环境:新开发和配置通过系统传输到测试环境,进行功能测试,可以创建数据。(开发人员开发完上传到 SVN...
  • 开发人员结构配比

    万次阅读 2016-03-31 18:17:36
    前几天跟一位做人事的朋友聊天,说起软件行业人员问题。朋友的公司是做软件外包的。一个APP项目基本配置6-7个人,每个android、ios、后台都各配2人以上,但是项目各种超期、各种无法交付、各种客户不满意。我比较...
  • 怎么做敏捷式开发

    万次阅读 2018-01-17 07:57:21
    1、减少对开发人员的干扰 在实际情况中,很多开发人员要直接面对客户。 开发团队最好是减少这些方面的干忧。 大部分的人都不是超人,在一个时间段内处理超出自己负荷的工作是很难做好保质保量的。 所以对于开发...
1 2 3 4 5 ... 20
收藏数 1,335,970
精华内容 534,388
关键字:

开发人员