程序员的八个级别

2009年4月6日 陈皓

programmer

在面试时,你可能会被经常问到“在未来5年,你想干什么?”,这可能是一个比较难回答的问题。在中国,答案一般可能会是Team leader,Manager,或是Architect,Specialist等,在中国,大家可能更多地觉得manager会是程序员的下一个目标,可是在国外,经理和程序员可能是两个不同的分支,Architect或Specialist 比经理来说更牛、代遇可能也更好,因为这些人的智商需要的更高。

在著名的“Coding Horror” 上出现了这样一篇文章,我把其转到这里(我并没有完全一模一样的翻译,我只不过是用自己的话转述罢了),也让大家看看国外人的思考方式(当然,这篇文章只是分析程序员的级别而不是工种)。正如其作者结尾时所说,这八个级别并不是很严格的,其只不过是一种想法,希望能给大家另一种思路。

第八级 不朽的程序员

这一级别是程序员的最高级别。你的代码比你的生命活的还长,当你死后,你将会成为整个历史的一部分。其它程序员对你顶礼膜拜,或许你会获得计算机最高奖“图灵奖”,不然就是一系列极其影响力的论文,再不然,就是发明了一些可以影影响整个编程界根基的技术。你拥有的不仅仅是在维基百科上的一个词条,还会有一个专门的网站来研究你的生平和你的工作成果。

比如:Dijkstra, Knuth(编程艺术的作者), Kay

 

第七级 成功的程序员

这类程序员一方面很著名,另一方面在商业上也很成功,他们影响了整个工业界。他们似乎决定了工业界中发展的方向,这些人,自己的编程能力固然了得,但估计他们的Business方面的能力应该大于他们编程的能力。(我个人认为Linus应该属于这一类)

比如: Gates(比尔盖茨), Carmack(Doom和Quake 3D游戏), DHH (Ruby on Rail的创建者)

 

第六级 著名程序员

这一类的程序员,在编程圈子内比较有名气,但是他们的这种名气并不一定能给他们带来某种利益。名气是一件好事,但是成功可能更好一些,这类人一般正在给一个很著名的大的公司,或是是一极具影响力的小公司里工作,或者正在创建自己的事业。无论怎么样,其它的程序员听说过你的名字,并以你为榜样在效仿着你。

 

第五级 骨干程序员

这类程序员一般来说都是公司里的骨干份子,他们担任着公司内最重要的编程角色,在公司内部,他们受到老板和其它程序员的尊敬,他们不会失业,因为他们随时都可以很容易地找到工作。他们工作过的公司都会因为他们而有所发展。

 

第四级 一般的程序员

这类程序员的优点在于,他们很清楚地意识到了自己可能这一辈了也无法成为一个伟大的程序员。天才只是很少的一部分人。如果这类程序员有一些商业和人员管理能力,他们也会在公司里相当的成功。“认识自我”并不简单,这并不是一般人能做到的,能够认识自己的人已经是很不错了,找到自己的长处,并像那个方向努力,一定也会很成功的。因为在公司里,并不只有程序员一种职位,经理,PM,流程,SQA,技术支持,售前,管理员,测试人员等等都可能会让这类程序员有更为广阔的天空。

 

第三级  业余的程序员

这类人员不管是不是计算机科班出身,基础如何,他们对编程有着特殊的爱好,他们可能会是一些很有前途的学生或实习生,也许他们可能会给开源做一些贡献(比如说提供一些语言包或是一些插件什么的),有时候,他们也会写两个小工具软件放在网上让人下载,也行有些时候就是为了玩玩而开发一些小程序而打发一下他们空闲的时间。他们完全是靠热情和承诺来编程。兴趣永远是最好的老师,也是最好的一件事,因为兴趣而引发的热情通常会让这些程序员成为“骨干程序员”。

 

第二级 不知名的程序员

这一级的程序员是典型的为大众所知的程序员,他们有一定的编程能力,但并不出众,也许他们会在一家大公司里工作,只程序员只不过是他们的工作而已,并不是他们人生的全部。当然,这样的程序员也挺好的。必竟,平凡地人还是大多数,平凡地活着也没有什么错的。

 

