如何才能在竞技编程中取得好成绩
你是否准备好在竞技编程中脱颖而出,并在像谷歌这样的编程面试中大放异彩,但却不知道从何入手?
这篇博文将指导您完成整个过程,并帮助您避免初学者常犯的错误。
从基础开始
1. 语言能力
在开始学习编程之前,请确保你能够熟练使用英语,因为大多数在线资源都使用这种语言。
2. 数学技能
与你可能认为的相反,数学在计算机科学(CS)中至关重要。你需要扎实掌握代数和组合数学知识,相当于美国8-10年级的水平。
暂时不用担心geometry,,,trigonometry或者。calculus
基础模运算和数论也很重要。如果你参加过像 MathCounts 或 AMC 这样的数学竞赛,那你已经领先一步了!
如果您需要复习这些主题,HackerRank 的数学部分提供了数论、组合数学、代数和概率方面的优秀练习题。
3. 盲打
想要提高打字速度,就要掌握盲打技巧,也就是不用看键盘就能打字。像 keybr.com 这样的网站可以帮助你提升打字速度。以每分钟 50-60 个单词为目标是一个不错的开始。
学习编程语言
1. 语言选择
许多顶尖的竞技程序员都使用C++。它速度快,非常适合解决复杂问题。
但是,如果你已经掌握了一门语言,那就坚持下去,直到达到更高的水平。例如,Java 也能让你走得很远。
如果你是完全的初学者,从 C++ 入手是个好主意。可以先看看网上的教程学习基础知识。
2. 练习
掌握基础知识后,可以在HackerRank等平台上练习,以巩固你的理解。
深入了解竞技编程
1. 问题解决、算法和数据结构
现在是时候专注于竞技编程的核心了。
像《竞技编程手册》和GeeksForGeeks 的算法页面这样的资源非常棒。谷歌也能帮你找到特定主题的文章。
2. 实践平台
HackerRank 非常适合练习,尤其是它的算法部分。A2OJ的天梯练习和Mostafa Saad 的电子表格提供了结构良好的各级别题目列表。
3. 初学者竞赛
先从适合初学者的比赛开始,例如LeetCode 周赛、AtCoder 初学者比赛和Codeforces Division 三级赛。
避免常见错误
- 仅依赖大学课程:大学课程更侧重于计算机科学研究,而不是竞赛编程。
- 阅读过多:CP(能力倾向测验)注重的是积极解决问题,而不是被动阅读。少花时间阅读,多花时间练习。
- 过早学习高级技术:在学习复杂的数据结构和算法之前,应该先掌握基础知识。
- 不要与他人比较:每个人进步的速度都不一样。专注于你自己的旅程,而不是别人的。
最后想说的话
竞技编程是一场马拉松。进步需要时间和持续不断的练习。
记住,这是你的人生旅程,所以要专注于你的成长,享受学习的过程!
注:本文最初来源于William Lin 的YouTube 频道。
敬请关注并访问我的YouTube频道,获取更多编程技巧。
感谢收看,别忘了在下方评论区分享您的想法!
文章来源:https://dev.to/codewithshahan/how-to-get-good-at-competitive-programming-1dm7
