如何有效的学习开源代码
导读:对于开发者来说,社区里丰富的开源代码其实是笔极为宝贵的财富。如果能充分利用好开放源代码的资源,不仅可以掌握多种编程方法,提高实践能力,还能获得好的思想,激发编程灵感。开源代码怎么学以及怎样才能学好是大家经常关注的话题,日前,在问答网站知乎上,有人抛出了“如何更有效地学习开源项目的代码?”的话题,众技术好手各抒己见,CSDN软件研发频道对本文内容进行了整理,方便大家学习与参考。
盛大创新研究院研究员 庄表伟:学习开源 尽可能在代码里找答案
庄表伟提供了以下9个建议:
1.在下载源代码之后,首先要跑起来,编译通过、正常运行;
2.在你觉得最有可能运行到的地方,设置断点或者抛出异常,这样,就能够找到一个项目在正常运行时的入口点;
3.从入口点所在的那个源文件开始阅读,逐步把握整个项目是如何启动起来;
4.随便改点代码,看看会不会报错,如果报错,会从哪里报错;
5.试着把报错屏蔽、修复、或者绕开;
6.尝试理解一个系统的内部结构,多少组成部分,主线模块是哪些?辅助模块是哪些?
7.从实际需要出发,修改这个项目,满足自己的某一个小的需求。(注意在此之前,尽量不要在网络上找答案);
8.看看相关的讨论与心得,是否与自己的理解相一致;
9.提交bug fix或者某个新的功能代码。
在学习开源的过程中,有几个方面会获得大量收获,1.架构与模式;2.开源社区常见的一些惯用法;3.相关领域的结构与算法。
总结一点:学习开源,尽可能在代码里找答案,而不是在代码之外找答案,那些都是二手的,而且很可能不准确。
互联网评论员 朱晓阳:从简单做起 理论联系实践
朱晓阳对此发表了两点看法:首先,从简单做起。刚开始的时候学习一些领域内基础理论,然后找一些简单的东西去实现,不能一开始就去找开源项目。建议大家经常动手写一些小程序,如改进宿舍网络登录客户端等。积小成多,能显著提高自己的编程能力。其次,学习的知识一定要和自己生活或工作有联系,这样才会有乐趣或动力。
互联网评论员孙竟:先构想一个想做的项目
首先,构想一个想做的项目(比如论坛、博客、微博等);然后,思考需要什么功能,应该怎么去实现,尽可能包括各种细节,有必要时记录下来;最后,去找个类似的开源应用,看看它是怎么实现的,和你的想法有什么差异,有什么可以学习或需要改进的地方。
互联网草根hqman:我的5个建议:1.反复地使用软件,熟释软件的组成文件和软件功能,注意IE地址栏内的地址变化;2.打开数据库文件或存放数据的XML文件,参照数据字典了解各个表和字段的数据含意;如果没有数据字典,就运行软件输入数据,参照所输入的数据,了解各个表和字段的数据含义;3.利用Visio进行反向工程,将类图抽出来;4.研究类之间的关系,注释各个类的属性和方法,弄清程序的整体框架;5.另开一个项目,按照软件开发的流程,将代码分段复制进新的项目,进行编译调试,关注一些实现细节,学习一些编程的技巧。
在读研究生张伟:在校学生空闲时间多参加一下比赛
张伟的建议是大家在空闲时间多参加一些比赛。一个完整的项目,不管再小,只要做完了,就会有收获。多看一些比较大的开源项目源代码,每次看完后都会受益匪浅。从网上成熟的开源代码里,可以学到很多的设计思想。他认为,从项目入手,以项目为驱动,可激励自己进步。当然,是否一定需要看开源代码,这将取决于个人的兴趣和需要。
画出程序流程图 理解程序流程思想
CSDN博客专家i_like_cpp:曾在CSDN分享了《如何将源代码学好》的博文,对此,他给出了四点建议:1. 画出整个程序的流程图,理解整个程序流程的思想。画流程图的方式更让人很直接的理解程序的整体流程,而不会被代码所干扰,让程序员总体上把握整个程序;2. 对流程各节点(函数或过程)的理解,流程的每一节点是构成整个流程的不可缺少的部份;3.再把流程和流程各节点串起来理解整个程序,可能的话最好写出读书笔记;4. 如果想深刻的学习到源代码的精髓所在,请写一个相近的程序进行操练。理解了这个程序并不表明掌握了这个程序,只有在操练一个相近的程序时,才知道你到底理解了多少,掌握了多少。
编后语:
源代码的学习是一个从整体到不断细化的过程,是一个极为繁琐的过程同时也是一个不断认清事物本源的过程。本文总结的源代码的学习经验,希望对您有所帮助。
如何有效的学习开源代码相关推荐
- 如何有效地学习开源项目的代码?
对于计算机专业的同学来说,网络上丰富的开源代码是一笔极为宝贵的财富.通过对开源代码的学习与钻研,大家能从中学到很多书本上.课堂上学习不到的实践知识.如何学习开源代码以及如何学好开源代码成为了大家经常关 ...
- 各类识别、深度学习-开源代码文献梳理
可以看看这个 http://blog.csdn.net/workerwu/article/details/46537849 Deep Residual Networks Deep Residual L ...
- 凯斯轴承数据故障诊断PHM轴承寿命预测深度学习迁移学习元学习开源代码集合
实打实的开源手撸代码,没错,纯本人打造,保证精确度达到90%以上. 可以看到可视化结果如下图所示:
- 如何快速读懂开源代码?
文章目录 **RUN起来** **调试** **把控关键数据结构和函数** **从小的开始** **关注一个模块** **工具** **一.阅读开源代码存在的一些误区** 二.阅读代码的心态 **三. ...
- 《开源思索集》一如何更有效地学习开源项目的代码?
本节书摘来异步社区<开源思索集>一书中的第2章,第2.1节,作者: 庄表伟 责编: 杨海玲, 更多章节内容可以访问云栖社区"异步社区"公众号查看. 如何更有效地学习开源 ...
- github 开源 代码 学习 集合(转载)
一个支持多种item类型的recycleView依赖注入库 1.通过注解的方式方便的把ViewHolder注入到recycleView中. 2.去除findViewByID等冗余操作. 3.去除编写a ...
- CV Code | 本周新出计算机视觉开源代码汇总(含目标跟踪、语义分割、姿态跟踪、少样本学习等)...
点击我爱计算机视觉标星,更快获取CVML新技术 刚刚过去的一周出现了很多很实用.有意思.很神奇的CV代码. 比如大家期待的SiamRPN++算法,官方终于要开源了. 阿里MNN成为移动端网络部署的新选 ...
- CV Code | 本周新出计算机视觉开源代码汇总(含图像修复、目标检测、医学图像分割、度量学习等)...
点击我爱计算机视觉标星,更快获取CVML新技术 CV君汇总了过去一周计算机视觉领域新出的开源代码,涉及到图像质量评价.图像去雾.图像修复.医学图像分割.目标检测.人脸对齐.度量学习等,其中有多篇来自C ...
- springboot学习_Spring Boot 开源学习项目代码日爆爆爆
最新要学习 Spring Boot ,以前也用过部分的框架爱,最近试用之后便一发不可收拾的爱上它.使用 Spring Boot 来开发项目则只需要非常少的几个配置就可以搭建起来一个 Web 项目,并且 ...
最新文章
- 桁架机器人运动视频_桁架机器人的直线定位单元
- 第九章构造数据类型实验
- MP4大文件虚拟HLS分片技术,避免服务器大量文件碎片
- 【Storm】storm安装、配置、使用以及Storm单词计数程序的实例分析
- php判断除数是不是整数,五种js判断是否为整数类型方式
- Agile PLM EC Understand the BOM Publishing Process
- GIL对多线程的影响
- dbvisualizer free 9.5.6中文乱码
- mui ajax方法
- 字体系列之字体大小(CSS、HTML)
- 管理员登录页面html代码,Admin管理员登录界面
- ARM Cortex-M0系统简介
- Kali Linux 安装 COMFAST CF-WU925A Realtek RTL8811CU/RTL8821CU USB 无线网卡驱动
- Web3 赋能音乐行业,能否创造更多价值?
- 姓名大全 导入mysql_My SQL常用操作汇总详解
- django基础入门之搭建博客系统
- .Net Core 简单的Hangfire部署Demo
- 在Win10下安装Anaconda3,“开始”菜单目录下只有Anconda prompt怎么办
- Oracle语句(持续更新)
- JAVA的教师档案管理系统_教师档案管理系统的设计与实现