第一级 糟糕的程序员

这类程序员不知道为什么就走上了编程这条路,他们甚至连最基本的编程经验和能力都没有。所有被他们碰过的事情都需要他们的同事重头再返工一遍,他们根本不就是程序员。程序员这个职位对于他们可能就是一个错误。

正如原文作者所说,“这些级别并不是很严肃的,也并不是每个程序都会去思考一下自己的未来,但是这些级别可能会让你去想一想从事程序员十年/二十年/三十年后,自己可能变成什么样。”

文章:来源

原址:http://coolshell.cn/articles/343.html

(转载本站文章请注明作者和出处 酷壳 – CoolShell.cn ,请勿用于任何商业用途)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个具有Spring Boot,Spring Security和Stormpath的简单Web应用程序-15分钟

建筑物身份管理,包括身份验证和授权? 尝试Stormpath! 我们的REST API和强大的Java SDK支持可以消除您的安全风险,并且可以在几分钟内实现。 注册 ,再也不会建立auth了! 更新 :我们最近发布了对…

javafx2_JavaFX 2 GameTutorial第5部分

javafx2介绍 这是与JavaFX 2 Game Tutorial相关的六部分系列的第五部分。 我知道自从我写关于游戏的博客以来已经有很长时间了,但希望您仍然与我在一起。 如果您想回顾一下,请阅读第1部分 , 第2 部分 , 第3 部分和第4 部分 &#…

史上最简单的SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)(Finchley版本)

转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f2-ribbon/ 本文出自方志朋的博客 在上一篇文章,讲了服务的注册和发现。在微服务架构中,业务都会被拆分成一个独立的服务,服务与服…

忽略已检查的异常,所有出色的开发人员都在这样做–基于600,000个Java项目

Github和Sourceforge上超过600,000个Java项目中的异常处理概述 Java是使用检查异常的少数语言之一。 它们在编译时强制执行,并且需要某种处理。 但是……实践中会发生什么? 大多数开发人员实际上处理任何事情吗? 以及他们如何做到的&#xf…

使用Boxfuse轻松在云中运行Spring Boot应用程序

几天前,我开始构建一个将使用REST API检索和存储数据的iOS应用。 该REST API将是我也必须构建的服务器应用程序。 由于我熟悉Java和Spring ,因此决定使用Spring Boot作为框架。 为了能够在我的iPhone上使用它,如果我可以在服务器而不是我自己…

numpy的使用数组的创建2

随机创建了长度为十的数组 获得十以类的随机整数 快速获取数组2乘3维的数组 生成20个1到10之间的数组 通过reshape 将这些数变成二位数组 shape这个方法可以查看数组中的元素是几行几列的 转载于:https://www.cnblogs.com/chenligeng/p/9315339.html

Tabs vs Spaces:如何在Google,Twitter,Mozilla和Pied Piper上编写Java

流行的Java代码样式中最有趣的亮点是什么? 尽管上面有暗示性的形象,我们也不想发动任何不必要的圣战。 当归结为编码样式时,大多数选择都是相当随意的,并取决于个人喜好。 是的,即使在编辑器之间制表符宽度改变了&…

ES group分组聚合的坑

参考链接:https://blog.csdn.net/u010454030/article/details/71762838 ES group分组聚合的坑 原来知道Elasticsearch在分组聚合时有一些坑但没有细究,今天又看了遍顺便做个笔记和大家分享一下。 我们都知道Elasticsearch是一个分布式的搜索引擎&#xf…

字典树 ZOJ1109 HDU1251 PKU1204 HDU1075

又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:…

Codeforces Round #498 (Div. 3) F. Xor-Paths

题目链接&#xff1a;F. Xor-Paths 题解&#xff1a;从起点和终点双向搜索在中间相遇时更新答案 1 #include<bits/stdc.h>2 #include<set>3 #include<cstdio>4 #include<iomanip>5 #include<iostream>6 #include<string>7 #include<cst…

