史蒂夫·乔布斯说过,每个人都应该学习给电脑编写程序的技术,因为这一过程能够教你如何去思考!众所周知,编程已成为开发者生命中至关重要的一部分。很多事实表明,越来越多的人不管男女老少都将参与编程这个行业。
学习编程的渠道有很多种,比如你可以利用一些互动平台或者
书籍
去学习编程,无论是哪种,只要找到适合自己的就OK。俗话说,光说不练嘴把式,因此,我们还需要进行实践。
编程极富有创造性,你可以创造出许多新奇有趣的想法。很多时候,开发者在相同的问题上花费了大量时间,而忽略了创造性。笔者不能确定这是否是许多网站发起编程挑战赛的原因,但可以确定的是,这些挑战对于开发者而言是有很大帮助的。它的好处在于:
- 思考问题有新的思维方式;
- 学到一门新语言;
- 提升解决方法的能力;
- 激发大脑灵感、专注;
- 有趣!
文中搜集了14个不错的学习资源,帮助你挑战自我,领略并探索计算机领域无穷奥秘。
1.
[topcoder]
[topcoder]社区得到了数百万编码者的支持,因此你可以了解到很多挑战性的项目,基于此你还可以为自己赚去额外的报酬。你可以每天或每周参与编码挑战,该社区提供的项目极具有挑战性,对于初学者而言有一定的难度,但却值得一试。
2.
HackerEarth
HackerEarth提供了SaaS应用,能够为应试者自动评估技术和逻辑技能。此外,它还可作为人才聚集地,为公司提供智能招聘服务资源,帮助公司挑选适宜人才。
HackerEarth会频繁更新挑战项目,你可以提前几周登记注册,事先了解下项目,为挑战做好充足的准备。
3.
Coderbyte
Coderbyte旨在帮助提高开发者的编程技能,其得到了初学者和中级程序员的一致好评。该项目由
Daniel Borowski
于2012年推出,现今任何开发者都可利用业余时间进行维护。
如果你遇到难题,你可以在Coderbyte上提问,该社区的用户相当活跃,你可以获得任何你想要的答案。
4.
Project Euler
Project Euler可能是全球最流行的编程挑战网站,项目推出初期就拥有几十万的用户,足以表明其影响力有多大。Project Euler致力于鼓励、挑战并且发展解题技巧,并为那些对迷人的数学世界有兴趣的人提供乐趣。
你可以通过:
Wikipedia
、
Reddit
、
Stack Overflow
以及
Google Code
了解更多Project Euler相关信息。
5.
Daily Programmer
如果你想了解更多关于编程和问题解答,那么Reddit Daily Programmer就是你的好去处。毋庸置疑,许多开发者都喜欢在Reddit上查看新闻、探讨话题。你的每一次创建、评论,社区成员都审阅并提交,所以你可能会获得许多意见和答案,直至满足你的需求。
6.
Codility Train
Codility Train支持多种语言,你可以预先定制或预先思考挑战项目,根据难易度进行分类,当然挑战何种程度取决于你自己的选择。
每项编程挑战最后都有详细的解释,挑战时间也有限制并不是绝对的自由。
7.
SPOJ
Sphere Online Judge
是一个由成千上万个编码挑战项目组成的社区,它几乎支持所有的编程语言,你还可以基于该社区论坛需求帮助。
8.
CodeChef
CodeChef由Directi创建的一个开发者社区,为开发者提供实践、竞赛和进步的平台。该社区拥有大量的编码竞赛问题,允许访问此前别人解答编码挑战赛的源码。该社区也设置了难易度,你可以根据自身条件选择挑战。
9.
CodeEval
加入CodeEval与其他开发者一样像企业Boss展示你的编码技能。你可以参与不同类别的竞赛,但重点是创建一款产品/应用,赢取高额的奖金作为回报。此外,你还可以将参与编程挑战赛的经历添加到你的简历上,以加深雇主对你的印象。CodeEval旨在帮助开发者宣传自己的经历, 这将对你的工作起到很大帮助。
10.
HackerRank
HackerRank网站是为编码程序员们提供一个以编码谜题和现实生活中遇到的编码难题为基础的新兴的社交平台。HackerRank公司得到了风险投资公司Y Combinator 的资金支持。
在这个社区中,他们提供了各种编码谜题、游戏病毒和现实中的编码难题及挑战,让黑客们在该社区中进行交流讨论,接受挑战。HackerRank就如这个名字所暗示的一样,它同时还提供了在线排行榜和其他的竞争元素。
11.
Talentbuddy
Talentbuddy是你锻炼解决问题能力的好地方,它为程序员提供了一个可以练习C、C#、C++、JavaScript、PHP、Python、Ruby等语言,以采访问答的方式引导你解决问题,此外它还涉及到MongoDB方面的知识。
12.
Codewars
Codewars的奖励系统激励程序员们像打游戏升级一样地做习题。笔者想不出用什么词来形容它了,下面的这个视频足以说明一切!
13.
Rosalind
Rosalind提供了生物学方面的挑战,你可以按照自己的步调接受挑战。
14.
FightCode
你可以编写自己的Robots(也称为爬虫协议、机器人协议等),然后利用它们对抗社区其他成员。这是编码娱乐(code-and-play)两不误,写代码的同时也可以过关斩将。尝试以文档的方法获取更好的灵感吧。