`

程序员常见5种类型

 
阅读更多

 

 

1. 拷贝型
拷贝型选手就是传说中的“代码拷贝员”了,他们对实现功能几乎没有思路,所作的事情就是从网上或是之前其他团队成员写的代码中拷贝出片段,然后放到项目中,如果运行项目出现了期望结果,则表示任务完成。

这类人只会改代码,却不会写代码。他们大多对编程毫无兴趣,只是希望以此糊口而已。

2. 新手型
当产品有功能需求时,由于经验有限,程序员并不完全知道要如何实现这个功能,需要通过学习、寻找资料等方式来解决问题。
这种情况下的编码过程,程序员的主要目标是“完成功能”,那么很难有多余的心思去考虑边界条件、性能、可读性、可扩展性、编码规范等问题,因此代码bug可能较多,稳定性不高。常常会发生开发花费1个月,改bug却要改上好几个月的事情。

3. 学习型
这类程序员对所在领域的语言已经比较了解,对于一般功能可以有较为清晰的实现思路,给出需求时可以通过自己的思路来实现,并且会一定程度上考虑边界条件和性能问题。但仅此而已,他们对可读性和可扩展性考虑很少,也没有项目级别的考虑,主要是希望通过实现代码来练手或是学习。
这类程序员最大的表现在于喜欢“创造代码”,即使有现成的实现,他们也希望自己来实现一套,以达到“学习”的目的。他们不喜欢复用别人的代码,看见项目中别人实现了相类似的功能,他们会以“需求不同”的借口来自己重新实现一套。这类人一般来说对技术有着较为浓厚的兴趣,希望能够通过项目来进行学习。
从项目的角度来说,这种做法最大的麻烦在于开发周期可能较长(相比直接使用现成的实现),并且会使得项目代码膨胀,影响未来的维护。但这类程序员由于有兴趣,如果好好培养或许会成为明天的牛人。

4. 实现型
这类程序员一般有较为丰富的经验,由于写得太多,因此不再追求“创造代码”来进行学习,同时对所在领域可能涉及的很多第三方框架或是工具都比较熟悉,当接受到产品需求时,对功能实现方案已经了然于胸,因此他们可以快速的实现需求,并且对边界、性能都有一定程度的考虑。因为能够快速实现需求功能,经常会被团队评价为“牛人”。但他们一般仅仅停留在“完成功能”级别上,对代码的可读性、可扩展性、编码规范等考虑较少,对项目总体把握也较少(例如控制项目膨胀、方便部署等架构级别的东西)。
这类程序员最大的表现在于喜欢“开发项目”,却不喜欢“维护项目”。他们产出的代码最大的问题就是维护较为困难,可能过上几个月回头看自己的代码都会晕头转向。因此即使是自己写的代码,仍然不愿意维护,一般会苦了后来人。
因为接口设计的缺乏,当需求变更时,发现代码要改的东西太多,然后抱怨需求变化,却很少认为是自己的代码问题。这样的项目如果经过长时间的变更维护,最终会变得难以维护(一般表现在需求变更响应时间越来越长)甚至无法维护,最终要么是半死不活,要么是被推倒重来。

5. 架构型
这类程序员比实现型更进一步,他们经验丰富,对相关框架和工具等都很熟悉,“完成功能”“稳定性”“性能”这些已经不再是他们的追求,更优美的代码、更合理的架构才是目标。
这类程序员代码设计大多建立在对需求的详细了解和对需求变更的预测上——可扩展性较好;代码细节也尽量多的考虑边界情况、性能——稳定高效;代码命名和注释都恰到好处——可读性较高;同时在开发过程中他们会不断重构,对代码做减法——保证项目可持续发展;等等
但由于考虑问题较多,单从“实现功能”阶段来看,完成速度不一定会比“实现型”要快。只是到了项目中后期优势才会慢慢体现出来

 

分享到:
评论

相关推荐

    Java程序员常见笔试题

    Java 程序员常见笔试题 Java 是一种广泛应用的编程语言,掌握 Java 的基础知识是任何 Java 程序员的必备技能。下面是 Java 程序员常见笔试题的知识点总结: 面向对象的特征 抽象:抽象是忽略一个主题中与当前目标...

    C++程序员常见面试题总结

    5. **C++11及后续版本新特性** - **右值引用**:提升移动语义,优化资源转移效率。 - **lambda表达式**:简化函数对象的创建,方便在代码中使用匿名函数。 - **auto关键字**:自动类型推断,减少冗余代码。 - **...

    程序员常见面试题.doc

    【标题】:“程序员常见面试题.doc” 【描述】:文档包含程序员面试中常见的问题,涉及C#、虚拟方法、事件模型、接口实现、.NET框架、数据类型等知识点。 【部分内容】:文档列出了程序员面试时可能会遇到的问题,...

    Java程序员常见笔试题分析

    "Java程序员常见笔试题分析"这一主题,主要涵盖了Java编程语言的基础知识、进阶特性以及在实际开发中的应用。通过视频形式的学习,可以帮助应聘者更好地理解和准备相关的笔试题目。 视频分析可能包括以下几个方面:...

    C 语言常见问题集程序员常见错误

    了解这些基本概念有助于避免编程时的常见陷阱,对于初级程序员来说尤其重要,能够提升编程效率和代码质量。在实践中,始终遵循良好的编程习惯,如清晰的声明和适当的类型匹配,可以显著减少错误并提高程序的可读性...

    7-1初级-程序员教程(第5版(目录结构图和思维导图)).rar

    1. **编程语言基础**:介绍至少一种主流编程语言,如Python、Java或C++,包括变量、数据类型、控制结构(如条件语句和循环)、函数、数组等基础知识。 2. **算法与数据结构**:讲解基础算法,如排序和搜索,以及...

    C# 程序员 面试题 常见示例 代码

    收集一些C#程序员面试题常见示例代码,主要有:不同元素上使用特性、动态发射程序集、多次申明同一特性、多事件类型、反射工厂模式的实现、反射类型的使用、链式委托的返回值、链式委托、句柄的使用和转换、简单程序...

    程序员常见面试题.pdf,这是一份不错的文件

    【标题】:程序员常见面试题解析 【描述】:本文档涵盖了程序员面试中常见的C#相关问题,涉及new与override的区别、virtual关键字的作用、.NET框架的事件模型、接口的显式实现、.NET框架结构以及ref和out参数的差异...

    程序员面试宝典 程序员

    2. **算法与数据结构**:熟练掌握常见的排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等)和搜索算法(线性搜索、二分搜索等)是程序员的基础技能。同时,理解不同数据结构(如栈、队列、树...

    Java程序员面试宝典5.pdf

    在Java程序员面试宝典5.pdf中,包含了大量关于Java编程的知识点,涵盖了JavaSE基础、Java语法、多态、异常处理、常用API以及数据类型等多个方面,以下是对这些内容的详细知识点解读。 ### JavaSE基础知识点 1. **...

    程序员面试金典 第5版 英文版

    首先,书中详细介绍了编程基础,包括各种数据类型、控制结构(如循环和条件语句)、函数的使用,以及面向对象编程的基本原理。这些是所有程序员必须掌握的核心知识,对于理解代码逻辑和编写高效程序至关重要。 其次...

    程序员求职面试常见问题(面经集)

    本资源“程序员求职面试常见问题(面经集)”汇集了多种类型的面试题目,包括英语面试和智力题,旨在帮助求职者做好充分准备,提升成功几率。 首先,对于“英语面试”,程序员需要具备一定的英文沟通能力,特别是在...

    c#,.net 程序员常见面试题大全(含答案)

    - **查询表达式与方法语法**:熟悉两种不同的LINQ查询方式,以及如何在数据库、集合和其他数据源上执行查询。 - **Lambda表达式**:掌握这种简洁的匿名函数写法,以及在LINQ中的应用。 4. **异步编程**: - **...

    程序员计算器

    二进制(Binary)、八进制(Octal)、十进制(Decimal)和十六进制(Hexadecimal)是计算机科学中最常见的四种进制。程序员计算器能够帮助用户方便地进行这些进制之间的转换,例如将一个十进制数转换成二进制或十六...

    程序员面试宝典 第5版-欧立奇

    1. **基础编程**:面试中常见的基础编程题目包括数据类型、变量、运算符、流程控制(如if-else,for,while循环)、函数等。理解并能熟练运用这些基本概念是面试的基础。 2. **算法与数据结构**:数组、链表、栈、...

    初级程序员试题 程序员考试类

    1. **编程基础**:初级程序员试题通常会包括基本的编程概念,如变量、数据类型、运算符、流程控制(如if语句、for循环、while循环)、函数的定义与调用等。这些是所有编程语言的基础,对于C#学习者来说也不例外。 2...

Global site tag (gtag.js) - Google Analytics