创建健壮的微服务架构所涉及的组件

在本文中&#xff0c;我们将简要学习构建强大的微服务应用程序所需的各种软件组件。 在简要了解每个架构组件之前&#xff0c;我们将陈述设计微服务架构时出现的一般查询。 1.微服务架构组件 每当我们创建微服务应用程序时&#xff0c;我们都会想到以下问题 我们将如何注册微…

MATLAB画图命令zz

一、散点图 1&#xff0e;1&#xff0e;命令 plot 功能 线性二维图。在线条多于一条时&#xff0c;若用户没有指定使用颜色&#xff0c;则plot循环使用由当前坐标轴颜色顺序属性&#xff08;current axes ColorOrder property&#xff09;定义的颜色&#xff0c;以区别不同的…

jax-rs jax-ws_JAX-WS入门

jax-rs jax-wsJAX-WS代表XML Web Services的Java API。 它是一种Java编程语言API&#xff0c;用于创建Web服务和使用XML进行通信的客户端。 这篇文章是JAX-WS的快速入门。 先决条件 GlassFish与Eclipse集成在一起 。 创建JAX-WS Web服务 1.在Eclipse中创建一个名为“ com.e…

lingo解题报告内容解释

1.2菜单介绍 1.2.1 File 1 New 新建一个窗口,当你执行这个命令时,会出现如下对话框: 你可以在对话框中选择你想要建立的类型.类型如下: 1)扩展名为(*.lg4) LG4格式是LINGO4.0的版本,是在Windows下最主要的储存文件格式,这种格式支持字体格式,自定义格式以及动态连接, LG4以二进…

OpenShift上的无痛集装箱化JBoss通用贷款处理

我们从头到尾讨论了各个层次&#xff0c;但尚未为您提供除Red Hat之外的任何应用程序开发工具。我们一直在讨论为什么应用程序开发人员在App Dev Cloud Stack系列中不能再忽略其堆栈了。 容器开发套件&#xff08;CDK&#xff09; 。 到目前为止&#xff0c;您所拥有的只是一个…

多任务编程—多进程

什么是多任务编程&#xff1f; 多任务编程其实和计算机系统内核有关&#xff0c;通过程利用多个计算机内核同时执行程序&#xff0c;以此来提升程序执行的效率。 多任务编程其中包括&#xff0c;多进程、多线程和多协程&#xff0c;这三种多任务编程各有各的优点和缺点&#xf…

java锁实现_Java锁实现

java锁实现我们都将第三方库用作开发的正常部分。 通常&#xff0c;我们无法控制其内部。 JDK随附的库是一个典型示例。 这些库中的许多库都使用锁来管理争用。 JDK锁具有两种实现。 一个使用原子CAS样式指令来管理索赔过程。 CAS指令往往是最昂贵的CPU指令类型&#xff0c;并且…

洛谷 P1027 Car的旅行路线

P1027 Car的旅行路线 题目描述 又到暑假了&#xff0c;住在城市 AA 的 CarCar 想和朋友一起去城市 BB 旅游。她知道每个城市都有 44 个飞机场&#xff0c;分别位于一个矩形的 44 个顶点上&#xff0c;同一个城市中 22 个机场之间有 11 条笔直的高速铁路&#xff0c;第 II 个城市…

API

api 百科名片 API&#xff08;Application Programming Interface,应用程序编程接口&#xff09;是一些预先定义的函数&#xff0c;目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力&#xff0c;而又无需访问源码&#xff0c;或理解内部工作机制的细节。目…

jsf标签p:ajax_JSF简单Ajax示例

jsf标签<p:ajax>今天&#xff0c;我们将看到一些使用JSF的Ajax简单样本。 如果要查看有关JSF / Web应用程序的其他文章&#xff0c;请单击以下链接&#xff1a; 重定向后的JSF持久化对象和消息 &#xff0c; 使用JAAS和JSF进行用户登录验证 &#xff0c; JSF&#xff1a;…