RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1040131
Accepted
DataKing
DataKing
Asked:2020-10-30 05:06:48 +0000 UTC2020-10-30 05:06:48 +0000 UTC 2020-10-30 05:06:48 +0000 UTC

奥数编程如何发展?[关闭]

  • 772
关闭。这个问题不可能给出客观的答案。目前不接受回复。

你想改进这个问题吗? 重新构建问题,以便可以根据事实和引用来回答。

2年前关闭。

改进问题

最近,我对奥林匹克编程很感兴趣。

我在我的第一年。
我已经学习了语言的基础知识和简单的算法。
但我不知道如何进一步发展。

教什么?
在哪里教?
在哪里可以参加?
有什么课程吗?
有什么论坛吗?


如果有人可以提供帮助,我将不胜感激。

c++
  • 5 5 个回答
  • 10 Views

5 个回答

  • Voted
  1. Best Answer
    Zealint
    2020-10-30T13:51:15Z2020-10-30T13:51:15Z

    我将发表我的看法,因为多年来我一直参与奥林匹克运动会,并且是世界编程锦标赛的参与者(第 19 名)。现在我是一个相当狭窄领域的程序员数学家,但我作为国际专业人士拥有这个领域。如果我没有及时跳出奥林匹克竞赛之针,我就不可能成为如此专业的人。

    首先你必须明白,奥林匹克是一场比赛。它很有用,培养了一些有用的编程技能和重要的优化能力。当我 13 年前停止玩这个游戏时,我很惊讶我比任何其他程序员都好得多,我可以编写他们甚至无法想象的快速高效的代码(当涉及到复杂的任务时)。但这场比赛的主要内容是准时出发。在某个美好的时刻,您必须了解饱和点已经到来,然后开始退化,而不是发展。你开始工作的不是发展你的技能,而是磨练竞争技能以达到完美,这在实际工作中是不需要的,甚至是有害的。

    第二:奥林匹克不能解决需要超过 5 小时时间的问题。不管我教了多少,我从来没有遇到过一个在奥赛中取得成功,同时又能解决复杂科学问题的人。他们已经习惯了,你可以写一些刚刚好的代码,几乎100% 的普通程序员都写不出更高效的代码,这就足够了。但是不,在科学计算中,有些任务需要几个月的艰苦工作才能完成,比如“写 - 擦除 - 再写”,这个循环可以持续数十次迭代,你必须应用那些不需要的技术奥林匹克运动会。他们不知道该怎么做。而且,可怕的是,他们不能强迫自己从游戏中重新学习艰苦的工作。

    第三:奥赛参赛者无法编写称职的工业代码。他们可以被教导这一点,但并不总是奏效。是的,他们的代码在效率方面非常好,他们觉得代码是他们身体的一部分,并且知道它将如何工作。他们中的许多人甚至没有在代码中犯错——它立即启动并正常工作(13 年前我就是这种情况,我在“记事本”(没有加号)中编写了家庭锻炼的代码,它立即编译并工作没有错误,你甚至可以不检查,但这个技能是不需要的,很快就会丢失)。但是有一个问题:这段代码对其他人来说是无法理解的,它的结构不是很容易理解,以便将代码的一部分替换为另一部分,通常无法维护,只能删除再写一次。

    第四:从第二点和第三点得出一个重要的细节——在奥林匹克竞赛的同时,你需要解决具有实际意义的实际问题。这些可以是游戏(根据游戏开发规则是强制性的,不是自制的),可以是科学计算(必须根据您工作的科学实验室的规则),可以是工业任务(根据 ALL工业代码和软件开发规则)。只有这样,你才不会单方面发展,也不会在职业生涯中受苦。

    第五。不要陷入恶魔主义,不要试图羞辱没有通过奥赛的兄弟。他们永远不会编写任何 Ford-Fulkerson 算法以使其快速正确地运行,他们的头脑中没有 70-100 种算法可以在几分钟内快速输入,他们甚至没有听说过最大流量是多少,并且你知道 15 种搜索算法。这导致一种崇高和重要的感觉。事实上,你必须明白一个主要的事情:在现实生活中,如果你不知道如何解决实际问题,你就是无用的垃圾。例如,如果您想羞辱不知道什么是动态编程的人,请记住这一点。

    第六。你作为一名奥林匹克运动员的发展必须是不断的,你不能停止。一定要参加奥林匹克程序员的夏令营,现在有很多,没有夏令营的时候,每天解决不同服务器的问题。在我们这个时代,acm.timus.ru 和 acm.sgu.ru 很流行,现在我什至不知道它们是否有效,但现在有很多其他选择:topcoder、codeforces (google)。没有费用,你的训练会很弱。无需对服务器进行日常培训(即使每天至少半小时) - 也是如此。

    第七。一旦你意识到你已经达到了饱和点,在奥赛中的进一步增长只会导致速度和比赛技巧的发展,并且你已经了解了所有算法的经典基础,尽快离开那里。因为从这一刻开始,你作为一个实际的人开始退化。立即切换到实际工作,学习您在奥林匹克学生时无法学习的编程标准并承担实际任务。如果您忽略了并行执行此操作的建议,那么您将不得不重新培训几年。

    第八。游戏以其竞争精神吸引您,奥林匹克运动会充满自豪感,并给您一种意义和特殊感。请记住,这是一种幻觉,一种消遣。这是一所学习如何感受代码和计算机、学习算法的好学校,但其他一切(奖品、名额、胜负、年轻女孩的观点)都是胡说八道。不要爱上她,你以后会很尴尬的。

    无论如何,祝你好运,常识与你同在:)

    • 22
  2. Максим Бончев
    2020-10-30T13:47:20Z2020-10-30T13:47:20Z

    这个问题被问到关于奥林匹克编程的发展,答案是关于它有多么无用,等等......我将回答这个话题。首先,你需要看水平。就个人而言,我一开始就在这个网站上与团队一起训练:https ://acmp.ru/ 。有很多简单的任务,你可以慢慢增加复杂性。有些任务可以在 YouTube 和 Internet 上找到。还要学习算法!在同一个站点上有训练算法,还有一个很好的算法站点:http ://e-maxx.ru/algo/ 。有图表,有字符串,有组合,还有你内心想要的一切。你可以在这里参加比赛:https ://codeforces.com/problemset. 以下是与奥林匹克运动会最相似的任务。首先,您可以在档案中找到最简单的复杂性。当您升级时,您可以尝试参加比赛。总的来说,Olympiad 编程有点像专业编程,但它会给你一个很好的算法基础和知识。当我们去参加奥运会时,总是有机会结识新朋友,而且很多 IT 公司都提供在家工作的机会。因此,这绝对是一种不会受到伤害的体验。所以不要听任何人的话,做你喜欢做的事))

    • 3
  3. Sheridan
    2020-10-30T07:23:07Z2020-10-30T07:23:07Z

    体育奥林匹克将帮助您成为一名运动员。数学奥林匹克将帮助你成为一名数学家。奥林匹克编程——不会帮助你成为一名程序员。爱好是的。作为书籍/游戏的替代品 - 是的。作为心灵的锻炼 - 是的。作为学习编程 - 不。代码的方法太不同了。奥运会和生产的目标相差太大。

    因此,如果你想开发,我建议你参与 github、gitlab、bitbucket、sourceforge 等开放项目。通过这种方式,您将帮助社区,并获得团队合作的经验,并获得参与实际项目的经验。此外,如果雇主要求提供代码示例,他们会向他们展示一些东西。

    • 2
  4. Lex Marchenko
    2020-10-30T09:49:09Z2020-10-30T09:49:09Z

    恕我直言

    如果你写作并想继续积极写作,那么我能给你的最好的建议
    以及尽可能多地促进你的发展(纯粹是我的观点)就是写游戏。

    从具有某种游戏逻辑的轻型控制台游戏开始,
    然后开始研究图形库,这些库可以帮助
    您逐渐更好地理解如何不仅可以使用
    Windows、Linux 等下的控制台应用程序,还可以使用你个人会更愉快地看。
    或者,从蛇、井字游戏、网球等开始。

    就我个人而言,我是从SFML开始的,但也有很多选择,谷歌会帮你选择。

    在这个过程中,如何更正确地编写你正在做的事情很可能会变得更有趣
    ,然后就有可能更深入地挖掘模式。有很多书,有适合每个人的东西。

    除此之外,您可以训练算法的技能,但您不应该尝试学习每一项,
    因为。这样做几乎没有什么好处,而且大部分内容要么在您寻找解决问题的好方法时在实践中学习,要么根本不需要它,因为在大多数情况下您必须使用 ready - 制造的解决方案。

    最主要的是不要在没有实践的情况下深入研究这些主题,因为。编程中的原始理论给出了非常小的输出,而如果没有实践,这一切很快就会被遗忘。

    培训班

    市场上的选择非常多,但总的来说,您可以观看 Yandex 同一Courser课程 的免费讲座,有很多东西要学。 Stepik
    上关于多线程/套接字的课程对我来说似乎有用且有趣,在课程 结束后的某个地方又是免费的并且具有相当不错的任务水平。有用 如果你在大学的第一年,那么你已经可以在某种程度上开始发展的技能,对你来说非常有用,就像对程序员一样,阅读别人的代码。 20-30%




    你可以简单地从帮助你的同学开始他的实验室开始,但由于某种原因这不起作用。试图理解他的代码(如果不是每个人都可以复制粘贴的话),你会逐渐地,但学会使用别人的代码。因为 在这个职业中,你经常不得不经常使用别人的代码,那么这样的技能将大大简化你的第一个和后续的代码。
    而且,如果出现问题,千万不要偷懒去调试,而且还不清楚到底是什么坏了,首先尝试研究(如果你还没有研究过),然后运用你的调试技巧,找到问题所在程序中的邪恶根源。


    附言
    有点混乱,很可能我还会更正和补充,但总的来说,我祝你努力成功。

    • 2
  5. Qui-Gon Jinn
    2020-10-30T05:22:48Z2020-10-30T05:22:48Z

    我最喜欢的有编程任务的网站,你可以很好地提高你的水平,最重要的是,看到进步。

    通过定期解决这些问题,您不仅可以为奥林匹克做准备,而且在您的学习和未来的工作中都会有很多东西对您有用。

    https://www.codewars.com/

    另一个很酷的时刻,根据您的信息,该网站将找到与您在同一所大学学习的其他用户。你可以找到新朋友。

    祝你好运!

    • 1

相关问题

  • C++ 和循环依赖

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    根据浏览器窗口的大小调整背景图案的大小

    • 2 个回答
  • Marko Smith

    理解for循环的执行逻辑

    • 1 个回答
  • Marko Smith

    复制动态数组时出错(C++)

    • 1 个回答
  • Marko Smith

    Or and If,elif,else 构造[重复]

    • 1 个回答
  • Marko Smith

    如何构建支持 x64 的 APK

    • 1 个回答
  • Marko Smith

    如何使按钮的输入宽度?

    • 2 个回答
  • Marko Smith

    如何显示对象变量的名称?

    • 3 个回答
  • Marko Smith

    如何循环一个函数?

    • 1 个回答
  • Marko Smith

    LOWORD 宏有什么作用?

    • 2 个回答
  • Marko Smith

    从字符串的开头删除直到并包括一个字符

    • 2 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5