大家好,欢迎来到算法入门指南,如果你和我一样是一名正在学习或者准备学习计算机传统算法,眼神清澈的学生和朋友,正存在诸如:
(1)不知道选择哪种计算机语言入坑?
(2)苦恼学习算法需要掌握哪些基础知识,哪里学习这些知识?
(3)找不到好评如潮或者适合自己的算法刷题平台?
(4)想参加算法竞赛进一步提高自己的算法水平却不知道有些什么比赛可以参加?
那么,相信这篇文章可以给你带来很大的收获,助你扬帆起航,拨开云雾,一路高歌,冲击算法之路,甚至获得强者的发型。(作者亦是小白,如果有讲述不得当的地方,还请诸君指出,谅解)
(1)不知道选择哪种计算机语言入坑?
关于这个问题,首先我要告诉各位刚刚入坑同学,那就是学习算法的过程思想才是最重要的,语言并不重要。所以,如果你已经开始了某种语言的学习,那就大胆选择它进入算法的时间吧!如果你有其他需求,或者你从未开始语言的学习,你可以继续考虑和分析:
①从语言的简单程度上看,你可以使用Python学习算法。
②从算法竞赛的普适性上来看,C++或许是最合适的语言。
③从未来就业的角度上来看,如果你想走Java开发,C++开发工程师,go语言开发的路线,那么你可以选择对应的语言。
④如果你想走人工智能的路线,学习时间充裕可以选择学习C++和Python,并使用C++进行算法的学习,学习时间短可以考虑从Python开始。
(2)苦恼学习算法需要掌握哪些基础知识,哪里学习这些知识?
在选择完学习算法的语言之后,在正式学习算法之前,首先要掌握这门语言的基础语法知识,这里我给大家推荐一个学习网站:菜鸟教程文档。
通过这个文档,大家可以方便的查看和学习语言对应的基础语法知识:菜鸟教程
注:最上面一列可以切换语言。
此外,如果想结合视频进行语言的学习,大家也可以考虑黑马程序员的学习视频:B站黑马程序员主页
不想在语言上花太多功夫的可以考虑学习Python:三小时快速入门Python
然后,当我们完成了一门语言的基础语法学习,就可以正式学习算法与数据结构了!
小白一定要注意,算法和数据结构是不分家的,学习算法,需要使用到各种各样的数据结构,而学习数据结构,则需要算法作支撑。相信大家在学习算法与数据结构的过程中可以体会到学习算法的快乐。
推荐的课程如下:
Python算法与数据结构:清华博士大佬带你学习算法+数据结构
C++算法与数据结构:浙江大学数据结构
Java算法与数据结构:尚硅谷数据结构与算法
(3)找不到好评如潮或者适合自己的算法刷题平台?
① 力扣链接:力扣
首先,给大家推荐一个程序员最著名的算法刷题平台,那就是力扣平台!在这里,你不仅可以学习大量的算法题,磨炼自己的算法解题能力,拿下算法面试,还能通过参与力扣每个星期举办的比赛磨炼自己的算法刷题能力,算法竞赛能力,是非常适合我们程序员战斗的地方。
②洛谷链接:洛谷
针对于主要为算法竞赛作准备的同学,则可以考虑另一个声名远扬的算法竞赛刷题平台:洛谷。
③稀土掘金(AI刷题):稀土掘金AI刷题
稀土掘金是技术分享和知识学习平台,上面有很多丰富的资源可以学习,其中的AI刷题功能可以结合AI智能助手一起使用,大大提高算法题的学习和解题效率。
桀桀桀,还在等待什么,赶紧来一场酣畅淋漓的刷题吧!或者大家有什么推荐的平台,也可以评论留言或者私信作者告诉大家。
(4)想参加算法竞赛进一步提高自己的算法水平却不知道有些什么比赛可以参加?
你是否常常因为算法实力太强却无处施展而彻夜难眠?
你是否因为想通过算法竞赛一鸣惊人却因为不知道有什么算法竞赛而十分苦恼?
你是否想和志同道合的伙伴一起击键?
你是一名小白,当你经过了前面三关的历练,你意识到,你的双手已经饥渴难耐了,你急需参加一个有含金量的官方竞赛来证明自己!!!
OH,我的老天爷,快让我来告诉你有哪些富有含金量又有挑战的竞赛吧!
如果你是一名本科生,且立志成为竞赛大佬,参加最有含金量的编程竞赛,与志同道合的小伙伴一起击键,那么请看这里:
①ACM-ICPC
ACM国际大学生程序设计竞赛(英文全称:International Collegiate Programming Contest,简称ICPC)是由美国计算机协会(ACM)主办的年度竞赛,旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力。
②CCPC
中国大学生程序设计竞赛(China Collegiate Programming Contest, CCPC)是由教育部高等学校计算机类专业教学指导委员会主办的面向全国高校大学生的年度学科竞赛 ,旨在激发学生学习计算机领域专业知识与技能的兴趣,鼓励学生主动灵活地运用计算机知识和技能解决实际问题,有效提升算法设计、逻辑推理、数学建模、编程实现和计算机系统能力,培养团队合作意识、挑战精神和创新能力。
(欢迎补充)
如果你们学校ACM团队并不出色甚至没有,或者你已经不是本科生,或者你想简单一点保研等原因,但你还想参加具有一定含金量的单人编程大赛,那么可以考虑:
①蓝桥杯
蓝桥杯全国软件和信息技术专业人才大赛是由中华人民共和国工业和信息化部人才交流中心主办,蓝桥科技教育有限公司承办的计算机类学科竞赛。在部分学校是保研A类竞赛哦~(注:据说省赛可以暴力出奇迹,对算法的要求不高,但近年来有所提高,且软件类的国赛才比较有含金量)
②百度之星大赛(有三场)
百度之星,又名Astar,是由全球最大的中文搜索引擎公司--百度面向中国高校学生和编程爱好者所举办的高水平的程序设计大赛,自2005年起已成功举办20 届,已成为校园程序高手交流切磋的优秀竞赛平台。迄今为止,百度之星程序设计大赛累计参赛选手已达数十万名,被视为国内程序员的“黄埔军校”和“造星工场”。
随着人工智能时代的加速到来,坚持以技术为驱动力的百度公司也由互联网搜索公司转型为人工智能科技企业。秉承着“用科技让复杂的世界更简单”的全新公司使命。2017年,百度之星品牌升级,包含“程序设计大赛”和“开发者大赛”两大赛事,为参赛选手提供更大的创造空间。
2023年3月22日,百度之星程序设计大赛跻身中国高等教育学会高校竞赛评估与管理体系研究专家工作组发布的《2023全国普通高校大学生竞赛分析报告》竞赛目录。
③马蹄杯(职教赛道火热)
大赛以产业真正需要的人才地图为赛题设计的底层逻辑,学术界专家和企业界专家联合参与命题,优秀选手可入选企业实习,进一步深化“产教融合”的同时,提升学生的实践创新能力以及职业发展和规划能力。大赛紧密衔接设计岗位和编程工作的现实需求,为青年学生提供展示个人计算机和信息技术应用能力的舞台,激发学生学习计算机知识、提升学生信息技术应用能力,培养学生计算思维、数字思维,增强学生升学、就业竞争力。
参赛对象:各类职业教育类型院校(含职教本科、高职高专、中职院校)全日制在籍学生,每位学生可报一名指导老师,指导老师不参与竞赛。同时开设地方本科院校赛道。该赛道晋级决赛名额不超过整体名额的20%。
正在进行中的有一定含金量的比赛,且无论你是本科生、研究生,还是已经毕业的从业人员都可以参加,快来和博主一起参加吧!(比赛线下举行,并由CCF中国计算机学会举办哦,免费参加,而且中午还送面包~)
CCAC
CCF算法能力大赛(China Algorithm Capability Competition,简称CACC),是一项面向在校大学生和从业工程师的算法竞赛,由中国计算机学会(CCF)创建,主要考察基础算法、专业算法、工程算法,旨在引导参赛选手提升编程、算法设计、建模及应用算法解决实际问题的能力。由中国计算机学会主办的“首届CCF算法能力大赛(CACC)”定于2024年12月-2025年4月举办。
需要注意的是,竞赛的第五道题可能会涉及人工智能,机器学习,密码学等领域的知识,与传统的算法竞赛略有差别~
那么本次的入门指导就到此为止了,如果大家还有什么不懂的可以发在评论区,最后的最后,如果你觉得有用的话,小萌新在这里求一波点赞收藏关注啦,谢谢~
(近期还有什么值得参加的算法竞赛呢?欢迎大家在评论区补充)