博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
程序员为什么非得参加一场编程竞赛?
阅读量:2073 次
发布时间:2019-04-29

本文共 1689 字,大约阅读时间需要 5 分钟。

640?wx_fmt=gif

对于程序员来说,没有参加过编号竞赛的人生是不完整的?

640?wx_fmt=jpeg

作者 |  Codersera
译者 | 弯月,责编 | 郭芮
出品 | CSDN(ID:CSDNnews)

以下为译文:

众所周知,编程竞赛是在比赛和活动中编写代码。参赛者必须在活动期间按照一定的规范编写程序/代码,Facebook和Google等许多跨国大公司就经常会举行编程竞赛活动。一些最受欢迎的比赛包括Google Code Jam、ICPC、Russian AI Cup和CodeChef。

编程竞赛属于一项运动,只不过是精神层面的运动。这项运动考验的是你的竞赛精神和特定的能力。
640?wx_fmt=png
发展史
最古老的编程竞赛当属ACM-ICPC(国际大学生编程竞赛)。该比赛于1970年由Upsilon Pi Epsilon计算机科学荣誉学会的Alpha分会在美国德克萨斯州农工大学举行,使用的编程语言是FORTRAN。
编程竞赛是面向程序员的良好游戏平台,编程竞赛还可以帮助你在自由职业者网站上的项目中获得更好的竞标价和成交价。在本文中,我们将介绍编程竞赛的指南,希望能够帮助你充分利用编程竞赛做出更英明的决策。
640?wx_fmt=png
编程语言
我建议你学习C、C ++或Java。如果你觉得C容易理解,那么就学习C。我建议你学习C++是因为它拥有一套标准的模板库,其中包含矢量和集合之类的功能,在解决特定问题时很方便。
Java也是一个不错的选择,因为一些顶级编程人员都在使用Java,并且Java的命令也容易理解。
编程竞赛的第一步就是选择编程语言。那么接下来呢?
640?wx_fmt=png
申请编程竞赛
首先,请访问HackerRank网站(https://www.hackerrank.com/)。这个网站有一些很简单的练习题,尤其适合初学者。此外,该网站的用户界面也很方便。
该网站的测试混合了简单和中等难度的问题。如果你的编程竞赛经验为零,那么通常可以从一些简单的问题着手。
在做完所有简单级别的问题后,也可以尝试少量中等难度的问题。此外,这时就会有HackerRank编程竞赛的的主管给你打电话。
然后,就可以申请CodeChef和Codeforce了。
CodeChef(http://codechef.com/)的竞赛用时较长,有助于程序员提高深刻的思维能力。
Codeforces(http://codeforces.com/)两小时一场的竞赛很受欢迎。如果你想提高思考速度和编程速度,那么建议你参加这些比赛。
简而言之,通过这两个网站的竞赛可以帮助你成长为一名优秀的程序员。你感觉如何?
这些竞赛可以提高你的深入思考能力和编程速度。当然,如果你对这些网站感兴趣也完全可以,因为这有助于你成长为更好的的程序员。
640?wx_fmt=png
编程竞赛的最佳实践
  • 学习更好的新算法,并在需要时实现。

  • 使用函数并尽量减少代码重复。

  • 维护好为标准算法、必要的头部、函数等预编写的模板。

  • 了解数据结构。

  • 选择最适合的编程语言。

640?wx_fmt=png
编程竞赛的好处
编程竞赛助于提高分析和逻辑技能。此外,还可以学习算法知识,为你的简历增添色彩。而且在参与编程竞赛的过程中,你可以遇到一群志同道合的朋友。此外,编程竞赛还有科技巨头的支持。
640?wx_fmt=png
编程竞赛的真相
  • 在编程竞赛中,编程人员利用算法和数据结构解决编程问题。

  • 编程竞赛所需的技术力包括基本的数学知识、算法、编程以及敲代码的速度。

  • 参加编程竞赛永不为晚,这项竞赛没有年龄限制。

  • 参加编程竞赛的程序员可以成长为编程大师,但缺乏框架知识。而框架对于现实生活中的项目很重要。

640?wx_fmt=png
写在最后的话
另外,你也可以申请TopCoder,吸取谷歌和其他技术巨头的建议也是不错的。所以说,积极地参加竞赛,努力提高自己的技术力,积累自己的实力。
另外,你也可以一边参加编程竞赛,一边学习实用的技术。出色的编程竞赛经验,外加必要的实践技术力,可以帮助你拿下梦寐以求的工作机会。
原文:https://codersera.com/blog/competitive-programming-algorithm-skills/
本文为 CSDN 翻译,转载请注明来源出处。
【END】
640?wx_fmt=jpeg

 热 文 推 荐 

你可能感兴趣的文章
阿里云《云原生》公开课笔记 第三章 kubernetes核心概念
查看>>
阿里云《云原生》公开课笔记 第四章 理解Pod和容器设计模式
查看>>
阿里云《云原生》公开课笔记 第五章 应用编排与管理
查看>>
阿里云《云原生》公开课笔记 第六章 应用编排与管理:Deployment
查看>>
阿里云《云原生》公开课笔记 第七章 应用编排与管理:Job和DaemonSet
查看>>
阿里云《云原生》公开课笔记 第八章 应用配置管理
查看>>
阿里云《云原生》公开课笔记 第九章 应用存储和持久化数据卷:核心知识
查看>>
linux系统 阿里云源
查看>>
国内外helm源记录
查看>>
牛客网题目1:最大数
查看>>
散落人间知识点记录one
查看>>
Leetcode C++ 随手刷 547.朋友圈
查看>>
手抄笔记:深入理解linux内核-1
查看>>
内存堆与栈
查看>>
Leetcode C++《每日一题》20200621 124.二叉树的最大路径和
查看>>
Leetcode C++《每日一题》20200622 面试题 16.18. 模式匹配
查看>>
Leetcode C++《每日一题》20200625 139. 单词拆分
查看>>
Leetcode C++《每日一题》20200626 338. 比特位计数
查看>>
Leetcode C++ 《拓扑排序-1》20200626 207.课程表
查看>>
Go语言学习Part1:包、变量和函数
查看>>