为什么学习开源可以提高程序员的编程技能?

一、阅读代码能让你变得更优秀

在编程生涯的早期就明白阅读的代码越多,代码就能变得更好。当我不得不维护其他人的代码时,简单和干净的代码几乎总是比花哨或复杂的代码好—— 即使有注释。然而另一方面,当我花足够的时间去理解复杂代码的时候,我常常能够学到新的技巧。不论怎么样,都能让我有所提高。

这使得我在那些没有代码审查的地方一再争取。而当没有足够的时间来正式执行“代码审查”的时候,我会自己浏览存储库和阅读代码。

二、超越语法

在你不得不全力对付任意编程语言的语法时,也就是学习如何充分利用该语言最琐碎的时刻。一门语言的语法往往是非常静态的,并且如果你出错了,你的编译器会向你控诉。更深层次的课程涉及到什么语言最适合解决什么样的问题(“合适的工具做合适的工作”),以及如何用那种语言编写代码以便于使它高效和可维护。

学习新语言有许多方法:课程,教程,导师,书籍以及等等。我通常会结合这些选项来学习一门新的语言。当涉及到非语法元素的时候,这些方法常常非常相似。

阅读来自于其他人的实际部署代码会让你收获更多。不仅仅是常规的结构化学习,你还需要学习模式和实践方法。语言中所谓“正确”的做事方式并不总是效果最佳的方式。你会经历边缘情况,一次性事务以及意想不到的集成。你也会找到这些问题的解决方案,有好有坏,但如果你认真思考的话,那么这正是出来“推荐做法”的地方。

三、开源无处不在

随着开源运动的发展,可供阅读和学习的代码数量也大幅度增长。例如Gitlab,GitHub和到BitBucket这些网站就允许我们获取全功能的应用程序,不仅可以阅读代码,还可以摆弄。很少有我想要学习的东西是不能在开源代码中获取的。

我以前学习新的编程语言,会把重点放在诸如目录结构和命名约定这些简单的事情上。但是,现在,我会找一些不同的开源项目,然后可以开始拼凑常用的方法。我很少强调以前那些类型的东西了。

可用的代码是如此之多,但质量却良莠不齐。当我们想要学习的时候,常常搞不清楚哪个好哪个不好。那就保持阅读代码吧,慢慢地你会学会如何区分。阅读“坏”的代码可以帮助你理解为什么它是“坏”的。关键是不要害怕尝试任何你觉得看上去正确的东西,并且当你走错路的时候能够承认错误,并改正问题,然后继续前行。

四、坏的代码就坏的,是这样的吗?

有人会说“坏的代码比好的代码要更多更明显”。

当我看到我以前写的代码时,我的第一想法就是我怎么会写这样的垃圾代码。这实际上意味着我还在学习中。如果我看到我以前的代码,觉得它看上去非常的好,那么说明我并没有提高。

那么,我们怎么才能从坏的代码中学到东西呢?

五、你阅读的坏代码越多,那么你就越擅长发现坏的代码

当你在学习和搜索例子的时候,你会发现和使用大量不能工作的代码。请记住,仅仅因为它不适合你的情况,并不能说明它就是坏的代码。学习如何让它工作能够使得你变得更优秀。

六、你怎么知道它是坏的代码?

人们喜欢批评。阅读评论,如果你看到很多“WTF(什么玩意)”,那么可能你看到的正是坏的代码,试着指出为什么不好的原因。不要只留下“这代码真烂”这样的评论。不要装得你好像懂得坏代码的所有需求,要知道,总有一个它之所以被这样写的正当理由。如果你知道它为什么是坏代码的原因,那么不妨留下一个有建设性的评论。

七、让它变成好的代码

放一个能让代码变得更好的pull请求。修正语法,使用更好的方法,添加注释或修改缩进:这些都是改进代码的伟大方式。加一个为什么你推荐改变代码的解释。

我发现当我帮助别人学习的时候能学到更多。如果我认为我理解了一个新的主题,那么我会找个人来试着向他解释,这能让我更深刻地理解和记住它,并且让我快速发现我是否写了坏的代码。

八、回报

记住开放源代码在你参与进去的时候效果最佳。代码更改在大多数项目中都是受欢迎的,但是有很多出力的方法。

测试开源代码和文件错误报告;帮助完成文档集;写教程和如何做的例子;参加对话——或者仅仅只是帮助传播。每一件事都能带来改变,并且越多的人参与进来越好!

原文地址:https://blog.51cto.com/14512197/2446248

时间: 2024-10-23 14:19:43

为什么学习开源可以提高程序员的编程技能?的相关文章

为什么开源可以提高程序员的编程技能?

为什么开源可以提高程序员的编程技能? 记住开放源代码在你参与进去的时候效果最佳.代码更改在大多数项目中都是受欢迎的,但是有很多出力的方法.测试开源代码和文件错误报告:帮助完成文档集:写教程和如何做的例子:参加对话--或者仅仅只是帮助传播.每一件事都能带来改变,并且越多的人参与进来越好! 我已经写了很多年的软件.最近我意识到,我越涉及(致力于,结合于等)开源技术,我写出来的代码就更好.这不由地让我疑惑起来:难道里面有什么相关性或因果关系吗? 阅读代码能让你变得更优秀 我在编程生涯的早期就明白我阅读

如何提高程序员10倍的生产力

