10 types of programmers

[size=medium]
10 types of programmers you’ll encounter in the field

Programmers enjoy a reputation for being peculiar people. In fact, even within the development community, there are certain programmer archetypes that other programmers find strange. Here are 10 types of programmers you are likely to run across. Can you think of any more?

#1: Gandalf

This programmer type looks like a short-list candidate to play Gandalf in The Lord of the Rings. He (or even she!) has a beard halfway to his knees, a goofy looking hat, and may wear a cape or a cloak in the winter. Luckily for the team, this person is just as adept at working magic as Gandalf. Unluckily for the team, they will need to endure hours of stories from Gandalf about how he or she to walk uphill both ways in the snow to drop off the punch cards at the computer room. The Gandalf type is your heaviest hitter, but you try to leave them in the rear and call them up only in times of desperation.

#2: The Martyr

In any other profession, The Martyr is simply a “workaholic.” But in the development field, The Martyr goes beyond that and into another dimension. Workaholics at least go home to shower and sleep. The Martyr takes pride in sleeping at the desk amidst empty pizza boxes. The problem is, no one ever asked The Martyr to work like this. And he or she tries to guilt-trip the rest of the team with phrases like, “Yeah, go home and enjoy dinner. I’ll finish up the next three week’s worth of code tonight.”

#3: Fanboy

Watch out for Fanboy. If he or she corners you, you’re in for a three-hour lecture about the superiority of Dragonball Z compared to Gundam Wing, or why the Playstation 3 is better than the XB 360. Fanboy’s workspace is filled with posters, action figures, and other knick-knacks related to some obsession, most likely imported from Japan. Not only are Fanboys obnoxious to deal with, they often put so much time into the obsession (both in and out of the office) that they have no clue when it comes to doing what they were hired to do.

#4: Vince Neil

This 40-something is a throwback to 1984 in all of the wrong ways. Sporting big hair, ripped stonewashed jeans, and a bandana here or there, Vince sits in the office humming Bon Jovi and Def Leppard tunes throughout the workday. This would not be so bad if “Pour Some Sugar on Me” was not so darned infectious.

Vince is generally a fun person to work with, and actually has a ton of experience, but just never grew up. But Vince becomes a hassle when he or she tries living the rock ‘n roll lifestyle to go with the hair and hi-tops. It’s fairly hard to work with someone who carries a hangover to work every day.

#5: The Ninja

The Ninja is your team’s MVP, and no one knows it. Like the legendary assassins, you do not know that The Ninja is even in the building or working, but you discover the evidence in the morning. You fire up the source control system and see that at 4 AM, The Ninja checked in code that addresses the problem you planned to spend all week working on, and you did not even know that The Ninja was aware of the project! See, while you were in Yet Another Meeting, The Ninja was working.

Ninjas are so stealthy, you might not even know their name, but you know that every project they’re on seems to go much more smoothly. Tread carefully, though. The Ninja is a lone warrior; don’t try to force him or her to work with rank and file.

#6: The Theoretician

The Theoretician knows everything there is to know about programming. He or she can spend four hours lecturing about the history of an obscure programming language or providing a proof of how the code you wrote is less than perfectly optimal and may take an extra three nanoseconds to run. The problem is, The Theoretician does not know a thing about software development. When The Theoretician writes code, it is so “elegant” that mere mortals cannot make sense of it. His or her favorite technique is recursion, and every block of code is tweaked to the max, at the expense of timelines and readability.

The Theoretician is also easily distracted. A simple task that should take an hour takes Theoreticians three months, since they decide that the existing tools are not sufficient and they must build new tools to build new libraries to build a whole new system that meets their high standards. The Theoretician can be turned into one of your best players, if you can get him or her to play within the boundaries of the project itself and stop spending time working on The Ultimate Sorting Algorithm.

#7: The Code Cowboy

The Code Cowboy is a force of nature that cannot be stopped. He or she is almost always a great programmer and can do work two or three times faster than anyone else. The problem is, at least half of that speed comes by cutting corners. The Code Cowboy feels that checking code into source control takes too long, storing configuration data outside of the code itself takes too long, communicating with anyone else takes too long… you get the idea.

The Code Cowboy’s code is a spaghetti code mess, because he or she was working so quickly that the needed refactoring never happened. Chances are, seven pages’ worth of core functionality looks like the “don’t do this” example of a programming textbook, but it magically works. The Code Cowboy definitely does not play well with others. And if you put two Code Cowboys on the same project, it is guaranteed to fail, as they trample on each other’s changes and shoot each other in the foot.

