程序员水平分级

2023-11-19

导读:近日,whattofix.com刊登了一篇 DanielMarkham的文章《What Level Programmer Are You?》,文内将参差不齐的程序员按照技术水平分为从“只读”到“上帝”,共十一个阶段,以帮助广大程序员找到自身定位并从中发现自己发展方向。以下是文章摘要:

 

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

 

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

 

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

 

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

 

 

 

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

 

 

 

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

 

 

 

  Level 4,Object-Dot-Method——刚开始学习 coupling cohesion,他们着手组织自己的脚本面对公共对象、私有成员和方法。这里有六周编程奇迹,介绍 .NET程序员。这些人能玩转导向,了解库和构建类。如果不使用类,他们也能够创建自己的模块或是代码文件。高级脚本用户可远不止这样。有一些高级 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,Meta——在某些时候,希望这些人能意识到大量复杂信息投入结构和构架中可以更好地形容特定域的语言,其受众群体是 Level 4程序员。代码的复杂性增大,就能减少代码的数量,DSL开放可以将代码展示到各种地方。总之,他们将成为程序员使用脚本语言方面的作家。通过易于使用的脚本和导向将他们的系统开放给初学者。可以分别学习这些技能,但大多数情况是在复杂的结构后,最终走向 DSL的道路。很快就能看到最初规模:利用自己编写的 DSL能够很好的理解问题。

 

 

 

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

 

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

 

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

 

 

 

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

 

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

程序员水平分级 的相关文章

  • 索引多列并匹配不同的值,返回跨列的唯一值列表

    我已经在漫长的几周内广泛寻找解决我的问题的方法了 我提出了一个部分有效的解决方案 我将其包含在底部 供那些可能知道如何修改 扩展它们以解决问题的人使用 这就是我想要完成的任务 以下描述参考此屏幕截图https i stack imgur c
  • 通过 Whatsapp 从 Excel 发送图片

    我们如何通过 Whatsapp 从 Excel 发送图片 我找到了通过以下方式发送消息的vba代码https web whatsapp com https web whatsapp com Sub Test Dim text As Stri
  • 从html中获取属性字符串值

    我正在构建一个宏来使用从网站提取数据vba questions tagged vba 目前 我可以使用元素语法轻松地从表内容中获取值 例如obj getElementsByTagName td innerText 但是 当某些单元格中有一些
  • 将数据从 Excel 导出到 Outlook

    我已经用 Excel 起草了一封电子邮件 其中填充了数据表中的信息 单元格 A1 到 A4 包含 嗨 希望你做得好 和消息 等等 A5到H10有一个包含信息的表格 A11到A30有类似 期待您的回复 的电子邮件内容 我只想复制 A1 A4
  • 如何在 C# 中将 excel ListObject 添加到给定工作表?

    我目前正在 C 中开发一个 Excel 插件 其中包含多种方法 表值函数 可供 Excel 用户和程序员 VBA 使用 如何编写一个方法 将新的 ListObject Excel 表 添加到给定的 Excel 工作表 并将给定的 DataT
  • VBA 窗体最多可以容纳多少个控件?

    我目前正在构建一个 Excel 2003 应用程序 该应用程序需要非常复杂的表单 并且担心控件数量的限制 目前它有 154 个控件 使用Me Controls Count 这应该是准确的 对吧 但可能只完成了大约三分之一 工作流程确实适合单
  • 将Excel数据转换为特定的JSON格式

    我收到一个 Excel 文件 xlsx 如下所示 行和列的数量可以变化 例如 它也可以如下所示 对于第一张图片中的 Excel 工作表 JSON 应如下所示 value Prename Nik Age 17 Country Switzerl
  • 您可以使用 Openpyxl 将全名拆分为名字和姓氏吗?

    我有一个 Excel 文件 我一直在尝试使用 openpyxl 将列 全名 拆分为两个单独的名字和姓氏列 例如 我有 from openpyxl import Workbook load workbook wb load workboo p
  • 使用 C# 在 Powerpoint 2013 中创建具有多个系列的图表

    我使用的是 VS2013 Ultimate 带有 Office 2013 已安装 PowerPoint Excel 和 Word 我正在用 C 编码 我正在使用 C 创建 PowerPoint 演示文稿 到目前为止 我已经成功地完成了我想做
  • VBA 下标超出工作簿名称范围

    我从网上拉了一些代码来打开文件夹中的最新文件 这似乎工作得很好 然而 在代码的后面 我添加了一行附加行来设置最近打开的同一文件 尝试此操作时 工作簿 subscipt 超出范围 我认为这与语法有关 可能需要在工作簿名称中添加额外的引号 有什
  • 使用 VBA 清除 Excel 单元格格式而不清除 NumberFormat

    是否可以在不改变 的情况下清除Excel单元格格式和内容 使用VBA NumberFormat 给定的单元格 我尝试过 ClearContents ClearFormats 但 ClearFormats 删除了数字格式细胞也 请建议 你可以
  • 列表框错误“无法设置列表属性。属性值无效。”

    我有一个带有列表框 文本框 组合框和保存按钮的用户表单 下面是我的保存按钮代码 Private Sub cmdsave Click Dim x As Integer x Me ListBox1 ListCount If Me cmbtran
  • 在 EXCEL 中使用多个表的条件求和

    我有一个表 我试图根据两个参考表的值来填充该表 我有各种不同的项目 类型 1 类型 2 等 每个项目运行 4 个月 并且根据其生命周期的不同时间 花费不同的金额 这些成本计算显示在Ref Table 1 参考表1 Month a b c d
  • 如何删除Excel 2010单元格中的某些字符

    在 A 列中 我有很多类似这样的名称 约翰 史密斯 我仍然希望它们在 A 中 但 被删除了 If John Smith 位于单元格 A1 中 然后使用以下公式执行您想要的操作 SUBSTITUTE SUBSTITUTE A1 内部 SUBS
  • 有没有办法使用 openpyxl 或 xlsxwriter 保护工作簿?

    我正在尝试自动化 Excel 报告 并且我希望用户不要尝试重命名或重新排序工作表 虽然我使用 xlsxwriter 保护单个单元格没有问题 但我没有看到保护工作簿本身的选项 我正在寻找 openpyxl 但教程似乎没有任何效果 编辑 我现在
  • 检查所选单元格是否在特定范围内

    我正在使用 C 创建 Excel 加载项 如何检查选定的 或代码中范围表示的单元格 是否在特定范围内 例如如何检查单元格 P 5 是否在 A 1 Z 10 范围内 Use Application Intersect 像这样 在VBA中 Su
  • 如果字符串包含列表中的单词,则返回与列表值相邻的值

    目前我有一组单元格 每个单元格在无用的信息中都有一个唯一的标识符 我还有这些唯一标识符的列表 以及每个标识符对应的值 我想做的是找到一个单元格包含哪个标识符 如果有的话 然后输出相应的值 下面是一个例子 https i stack imgu
  • 如何粘贴到Excel B列的最后一行?

    我需要将单元格从 H2 L2 一直向下剪切并将其粘贴到 B 列的最后一行 数据每次都会不同 所以我无法对任何范围进行硬编码 VBA 代码会很好 从 H2 L2 向下剪切并粘贴 插入到 B 列的最后一行 到目前为止我得到了 Range H2
  • 使用 Jquery Easyui 将数据网格导出到 Excel

    我是 json 新手 我使用 php 从 mysql 表生成了 jason 数据 并希望将生成的 json 导出为 xls 格式 考试导出 php
  • 使用 Cucumber Scenario Outline 处理 Excel 电子表格

    如果可能的话 我试图找到一种更优雅的方法来处理从与 Excel 电子表格行 第 n 个 相关的 Cucumber Scenario Outline 中调用第 n 个数字 目前 我正在使用迭代编号来定义要从中提取数据的 Excel 电子表格的