如何提高程序员10倍的生产力,大家都认为这是一个非常好的话题,今天就来分享一些我自己的观点:诚然我们还不知如何准确的定义10倍生产力是个什么样的概念,但我个人认为它是指程序员在超生产的情况下,速度提升了十倍.基于一些成功的因素,同时个人在程序员客栈做项目经理,拥有300+项目管理经验,并与一些顶尖的程序员开发者工作过,我可以分享一下我对这个话题的一些理解. 最早期的程序员 相比现代软件,相对于功能性,安全性,性能和可扩展性20-30年前开发的软件就简单多了.在另一方面,库或框架的只有少数人可以在

如何提高程序员键盘使用效率

对于大多数程序员而言,键盘的使用时长或许比鼠标更多,所以对于如何使用键盘来提高工作效率是一个非常重要的问题,本文章通过以下几个方面来提升程序员的键盘使用效率: 一:程序员常用的快捷键及vi指令 自从70年代起,Vi一直是程序员最好的伙伴之一,无论你是Vi新手或者是老手,下面分类给出了其中一些有用的Vi命令: 像java程序员来说,经常使用的快捷键还有这些:Eclipse中有如下一些和编辑相关的快捷键 1. [ALT+/]   此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和

如何提高程序员的代码使用效率

如何提高程序员的键盘使用效率?首先要明白键盘的使用效率是什么.对绝大多数程序员来说,键盘的使用效率与编码挂钩.在这里,笔者斗胆认为,一定时间内所编写代码可行性高则键盘使用效率高,可行性低则键盘使用效率低.个中缘由大约为,对程序员来说,键盘的一大功能是为编码提供必要帮助,而编码为某一项目服务,当编写的代码对该项目非常合适时,会有较大效率. 如何提高程序员的键盘使用效率呢?本文中从内部.外部两个方面进行分析. 一.内部 首先,因笔者认为一定时间内编写代码的可行性高则键盘使用效率高,故这里认为最直接却

【精】如何提高程序员的键盘使用效率?

1.调研分析程序员使用键盘最常用的技能有些? 首先当然是快捷键,使用快捷键可以大大提高程序员的工作效率!!当然,不能的编程软件通常有不同的快捷键组合,下面列举常用的快捷键组合: VIM除了可以通过快捷键来提高编程效率之外,VIM本身个自定义设置也很重要!如果不想折腾,可以直接使用现有的模块化VIM IDE,比如SpaceVim(https://spacevim.org/cn/).其提供的功能和快捷键可以大大提高工作效率!当然也可以在GitHub上下载自己喜欢的模块,添加进去. 2.如何训练这些技

提高程序员项目设计水平的11条建议

1.分析清楚你要面对的项目. 这是进行所有工作的第一步,如果你在这个地方都犯错了,那么后续所做的一切努力都是白费.比如,你要完成图书管理系统,那么你就应该明白这个系统主要是用于解决图书管理的问题. 2.考虑项目设计的方法. 在这个阶段,你要根据这个项目的特点考虑设计的工具和语言.比如,对于图书管理系统,它需要封装性好,这样有利于管理和维护.而这个系统开发周期较短,功能较简单.所以,根据其特点,选择Java作为开发语言会是一个不错的选择. 3.收集完整的需求. 花时间整理清楚你的用户群的基本需求有

提高程序员项目设计水平相关建议

1.分析清楚你要面对的项目. 这是进行所有工作的第一步,如果你在这个地方都犯错了,那么后续所做的一切努力都是白费.比如,你要完成图书管理系统,那么你就应该明白这个系统主要是用于解决图书管理的问题. 2.考虑项目设计的方法. 在这个阶段,你要根据这个项目的特点考虑设计的工具和语言.比如,对于图书管理系统,它需要封装性好,这样有利于管理和维护.而这个系统开发周期较短,功能较简单.所以,根据其特点,选择Java作为开发语言会是一个不错的选择. 3.收集完整的需求. 花时间整理清楚你的用户群的基本需求有

怎么样提高程序员项目设计水平

今天这篇文章主要是讲述怎么样帮助程序员提高自己的项目设计水平,并且轻松的搞定项目开发.  (本图为提高程序员项目设计水平的11条建议之程序员认真的工作) 1.分析清楚你要面对的项目. 这是进行所有工作的第一步,如果你在这个地方都犯错了,那么后续所做的一切努力都是白费.比如,你要完成图书管理系统,那么你就应该明白这个系统主要是用于解决图书管理的问题. 2.考虑项目设计的方法. 在这个阶段,你要根据这个项目的特点考虑设计的工具和语言.比如,对于图书管理系统,它需要封装性好,这样有利于管理和维护.而这

如何提高程序员的键盘使用效率 ?

---恢复内容开始--- 如何提高程序员的键盘使用效率?这是一个很有趣的问题,对于程序员这样需要大量码字的群体而言,提升打字效率,可以让写代码的过程有一种行云流水的感觉! 一.提升键盘的打字效率 1.选用一个适合的键盘 这其实是很重要的,就像拥有一台合适的显示器,可以提升我们使用电脑过程中的用户体验.使用一个非薄膜键盘可以让我们摆脱那种之前打字的“塑料感”,接下来就介绍下不同轴体的机械键盘的特点以帮助大家甄别选择. 黑轴在手感上更偏重于给用户一种直上直下,没有停顿的触感反馈,且回弹过程干爽有力,