Put a Code Cowboy on a project where hitting the deadline is more important than doing it right, and the code will be done just before deadline every time. The Code Cowboy is really just a loud, boisterous version of The Ninja. While The Ninja executes with surgical precision, The Code Cowboy is a raging bull and will gore anything that gets in the way.

#8: The Paratrooper

You know those movies where a sole commando is air-dropped deep behind enemy lines and comes out with the secret battle plans? That person in a software development shop is The Paratrooper. The Paratrooper is the last resort programmer you send in to save a dying project. Paratroopers lack the patience to work on a long-term assignment, but their best asset is an uncanny ability to learn an unfamiliar codebase and work within it. Other programmers might take weeks or months to learn enough about a project to effectively work on it; The Paratrooper takes hours or days. Paratroopers might not learn enough to work on the core of the code, but the lack of ramp-up time means that they can succeed where an entire team might fail.

#9: Mediocre Man

“Good enough” is the best you will ever get from Mediocre Man. Don’t let the name fool you; there are female varieties of Mediocre Man too. And he or she always takes longer to produce worse code than anyone else on the team. “Slow and steady barely finishes the race” could describe Mediocre Man’s projects. But Mediocre Man is always just “good enough” to remain employed.

When you interview this type, they can tell you a lot about the projects they’ve been involved with but not much about their actual involvement. Filtering out the Mediocre Man type is fairly easy: Ask for actual details of the work they’ve done, and they suddenly get a case of amnesia. Let them into your organization, though, and it might take years to get rid of them.

#10: The Evangelist

No matter what kind of environment you have, The Evangelist insists that it can be improved by throwing away all of your tools and processes and replacing them with something else. The Evangelist is actually the opposite of The Theoretician. The Evangelist is outspoken, knows an awful lot about software development, but performs very little actual programming.

The Evangelist is secretly a project manager or department manager at heart but lacks the knowledge or experience to make the jump. So until The Evangelist is able to get into a purely managerial role, everyone else needs to put up with his or her attempts to revolutionize the workplace.[/size]
LVGL开发新选择:深度对比NXP GUI Guider与SquareLine Studio,免费版够用吗? 本文深度对比了LVGL开发中两款主流工具NXP GUI Guider与SquareLine Studio的核心差异,包括功能定位、设计能力、代码生成质量和硬件适配等方面。针对不同项目需求,分析了免费版工具的适用性,帮助开发者根据预算和功能需求做出明智选择。特别关注了GUI设计工具在嵌入式开发中的实际应用效果。 阅读详情

相关推荐

别再傻傻分不清!5分钟搞懂倾斜摄影里‘地面分辨率’和‘模型精度’到底啥关系

本文深入解析倾斜摄影中‘地面分辨率’与‘模型精度’的关系,帮助读者快速理解两者的本质区别与内在关联。通过实战案例和公式计算,详细说明如何从航飞设计到精度验证全流程控制,避免常见认知误区,并针对不同应用场景提供精度需求建议。

weixin_33700350的博客 477

10种你会碰到的程序员(翻译)

前几天在javalobby上看到有人在讨论这篇文章,觉得文笔实在是很幽默,就翻译了过来,因为翻译水平有限,所以附带原文,大家觉得有翻得蹩脚的地方就看原文吧。 原文地址:http://blogs.techrepublic.com.com/10things/?p=262 10 types of programmers you’ll encounter in the field 10种你会...

Nighthaven的专栏 910

Windows下Python安装geopandas全攻略:解决GDAL依赖问题的5个关键步骤

本文详细解析了在Windows系统下安装Python地理空间分析库geopandas时,如何有效解决其核心依赖GDAL的编译难题。文章提供了五个关键步骤,包括理解依赖关系、获取预编译wheel文件、顺序安装及环境验证,旨在帮助用户绕过复杂的C++编译环境,顺利完成geopandas的安装部署。

weixin_28221501的博客 285

The Two Types of Programmers

Coding Horror: The Two Types of ProgrammersContrary to myth, there arent fourteen types of programmers. There are really only two, as Ben Collins-Sussman reminds us.There are two "classes" of pro

我思故我在 欲速则不达 840

Fastjson2升级指南:如何平滑迁移并避免兼容性问题

本文详细介绍了Fastjson2的升级指南,涵盖兼容性检查、性能调优及零停机迁移方案。通过实战案例展示如何避免常见问题,如日期格式严格校验和字段映射策略变化,并分享高性能配置技巧如JSONB二进制协议和内存池化。帮助开发者平滑迁移至Fastjson2,提升JSON处理效率。

