初级程序员 中级程序员 高级程序员级别划分

news2025/1/20 6:00:01

网络上众说纷纭,大都站立在对某一技术的知识掌握量上来界定,或者有些人说着说着,发现无法自圆其说,然后就说这三种人就是一种叫法,你觉得你是高级你就高级了,从概念上讲,这三者之间必然有质的区别,单纯以量是无法划分的,为此,我来定义这三个边界。

初级程序员(一维知识层面)

我以PHP的知识树来举例,这个知识树在其他语言也是通用的,按照这个知识树掌握完,则对一门语言就可以熟练使用,一个初级程序员要对一种语言达到全面掌握,不求深度,但求广度,用刀的人只需要把刀法练到极致,不必说需要去学怎么打铁,以及用什么铁质打得刀更硬,所以很多人硬要让新人去研究底层实现,看源码,都不是解决初级程序员的问题。

1. 一门知识的全貌,要通学三遍,将该门知识的任何一个细微的知识点都搞清楚,搞明白,记得清清楚楚,有案例,有对应,有实现,弄得明明白白,能随手写出来,背出来,才是对这门知识的一种切实掌握,这种牢固的基础,将在后期耍刀时,能耍的刚劲有力,垒墙垒得健壮;

2. 对于该门知识的相关配套,能干什么,做什么,都清清楚楚。一门语言就是一种粘合剂,负责将各种功能的东西粘合在一起。

 中级程序员(二维组合应用)

针对每一种学习到的基础知识的组合应用,这是维度层面的上升,A+B+C 会组合出来各种灵活巧妙的解决方案,大量的组合并非赤裸裸单个出现,往往会结合大量的应用场景,所以一般中级程序员就是在公司内,经过常年累月的历练,积累了大量可操作性的方式,这些方式的集中体现就是工作经验。

1. 一种知识出现的必要性,要能有实际场景进行对应,如果一种知识对你来说可有可无,你没找到它的必然性或者替代品,那么这就是中级程序员需要关心的问题,如果你轻易的忽略了,久而久之,只会继续停留在初级程序员的知识积累过程,不能提升到组合式解决问题的能力上,也就只会垒砖,垒出来的墙还是经不起风吹的,新需求来了拆了重搞,下次再到一个新公司,再从零开发一套代码。

2. 中级程序员不可能在自己的公司中得到充足的经验,组合应用场景太多,太杂,而公司的工作单一重复,今天你写了一个函数,明天再写一个函数,这种重复工作不能助长你的能力,只是在消耗你的时间,就如你每天吃饭一样,并不会形成新的突破点。所以要通过大量的借鉴其他项目,其他教程,其他人的代码来提升自己对不同技术的组合能力 。

高级程序员

高级程序员,我也想了很久,如何给人一种高级程序员的感觉?后来还是从维度上继续突破,中级程序员经过大量的经验积累,不但对一门知识的基础掌握比较深,此外,对于知识的组合应用,以及场景应用也比较有经验,在处理常规工作和现有业务上都能得心应手,那么他还缺什么呢?

会模仿,模仿的好,则是这个社会上的佼佼者了,而在模仿的基础上能实现创新性的突破的点在哪里?这就是区分中级程序员和高级程序员的临界点。

让现实写入机器。

当对知识有了深入的掌握和灵活的应用之后,就会对知识进行抽象化,抽象化之后,知识就能在更高维度与现实对应上,这样你就能很快找到两者的共同点,有了这种共同点,你就可以拿现实规律来推测技术实现,并且证明技术实现的合理性与正确性。例如微服务可以想想成一个人进入政府办公大楼,从进门登记,鉴权,然后分配科室,与科室之间协作帮你处理任务,实现并发并行处理你的任务等各种环节,都与微服务完全类似,如果你想通了现实中可能遇到的问题,那么微服务中也会有同样的问题等待解决,这就实现了创新和预知。

