如何提高编程语言的流利度

我的编码研讨会经常提出一个问题:“现在是什么?”。 这通常来自某人,他们背后有一些在线课程和书籍。 他们通常对语言有一般的了解,但对语法的细节却不太了解。 换句话说,他们缺乏流利程度阻止了他们。

这是“现在如何”问题的两个答案。

第一个是“做某事”。 找到一个个人项目,为某件事做出贡献。 充实您的github个人资料。

另一个答案是解决这些人经常无法从事项目工作和获得语言工作的问题。 他们缺乏大量练习带来的流利程度。 编程语言中的扩展练习可以使流利程度提高,就像乐器上的练习可以提高技巧一样。 一天之内,钢琴的演奏原理也许可以向您解释,但是如果您想像梁亮一样演奏,则最好准备练习直到手指流血!

那么,您可以在哪里练习编码以提高流利度呢? 有几个选项供您选择。 这里有一些不错的选择:

登录| 密码战
Codewars是开发人员通过挑战来掌握代码的地方。 在道场的kata上训练,然后达到最高水平…… www.codewars.com

CodeWars –这是一个以数十种语言提供成千上万个练习题(称为kata武术动作)的站点。 它会让您忙一阵子。 难度级别从琐碎到非常具有挑战性。

Exercism.io:来自人群的代码指导。
进行关于代码的深思熟虑的对话。 锻炼

Exercism.io –实践测试驱动设计(TDD)的好方法。 您下载了一个客户端,它为每个挑战获取测试。 您可以根据功能需求构建代码,并在此过程中通过不同的测试用例。 造成这种情况的一个常见原因是代码更改通过了一些测试而又破坏了其他测试。 尽管CodeWars上的练习往往会占用很多时间,但要长得多。 几年前,《连线》(Wired)文章中提到了运动主义。

黑客排名
加入超过200万的开发人员,以解决HackerRank上的代码挑战,这是为……做准备的最好方法之一 。www.hackerrank.com

HackerRank –此职位更开放地面向潜在雇主注意。 这里的一些活动是公司赞助的。 总的来说,格式类似于CodeWars。

关于–欧拉计划
一个致力于迷人的数学和程序设计世界的网站 projecteuler.net

ProjectEuler-以著名的数学家的名字命名,这个站点的问题对他们有一定的数学影响。 几年前The Atlantic上有一篇很棒的文章,很好地解释了这样的网站以及此处列出的其他网站如何成为学习如何编码的催化剂。

r /每日编程器
r / dailyprogrammer:**欢迎使用r / DailyProgrammer!** Daily Programmer的首次访问者请[阅读Wiki]… www.reddit.com

最后,我们应该提到DailyProgrammer,这是一个Reddit,它发布每周的编码挑战(三种难度),并且人们在其中讨论不同语言的解决方案。

在所有这些站点中,找到解决方案 ,学习才真正开始。 花一些时间检查提交的一些最佳解决方案。 确保您了解它们。 这应该会更容易,因为您已经花时间了解了手头问题的性质。

这些站点及其实践练习非常适合编写代码访谈,但它们并不是对白板访谈的准确模拟。 您可以让自己承受时间压力来模拟这些采访条件,但这仍然没有减轻必须大声表演并在观众面前表演的压力。

练习实时编码面试–免费
我们为您选择最佳实践的同伴,并进行面试,包括:完整的问题与解决方案,高清视频…… www.pramp.com

Pramp.com是一个在重新创建面试条件方面做得很好的网站。 它使您与另一个人结对,然后轮流彼此问对方解决问题的方法,就像实际面试中那样。 每次您参加实习面试时,都会给您的伴侣一个同样的问题,这意味着一段时间后您会完全了解它,并且很容易在需要时给他们一些线索。

与Google,Facebook等公司的工程师进行免费的匿名技术面试实践
获得切实可行的反馈,在面试中表现出色,在顶级公司中获得快速发展。 www.interviewing.io

另一个进行面试的好网站是访问。 它类似于Pramp,不同之处在于访问员来自科技公司。 还有一个额外的好处是,如果您在面试中表现出色,则可能会被邀请去采访其中一家公司。

在此类采访中,您必须要做的关键事情之一就是比较不同的潜在解决方案,并估计它们在内存和时间上的占用空间。 使用大O记号来描述此占用空间。

一些FreeCodeCamp视频可以帮助您解决这个问题(一个是关于主要思想的视频,另一个是带有一些示例的视频)。

还有一门(免费的)Udacity课程为技术面试做准备。

技术面试| Udacity
学习技术面试官期望您了解的技能,通用算法,处理流行数据…… eu.udacity.com

这些资源会让您忙一阵子。 每天做一点,您将会走得更远。