weixin_29016865的博客 411

TI AWR2944毫米波雷达开发板开箱:用官方Demo快速上手3D点云与热图生成

本文详细介绍了TI AWR2944毫米波雷达开发板的开箱与实战应用,包括硬件准备、软件开发环境搭建、Demo固件刷写与配置、实时可视化与数据解析等全流程指南。通过官方Demo快速上手3D点云与热图生成,帮助开发者高效掌握毫米波雷达技术在工业检测、智能交通等领域的应用。

weixin_42627853的博客 309

Types of programmers

<br />In my code journeys and programming adventures I’ve encountered many strange foes, and even stranger allies. I’ve identified at least six different kinds of code warriors, some make for wonderful comrades in arms, while others seem to foil my every p

sulliy的专栏 790

聊聊蓝牙配对技术-CTKD OVER BR/EDR

摘要:本文探讨了蓝牙设备通过跨传输密钥派生(CTKD)机制实现双模连接的技术细节。研究发现,手机在连接双模耳机时优先通过BR/EDR配对,再利用CTKD派生BLE连接所需的密钥。关键条件包括:设备地址一致性、启用安全连接(Secure Connection)及禁用justworks配对方式。文章详细剖析了从BR/EDR链路密钥派生BLE长期密钥(LTK)的算法流程,重点解析了H6/H7加密函数的作用机制与安全差异。研究还通过HCI日志验证了密钥交换和加密建立的完整过程,指出蓝牙5.1版本对CTKD安全性的强

十多年蓝牙协议软件开发,擅长蓝牙协议分析 2700

The 5 types of programmers

The 5 types of programmers from:http://stevenbenner.com/2010/07/the-5-types-of-programmers/ps: 评论也很精彩 In my code journeys and programming adventures I’ve encountered m...

weixin_30413739的博客 159

YOLOv13添加DRB模块map暴涨12.33!准确率提升8.56!召回率提升15.66

本文介绍了在YOLOv13模型中添加DRB模块的改进方法。实验结果显示,添加DRB模块后模型性能显著提升,mAP暴涨12.33%,准确率提升8.56%。文章详细说明了移植过程,包括创建yolov13-DRB.yaml配置文件、修改tasks.py和__init__.py文件,以及引入UniRepLKNet模块的具体实现。其中重点描述了GRNwithNHWC、NCHWtoNHWC等核心组件的实现细节,并提供了完整的模型结构配置代码。这些改进使得YOLOv13模型在保持原有架构优势的同时,获得了更强大的特征提取

FJN110的博客 2821

从 30 天试用到企业级落地,2026 年学习和试用 SAP AI 的完整路线图

摘要:SAP AI产品体系存在试用版本与商业版本的边界模糊问题,需区分业务嵌入AI(如Joule)、开发者工具(SAP Build Code)和AI基础平台(Generative AI Hub)三个层级。建议学习路径:1)通过SAP Learning专区掌握理论框架;2)优先使用30天Generative AI Hub基础试用体验模型编排;3)结合90天BTP试用账户开发完整应用。特别注意免费计划已陆续停止,需以最新官方文档为准。开发者应重点关注AI如何与SAP技术栈(CAP、Fiori等)集成,而非单纯功

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 116

Ternary Data Types for C Programmers

source: http://homepage.cs.uiowa.edu/~jones/ternary/libtern.shtml   Ternary Data Types for C Programmers Version 1.0, Dec 29, 2015 Part of the Ternary Manifesto  by Douglas W. Jon

BalterNotz的博客 485

华为OD机试双机位C卷:打印机队列 (C++/Py/C/Java/Js/Go)

华为OD机试双机位C卷 打印机队列,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 打印机队列。

qq_45776114的博客 1793

开源项目教程:Category Theory for DotNet Programmers

开源项目教程:Category Theory for DotNet Programmers 1. 项目的目录结构及介绍 项目的目录结构如下: category-theory-for-dotnet-programmers/ ├── 1_Arrows_as_Functions/ ├── 2_Properties_of_Composition/ ├── 3_Examples_of_Types/ ├── ...

gitblog_00029的博客 752

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C# FAQ for C++ programmers

C# FAQ for C++ programmers 1. What is C#?[Introduction] C# is a programming language designed by Microsoft. It is loosely based on C/C++, and bears a striking similari...

weixin_30300523的博客 118

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【译】Why JavaScript Is and Will Continue to Be the First Choice of Programmers

