【分享】你敢来挑战?程序员等级

参差不齐的程序员按照技术水平分为从“读写”到“上帝”,共十一个阶段,以帮助广大程序员找到自身定位并从中发现自己发展方向。以下是文章摘要:

随着技术发展,编程悄然融入了我们的生活。我们已然离不开那些程序和编程语言。很多人都在不同程度地谈论着如何编程,也诞生出很多编程语言排行,那么程序员到底应该如何分级呢?

首先要明白什么是程序员。设计自己的Apache Web服务器的家伙?制作一个复杂Excel的家伙?还是能自己开发RPG的家伙?Minecraft的玩家?这些都属于程序员的哪一个级别呢?当我们说:“每个人都需要了解编程”,这句话意味着什么?

所以,我们需要制定一个程序员的等级,以便让程序员们了解自己所处的环境和发展方向。

Level 1,读写——他们了解设置Web服务器的方法,在普通情况下能够通过配置方式获取工作所需要的东西。他们有使用文本编辑器和文件系统的基础知识,还拥有移动和操作文件的能力,如ZIP和FTP。也能在结构中使用抽象符号、解析方式以及系统技能。

Level 2,脚本——能够编写线性脚本告诉电脑要做什么,能够学习和使用自己的符号。如果有足够的时间和书面指导,他们可以使用bash或VB编写一些简单脚本,为自己做些实用的事情。

Level 3,管理员——这 些人了解库和API,并有能力学习更多。他们知道不管使用什么脚本语言都需要连接库。如果他们遇到问题,可以通过阅读使用手册或是在网上搜索库来解决。在 工作中他能够发现或是开发自己的符号(使用struct编写函数或是声明)。大多数系统程序员都处在这个等级阶段,Excel的初级宏系统用户也同样处在 这个阶段。

Level 4,高级实践者——刚 开始接触耦合性与内核,他们能编写自己的对象化脚本(有公有/私有成员和方法)。这些人能玩转技巧,了解库和构建类。如果不使用类,他们也能够创建自己的 模块或是代码文件。高级脚本用户可远不止这样,有一些Excel技巧经验丰富的股票经纪人,他们使用自己VBA作为基础代码,而没有意识到自己处于这个级 别。

Level 5,掌握多种技能——一旦 上升到这个级别,将会遇到各种各样的麻烦。常见编程下一阶段就是能够使用多重框架。这些人可以编写C#,也知道如何创建表格和编写SQL语句;可以编写 C,同时也会使用JavaScript和HTML。这两个技能并不代表他们就是大师,只是要学会在理解同一个问题上,需要通过多种不同的方式来找寻答案。

Level 6,初级构架师——这 阶段的人才算是真正的从事编程工作。他们每天的工作就是要深入了解库和API。并不要求他们必须记住这些,但要了解用不同的模式去实现自己的目标。想要在 Win32中绘制?可能需要一些GDI资源句柄,他们知道句柄是在系统表某处的一个UInt32 hash——常见的Win32范例。想在自己的库中添加jQuery?新库里有很多格式,他们应该知道怎么做并且能解释其工作方式。与此同时,也要开始学 习如何重构自己的代码并突显亮点,增强其代码的质量,慢慢地你会理解。

Level 7,资深构架师——他 们的时间是用来创建自己的API、平台或是库。也许这是一个大项目的必需品,也许只是他们个人想把自己的学识推广出去。他们开发的系统为用户解决实际问 题,所面对的受众群是Level 5程序员。在这个阶段需要深入OOAD,模板和实践。我们大多数人在刚开始都会搞得一团糟,不能理解怎么用更加简单的方法将复杂事情简易化。这个阶段需要 历经很长时间,需要不断修正错误,开发高质量的系统并创建更复杂、灵活性高的库。当他们从外面接受几个月的特定培训回来,肯定希望团队其他人都能理解他做 了什么。

