程序员如何快速提高编程能力?快来看大牛的方法(转)

如果你想提高编码的能力,最容易想到的一个方法就是多敲代码。每个人都知道这点。然而,另外一种我认为绝对也能提高的方法:

阅读别人的代码能让你的编码能力得到明显的提升!

这样说,可能很多人都抱有怀疑的态度,但是我觉得你应该相信。如果你愿意尝试,我相信你将会得到巨大的回报!

这篇文章将告诉你如何阅读代码,阅读什么样的代码最有效。如果你已经很擅长阅读别人的代码了,那读完此篇文章,你可能会发现新的方法。

应该阅读什么代码?

这是一个很重要的决定,很难给出具体的建议。我无法简单的告诉你应该阅读这个代码还是那个代码,只能将一些指导方针,基本的原则告诉你。

阅读那些你用得着的代码

这一步最好从阅读那些你已经在使用的插件或者库文件开始。

你非常喜欢的WordPress插件

你觉得很有用的Ruby gem工具包

你可能还会使用到的jQuery 插件

这些都是你可以学习的非常好的例子。你已熟悉了它们的公共API,了解它们内部工作原理的障碍是较低的。此外,作为代码的用户,你有机会添加文档、实现新的功能,或者通常以某种方式给项目做贡献。

阅读那些你印象深刻的代码

我记得第一次看到280 Slides幻灯片网站时,我心里想:“这太让人印象深刻了。”我很快了解到,该网站的代码就是基于的Cappuccino开源项目。我把这些知识塞进了大脑的深处,当我最终遇到另一个令人印象深刻但同样是基于Cappuccino 的应用程序时,我知道我有一个项目,我可以从中学到很多东西。你最近对什么项目印象深刻?是开源的吗?如果是这样的话,这是一个很好的阅读选择,因为代码很可能会给你留下深刻的印象。

阅读那些让你尊敬的大师写出来的代码

如果你已经用开源软件编码了一段时间,可能已经有其他程序员赢得了你的尊重。在我的脑海中我能想到一些开发人员,他们写的代码简直令人羡慕。

如果目前你脑海里面没有一个受人尊敬的开发者,想找到一个并不是什么难事。他/她可能已经在前两部分(你能用到的代码,或者给你印象深刻的代码)中授权了一些代码。

阅读那些能给你带来灵感的代码

如果你属于冒险型,那么可以考虑投身于一些大型项目,如Ruby on Rails框架,Drupal或jQuery。但是我建议暂时别接触这样的项目,除非你是一个有经验的而且已经很会阅读别人代码的开发者了。

大型项目有更多的活动部件,你可能最终会因为这些概念而陷入困境,无法学到任何有价值的东西。困惑会导致沮丧,而更大的项目更有可能让你在阅读中感到困惑和气馁。选择一个小项目阅读的好处是可以一次将整个程序逻辑放在脑子里。这样你就可以关注细节,从而学习到很多知识。

如何阅读?

既然你已经选择了一些代码来阅读,那么最好的阅读方式是什么呢?下面提供一些方法来最大化你的投资回报率,也就是读的少,但是收获多。

先看大框架

假设你至少在宏观层面上知道你所读的代码是如何实现的。如果没有,我建议先阅读项目的网站、教程、文档,以及除了代码之外你可以掌握的其他任何东西。

好了,如果上面的步骤完成了,那我建议你第一步就是先大致浏览一下项目的架构。这个阶段的工作量根据你选择的代码库大小的不同也不一样,但是还是需要一点时间的。

首先,注意文件结构。这一步可以使用一些具有文件夹层次结构视图的编辑器提供帮助,比如TextMate。例如,这里有一个关于Twitter Ruby gem的很好的概述。

这一步的目标是熟悉源代码。找出哪些文件包含/请求/加载其他文件,其中大部分代码在哪里,如果有的话,使用的命名空间是什么,以及这些性质。一旦你掌握了大局,你就可以深入挖掘细节了。

记录阅读心得

阅读代码不应该是一种被动的行为。当你开始理解程序流时,我鼓励你在开始时添加注释,记录你的假设和结论。当你第一次开始的时候,你的记录大概会是这样的:

