导读:对于开发者来说,社区里丰富的开源代码其实是笔极为宝贵的财富。如果能充分利用好开放源代码的资源,不仅可以掌握多种编程方法,提高实践能力,还能获得好的思想,激发编程灵感。开源代码怎么学以及怎样才能学好是大家经常关注的话题,日前,在问答网站知乎上,有人抛出了“如何更有效地学习开源项目的代码?”的话题,众技术好手各抒己见,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. 如果想深刻的学习到源代码的精髓所在,请写一个相近的程序进行操练。理解了这个程序并不表明掌握了这个程序,只有在操练一个相近的程序时,才知道你到底理解了多少,掌握了多少。

编后语:

源代码的学习是一个从整体到不断细化的过程,是一个极为繁琐的过程同时也是一个不断认清事物本源的过程。本文总结的源代码的学习经验,希望对您有所帮助。

如何有效的学习开源代码相关推荐

  1. 如何有效地学习开源项目的代码?

    对于计算机专业的同学来说,网络上丰富的开源代码是一笔极为宝贵的财富.通过对开源代码的学习与钻研,大家能从中学到很多书本上.课堂上学习不到的实践知识.如何学习开源代码以及如何学好开源代码成为了大家经常关 ...

  2. 各类识别、深度学习-开源代码文献梳理

    可以看看这个 http://blog.csdn.net/workerwu/article/details/46537849 Deep Residual Networks Deep Residual L ...

  3. 凯斯轴承数据故障诊断PHM轴承寿命预测深度学习迁移学习元学习开源代码集合

    实打实的开源手撸代码,没错,纯本人打造,保证精确度达到90%以上. 可以看到可视化结果如下图所示:

  4. 如何快速读懂开源代码?

    文章目录 **RUN起来** **调试** **把控关键数据结构和函数** **从小的开始** **关注一个模块** **工具** **一.阅读开源代码存在的一些误区** 二.阅读代码的心态 **三. ...

  5. 《开源思索集》一如何更有效地学习开源项目的代码?

    本节书摘来异步社区<开源思索集>一书中的第2章,第2.1节,作者: 庄表伟 责编: 杨海玲, 更多章节内容可以访问云栖社区"异步社区"公众号查看. 如何更有效地学习开源 ...

  6. github 开源 代码 学习 集合(转载)

    一个支持多种item类型的recycleView依赖注入库 1.通过注解的方式方便的把ViewHolder注入到recycleView中. 2.去除findViewByID等冗余操作. 3.去除编写a ...

  7. CV Code | 本周新出计算机视觉开源代码汇总(含目标跟踪、语义分割、姿态跟踪、少样本学习等)...

    点击我爱计算机视觉标星,更快获取CVML新技术 刚刚过去的一周出现了很多很实用.有意思.很神奇的CV代码. 比如大家期待的SiamRPN++算法,官方终于要开源了. 阿里MNN成为移动端网络部署的新选 ...

  8. CV Code | 本周新出计算机视觉开源代码汇总(含图像修复、目标检测、医学图像分割、度量学习等)...

    点击我爱计算机视觉标星,更快获取CVML新技术 CV君汇总了过去一周计算机视觉领域新出的开源代码,涉及到图像质量评价.图像去雾.图像修复.医学图像分割.目标检测.人脸对齐.度量学习等,其中有多篇来自C ...

  9. springboot学习_Spring Boot 开源学习项目代码日爆爆爆

    最新要学习 Spring Boot ,以前也用过部分的框架爱,最近试用之后便一发不可收拾的爱上它.使用 Spring Boot 来开发项目则只需要非常少的几个配置就可以搭建起来一个 Web 项目,并且 ...

最新文章

  1. 桁架机器人运动视频_桁架机器人的直线定位单元
  2. 第九章构造数据类型实验
  3. MP4大文件虚拟HLS分片技术,避免服务器大量文件碎片
  4. 【Storm】storm安装、配置、使用以及Storm单词计数程序的实例分析
  5. php判断除数是不是整数,五种js判断是否为整数类型方式
  6. Agile PLM EC Understand the BOM Publishing Process
  7. GIL对多线程的影响
  8. dbvisualizer free 9.5.6中文乱码
  9. mui ajax方法
  10. 字体系列之字体大小(CSS、HTML)
  11. 管理员登录页面html代码,Admin管理员登录界面
  12. ARM Cortex-M0系统简介
  13. Kali Linux 安装 COMFAST CF-WU925A Realtek RTL8811CU/RTL8821CU USB 无线网卡驱动
  14. Web3 赋能音乐行业,能否创造更多价值?
  15. 姓名大全 导入mysql_My SQL常用操作汇总详解
  16. django基础入门之搭建博客系统
  17. .Net Core 简单的Hangfire部署Demo
  18. 在Win10下安装Anaconda3,“开始”菜单目录下只有Anconda prompt怎么办
  19. Oracle语句(持续更新)
  20. JAVA的教师档案管理系统_教师档案管理系统的设计与实现

热门文章

  1. 程序员『天梯排行榜』,看看你在哪一级?
  2. JavaFX实现学生成绩管理系统(综合实践大作业)
  3. pandas-综合实践
  4. SSR 它到底香不香?细数 SSR 的利与弊
  5. 整理总结:机器学习常用九大算法
  6. Table ‘ambari.members‘ doesn‘t exist 解决方法
  7. 知乎移动端动态化方案 :Morph
  8. Java中Double和Long互相转换
  9. 【托业】【怪兽】TEST04
  10. FCPX插件:3D照片动画制作器—3D Photo Animator