你犯过程序员容易犯的这些错误吗?快来看看!

一、前言

写了20多年代码,我见过不下于4位数的程序员,我觉得程序员的能力水平可以分为4个阶段:线性级、逻辑级、架构级和工程级。

同样的在这些人当中,我也发现了8个程序员最常见的陋习,基本上可以覆盖90%的人,其中说不定就有你哦。

文章目录
    • 一、前言
    • 二、4个能力水平
        • 1.线性级
        • 2.逻辑级
        • 3.架构级
        • 4.工程级
    • 三、8个陋习
        • 1.自我
        • 2.封闭
        • 3.惯性
        • 4.沟通障碍
        • 5.一叶障目
        • 6.工作量估计乐观
        • 7.拒绝变化
        • 8.拒绝重构
    • 四、结语

二、4个能力水平

1.线性级

线性级程序员的思维很简单,写程序的时候就像盖房子似的,一块砖一块砖往上垒的,但是他不知道后面会垒成什么样,可能越垒越庞大,后面的代码组织和管理等会越来越混乱,最后导致后面的很多程序修改和维护很麻烦。
在这里插入图片描述

2.逻辑级

对于逻辑级程序员,已经掌握了一些算法理论基础,并且对于业务世界的逻辑有一个清楚的把握,能能够撰写出一些很好的模块和和函数,而且逻辑比较严密,bug比较少的这样的一个状态。

3.架构级

对于架构级程序员,因为除了对程序语言本身的了解和把握以外,还要对现实世界的所要解决的业务逻辑有一个清楚的把握和了解。

这样的话才能够对软件进行架构和分层,然后指导团队的其他成员来按照统一的目标来不断的实现。

在这里插入图片描述

4.工程级

对于工程级程序员,因为本身软件开发不仅仅是开发本身,这里面还有很多其他的项目管理的要素在里面。

比如说刚才提到的计划、组织、管理和控制,如果有了一些项目管理的指导和原则的话,那么对于一个软件工程的过程管理就会有一个"一览众山小"的状态。

在这里插入图片描述

接下来我们来说一下90%的程序员多少都会有的陋习。


三、8个陋习

根据以前的工作经验呢,我觉得程序员身上的这些陋习是阻碍程序员进步的最大的一个障碍。

1.自我

那么首先程序员因为本身是一个脑力活动者,他那个是一个很重要的特性,就是非常自我。

很多时候就是说撰写代码的时候,基本上是不愿意去听从别人的意见和建议的。

在这里插入图片描述

2.封闭

有的程序员很封闭,也就说它不够开放。

如果是用一种开放和交流的心态来跟其他程序上来进行交互的话,那么这样的相互取得的促进效果会是非常明显的。

3.惯性

有一些有经验的程序员会有一些工作的惯性,经常会说"我以前是怎么这么做的"、“我以前是这样这样做的,我就觉得你现在这样做的不对”…
其实这种惯性,也是阻碍沟通的一种很大的问题。
在这里插入图片描述

4.沟通障碍

这是比较显著的一类陋习,因为程序员整天面对电脑、只跟机器交互,所以说去跟其他产品经理和其他测试等等一些这些人去交流的时候,会有很明显的沟通障碍。

5.一叶障目

这是最大的问题,就是说程序员经常一叶障目,只看到自己眼前的工作。

比如说有一些团队协作开发的任务的时候呢,只依据自己为中心。那么对于别人的一些请求,尤其有一些交互性、复杂的网络接口开发时经常会下意识地去拒绝别人。

在这里插入图片描述

6.工作量估计乐观

还有一个最重要的问题,就是说经常会把工作量估计漏完。

比如说拿到一个需求的时候,好,我一个星期就能完成结果,真正的实现的时候呢,发现需要花两到三周乃至更长的时间来实现这项工作任务。
在这里插入图片描述

7.拒绝变化

对于需求的变更来讲的话,程序员的很大心态是有逆反心理的。

当我正在撰写一个东西的时候,发现需求变更了,就会产生一种阻碍心态来拒绝变化。