同样,市场上还不存在某种产品,但是你已经搞清楚通信机制和技术执行逻辑,那么将硬件结合收集数据,软件负责计算和整理,就能实现新的产物,此时物联网就应运而生。

高级程序员,就是要达到这种抽象能力,不再局限于某一门知识本身,而在于多门知识的相似性,共同性上面有了新的认识。再掌握和学习新知识时,从更高维度先从已有知识中抽象出来,再推演新知识的可能性。这种能力就是高级程序员。

 

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

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

相关文章

20221221查看RK3588开发板的LCD屏幕的分辨率(1536x2048)

20221221查看RK3588开发板的LCD屏幕的分辨率 2022/12/21 18:46 方法一:adb/串口 console:/ $ console:/ $ [ 37.217258][ T57] vbus5v0_typec: disabling [ 37.217707][ T57] vcc3v3_pcie20: disabling console:/ $ console:/ $ console:/ $ dumpsys wi…

我国输配电及控制设备行业现状及竞争分析 营收及企业规模整体增长

根据观研报告网发布的《中国输配电设备行业发展趋势研究与未来投资分析报告(2022-2029年)》显示,输配电及控制设备主要应用于电力系统和下游用电企业的电能传输和电能控制等,直接影响电网的建设、安全与可靠运行,输配电…

Go:使用 go-micro 构建微服务(二)

1. 什么是go micro# 1.1 go micro作用 它是一个可插入的RPC框架,用于在Go中编写微服务。开箱即用,您将收到: 服务发现: 应用程序自动注册到服务发现系统负载平衡: 客户端负载平衡,用于平衡服务实例之间的请求同步通信: 提供请求…

12月21日:fastadmin顶部搜索栏selectpage事件绑定以及实现添加表单和查询数据在同一个页面

fastadmin将添加表单从弹窗转为页面 如图所示,实现这种两个标签页,各自执行自己的操作 添加页从弹窗转为页面实现步骤: 首先:从前端页面来看,需要将添加的功能移动到index页面,即可初步实现 将Index页面如…

l2实时接口在手机APP上的使用方法介绍

考虑到很多人白天只能在手机上看行情,因此也重点介绍一下l2实时接口在手机APP上的使用方法,但是功能上PC才是最直观的。除了本文介绍的重点功能,Level2还有其他功能,具体使用方法可参考同花顺官方介绍。 利用“BBD”看当天大盘走…

R语言中的风险价值模型度量指标TVaR与VaR

99%的预期缺口[…]与99.6%的[…]风险值非常接近 受到“ 瑞士经验”报告中一句话的启发, 在99%置信水平[...]上的预期缺口[…]对应于大约99.6%至99.8%的风险价值 最近我们被客户要求撰写关于VaR的研究报告…

DPDK KNI 接口3

图1. kni结构图 从结构图中可以看到KNI需要内核模块的支持,即rte_kni.ko 当rte_kni模块加载时,创建/dev/kni设备节点(rte_kni模块创建kni杂项设备,文件系统节点/dev/kni需要手动或者通过udev机制创建),藉…

django.test.client的一些用法

对于文件(文本文件,或图片文件等等文件)从客户端上传到服务端,对于常规情况,也就是真实服务端和客户端,我们往往是需要给files这个参数的。 具体来说,就像这样: import requestshe…

万字总结Bootloader到内核的启动流程

Bootloader启动流程分析 Bootloader的启动过程可以分为单阶段、多阶段两种。通常多阶段的 Bootloader能提供更为复杂的功能以及更好的可移植性。从固态存储设备上启动的 Bootloader大多都是两阶段的启动过程。第一阶段使用汇编来实现,它完成一些依赖于CPU体系结构的…

【ML实验5】SVM(手写数字识别、核方法)