随着你的理解进展,你可以删除你当时留下的无关紧要的一些评论,也许还可以写一些有意义的、权威的评论,这些评论可能会被提交给你的项目。

边阅读边测试,例如Luke

希望你所选择的项目有一个测试套件。如果没有,您可以完全跳过这部分(或者找到一个)。

当你阅读别人的代码时,测试是一个很好的起点,因为他们记录了代码应该完成的任务。有些测试比其他测试更有意义,但是不管编写得多么好,你经常会发现程序员在测试中的意图比在实现中发现的要容易得多。在阅读时,试着让测试套件成功运行。这将确保您的开发环境得到适当的配置,并使您在进行更改时更加自信。

亲自动手做

谁说阅读代码时双手就得闲着?只有当你把所有的东西都打乱了,然后自己试着重新拼装好时,才能在这个过程中真正理解。还记得那些通过的测试吗?想办法让它们失败,添加更多,或者尝试更改实现的逻辑而不破坏它们。尝试添加一个你认为很酷的小功能,或者设置项目范围的日志记录,这样就可以在代码的不同阶段打印输出。这还是在阅读吗?当然,但在这一点上,就得取决于自己的选择了,看你是把它当作冒险来看,还是把他当作一本神秘的小说来看了。这是一件好事!

清除再重复

一旦读完了一个代码库,再选一个,然后重新开始这个过程。代码读的越多,你就能从阅读中获取更好的信息,你花的时间就越少。我认为你会发现投资回报增长很快,而且这是一种非常有趣的学习方式。

从哪里入手呢?

哪里的代码质量最高,我想给程序员带来最大影响的就是GitHub。这个网站让你很容易找到新的项目和优秀的程序员,如果你还没有利用它,我觉得你就是在伤害自己。建议先从GitHub开始,然后直到找到一个你认为可以从中学习的项目,再转移到其它网站阅读。接下来可以先从git clone入手开始阅读!

作者:游X鱼
链接:https://www.jianshu.com/p/db7db41d3648

原文地址:https://www.cnblogs.com/liontone/p/12267723.html

时间: 2024-10-11 20:50:35

程序员如何快速提高编程能力?快来看大牛的方法(转)的相关文章

程序员提高编程能力万无一失的办法

那就是去读别人写的代码.读那些你常用的库.编程框架的源代码,读那些你景仰的大牛的源代码,读代码里的测试(测试本身就是一种有效的文档):读代码.改代码.运行代码. 其实,所谓写程序,大部分的时间都是花在读代码上,“写”的部分耗时极少:所以把“读”的技能训练好了,是很有好处的. 提高编程能力万无一失的办法 编注:这篇文章最初于 2010 年 5 月为 Fuel Your Coding 网站而写.不幸的是,那个网站已经不复存在了,所以我将这篇文章重新发布.为了紧跟时代步伐,我想过对其进行更新,但我又觉

一个程序员如何快速赚到一百万?(转)

一个程序员如何快速赚到一百万,说的详细点儿就是: 一个固定工作者怎么跳出固有的模式,靠其他途径(投资.理财.生意.创意.外包等)赚得相对殷实的钞票? 80% 人都会问这种赚钱问题,但这种问题却太难回答,因为太难有个可标准化的模式去效仿或借鉴. 这个时代,赚钱不难,赚 100 万也不难,难的是要具备且能勤奋的执行的能够持续创造财富的思想方法:观察事物 - 分析分解事物 - 得出解决方案,且把每一个步骤一步一步"写"下来并踏踏实实实施,这个方法最笨,但是她是最踏实的,有了这个,钱是迟早的事

一个程序员如何快速赚到一百万?

一个程序员如何快速赚到一百万,说的详细点儿就是: 一个固定工作者怎么跳出固有的模式,靠其他途径(投资.理财.生意.创意.外包等)赚得相对殷实的钞票? 80% 人都会问这种赚钱问题,但这种问题却太难回答,因为太难有个可标准化的模式去效仿或借鉴. 这个时代,赚钱不难,赚 100 万也不难,难的是要具备且能勤奋的执行的能够持续创造财富的思想方法:观察事物 - 分析分解事物 - 得出解决方案,且把每一个步骤一步一步"写"下来并踏踏实实实施,这个方法最笨,但是她是最踏实的,有了这个,钱是迟早的事