The software industry is constantly evolving. Many languages that were cutting edge just a few years ago either look outdated or have been made completely redundant today. Today, new languages are emerging with surprising frequency to meet the changing ne

monkindey的专栏 1151

电子书下载:C# 2010 for Programmers, 4th Edition

Book DescriptionThe professional programmer’s Deitel® guide to C# 2010 and the powerful Microsoft® .NET 4 Framework Written for programmers with a background in C++, Java or other high-level, ob...

weixin_30727835的博客 153

Rust for Python Programmers:从鸭子类型到 Trait 与泛型的完整指南(RustTraining 第 10 章)

> 本文基于 RustTraining 仓库中 [python-book](https://link.gitcode.com/i/3c376f83a2871d7c7d075a9621705c84) 的第 10 章内容展开。python-book(*Rust for Python Programmers*)是面向 Python 开发者的 Rust 迁移训练书,本章聚焦 Rust 类型系统的核心抽象—

gitblog_01124的博客 87

Rust for Python Programmers 第12章:Closures 与 Iterators 全解析——从 Lambda 到宏的进阶之路

本文是 RustTraining 训练营中面向 Python 开发者的第12章《Closures and Iterators》的系统化深度讲解。Python 开发者常把 lambda 与 list comprehension 用得炉火纯青,但 Rust 的闭包捕获语义、三种函数特质(`Fn`/`FnMut`/`FnOnce`)、零成本惰性迭代器链,以及 `macro_rules!` 编译期代码生成

gitblog_00939的博客 309

Softek Barcode Reader,位图和PDF文档中读取普通

  Softek Barcode Reader,位图和PDF文档中读取普通   适用于 Windows 的 Softek Barcode Reader Toolkit 可让您从保存在内存中的图像文件和位图中读取普通 (1D) 和二维条码。开发人员可以选择 4 种不同类型的界面并访问多个示例项目。支持的图像格式:TIF、JPG、BMP。Softek Barcode Reader Toolkit for Windows 当前支持以下类型的条码:PDF-417 (PDF417)、Code-39、Code-128

q2315702359的博客 2107

Rust 所有权与借用:Python 开发者迁移指南(Rust for Python Programmers 第 7 章精讲)

> 本篇文章围绕 `python-book`(Rust for Python Programmers,桥接课程)中**第 7 章 Ownership and Borrowing** 展开:从 Python 的垃圾回收与引用共享心智模型出发,系统讲解 Rust 的单一所有权(single ownership)、移动语义(move semantics)、借用与生命周期(borrowing & life

gitblog_00369的博客 255

Data.Structures.For.Game.Programmers.PART1.Concepts.1&2

【1.Basic Algorithm Analysis】 Big-O Notation: roughly estimates how the algo scales when it's used on diff sized datasets. eg: O(function);   The func is a math formula based on n and c: n represent

The Way To My Dream 708

Rust for C/C++ Programmers 课程导读:从 C/C++ 迁移 Rust 的完整学习路线图

本文是 RustTraining 仓库中 [Rust for C/C++ Programmers](https://link.gitcode.com/i/fa5eca7704a4ffeb02c642819d65cc4a)(`c-cpp-book`)课程的导读与技术路线图,该课程为具备 C 或 C++ 背景的开发者量身定制,覆盖从环境安装、所有权与借用、trait 与泛型,到 unsafe/FFI、

gitblog_00351的博客 97

Rust for C Programmers 开篇:C 开发者为什么要学 Rust——性能、内存安全与类型系统的全面对比

> **导读**:本文是 RustTraining 仓库中《Rust for C# Programmers》训练课程的第一章(对应 [csharp-book/src/ch01-introduction-and-motivation.md](https://link.gitcode.com/i/52113490a41f4809f02df27ba59fcc58))。课程面向具备 C#/.NET 经验的

gitblog_00052的博客 636

Rust for Python Programmers 控制流全攻略:从 if/else 到表达式块、循环与函数签名

> 本文是开源仓库 RustTraining 中 [python-book/src/ch04-control-flow.md](https://link.gitcode.com/i/c52eab38671a03b07238d1f3a49da0aa) 一文的深度扩充版。该文档面向有 Python 背景的开发者,系统讲解 Rust 控制流的四个核心主题:条件语句(`if`/`else`/`else i

gitblog_00768的博客 626
上一篇: Subversion与CVS的对比——功能性对比
下一篇: 优雅的二维数组循环赋值
arust
博客等级 码龄20年 6粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值