随机推荐

  • 飞桨AI Studio(星河社区)推出文心大模型的SDK功能

    随着大模型的涌现 我们喜悦于其远远超越小模型的性能 但又不得不面临大模型开发难的困境 训练难 微调难 部署难 开发者难以将其投入实际生产 不仅面临资源的限制 更面临高精数据难寻 时间成本过高等问题 为了让平台更多开发者可以进行大模型开发 体
  • 有序顺序表的插入

    下面看问题场景 如图是一个有序表 有序表是用数组承载的 然后我想把 元素 8插入到有序表 怎么实现呢 下面开始用人脑模拟 要把 8 插入到有序表 先从有序表的第一个元素和8进行比较 依次看到了7 下一个元素9大于8 停止遍历 我们就把 8
  • ABAP动态编程-动态生成报表、动态屏幕

    目录 前言 一 动态生成报表并调用 二 动态生成屏幕并调用 总结 前言 本文主要讲述ABAP编程中根据逻辑自动生成报表及屏幕 依托语句GENERATE DYNPRO 的实现示例及简单说明 一 动态生成报表并调用 代码示例 Create re
  • Map对象以及作用域

    首先我们要明白什么键值对 键值对 key value 顾名思义 每一个键会对应一个值 例 a 身份证号和你本人是绑定的关系 每一个身份证 键 会对应一个人 值 b 登录微信和游戏 需要输入手机号验证身份 手机号码 键 对应接收用户 值 每个
  • core_cm3.h文件报错问题

    D Software Keil5 ARM PACK Keil STM32F1xx DFP 2 1 0 Device Include stm32f10x h 483 error 5 cannot open source input file
  • mysql批量插入数据

    比较两种批量插入数据的方法 差距不是一般的大 方法一 最笨重的方法 一条一条的插入 sql语句如下
  • 假定CSomething是一个类,执行下面这些语句之后,内存里创建了____个CSomething对象。...

    CSomething a CSomething b 2 CSomething c 3 CSomething ra b CSomething d b CSomething pA c CSomething p new CSomething 4
  • Python自动化测试之异常处理机制知识讲解

    一 前言 今天笔者还是想要讲python中的基础 主要讲解Python中异常介绍 捕获 处理相关知识点内容 只有学好了这些才能为后续自动化测试框架搭建及日常维护做铺垫 废话不多说我们直接进入主题吧 二 异常处理合集 2 1 异常处理讲解 在
  • 四川百幕晟科技有限公司:抖音名称最多多少字?

    在抖音上 用户可以为其帐户选择昵称 该昵称显示在用户的个人资料中 不过 很多人好奇 一个抖音昵称到底能有多少个字 本文将深入探讨抖音昵称长度限制以及一些最吸引人的昵称示例 1 抖音昵称长度限制 抖音昵称的长度限制是一个相对灵活的规定 具体而
  • android判断一个Activity是否处于栈顶

    实际开发中我们需要很多情况需要判断某个activity是否位于栈顶 也许会给新的小伙伴带来困扰 那么直接上代码吧 也没几行 判断某activity是否处于栈顶 return true在栈顶 false不在栈顶 private boolean
  • Charles连接手机移动端的基本使用及教程

    一 Charles基本使用 1 打开 Help Local IP Address 查看本机的IP地址 2 设置手机 手机需要连接到和电脑在同一网络的 WIFI 依次打开 设置 无线局域网 点击已选wifi最右边的感叹号 填好以后 返回 打开
  • MySQL 8 group by 报错 this is incompatible with sql_mode=only_full_group_by

    文章目录 sql mode配置 ONLY FULL GROUP BY STRICT TRANS TABLES NO ZERO IN DATE NO ZERO DATE ERROR FOR DIVISION BY ZERO NO AUTO C
  • linux的设计模式属于,linux下GUI设计模式的有效性

    考虑到你在评论中如何解释你的应用程序 同时完全支持Qt 我也建议你考虑一下将你的应用程序变成一个web应用程序可能带来的许多好处 在 既然你说它是一个客户端服务器应用程序 它至少需要 至少 本地网络连接 所以通常针对web应用程序提出的第一
  • 多人实时对战网络同步方式研究

    写在开头 已经研究生毕业快一年半了 一直在一家游戏公司做客户端研发 至于这篇文章讲的却是服务端的东西 主要是因为以前一直没想写博客 学到的东西也一直记在本子上就得了 本人喜欢有剧情的东西 像RPG游戏 仙剑爱好者 有剧情的电视 电影 还有竞
  • 华为OD机试真题 Java 实现【开心消消乐】【2023 B卷 100分】

    目录 一 题目描述 二 输入描述 三 输出描述 四 Java算法源码 五 效果展示 1 输入 2 输出 3 说明 一 题目描述 给定一个N行M列的二维矩阵 矩阵中每个位置的数字取值为0或1 矩阵示例如 1 1 0 0 0 0 0 1 0 0
  • en结尾的单词_形容词加en前后缀变动词的英语单词

    1 hreat threaten恐吓 2 strength strengthen 使 变长 加强 巩固 使强大 3 loose loosen 使放松 4 tight tighten 使变紧 5 weak weaken 削弱 使 变弱 6 w
  • FPGA(3)验证数字逻辑(与门、与非门、二选一数据选择器、2-4译码器、半加器、全加器)

    目录 一 验证与门 二 验证与非门 三 验证二选一数据选择器 四 验证2 4译码器 五 验证半加器 六 验证全加器 0 初始化定义 1 第一个半加器 2 第二个半加器 3 得到最终进位Co 代码 0决定与 1决定或 一 验证与门 只要有一个
  • flask + 操作Mysql数据库

    安装flask sqlalchemy pymysql模块 1 pip install flask sqlalchemy pymysql Flask SQLAlchemy的介绍 1 ORM Object Relationship Mappin
  • JS字符串替换函数全部替换方法

    color olive JS字符串替换函数 Replace 字符串1 字符串2 1 我们都知道JS中字符串替换函数是Replace 字符串1 字符串2 但是这个函数只能将第一次出现的字符串1替换掉 那么我们如何才能一次性全部替换掉了 将上面
  • 程序员水平分级

    导读 近日 whattofix com刊登了一篇 DanielMarkham的文章 What Level Programmer Are You 文内将参差不齐的程序员按照技术水平分为从 只读 到 上帝 共十一个阶段 以帮助广大程序员找到自身