当前位置:   article > 正文

如何快速学会别人的代码和思维_怎么学习同事的代码(2),80后程序员月薪30K+感慨中年危机

如何快速学会别人的代码和思维_怎么学习同事的代码(2),80后程序员月薪30K+感慨中年危机

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Golang全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注go)
img

正文

第二步:看懂电路原理

不要想着自己怎么去设计,这是硬件工程师的职责,同时让你搞硬件和软件,会加重你学习的负担和周期,硬件是需要经历很多实际项目去积累的,不是靠一个视频教程能学会的。

比如说我们这两个项目的一些电源电路、三极管的一些应用等等,这些就是你的积累,你后面开发新产品有用到同样需求的时候,你就可以直接用这个电路了。

不是说什么自己重新去设计,现在大多数都是基于现成的修改优化,而不是重头设计,这样能最大程度也降低出问题的风险,从而缩短开发周期。

新手最大的误区就是喜欢钻牛角尖,比如说这个滤波电容为什么要用0.1uF,那个上拉电阻为什么要用4.7K,为什么别人用10K?这些都是硬件工程师要考虑的范畴。

而实际也简单,像滤波这种,我们开发产品的时候,都是直接测试的,比如说0.1uF滤波效果不够,那我们就换大一点的,然后用示波器看看电源的波形,有没有毛刺那些,就是这样一步步调到最佳的一个容值,而不是说用乱七八糟的公式理论来算的,即便算出来,实际很大可能也是有误差的,这样太浪费时间了。

其实刚开始不用深入到这么细节,我们先要搞懂单片机怎么去控制,信号输入到单片机我们怎么通过程序采集就完事了,把主要的精力放在软件上,这是刚需。

硬件设计,画PCB会只是你的加分项,不是必须条件,你先把软件都搞定了,至少给你任何一款产品功能,你都知道怎么用程序去实现,这时候再进阶全栈,再针对性去学硬件,这个顺序一定要搞对。

我们的目标是以最快速度用这个技能去找份工作挣钱,有了稳定收入,你学啥都方便,前面你啥都想学,往往是还没学会就已经饿死了。

一定要循环渐进,一个个突破,不要贪!

第三步:学习产品代码

第三步就是整个课程的重点和难点。

我们这个产品是基于模块化编程的思维,也就是不同的功能模块拼凑起来,最后拼凑成完整的产品功能。

这样的好处就是移植维护起来很方便,每个功能稍作修改就可以直接用在不同的产品上,比如说按键检测功能、LED特效功能,基本上每个产品多多少少都会有LED指示灯、按键,这个时候直接把我们的代码移植过去改一下LED的个数,按键的个数就能马上把功能做出来。

我们先把我们产品的程序剖析一下:

二、主机程序的整体架构

img

**1.**硬件层驱动

**1.1)**单片机外设(STM32固件库)

这块不是我们学习的重点,但是必须要去学习,学到什么程度呢?

我们能把这个产品需要用到的单片机外设用起来就够了,具体要学要用哪些外设,跟着我们课程顺序做就行

剩下的外设以后开发新产品用到了再学习,因为不是所有的产品都会用STM32的,如果你花很多精力去学这个单片机外设,那一换单片机你大多数精力不是白费了?

这块,如果我们教程讲的不够详细,可以配合原子和野火的视频去理解,效果会更好一点。

**1.2)**功能驱动

比如喇叭报警功能、IIC读写系统参数功能、按键检测功能、LED特效功能、OLED显示功能、RFD软解码功能、定时器矩阵功能、LED特效功能、串口调试功能。

硬件层的驱动代码,通用性其实都比较强,大家稍作修改都可以直接移植到以后自己的产品上,所以个人建议大家在前期为了节约时间,可以直接拿来当做自己的”武器库”,前期自己写不出来没关系,但是一定要会用会改

慢慢你经历的项目多了,代码经验丰富了,到时候再自己写就容易很多了。

,这就是所谓的循环渐进,在正确的阶段做正确的事情,效率才会高。

我的要求:

第一遍写不出来,不要死磕,不要纠结自己写不出来,先学会用,并且能举一反三的用。

怎么用?直接拷贝我的代码,会修改关键的地方方便以后应用在自己产品中就行了。

比如说LED特效,我们是一个LED灯,几种特效功能,你可以加多几个灯,增加几种特效试试。

比如说按键检测功能,你可以去掉几个按键,或者再增加几个按键,又或者是加复合键(就是几个按键一起按下的时候)的功能试试。

我们需要达到这个程度,而不是你从头到尾写代码实现。

第二遍就是用自己的思维写一下,然后再对比我的代码,各有什么优缺点。

第二遍我们最好到实际工作中再去提升,这样性价比高,一边赚钱一边继续提升,因为你第一遍会用已经能解决很多产品功能了,而且这种硬件驱动一但写好,后面就是复制粘贴,很少再去重写。

**2.**系统内核

系统内核的作用是让不同的功能模块(LED特效、按键检测、RFD解码、串口Debug、喇叭报警功能、产品功能逻辑)执行起来更加灵活可控一点。

系统内核我是做了5,6年以后才写出来的,其实也不难,无非就是对结构体数组进行系列的操作。

第一遍大家不要重头自己写,一是浪费时间,而是经验不足很难写出来。

这个不是刚需,这个系统内核通用性很强,基本不受限于单片机, FLASH有个10K的51单片机都可以用,所以学会移植基本够用了。

等你整个项目做完了,代码水平和思维都会提升,到时候再回来研究怎么写就轻松很多了。

这个系统内核我们也有系统的教程,大家后面想自己写的时候可以去看一下,找无际单片机编程拿就行了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
b (备注Go)**
[外链图片转存中…(img-uHpfNj4J-1713209359043)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/454648
推荐阅读
相关标签
  

闽ICP备14008679号