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

首先要明白什么是程序员。设计自己的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。你也可以开发自己的编译器,这不是大学的乐趣吗?或是程序集,或是真正理解集理论,或是如何开发适用于数据库与编程数据的结构,或是开发你的第一个编程工具。

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

无需怀疑:移到开发者的前景和“钱景”一片光明

【1】  海量Android教程、开发资料和源码

【2】  海量Linux学习教程和开发资料

【3】  海量C、C++、MFC和VC++教程、源码和开发资料

【4】  海量Java教程、开发资料和源

我5年程序员人生的点点滴滴

职场秘籍之什么样程序员升职快?

程序员的第三条路:走向产品

美国知名科技公司入门级软件工程师的薪水排名

程序员也要养生

老程序员的忠告:不要做浮躁的软件工程师

IT人生路精彩博文精选导读 

成为Java高手的25个学习目标--非常经典

为程序开发人员量身定制的12个目标

程序员编程技术迅速提高的终极攻略

Android技术开发精彩博文精选导读

技术精英谈IT程序员的出路在哪里——很经典

让IT人远离慢性疲劳,长时间操作电脑需要养成的几个好习惯

周立功谈嵌入式:我的25年嵌入式生涯

IT技术开发人员35岁之前应该做的十件事

技术开发人员为什么会无奈苦逼?

印度和中国程序员的区别

程序员水平10分级,你的水平属于哪一级?相关推荐

  1. Java 程序员,年薪 40W 需要什么水平?

    前几天在网上看到这么一个问题,搞Java的程序员年薪40w是个什么水平? 一下勾起了我的兴趣,今天就来简单分析下,到底是什么水平. 那么我们先来搞清楚"JAVA"是谁家姑娘? 不不 ...

  2. 成为优秀高级程序员的10个要点

     成为优秀高级程序员的10个要点 What 软件工程师的职业生涯要历经以下几个阶段:初级.中级,最后才是高级.这篇文章主要是讲如何通过10个步骤助你成为一名高级软件工程师. Why 得到更多的报酬 ...

  3. [置顶] 完美程序员的10种品质

    完美程序员的10种品质 转载自:http://zhousir.net/ 谁是完美程序员?著名博客作家Alex Iskold在<明星软件工程师的10种特质>一文中给出这个问题的答案: 1. ...

  4. 完美程序员的10种品质

    导读:谁是完美程序员?著名博客作家Alex Iskold在<明星软件工程师的10种特质>一文中给出这个问题的答案: 1. 热爱编程 2. 完成事情 3. 持续重构代码 4. 使用设计模式 ...

  5. 一位程序员工作10年总结的13个忠告

    一位程序员工作10年总结的13个忠告 展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告. 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代 ...

  6. java的xml面试题_Java程序员的10个XML面试问答

    java的xml面试题 XML面试问题在各种编程工作面试中非常受欢迎,包括针对Web开发人员的Java面试 . XML是一项成熟的技术,通常用作从一个平台传输数据的标准. XML面试问题包含来自各种X ...

  7. Java程序员的10个XML面试问答

    XML面试问题在各种编程工作面试中非常受欢迎,包括针对Web开发人员的Java面试 . XML是一项成熟的技术,通常用作从一个平台传输数据的标准. XML面试问题包含来自各种XML技术的问题,例如XS ...

  8. 给程序员的10条建议,句句经典

    web前端教程 用大白话,来讲编程 查看全文 http://www.taodudu.cc/news/show-1159917.html 相关文章: 都说程序员是吃青春饭! 世界上最好用的浏览器Chro ...

  9. 禅道程序员的10条原则--转载--为了不忘

    禅道程序员的10条原则 作者: Christian  来源: 伯乐在线  发布时间: 2012-04-23 22:52  阅读: 2802 次  原文链接   全屏阅读  [收藏]   英文原文:Th ...

最新文章

  1. python学习:time、unixtime、string的转换
  2. 程序设计语言python语言概述
  3. Visual SVN Server 远程管理
  4. OGRE分析之设计模式
  5. flex学习网站大全(转)
  6. 学python可以做什么职业-学完python都能做哪些职业?老男孩Python基础培训
  7. node定时任务php 卡,NodeJs实现定时任务的示例代码
  8. c++和QT实现俄罗斯方块,使用GraphicsView。
  9. SQL 高效运行注意事项(一)
  10. 口罩预约管理系统——数据库设计(前端+PHP+MySQL)
  11. 深度学习21天——卷积神经网络(CNN):实现mnist手写数字识别(第1天)
  12. windows双系统--WSL 安装使用
  13. 动态路由rip配置命令
  14. Minesweeper-Java
  15. labview 和lin 通讯_LABVIEW几种通讯应用1
  16. 两只蚊子的感人情感故事
  17. Python:统计大小写字母个数和数字个数
  18. C++设计模式 - 观察者模式(Observer)
  19. 找回ZIP压缩包密码
  20. 基于Java窗体的KTV点歌系统在线点歌系统源码Java课程设计

热门文章

  1. 为什么我说你不爱我了!
  2. Path Planning for UAV Ground Target Tracking via Deep Reinforcement Learning(IEEE Access-2020)
  3. win7 注册表 分辨率
  4. python语音识别与语音合成
  5. 使用shell脚本自动更新动态域名
  6. react--随笔 1
  7. IT人的微信自媒体--- 杰天空, 走在寻找创意的路上
  8. #今日论文推荐# 多边形战士模型!微软提出19亿参数的超大通用模型BEIT-3,刷榜多个CV和多模态任务
  9. 用python制作一个学生信息管理软件_python实现简单学生信息管理系统
  10. Android吉他调音器,GuitarTuna