Level 8,诠释者——在 某些时候,希望这些人能意识到大量复杂信息投入结构和构架中可以更好地形容特定域的语言,其受众群体是Level 4程序员。代码的复杂性增大,就能减少代码的数量,DSL开放可以将代码展示到各种地方。总之,他们将成为程序员使用脚本语言方面的作家。通过易于使用的 脚本和导向将他们的系统开放给初学者。可以分别学习这些技能,但大多数情况是在复杂的结构后,最终走向DSL的道路。很快就能看到最初规模:利用自己编写 的DSL能够很好的理解问题。

Level 9,函数式编程——慢 慢接近奖金,他们要开始学习如何函数式编程。其受众群是Level 3的程序员。函数式编程是必不可少的,帮助他们轻松地脱离DSL,并能够大幅度减少代码数量来解决问题,同时拥有较高的扩展性。某些功能语言在系统运行时 可以hot–swap,慢慢就会感觉到已经接近先进水平。函数式编程是一切问题的答案,它可以减少Bug,提升开发效率,但代码也相对来说很难学。程序员 的脑海里需要时刻记忆很多东西——他们必须要记住繁琐的复杂符号。但是,结根到底函数式编程只是道路上的一个阶段,就像OOAD一样。

Level 10,面向语言设计师——他 们查看所有新创建的编程语言程序。惟一的区别是新语言应该做什么。他们了解如何开发面向对象语言,语言功能和脚本语言,知道每一个语言在何时何地的用途。 其受众群是Level 2程序员。他们对每一个项目都会问:“这个项目我们需要什么样的语言?”在项目完结后他们将会得到一个很好的工具,既解决了问题并易于理解还扩展了入门级 程序员。大多数项目不需要面向语言设计师。

上帝级别,计算机科学家——要 么就是编程的顶峰要么就不存在,这个取决于自己的观点。这个就是科学规划,在里面有很多很酷的东西。任何一个人都是其受众群体。但重点不是在于做人们想要 的东西,而是促进学术的发展。因为大多数编程能力水平都是基于人而言,人们居住在世界各地,也是必要条件之一。如何简单的在两国之间相互来往?

你在这里可能受到很多启发,例如,首先学习函数式编程再学习OOP。你也可以开发自己的编译器,这不是大学的乐趣吗?或是程序集,或是真正理解集理论,或是如何开发适用于数据库与编程数据的结构,或是开发你的第一个编程工具

这些是我所看到的大多数程序员所遵循的道路。(转帖)

时间: 2024-10-10 10:27:09

【分享】你敢来挑战?程序员等级的相关文章

阿里巴巴的程序员等级2019

根据近年数据,中国现有程序员500万左右,其中P1.P2数量占据了近100万,P8及以下程序员约有490万,P9及以上仅有10万. 80后是企业的技术支柱,90后已开始逐步成为企业的中坚力量.BAT的大佬横行,业内的散客也不容小觑.90后有人在P4彻夜敲代码,也有人正迈入P8. 目前并没有对程序员等级进行明确的划分,很多时候是参照BAT的程序员等级进行判定. P1.P2 入门 1.了解计算机专业的基础知识,懂计算机的基本操作,掌握一门基础的程序语言即可. 2.BAT一般空缺,为非常低端岗位预留.

【学习分享】温水里的程序员,技术将成为温水。

七月,炎炎的夏日,疯狂的暴雨不分昼夜,侵袭着这座城.早上七点,我骑着摩拜单车出发去往地铁站,誓死如归一般的,挤进地铁.像往常一样,骑车.挤地铁.打卡上班.相信大家都跟我一样,未来的憧憬支撑着我们,日复一日的写着代码.重复着一样的工作.造不完的车轮.用不完的框架,然而我慢慢的开始觉得这是一个陷阱,一个把我们的梦想与未来禁锢在牢笼中.细细把玩的理想主义者. 说一个老掉牙的故事:<温水煮青蛙>, 美国康奈尔大学作过一次有名的实验. 经过精心策划安排,他们把一只青蛙冷不防丢进煮沸的油锅里,这只反应灵敏

分享:想要成为Java程序员都需要掌握哪些技术?

