`
FPGA_学渣
  • 浏览: 8103 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

【转】明德扬FPGA-全网公开课-第01期-《如何读懂别人的代码》

阅读更多
本次公开课主题:

       无论是学习还是工作中,难免都要阅读他人的代码。但这一过程许多人都感觉非常痛苦:不明白作者的意图,不明白为什么要有这个信号,这个信号有什么用,作者到底是如何想到这个信号的。理解代码都非常困难,更别说是定位问题,修改错误了。
       其实阅读他人代码不痛苦,关键是用正确的思维方式和阅读方法。
       本期公开课,潘老师将教授大家如何高效地阅读他人代码,快速实现学习和完成项目的目的。 


公开课时间:2017年12月2日,20:00
参加方式: 加入公开课群291447470,即可报名参加(明德扬将长期举行全网的公开课,欢迎所有FPGA爱好者参加和讨论。加入本公开课,就是长期参加公开课)









本次课程已经在培训班上过,下面是来自学员的评价,供参考。



二飞

这样的公开课的形式突出解决现实研发过程中实实在在存在的问题,很实用,无论对于学生还是参加工作的来说都带来实实在在的好处,真的很不错,很看好明德扬的发展模式,真心希望明德扬能够广收学员,为国家的FPGA科技水平培养更多的实用型人才,加油!

6天前



半夏.Season2

对阅读别人的代码有了正确的思路,今后会按照此思路来阅读他人代码。建议:希望直播的时候网络状况能好一些,常常出现的卡屏情况,老师可以查看下是否因为电脑用的是无线网(无线网不稳定)造成的,可尝试用有线网,这样能尽可能的避免网络延迟及网络不稳定的状况



steven

1、以具体实例为切入点,和学生们进行问答反馈,发散学生们的思维,注重代码完成的过程,同时还能了解到其他同学们是怎么想的。

2、4:目前在进行基础知识的学习,还未碰到具体的项目案例,暂时没有什么好的建议。

3、让我了解到如何根据别人的代码,通过芯片手册,产品需求及周围可利用的资源去追溯模块的功能,理解代码功能,完善优化代码。



禾苗

1. 此次公开课讲得比较好的地

RE:少我们不要去猜代码作者的意图,直接从输出倒推更有效率

2. 此次公开课的改善建议

RE:可以顺便布置作业要求用明德杨规范写实现一样功能的代码

3. 此次公开课对你的帮助情况

RE:能少走不少弯路

4. 对明德扬的建议

1周前 收起



王福

昨天上课时出现了卡屏的问题,今天又下下来看了一遍。本次课程利用别人代码与实际项目讲述了如何阅读别人代码的问题。对于实际代码要先知道具体功能,再看代码是如何实现的;而对于具体的项目要从后面模块信号开始,从后面往前推。这对于项目经验少、即将参加工作的我们确实很重要。建议以后在上课之前将下一次上课要用到的代码等资料提前上传到群里。

5天前 收起



woozywooyi/wu:ziwuyi/

1.讲解清晰、明了、互动、新颖,以项目例程实践性、引导性地指出:要带着项目、工程的实现思路或功能有目的地去阅读,逆向逐级推到、层层关联明白各语句块的功能,切忌盲目从头到尾阅读代码;

2.暂无改善建议;

3.增加了自己阅读他人代码的技能与经验,提高了自己阅读效率;

4.感谢潘老师及明德扬全体本着以学员为中心,积极负责、不辞辛劳的办学态度。

6天前 收起



孤雁寒山

通过实例讲解,便于理解。重点介绍了分析的思路和方法。提纲挈领,非常棒

6天前



Touch3

1 按照实际解答 ,老师讲课很激情

2 .网络不给力,一段时间卡顿了

3.解决了怎么看别人代码的困惑

4.多举办一些专题公开课,可以贴出来吸引人气

6天前



米仔宝宝

有举例,通俗易懂,对我这个初学者技能提高很有帮助。

1周前



仰望天上的光

最好能够提前一天左右将课程的代码和具体的问题先发给大家,然后课堂讲解。之后可以再搞一个类似的代码(之前没有发给大家看),现场用学到的方法解决。

1周前



李哲

关键是思路,按照这个思路解决问题会节约非常多的时间

1周前



wayne

不管学习还是工作中,会节省很多时间和少做很多无用功

1周前



最新回答

SUNWET

对于初学者在一开始学FPGA有这样的一个指导思路非常好,老师给指导的过程结合实例,理解的过程更容易,就是自己没提前准备好预习课程,上课的过程有点仓促,但老师讲解的如何阅读代码的主要思路和重点非常突出。

5天前



sophia

1 倒推法比较好,思路比较清晰,目的功能比较明确,设计代码也比较方便

2分享桌面不太流畅,希望老师检查是否是网络问题

3 通过这次听讲,对于阅读别人的代码有些帮助,知道阅读思路

4希望明德杨能够及时跟进学员学习情况和进度,以及学习的效果

6天前 收起



Maxwell?

讲的比较好的地方地方是能以说有的内容实际出发给建议,工作思维的方式提高了。在课前可以将每次讲的内容做一个简单的介绍,在课前能让学员对今天的内容,也可以做下准备工作,以便更好的吸收和进入状态。总的来说帮助效果可以,讲了些是实际工作必备的前提。

6天前 收起



破晓

1,可以扩大大家对代码的认识,扩展视野,很好的上课方式

2,暂时没有。。。

3,增加理解别人代码的思路

4,希望以后多出点这样的视频

6天前



较量

1.讲解通熟易懂,互动很带劲,留有充足的时间给学员独立思考。

2.课上讲完能继续有课下练习太好了,方便后面巩固

3.自己代码要写的清晰才能方便别人查看,最好加注释,读别人的代码要从功能出发读取,大的通用的可以知道其功能直接调用,小的不知名的干脆自己写就行。感觉到了我们这套架构的优越性,通熟易懂简洁明了。

4.每节课信息量可以一如既往的短小精悍,上大课很长时间不易掌握重点。

6天前 收起



johnson

1、讲解思路清晰;

2、建议讲解的时候及时询问下同学的反馈,防止网络问题;

3、提供了阅读代码的正确方法;

4、建议及时收集大家的反馈,对有普遍性的问题及时集中讲解。

6天前 收起



孤帆远影

潘老师讲的思路非常好,这样阅读代码可以少走很多弯路;希望多开一些这样的公开课,发散一下大家的思维!

6天前



枫叶

1 .如何阅读别人的代码,老师通过一个实例来进行谅解,不能只看代码,首先要知道实现的功能,看看要实现这个功能代码的实现,这个也有助于我们在做项目的时候如何去做,应该首先清楚功能,实现的目标是什么,然后再去设计,整个课程过程老师讲解很清楚,通过学生问问题,互动,有助于对于问题的理解,很好的学习过程。

2.这次公开课程中间可能由于网络的原因出现一些问题,屏幕出现停滞问题,让老师又重新讲解。可能会耽误老师时间。

3.最近在学习边缘检测工程,正好也是阅读工程代码,但是按照老师规范的代码,很容易看懂,真的特别清晰容易理解,就是清楚模块的功能,然后看要实现功能,代码怎么实现,往结果去靠拢,这样理解起来会更容易。

6天前 收起



hyu

1、提供阅读代码的思路。主要是先弄懂方案具体要完成的功能,再去看代码。

2、改善意见:网络不太好,有点卡。

3、挺有帮助的,这样阅读代码有思路了。

4、建议多举行公开课。

6天前



小马过河

先了解功能,再看代码这个将的不错,潘老师结合两个例子讲解,分享了怎么看别人代码的基本流程,并对边缘检测工程的代码怎么看有了帮助。略微遗憾的是这次讲解中间网有点卡,影响到视频的连贯性,所幸有录播视频可以回看。一如既往的支持明德杨的公开课

6天前 收起



望星云

这次公开课围绕阅读被别人的代码开展,在拿到别人代码的时候,不着急看内容,先从宏观上了解想要实现的功能,然后细看接口、时序、协议等,这也是我现在遇到的问题,之前总是阅读每个模块,查手册,得出功能,再每个功能结合起来想它的总功能,确实非常费时间,潘老师这节课正是解决了这一困难。

       改善建议的话我觉得老师讲课时可以关注一下大家的反应,这样网络卡时就能及时发现,不然还得再讲一遍,还有一个,我觉得老师的语速一点快,有时候听不太清(也可能是我自己的问题,哈哈)。

       最后说一点,只要每次课有收获,哪怕是学到一个知识点我也觉得进步了,希望跟着老师多学习,多进步。

1周前 收起



小凯

这次课来的还是很及时,正好这一段时间一直在写代码,看代码,感觉很痛苦。

点了主题之后给了一个具体的例子,让我以后具体做起事来还是有迹可循,赞。这次课最不好的就是环境有点不好,断了一次,链接比较慢

1周前 收起



It's my life

无论做什么思路最重要,这次阅读代码的方法感觉就是从大处着手,由大到小,再入微,波及到每一行代码;这个方法对于提高效率很有作用。

1周前



夜听春雨

1.从实例开始讲解,先让同学们思考,然后点拨,整个过程,通俗易懂,有种豁然开朗的感觉。

2.改善的建议暂时没有,觉得这样讲课的方式很轻松自由,人多也很有气氛。

3. 看别人的代码,必须从弄懂代码的所要实现的意图和功能开始,这个讲的比较好,明确了思路方向。

4..潘老师很用心,为了让学员更快的掌握FPGA,真是煞费苦心,辛苦了,没有什么建议,希望这种形式的讲课可以持续下去,让更多的学员获益。

1周前 收起



寒灵

此次课程比较好的地方是从一个具体的例子入手,让学生亲身经历一次阅读不规范代码的经历,体会阅读他人代码中遇到的问题和解决办法。平时经常要阅读开发板子带的demo,今后工作中也少不了阅读他人代码,所以我认为这个课程对我的帮助会很大。

      希望可以更多地举办类似课程,题目一方面从设计共性问题中找出,另一方面来自学员需求。

1周前
分享到:
评论

相关推荐

    基于java+springboot+mysql+微信小程序的流浪动物救助小程序 源码+数据库+论文(高分毕业设计).zip

    项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea、微信开发者工具 数据库:MySql5.7以上 部署环境:maven 数据库工具:navicat

    基于springboot的体质测试数据分析及可视化设计源码(java毕业设计完整源码+LW).zip

    项目均经过测试,可正常运行! 环境说明: 开发语言:java JDK版本:jdk1.8 框架:springboot 数据库:mysql 5.7/8 数据库工具:navicat 开发软件:eclipse/idea

    python 3.8.20 windows install 安装包

    编译的 python 3.8.20 windows install 安装包

    基于go-zero的用户管理系统全部资料+详细文档.zip

    【资源说明】 基于go-zero的用户管理系统全部资料+详细文档.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    基于springboot的时间管理系统源码(java毕业设计完整源码+LW).zip

    时间管理系统采用java技术,基于springboot框架,mysql数据库进行开发,实现了首页,个人中心,系统公告管理,用户管理,时间分类管理,事件数据管理,目标数据管理,用户日记管理等内容进行管理。 环境说明: 开发语言:java JDK版本:jdk1.8 框架:springboot 数据库:mysql 5.7/8 数据库工具:navicat 开发软件:eclipse/idea

    基于springboot的火车订票管理系统源码(java毕业设计完整源码+LW).zip

    项目均经过测试,可正常运行! 环境说明: 开发语言:java JDK版本:jdk1.8 框架:springboot 数据库:mysql 5.7/8 数据库工具:navicat 开发软件:eclipse/idea

    收到防护服快快快啊啊啊啊啊

    收到防护服快快快啊啊啊啊啊

    葡萄城手册,快速上手,灵活报表

    制作报表

    simulink相位调制器PM

    simulink相位调制器PM

    2023-04-06-项目笔记 - 第三百六十阶段 - 4.4.2.358全局变量的作用域-358 -2025.12.27

    2023-04-06-项目笔记-第三百六十阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.358局变量的作用域_358- 2024-12-27

    (59423620)指纹识别基于matlab GUI指纹识别【含Matlab源码 1353期】.zip

    【指纹识别】基于matlab GUI指纹识别是一种生物特征识别技术,它利用了人类指纹的唯一性和稳定性进行身份验证。在本项目中,我们探讨的是如何使用MATLAB图形用户界面(GUI)来实现这一过程,包括图像采集、预处理、特征提取和匹配等多个步骤。 指纹图像的采集是整个系统的基础。这通常通过专用的指纹传感器完成,它们可以捕获高质量的指纹图像。在MATLAB中,我们可以使用摄像头或其他图像输入设备模拟这一过程,将捕获的图像导入到GUI中。 接下来是预处理阶段。指纹图像往往含有噪声和不清晰的部分,因此需要进行图像增强,以突出指纹的细节特征,如脊线和谷线。这可能包括二值化、直方图均衡化、滤波等操作。MATLAB的图像处理工具箱提供了丰富的函数支持这些预处理步骤。 特征提取是识别的核心环节。指纹的特征通常包括核心点、三角点、终结点以及脊线的方向和纹路模式。MATLAB中可以使用方向图像和细化算法来检测这些特征点,并生成特征描述符。例如,使用Gabor滤波器可以提取脊线方向信息,而细化算法可以帮助找到特征点。 GUI设计是用户交互的关键。在这里,用户可以上传指纹图像,系统会实时显示预处理和特征提取的

    基于Go后端的外挂式评论系统全部资料+详细文档.zip

    【资源说明】 基于Go后端的外挂式评论系统全部资料+详细文档.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    nosql分布式数据库期末考试题a.docx

    ### NoSQL分布式数据库知识点解析 #### 一、选择题知识点详解 **1. 关系数据库与非关系数据库** - **关系数据库**: MySQL、SQL Server 和 Oracle 均属于关系数据库,它们采用 SQL 作为标准查询语言,支持 ACID 特性(原子性、一致性、隔离性和持久性)。 - **非关系数据库**: 指的是不采用表格形式来组织数据的数据库类型,通常用于处理大量非结构化或半结构化数据。 **2. 数据库语言分类** - **数据定义语言 (DDL)**: 用于定义数据库结构的语言,如创建、修改和删除表等操作。 - **数据操纵语言 (DML)**: 用于添加、修改和删除数据的语言,如 INSERT、UPDATE 和 DELETE 等命令。 - **数据查询语言 (DQL)**: 用于查询数据的语言,主要是 SELECT 语句。 - **数据控制语言 (DCL)**: 用于管理权限和安全性的语言,如 GRANT 和 REVOKE 命令。 **3. 关系数据库优点** - **易于理解**: 使用表格形式组织数据,符合人类直观认知习惯。 - **易于维护**: 支持事务处理,确保数据一致性。 - **支持 SQL**: 使用标准查询语言,便于数据查询和处理。 **4. MongoDB 编程语言** - **JavaScript**: MongoDB 是用 C++ 开发的,但其 Shell 环境使用 JavaScript,使得数据查询和管理更加便捷。 **5. NoSQL 数据库特点** - **分布式**: 能够在多台计算机上分布存储数据,适用于大数据量的处理。 - **不基于 ACID**: 相对于传统的关系数据库,NoSQL 数据库往往牺牲了部分 ACID 特性以换取更高的性能和可扩展性。 **6. CAP 理论** - **一致性 (C)**: 所有节点在同一时间具有相同的数据。 - **可用性 (A)**: 每个请求都能得到一个合理的时间内非错误的响应,但不保证是最新的数据。 - **分区容错性 (P)**: 系统中任意信息丢失的子网故障都不会导致整个系统不可用。 - **CAP 定理**: 在一个分布式系统中,只能同时满足一致性、可用性和分区容错性中的两个。 **7. 知识图谱与 NoSQL 数据库** - **MongoDB**: 适合用于构建知识图谱,因为它支持灵活的数据模型和高效的查询能力。 - **Redis**: 一种键值存储数据库,适用于缓存和实时数据分析。 - **HBase**: 一种列族存储数据库,适合大规模随机读写访问。 **8. HBase 特点** - **容量巨大**: 可以存储非常大量的数据。 - **列存储**: 数据按列族存储,方便进行列级别的访问。 - **稀疏性**: 允许某些列未填充,即某些单元格为空。 **9. HBase 核心组件** - **HMaster**: 负责协调客户端请求、分配 Region 以及负载均衡等工作。 - **RegionServer**: 存储数据的实际服务器。 - **Zookeeper**: 用于协调分布式环境中的服务,例如选举 HMaster。 **10. MongoDB 集合命名规则** - **system.**: 系统保留前缀,用于系统集合。 - **保留字符 $**: 用于特殊目的,如聚合管道。 - **空字符串**: 不允许作为集合名称。 **11. MongoDB 主键** - **UUID**: 通用唯一识别码,常用于作为主键。 - **Sequence**: 序列,也可以作为主键生成方式之一。 - **Auto-increment**: 自动递增,MongoDB 默认为主键使用 BSON 类型的 ObjectId。 **12. MongoDB 逻辑结构** - **数据库 (db)**: MongoDB 中的最高层级,可以包含多个集合。 - **集合 (collection)**: 数据库内的数据容器,类似于关系数据库中的表。 - **文档 (document)**: 数据的基本单位,由键值对组成。 **13. 内存数据库** - **Redis**: 键值存储数据库,常作为内存数据库使用。 - **MongoDB**: 非内存数据库,但可以通过配置将常用数据驻留在内存中。 - **Bigtable**: 谷歌的分布式数据存储系统,并非专门设计为内存数据库。 **14. Neo4j 图形数据库应用场景** - **快递物流数据管理**: 适用于关系较为复杂的数据管理场景。 - **家庭用电数据管理**: 更偏向于使用时序数据库。 - **企业考勤数

    双工位多吸嘴龙门式取放模块proe5.0可编辑全套技术资料100%好用.zip

    双工位多吸嘴龙门式取放模块proe5.0可编辑全套技术资料100%好用.zip

    主持稿22222222222

    主持稿22222222222

    基于ssm的模拟麦当劳点餐系统全部资料+详细文档.zip

    【资源说明】 基于ssm的模拟麦当劳点餐系统全部资料+详细文档.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    php.html.mysql.zip

    php.html.mysql.zip

    Java 入门教程.md

    Java 入门教程.md

    CD668cb芯片电路图

    CD668cb芯片电路图

    基于C语言课程设计大作业 - 马里奥游戏、详细文档+全部资料+高分项目.zip

    【资源说明】 基于C语言课程设计大作业 - 马里奥游戏、详细文档+全部资料+高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

Global site tag (gtag.js) - Google Analytics