刚找到工作,碰到了新项目,该怎么入手?

10几年前,我刚入职单片机开发时,也慌得一批,在此之前,我只懂51单片机,玩过智能小车。很多老铁在学我们无际单片机项目时,只关注了项目内容,代码,却忽略了我们的开发流程。熟悉项目所使用的单片机,以及各个功能电路是如何连接和工作的,了解其中协议和原理。

十多年前,当我第一次加入单片机开发时,我也很恐慌。 在此之前,我只了解过51个单片机,也玩过智能汽车。

幸运的是,一开始我只是维护旧项目并使用STC单片机。 仍然使用基本的开发环境。

如果你是应届毕业生或者刚刚转行,一般公司不会直接让你参与新项目的开发,除非比较简单。

毕竟面试的时候我才听到你吹牛。 事实上,它是一头骡子或一匹马。 你需要先走一圈才能理解和解释它。 熟悉它并说精通的人太多了。

其实维护老项目也是一件很头疼的事情,就像TM破案一样,不断地揣摩前任工程师的编程思维。 当他看到一堆狗屎代码的时候,他会边骂边想办法。

尤其是当你遇到变量、函数命名不规范的杂乱代码,以及没有模块化编程的代码时,简直是一种折磨。

如果一开始很痛苦,就需要端正心态。 毕竟每个工程师都是这个级别出来的。

我也不例外。 从艰难地改代码、维护老产品,到能够勉强独立完成简单的项目,再到独立完成复杂的项目,最后能够设计出整体的程序架构,保证功能的实现,同时又不失扩展性。 还有便携性,这条路我已经探索了快10年了。

原来我的代码风格是这样的:

刚找到工作,碰到了新项目,该怎么入手?

现在看起来像这样:

刚找到工作,碰到了新项目,该怎么入手?

关于程序架构,我曾经录过一个教程:

刚找到工作,碰到了新项目,该怎么入手?

我觉得对于有基础或者工作过1-3年的人来说很有参考价值。 你可以来找我免费安排,没有套路。

当然,这并不意味着你需要花这么长时间并且你没有复杂的技术。 主要问题是,在你过去的工作中,很少有机会独立完成复杂项目的研发。 而且项目过程中细节太多,找不到人及时指导,所以进展缓慢。

你遇到的很多新项目并没有你想象的那么复杂,只是没有一个清晰的开发流程而已。

很多老手在了解我们无极单片机项目时,只关注项目内容和代码,却忽略了我们的开发流程。

你有这样的感觉吗?

当你被要求做一个新的项目时,你总是在开始之前思考如何完成所有的功能。

从宏观角度思考可能会很混乱,因为有太多问题需要思考。

不抽丝剥茧,这个项目由哪些小模块组成?

如果你仔细研究我们的项目,你会发现我们的开发步骤如下:

1.一定要先熟悉项目功能

刚开始工作时,我很急于完成任务。 我一开始就啃代码。 通过代码理解功能就是逆向工程。 当我没有经验时,这更加困难。 正确的顺序是先了解功能,再思考实现思路。

2.熟悉硬件原理

熟悉项目中使用的单片机,​​各功能电路如何连接和工作原理,了解协议和原理。

3.熟悉开发环境

遇到新项目时,我会先搭建开发环境,编写程序让LED循环闪烁。 这样,如果后面添加了新程序,出现了导致崩溃的bug,也能及时发现。

另外,如果支持在线仿真调试(如SWD、JTAG),则必须搭建仿真环境,以方便后续的代码调试和故障排除。

4.制定发展计划

将项目分解为多个小模块,细分为小任务,逐项突破。 这将使事情变得不那么困难,并使事情更有条理。

按照时间线进行,这样领导来问的时候,会有一个直观的进展展现出来,领导看到后就有了心理基础。

一般我都是先调整项目中用到的外设,然后再调整产品功能。 大部分工作都在产品功能的实现上。 对于单片机外设的代码,我一般都是直接去代理商那里,或者从芯片官方网站下载。 不要自己去那里。 折腾。

还有一些开发过程中的习惯也非常重要。

比如,如果你按照模块化、可复用的原则来编写代码,那么你在后面集成功能的时候就会知道它有多么重要。 不然的话,一个人跑也好。 一旦代码整合起来,功能就会相互冲突。

还有程序版本的管理,可以用Git来管理。 我一般都是以文件夹的形式保存在本地,自己电脑上一份,移动硬盘上一份,公司电脑上一份。 这是一个稳定的批次。

以下是无极更多原创的个人成长经历、行业经验、技术资讯。

单片机

pic单片机与51单片机的二者谁更易于学习?

2024-4-30 14:05:37

单片机

基于位置式PID的控制原理图分析及控制流程图

2024-4-30 15:10:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索