但是拒绝变化的前提应该先进行客观、合理的分析和判断,最后再给出答案。其实它应该是要仔细衡量本身这个变化影响不影响我目前的软件体系和架构?对我的工作量的增加有多大?这需要有一个好的估量来决定这个变化的取舍。

在这里插入图片描述

8.拒绝重构

最后且最重要的一个问题,就是说很多时候我们是拒绝重构的,因为这个重构有些时候是很难取舍的一个问题。

比如说经常会想,哎呀我原来写的这个软件体系结构,跟后面的整个实现过程中,变化会越来越大,而且信息学、新需求进来的时候呢,我就很难再保持一个良好的这样的一个体系结构。那么经常会纠结,我是重构呢还是按照这个原来的路敲敲打打呢?

在这里插入图片描述

是否重构其实是需要根据实际性的。比如尤其我前几个月写的一个电商系统,我也是经常处于这种心态,我也在纠结到底重不重构的?后来一咬牙一闭眼还是重构了。

重构的话,前期可能会花费点时间,但是能够在后期保证我这个软件的目标实现,且拥有一个清晰、完整的架构和体系结构,并且后期会达到一个易于维护的这样的一个状态。
在这里插入图片描述


感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你,干货内容包括:

在这里插入图片描述

今天的内容就分享到这里,如果你喜欢这篇文章的话,麻烦请动动你的手点个赞或者点个关注吧,这将是我最大的动力!谢谢,这里有我以前整理的大量自学资料 # 🐵需要的可以点这里自取👉:网安入门到进阶资源

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

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

相关文章

GPT学习笔记

百度的文心一言 阿里的通义千问 通过GPT能力,提升用户体验和产品力 GPT的出现是AI的iPhone时刻。2007年1月9日,第一代iPhone发布,开启移动互联网时代。新一轮的产业革命。 GPT模型发展时间线: Copilot - 副驾驶 应用&#xf…

大数据毕业设计选题推荐-家具公司运营数据分析平台-Hadoop-Spark-Hive

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

在Windows或Mac上安装并运行LLAMA2

LLAMA2在不同系统上运行的结果 LLAMA2 在windows 上运行的结果 LLAMA2 在Mac上运行的结果 安装Llama2的不同方法 方法一: 编译 llama.cpp 克隆 llama.cpp git clone https://github.com/ggerganov/llama.cpp.git 通过conda 创建或者venv. 下面是通过conda 创建…

我的崽崽跑着跑就长大了

一瞬间感觉你都长这么大了,看着你骑单车的背影,不知不觉心里感觉到有点酸酸的,回头想想看着你,一个人带你在累,在苦都值得,萌娃骑车。 你的可爱能治愈我的一切不快乐。

大数据商城人流数据分析与可视化 - python 大数据分析 计算机竞赛

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于大数据的基站数据分析与可视化 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度…

Linux内核移植之主频设置

一. Linux内核移植 正点原子 ALPHA开发板已经添加到 Linux内核里面去了,前面文章关于如何添加已经掌握。但是,还有一些驱动的问题需要修改。 正点原子 I.MX6U-ALPHA 开发板所使用的 I.MX6ULL 芯片主频都是 792MHz 的,也就是NXP 官方宣…

[pytorch]手动构建一个神经网络并且训练

0.写在前面 上一篇博客全都是说明类型的,实际代码能不能跑起来两说,谨慎观看.本文中直接使用fashions数据实现softmax的简单训练并且完成结果输出.实现一个预测并且观测到输出结果. 并且更重要的是,在这里对一些训练的过程,数据的形式,以及我们在softmax中主要做什么以及怎么…

19.7 Boost Asio 传输序列化数据

序列化和反序列化是指将数据结构或对象转换为一组字节,以便在需要时可以将其存储在磁盘上或通过网络传输,并且可以在需要时重新创建原始对象或数据结构。 序列化是将内存中的对象转换为字节的过程。在序列化期间,对象的状态被编码为一组字节…

数字化转型:云表低代码开发助力制造业腾飞

