l1ll5 发布于四月 30 分享 发布于四月 30 (已修改) 我有近十年的算法竞赛经历,高中成绩一般但也在 NOI 获过奖,在大学的竞赛中获得过国内比赛的前几名,参加过世界总决赛。自认为是坛里对 cp 是很有发言权的。 首先,需要有一个 overview,懒得展开了,直接说结论: 高中阶段如果参加竞赛,几乎一定是应该以升学为目的的。如果是纯兴趣性质的了解,高中阶段用打游戏的态度来学编程就好了。在这种情况学自己感觉有趣的东西就行,不用功利。 1. 如果你的目标不是以后从事 cs 行业,那好好高考。 2. 如果你志在 cs,但不能做到学有余力(至少有高中少上半年然后可以裸分上个吉大这种学校的水平吧),那同样好好高考。 3. 否则,可以尝试以为未来提供帮助为目的学习编程。这种情况下,要学习的就是算法竞赛。考虑就业的视角是没有意义的。 大概回答一下问题: 我现在值得去尝试学习C++吗? 对于算法竞赛,语言只是解题的工具。在绝大多数选手手中,cpp 都是 c+stl 而已。语言特性不是必须的,即使有意识的去学习现代 cpp,也只能应用到极少的一部分。 所以,如果你选择算法竞赛,不需要考虑 why cpp 这个问题。未来切换主要使用语言也只需要很小的学习成本而已。 稍微说多一句,即使对于实际工程而言,语言也只是学习成本,不是难以跨越的门槛。 我要怎么学C++? 你学的 & 要学的不是 c++,是算法竞赛。所以你要学的是各种数据结构和算法,是并查集,树状数组,线段树,平衡树... 学习路径:熟练基础语法 —— 学习基础算法/数据结构 —— 奖项驱动,根据成绩决定是停止学习还是继续学习更复杂的算法和数据结构 目前适应与我这个阶段的学习资料有什么? 我个人整个学习过程是没读过任何 cp 相关的书籍的。OJ(openjudge)刷题 + 不会的东西上网搜别人写的博客就足够。但这件事很小马过河,我不多评价。 我只说一点:一定要注意学习资料的质量。找有丰富经验的人帮忙鉴别是最好的,自己鉴别的话,有一个很简单的方法: 如果这份材料格式美观,一般质量不会太差。 我目前获取到的资源充足吗?课程、书籍、文档就足矣,还是需要再加入一些论坛、贴吧?还有什么网站、社区是我要接触、加入的? 算法竞赛在高中五大学科竞赛中,最特别的一点就在于有丰富的自学资源 + 很多选手都是自学出身的。 网站和社群的话: 1. 洛谷:最大的中文社群,质量在平均线以上但讨论氛围很差。社群可以接触但不要投入太多,学习是第一要务。 2. codeforces:全球最大社群,需要一点语言能力。题目和比赛质量高,各种难度梯度都有。 3. atcoder:日本人的 OJ,功能很简洁,没有社群功能。题目很锻炼思维,各种难度梯度都有。 最后一点就是劝进/劝退: 你可以说一下你在哪个省,算法竞赛地区发展差异极大。如果在弱省的话,是有付出较小学习成本获得一些性价比很高的奖项的机会的。强省就别想了。 四月 30,由l1ll5修改 链接到点评
l1ll5 发布于五月 5 分享 发布于五月 5 于 2024/5/1 于 AM12点41分,Prion说道: emm…… 直接就没有计算机相关产业 在我们这计算机专业是没法在企业找到工作的 和产业发展没关系,和教育水平有关系。强省和弱省的区别是有多少学校形成了从初中/小学开始培养竞赛选手的产业链条。 算法竞赛和工业界是两回事。算法竞赛水平对在工业界找工作有帮助,但也只是间接关系。 链接到点评
推荐贴