实验代码获取 github repo 山东大学机器学习课程资源索引 实验目的 实验内容 这里并不是通过 KTT 条件转化,而是对偶问题和原问题为强对偶关系,可以通过 KTT 条件进行化简。 令 xα[α1,α2,...,αn]Tx\alpha[\alpha_1,\alpha_2,...,\alpha_n]^Txα[α1…

极狐阿尔法S 全新HI版在上海率先推送城区NCA

继深圳之后,12月19日,极狐阿尔法S 全新HI版城区NCA(即城区智驾导航辅助功能)交付上海车主,将胜任城区复杂环境的“点到点”智驾融入更多用户的生活中。 此前,极狐阿尔法S 全新HI版已面向全国车主推送第二次…

Unreal Engine项目目录结构

目录 Engine 引擎源码文件 Games 项目工程文件 Visualizer VS编辑器配置文件 之前说的是工程目录结构,这次来说项目目录结构。 这里只是举了个例子,实际请根据不同的UE版本自行分析。 Engine 引擎源码文件 虚幻是开源的,我们可以直接在工…

05-Golang的基本数据类型

Golang的基本数据类型变量数据类型整型类型基本使用及细节基本介绍整数类型演示案例整型的使用细节浮点类型基本使用及细节基本介绍浮点型的分类案例演示使用细节字符类型基本使用及细节基本介绍案例演示字符类型本质探讨布尔类型的使用基本介绍字符串类型基本使用及细节基本介…

复变函数的积分

复变函数的积分化解成曲线积分的问题。 那化成第一类曲线积分还是第二类曲线积分?(高等数学 中有讲第一类曲线积分和第二类曲线积分)。 路径是有方向的,由起点和终点不同,路径有正向和负向。 复变函数的积分归结起来…

「学习方法」Scratch、Python、C++如何学才能融会贯通?

前言 相信很多家长朋友都发现一个问题:“编程教育正在以飞快的速度渗透于孩子们的培养体系中,这是为什么呢?原因很简单,这是因为通过专业的编程教育可以全面提升孩子的逻辑思维、创造力、动手能力等,让孩子们拥有更全…

线程池的使用

线程池 3大方法、7大参数、4种拒绝策略 好处:降低资源的消耗、提高响应的速度、方便管理、 线程池可以理解为银行业务 三大方法 第1大方法:单个线程 ExecutorService threadExecutor Executors.newSingleThreadExecutor(); 第2大方法&a…

c语言 操作符详解例题 数据存储 指针初阶 水仙花数 杨辉三角 逆序字符串 喝汽水问题 打印图形 猜凶手

【题目名称】 下面代码的结果是&#xff1a;a #include <stdio.h> int i; int main() {i--; sizeof的返回值是无符号整型if (i > sizeof(i)) i四个字节所以是4。算出的结果类型是unsigned int无符号和有符号比较大小 会先把有符号整型转化为无符号。 -1放到内…

浏览器底部导航栏遮盖问题

欧吼&#xff0c;算是遇到两次了这种问题。每次解决完都觉得很无语&#x1f92e; 先看问题如图&#xff08;怕公司说我泄露他们啥信息&#xff0c;于是打了非常离谱且难看的马赛克&#x1f60a;&#xff09;&#xff1a; 本来要在底部导航栏上方展示底部信息。 电脑上看倒是好…

怎样设计产品帮助中心?以下几点不可忽视

在日常产品的使用过程中&#xff0c;我们经常会遇到一些关于产品的使用相关问题&#xff0c;此时我们会去翻阅产品的说明书&#xff0c;而对于线上的产品来说&#xff0c;一般都会搭配对应的帮助文档&#xff0c;帮助文档可以提供关于用户在使用过程中遇到的各种问题的解答&…

【再学Tensorflow2】TensorFlow2的建模流程:Titanic生存预测

TensorFlow2的建模流程1. 使用Tensorflow实现神经网络模型的一般流程2. Titanic生存预测问题2.1 数据准备2.2 定义模型2.3 训练模型2.4 模型评估2.5 使用模型2.6 保存模型参考资料在机器学习和深度学习领域&#xff0c;通常使用TensorFlow来实现机器学习模型&#xff0c;尤其常…