随着<2018年中国大学生就业报告>出炉,计算机相关专业的高就业率引起了人们的关注.为了能够实现高薪,越来越多的非专业人士转行从事编程开发,Java作为最受欢迎的编程语言成为人们的一致选择! 想要成为一名优秀的Java程序员,不能像无头苍蝇一样乱转,一些关键技术的掌握是非常重要的,比如说×××老师分享的这九点: 一.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的JavaAPI,包括集合框架.多线程(并发编程).I/O(NIO).Socket.JDBC.XML.反射等.

java程序员等级一览:都来看看自己所处的等级

凡人:买本书凑凑热闹,听得多写的少,过段时间就把老师教的都忘了.这个阶段是刷掉人最多的阶段,也是从凡人到程序员本质区别的阶段.你的日后成就在于你的习惯与态度.隔一段时间整理自己的知识体系是重中之重.如果你做得多于看代码,那么恭喜你,你进入下一阶段. 筑基:评价标准:懂了怎么配置环境变量,懂得bin目录下都有什么,java命令行基本懂点.明白了变量类型,也碰过几个坑,知道java的值传递,引用传递,脑子里有点函数和类的概念.try catch用不好,用println多余log4j,知道继承但就是不

判定程序员等级,HashMap就够了

JDK1.8  HashMap源码分析 用到的符号: ^异运算:两个操作数相同,结果是;两个操作数不同,结果是1. &按位与:两个操作数都是1,结果才是1. 一.HashMap概述 在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里.但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低.而JDK1.8中,HashMap采用数组+链表+红黑树(二叉树的优化实现是一种平衡二叉树,可以降低数的深度)实现

判定Java程序员等级,HashMap就够了

JDK1.8  HashMap源码分析 用到的符号: ^异运算:两个操作数相同,结果是;两个操作数不同,结果是1. &按位与:两个操作数都是1,结果才是1. 一.HashMap概述 在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里.但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低.而JDK1.8中,HashMap采用数组+链表+红黑树(二叉树的优化实现是一种平衡二叉树,可以降低数的深度)实现

(转)新手程序员最常用的十大网站

刚开始入行的程序员很多很迷惘,不知道去哪里找到合适有用的资源,哪里有和自己一样的新手,哪里有高手,哪有有代码可以学习. 我将分享一些收藏多年且非常有价值的网站跟大家分享. 1. Google https://www.google.com/ 不是你不知道,而是你不善用google,使用google有非常多的技巧,可以网上搜索google搜索技巧. 2.Stackoverflow http://stackoverflow.com/ 程序员问答网站,有任何问题都可以提出来或者搜索答案,要一定英文基础.

给程序员的五点建议--如何成为编程高手并以此创业

写在前面:此篇文章出自雷军之手,是他为软件开发2.0技术大会准备的演讲稿,但由于某些原因没有派上用场.这里跟大家分享下,对我们程序员来说还是大有裨益的. 每个IT企业,尤其是初创企业,非常苦恼:找不到好的程序员.现在大学.软件学院及各种培训机构,每年培养几十万的程序员,毕业的每个人都有同样困恼:找不到好的工作.问题出在哪里呢?其实,企业需要的是不是刚会写程序的人,需要来了就能干活的人,尤其能把活干好的人.而刚毕业的大学生多半刚学会如何写程序,的确很难企业需求. 企业到底需要什么样的程序员,一个刚

程序员的励志故事:Stay Hungry, Stay Foolish

在整个社会都在关注乔帮主的时候,我想在这里和大家分享一个真实的就在我们程序员身边的故事.和我在<如果你看不见你还能编吗?>一文里介绍的那些盲人程序员一样,同样是Stay Hungry, Stay Foolish.但我个人更认为我今天想要给大家讲述的这个故事对于我们这些普通人更有意义一些.我真心的希望大家认真看完这个"从刷厕所到程序员"故事后,我们能从中感悟到点什么. 因为朋友的原因,我和一个创业团队经常有些往来,通过这个团队,我认识了这个故事的主人翁--王平(@wpings