嵌入式软件工程师如何快速成长

今天和大家分享一下,程序员如何独挡一面这个话题,这是一个很大的话题,我把他分成三部分来谈:

一、需求转换的能力或者叫理解需求的能力;

二、分配时间的能力;

三、开发质量的问题;

我为什么把时间分配优先级放到代码质量的前面呢,原因有两个:

1.如果时间把控的好,及时功能有点问题,也是有时间来修复,相反及时程序代码质量再高,到了完成的时间节点没有完成,那就是灾难性的。

2.代码质量是通过时间的积累,技术的沉淀,修复成本越来越低,提升空间越来越小的因素;而时间规划却是和人的行为习惯挂钩不好去改正的一个点,比如你让一个拖延症的人变的行动迅速,是一个相对艰难的事情。

所以,我觉的合理分配时间的能力的权重要>开发质量的问题。

在开始之前,先给大家看一下思维导向图:

图片

一、需求转换的能力

需求转换的核心就两个字“沟通”,开发成本最大的浪费是需求浪费,这分为两方面,一方面需求方,无效需求或者需求变动带来的研发成本浪费,另一方面是需求方和研发方需求传递不一致的浪费,简单来说就是没有充分沟通,导致研发所做的功能和需要方需要的功能不一致,导致返工的现象。第一点是我们作为研发不能把控的,我们能做好的就是在需求传递的过程中,保证需求的有效性和完整性。

那么具体要怎么做呢,可以通过以下几点:

1.开发前需求沟通,最理想的沟通方式:产品提供需求文档 => 研发人员先过一遍,记录有疑问的需求点 => 产品和研发讨论需求,把所有的需求都过一遍,有疑问的点重点沟通 => 研发人员用产品能听懂的话,大概的描述一下重点讨论的需求和实现方式 => 产品确认无误,启动开发流程。

2.开发中沟通,或者是开发前模拟程序实现流程的时候,如果有未谈到的需求或者有异议的需求,及时和产品沟通之后在开始做编码。

3.测试阶段,给需求方演示程序,最后一遍对接核对需求。

如果能保证以上三点,基本上在需求转换的工程中已经算一个合格的程序员了。

二、分配时间的能力

做软件开发的一般情况下都是,以功能(或叫结果)为导向,以时间为衡量标准的一项严谨的工种。所有“时间概念”在软件开发中发挥着无疑比喻的重量。

在说合理分配时间之前,我想有必要先说一下,程序开发的生命周期,在很多人眼里,程序开发有啥周期,做完不就完事了吗?其实这是小作坊的思维方式,对于一个合格的软件公司或者大一点的软件公司来说,即使到了开发实施的这一步,也分为5步:软件设计,思考最优实现方式 => 撸码 => 测试阶段 => 修复完善 => 交付,完成开发。

一般来说,对我个人而言软件设计,思考最优实现方式要占用30%的时间,撸码占用50%,测试和完善20%,当然,这个不能一概而论,对于新书来说思考的时间短点,关键点在留够测试和完善的时间,测试和完善的时间越长,项目的成功几率就越大;对于大咖来说思考的时间更长,因为代码质量过硬,所有测试和完善的时间可以相对分少一点。

如果你能认识到小作坊和生产线的区别,就能合理的安排时间,尽量提前完成开发,进入测试和完善的阶段,才是关键。

影响时间规划的还有另一个原因,项目冲突,比如你再做B项目,突然测试人员找你说你的A项目有一个xx问题,这个时候,你就要平衡一下优先级,原则上来说,是先处理优先级高的问题,但一定要把控的是尽量不影响自己的B项目计划开发进度。如果实现迷茫可找你的领导来权衡,让他做决定,这一点很重要,一定不能忽略。

三、开发质量的能力

这一点是最后一点,也是最偏重技术的一点,那么怎么去衡量开发质量的,我把它分为三个元素:

1.基本的评判标准,功能可以正常使用;

2.可读性高,利用他人和自己阅读、修改,降低维护成本;

3.模块化程度高,提高扩展性,降低维护成本,提高开发效率。

综上所属,写个正在奋斗的你一点小小的建议:提高自己主观能动性,调整自己心态,以主人翁的心态,积极的面对工作。你在认同公司的同时,公司才能认同你!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全新UI基于Thinkphp的最新自助打印系统/云打印小程序源码/附教程

这是一款全新的基于Thinkphp的最新自助打印系统,最新UI界面设计的云打印小程序源码,带有简单的教程。 源码下载:YISHEN源码网(ms3.ishenglu.c)om

Java-反射-注解-动态代理

二、反射 翻译成人话就是:反射技术,指的是加载类的字节码到内存,并以编程的方法解刨出类中的各个成分(成员变量、方法、构造器等)。 反射有啥用呢?其实反射是用来写框架用的,但是现阶段同学们对…

RK3588平台开发系列讲解(视频篇)RKMedia框架