数字化转型已成为制造业不可避免的趋势。为了应对市场快速变化、提高运营效率以及降低成本,制造业企业积极追求更加智能化、敏捷的生产方式。在这个转型过程中,低代码技术作为一种强大的工具,正逐渐崭露头角,有望加速制造业的数字…

Java设计模式——策略模式

1.策略模式简介 策略模式:策略模式是一种行为型模式,它将对象和行为分开,将行为定义为 一个行为接口 和 具体行为的实现。策略模式最大的特点是行为的变化,行为之间可以相互替换。每个if判断都可以理解为就是一个策略。本模式使得…

WindowsServer2019-搭建FTP服务器

这里写自定义目录标题 一、基础配置IP地址安装FTP服务检查连通性Windows10连接FTP服务 二、了解和使用FTP具体模块及其配置1、FTP IP地址和域限制2、FTP SSL设置3、FTP当前会话4、FTP防火墙5、FTP目录浏览6、FTP请求筛选7、FTP日志8、FTP身份验证9、FTP授权规则10、FTP消息11、…

云栖大会72小时沉浸式精彩回顾

计算,为了无法计算的价值 2023 杭州云栖大会震撼落幕 自2015年,云计算支撑着移动互联网创新 AI时代,继续支撑所有开发者的创新与梦想 当大会主题再次回归 让我们也打开时空隧道 一起回顾72小时云栖之旅 打造一朵AI时代最开放的云 随着…

Pinia的十个简答小案例

1. 使用Pinia进行状态管理: import { defineStore } from piniaexport const useCounterStore defineStore({id: counter,state: () > ({count: 0}),actions: {increment() {this.count},decrement() {this.count--}} }) 2. 在组件中使用Pinia: &…

【算法| 差分 No.1】AcWing 797. 差分 AcWing 798. 差分矩阵

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮…

基于单片机的语音存储与回放系统设计

博主主页:单片机辅导设计 博主简介:专注单片机技术领域和毕业设计项目。 主要内容:毕业设计、简历模板、学习资料、技术咨询。 文章目录 主要介绍一、控制系统设计1.1 系统方案设计1.2 系统工作原理 二、硬件电路设计总电路设计图 三、 软件设…

Android 应用流量监控实践

背景 得物Apm系统本身包含网络接口性能监控的能力,但接口监控主要关注的是接口的耗时、异常率等信息,没有流量消耗相关维度的统计信息,并且一部分流量消耗可能来自于音视频等其他特殊场景,在接口监控的盲区外。 为了了解用户目前…

知识注入以对抗大型语言模型(LLM)的幻觉11.6

知识注入以对抗大型语言模型(LLM)的幻觉 摘要1 引言2 问题设置和实验2.1 幻觉2.2 生成响应质量 3 结果和讨论3.1 幻觉3.2 生成响应质量 4 结论和未来工作 摘要 大型语言模型(LLM)内容生成的一个缺点是产生幻觉,即在输…

Java与Redis的集成

目录 Java连接Redis 导入依赖 Redis服务器准备 建立连接 Java操作Redis常用类型数据 Redis字符串(String) Redis哈希(Hash) Redis列表(List) Redis集合(Set) Redis有序集合(Sorted Set) Redis在项目应用…

Bi-TTCOF-Zn助力CO2还原制CO

精确调控氧化还原单元的组分、空间取向或连接模式对于深入了解高效的人工光合整体反应至关重要,但对于异质结构光催化剂而言,还很难实现。 基于此,华南师范大学兰亚乾教授和陈宜法教授等人报道了一系列用于人工光合综合反应的氧化还原分子结…

XShelll-修改快捷键-xftp-修改编辑器

文章目录 1.XShelll-修改快捷键2.Xftp-修改文本编辑器3.总结 1.XShelll-修改快捷键 工具>选项 鼠标键盘,右键编辑,新建快捷键。 复制粘贴改成shiftc,shiftv。更习惯一些。 2.Xftp-修改文本编辑器 xftp修改服务器文件默认的编辑器,是记…