- 从在线教程中学习或
- 从在线课程中学习
有人可能会认为学习一种新语言的最佳方法是:
- 要学习新编程语言的语法,则
- 使用该语言构建个人项目
很公平! 构建项目可确保您应用从学习想要学习的语言的语法中学到的知识。
我在学习不同语言的同时开发了20多个小项目。 当我为个人项目,周末项目甚至快速的夜间黑客编写代码时,我都会编写代码以完成工作。 我所关心的只是-“我的代码行吗?”。 我在学习时几乎不关心代码的质量。
这是我关于如何以一种非常规的方式有效学习新语言的故事。
我在Booking.com上以研究生软件开发人员的身份工作。 作为职务的一部分,我每四个月更换一次团队,以更好地了解业务的各个方面。
在办公室中,我们主要使用Java和Perl。 但是,还有许多其他语言可用于不同目的,因此我们使用Python进行数据分析,使用Go进行微服务,等等。
去年,我从Booking.com获得了一份全职工作的报价,而且我知道我会与Perl合作。 大学毕业后,我便开始学习Perl,为自己的工作做准备。 我首先学习Perl的语法并了解该语言的一些常见模式。
现在,我真的很想使用Perl构建某些东西,以便可以练习各种语言概念。 在寻找想法时,我在GitHub上遇到了DuckDuckGo的开源组织。 我开始研究适合初学者的问题。 在这样做的时候,我总是习惯查看现有的模块。 我曾经注意到Perl中使用的模式。 慢慢地,我开始在自己的代码中学习良好的做法,这有助于我学习如何在Perl中编写好的代码。
在12月,我搬到了Core Infrastructure的新团队,这一直是我一直很好奇的事情。 关于Booking.com研究生计划,最好的事情之一就是您可以灵活选择下一个团队。 这次机会让我感到非常兴奋。
在我的新团队工作两周后,我完成了一项任务,即向Go编写的一项服务添加新功能。 这是我与队友的对话:
我:我真的很喜欢这个任务。 我要努力。 你怎么看?
队友:是的,这很有趣。 但是,它需要Go的知识。 你知道吗
我:不。
队友:您想学习围棋吗?
我:是的!
队友: 微笑那里去!
所以我到了学习一种新的编程语言的边缘:Go!
我开始学习Go的语法,并在其官方网站上找到了很棒的初学者语言之旅。 足以让我熟悉该语言的基本概念。
那天晚上,出于好奇,我开始在Go中寻找存在一些“入门”或“易修复”问题的开源项目。 我找到了一个项目-Google的go-github,它基本上是GitHub REST API的Go包装器。
在开始学习Go的两天后,我对该项目有了第一个请求请求。

开源如何提供帮助?
因此,现在您可能想知道开源贡献如何帮助学习语言的良好实践。 这是我一路上学到的教训。
代码质量
大多数优秀的开源项目都有严格的编码准则,您必须遵守这些准则才能合并代码。 这帮助我适应了这些准则,因此即使我只是在学习语言,也学会了编写高质量的代码。 不仅如此,我还有机会查看了其余的代码库,并了解了用这种语言编写的代码质量如何。
代码评论
关于开源贡献的最好的部分是代码审查。 推送代码时,您会从与该项目相关的专家那里获得反馈。 它使您有机会提高对语言的理解。 这就像获得有关如何编写好的代码的免费个人指导!
升值

每个人都喜欢因为他们的工作而受到赞赏,开源社区对此表示赞赏。 从开放源代码贡献的整个经验来看,我什至没有收到任何侮辱或消极的评论。 每个人都超级鼓励和乐于助人。

即使我正在学习一种新的语言来完成工作中的某些任务,但我还是设法同时增强了自己的专业知识并为开源项目做出了贡献。 完美的双赢局面!
因此,下次您想学习一种新语言时,请继续尝试! 寻找一个开源项目,为学习该语言及其细微差别做出贡献并前进。