可以快速提高编程能力的7条建议

编程是非常酷的一件事情,但是在酷炫的背后它对很多人来说还是挺难的.很多人在学习编程之初就被困难击败了.当你不熟悉编程的时候,你可能会觉得无从下手,并且不知道如何运用学到的知识.只要你通过了这一困难的学习阶段,你就会发现一个全新的世界. 以下是一些能够帮助你快速提高编程技巧的建议. 1.  多写代码 学习某件事情最好的办法就是练习.你应该花大量时间去构建和编写代码除非你认为练习对你的帮助不大.你可以从写一些基础知识相关的简单程序开始. 2.  参与不同类型的项目 当你对某种开发语言非常熟悉之后,你

(转)程序员如何快速从“码畜”到“中级水平”需要的10个秘诀

1.学习另一门语言 其实你学的是哪一门语言并没有关系,但是学习另一门语言(不管你已经了解多少种语言)将把你打造 为更好的程序员.能学会一门与你日常使用的语言风格迥异的语言则更佳.打个比方,如果你是C#程序 员,学习VB.NET或者Java对你的帮助就没有学习Ruby或者Groovy大. 我说“学另一门语言”的意思是要真正学会它.学习一门语言包括三个领域的知识:语法.内置操作符 和库,以及“如何使用”.前面两个简单:我认为一名有经验的程序员,根据语言的不同,能在半小时 到几小时内掌握足以维护代码的

[转] 一个优秀的程序员应该如何提高工作效率?

转自:http://www.cnblogs.com/cherry0327/p/5395957.html 当我们评价一个程序员是否优秀时,要从多个方面进行评估. 专业技能.专业知识.创造力.经验,这些都是重要的因素.当然,还有他们的工作态度.工作效率和工作质量.如果程序员的工作是没有效率的,那就意味着他们所投入的时间和精力是没有效果的.在livecoding.tv最近发布的一篇博文中,他们总结了10个影响程序员工作效率的坏习惯.看完这篇文章后你会发现,里面所列举的坏习惯,总有一两个可以在自己的身上

给程序员推荐一些提高工作效率的工具

转载: IT江湖 2014年12月03日 于 IT江湖 发表 http://www.itjhwd.com/gcxytjyg-3/ 前几天给大家推荐了一些好用的软件,但是还有很多不错的软件,大家也都反馈了不少,下面我将继续为大家推荐一些高效率的软件,也欢迎大家补充.再次 声明,这些软件我都亲身用过,不喜欢的,或者觉得这些软件菜鸟才用的,那请你把鼠标移到右上角(windows)OR左上角(Mac)点击关闭,谢谢 给程序员推荐一些提高工作效率的工具(一) 给程序员推荐一些提高工作效率的工具(二) Be

【终结篇】不要再问我程序员该如何提高了……

已经工作了的程序员该如何提高自己?我看到过很多说法,包括但不限于: 多读书,然后各种书单,技术的.管理的,情商的.智商的,文学的.艺术的-- 锻炼健身,身体是革命的本钱嘛! 写博客,这个@dudu应该最喜欢了 多交朋友,积攒人脉 学学做贴膜卖烤串啥的 -- 错了么?也不能说错.但我总觉得啊,怎么说呢?一股或浓郁或清淡的"技术宅"味道,算了,不知道怎么形容,直接上我的观点吧: 向你的老大学习,或者说,向人力资源市场学习. 啥意思呢?你就仔细琢磨:你和你的老大之间的差距.然后想方设法的缩小

程序员怎样才能达到编程的最高境界

程序员怎样才能达到编程的最高境界?最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界.即使是这样的高手,那也都是无知者的自封. 我认为,一个程序员的成长可分为如下六个阶段.     第一阶段此阶段主要是能熟练地使用某种语言.这就相当于练武中的套路和架式这些表面的东西.   第二阶段此阶段能精通基于某种平台的接口(例如我们现在常用的Win 32的API函数)以及所对应语言的自身的库函数.到达这个阶段后,也就相当于可以