文章目录 一、 RKMedia框架介绍二、 RKMedia框架API三、 视频处理流程四、venc 测试案例沉淀、分享、成长,让自己和他人都能有所收获!😄 📢RKMedia是RK提供的一种多媒体处理方案,可实现音视频捕获、音视频输出、音视频编解码等功能。 一、 RKMedia框架介绍 功能: VI(输…

碳排放预测 | Matlab实现LSTM多输入单输出未来碳排放预测,预测新数据

碳排放预测 | Matlab实现LSTM多输入单输出未来碳排放预测,预测新数据 目录 碳排放预测 | Matlab实现LSTM多输入单输出未来碳排放预测,预测新数据预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现LSTM长短期记忆神经网络多输入单输出未来…

Sentinel-1 扩展时序注释数据集 (ETAD)的查询和下载

概述 Sentinel-1的扩展计时注释数据集(ETAD)是ESA(DLR作为承包商)开发的新辅助产品,为用户提供校正,将Sentinel-1 SLC图像的几何精度提高到厘米级别。该产品包含分析就绪层,用于消除大气路径延…

Linux系统中虚拟文件系统原理与方法

在 Unix 的世界里,有句很经典的话:一切对象皆是文件。这句话的意思是说,可以将 Unix 操作系统中所有的对象都当成文件,然后使用操作文件的接口来操作它们。Linux 作为一个类 Unix 操作系统,也努力实现这个目标。 虚拟文…

三维重建(6)--多视图几何

目录 一、运动恢复问题(SfM) 二、欧式结构恢复问题 1、概述 2、算法流程 3、本质矩阵分解 4、欧式结构恢复歧义 三、仿射结构恢复问题 1、概述 2、因式分解法 3、仿射结构恢复歧义 四、透视结构恢复问题 1、概述 2、透视结构恢复歧义 3…

【数据结构与算法】之字符串系列-20240125

字符串系列 一、520. 检测大写字母二、面试题 01.01. 判定字符是否唯一三、面试题 01.02. 判定是否互为字符重排四、面试题 01.03. URL化五、面试题 01.04. 回文排列六、面试题 01.09. 字符串轮转 一、520. 检测大写字母 简单 我们定义,在以下情况时,单…

分布式应用程序设计项目管理

1. 项目的定义 项目是一种特定的、新颖的行动,目的是以有条不紊、逐步的方式构建一个尚未存在确切对应物的未来现实。它是对精心制定的需求的回应,旨在满足业主的需要。项目包括一个可能是物理或智力的目标,并且需要使用给定的资源来执行一系…

【SD】sadtalk

下载地址: 123:https://www.123pan.com/s/VzULVv-0OXX.html 提取码:3KhD 百度: https://pan.baidu.com/share/init?surlRB9oTmlbIV0pg1Th-Tdd4Q 提取码: uk87 效果不是很好,适合小图片。推荐:heygen 参考设置&…

H12-821_111

111.如图所示,R2传递10.0.1.0/24的路由给R3时,该路由的Next_Hop地址是以下哪一个? A.10.0.23.3 B.10.0.23.2 C.10.0.12.1 D.10.0.12.2 答案:C 注释: 这道题想给大家强调的是R1发送路由给R2时,下一跳地址是…

redis整合

一.redis的发布订阅 什么 是发布和订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 1、Redis的发布和订阅 客户端订阅频道发布的消息 频道发布消息 订阅者就可以…

C#从网址上读取json数据

需求:从客户给的网址中读取json格式的数据。 找了好多资料,都不太好使,看到了一篇很有帮助的文章。以下大部分内容和这篇找到的文章近似。太不容易了,同时也感谢这篇文章的作者心所欲。 https://www.cnblogs.com/zoujinhua/p/10…

先进车辆驾驶舱系统的强大网络安全协议

近年来,车辆驾驶舱系统发展迅速,融入了导航、娱乐和车辆性能监控系统等先进技术。随着驾驶舱变得更加互联和依赖软件,它们也变得更容易受到网络安全威胁。实施强大的网络安全协议对于保护驾驶员和乘客以及保持车辆运行的完整性至关重要。 本…

springboot124中药实验管理系统设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的中药实验管理系统设计与实现 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章…

书生·浦语大模型--第五节课笔记作业--LMDeploy 大模型量化部署实践

文章目录 大模型部署背景LMDeploy简介动手实践创建环境服务部署在线转换离线转换TurboMind推理API服务Gradio 作为前端 Demo演示TurboMind 服务作为后端TurboMind 推理作为后端 作业 大模型部署背景 部署:将训练好的模型在特定软硬件环境中启动的过程 挑战&#x…

某马头条——day10

热文章数据查询 分布式任务调度xxl-job 概述 环境搭建 docker化部署 docker run -p 3306:3306 --name mysql57 \ -v /opt/mysql/conf:/etc/mysql \ -v /opt/mysql/logs:/var/log/mysql \ -v /opt/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORDroot\ -d mysql:5.7 dock…

255:vue+openlayers 加载tomtom地图(多种形式)

第255个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中添加tomtom地图,这里包含了多种形式,诸如中文标记、英文标记、白天地图、晚上地图、卫星影像图,高山海拔地形图等。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示…

docker 安装python3.8环境镜像并导入局域网

一、安装docker yum -y install docker docker version #显示 Docker 版本信息 可以看到已经下载下来了 拉取镜像python3镜像 二、安装docker 中python3环境 运行本地镜像,并进入镜像环境 docker run -itd python-38 /bin/bash docker run -itd pyth…

MySQL(基础篇)——SQL

一.SQL分类 二.DDL(数据定义语言) 1.DDL——数据库操作 ① 查询 查询所有数据库 SHOW DATABASES 查询当前所处数据库 SELECT DATABASE() ② 创建 CREATE DATABASE [IF NOT EXISTS] 数据库名(通常以db结尾) [DEFAULT CHARSET 字符集] [COLLATE 排序规则] ③ …