算法竞赛/蓝桥杯/ACM 的正确入门方式(适合小白)

前言

  • 很多学校都把C作为第一门教学语言, 往往一学就是大半年, 导致很多同学要么跟着老师的进度得过且过浪费时间, 要么进度飞快学完之后不知所措, 下面我将结合我个人自己的经历, 以及摸着石头过河的路径, 给大家说说在这一时间段应该做点什么取补上自己心灵的空虚~

个人相关: 双非一本大二渣渣ACMer, 略懂数据结构算法, 简单开发过几个小项目

面向读者: 刚刚学完某一门语言/觉得学校进度太慢无聊的大一新生, 还不清楚自己未来的方向, 只是听说过一些名词.

方向

首先和大家介绍一下国内计算机专业(包括软件工程等)的大学发展方向, 我个人总结的

工程开发方向

  • 工程开发方向就说大学的大部分时间都献给了做项目, 一般本科生的话都是Web开发, 小程序, 小游戏之类的… 一般各个学校都会有自己的创业中心, 实验室, 老师也都会有自己的项目要找学生做, 有的学校还有校企合作, 所以只有足够优秀, 项目是不难找到的.
    这个方向的话也自然是需要投入大量的时间, 据我所知, 我身边的一些同学常年在老师实验室里做项目, 寒暑假都很少回家.

    • 优点: 虽然大部分只是免费给老师打工, 但能够实实在在的提升项目经验都是真实的. 毕业之后也不乏有着凭借自己的项目经验进入大厂的, 但大部分比较困难, 因为大厂考验的不只是项目经验
    • 缺点: 主要就是因为大多数时间献给了项目, 导致一些基础理论课程的匮乏, 比如算法和数据结构, 操作系统, 组成原理这些. 虽然各种框架语言IDE玩的很6, 但是学生期间往往做出的项目并算不上多么优秀. 可能工作几年后回头看看连个Demo都算不上, 大家合理取舍

算法竞赛方向

  • 算法竞赛主要值得就是ACM了, 这项被誉为全球最顶尖的智力奥林匹克大赛, 混合了编程语言+数据结构算法+高阶数据结构+数论+组合数学+概率论等等, 完全值得一位优秀的学生花上两年三年的时间去投入到这个竞赛中. 一般每个学校都会有自己的集训队, 传说北大清华还有ACM班, 更有甚者休学一年只为打ACM
    因为比赛的极高难度, 所以奖牌的质量不必多说, 可以说只要能够拿到区域赛以上的牌子, 进入BAT TMD这样的大厂没有问题. 而如果能拿到final或者区域赛的金牌, 进入FLAG往往也是问题不大的.
    • 优点: 对于普通本科生, 尤其是弱校本科生的同学来说, 参加ACM竞赛拿牌子可以说是进入大厂的最保险, 性价比最高的路径了. 而竞赛学习中学到的算法知识虽然在今后工作中没有实际的用途, 但用大学四年时间把自己的内功练好, 今后再去学十八般武艺可以说是信手捏来. 而且对新的技术, 比如AI, 大数据感兴趣的同学也可以借此机会扎好基本功. 比赛奖牌对于考研也同样有着极大含金量.
    • 缺点就是略有风险, 有可能拿不到奖牌, 需要投入的时间一点不比做项目少, 而且需要一定智力

考研出国方向

  • 这个方向我不多说, 百度有成堆的教程, 刷好GPA, 按时学习完成任务就好. 但我个人建议先试试前两个方向, 说不定复试的适合通过率更高, 毕竟硕士导师也都不喜欢只会刷题的书呆子

其实各个方向直接并不冲突, 如果才华足够的话完全可以兼顾着走一圈, 但由于三四年时间实在太短, 精力有限, 我建议能在一个方向上做到优秀, 然后也经历过另一个方向, 你就是一位非常优秀的计算机专业学生了. (因为大部分同学走了第四个方向 - 混吃等死方向)

总结

  • 总而言之, 我个人建议大家无论是否走竞赛这条路, 都要趁着大学, 尤其是大一的空挡把自己的内功打好, 也就是算法和数据结构. 无论你是做项目, 考研还是竞赛, 这个时候学好算法数据结构都是一个非常正确的选择.
    因为程序开发需要内功, 企业面试会有算法题. 考研60%的专业课就考数据结构, 于情于理, 你没有理由不学, 不学好数据结构和算法
    但是我建议学算法和数据结构不要一味死盯着书本学, 要学会合理利用OJ(在线评测系统)带来的反馈感和视频课

推荐路径

  • 这是我个人推荐的几本书
    https://blog.csdn.net/a1097304791/article/details/82974238

  • 视频课的话我推荐中国大学MOOC上郭炜老师的视频, 有即时的习题和作业, 按时完成
    https://www.icourse163.org/learn/PKU-1001894005?tid=1003186011#/learn/announce
    还有浙江大学的这个数据结构的视频
    https://www.icourse163.org/learn/ZJU-93001?tid=1003013004#/learn/announce

  • 同时推荐几个比较合适的OJ, 选一个比较舒服的刷着来就行了, 都有详细的分类和难度梯度, 不会的知识模块要先学后做题
    https://leetcode.com/
    https://vjudge.net/
    https://www.jisuanke.com/
    https://www.51nod.com/
    http://nyoj.top/problemset

  • 比赛和考试, 有了学习, 自然要去考试拿些证书去给自己日后的简历加法呀
    ACM - ICPC
    ACM - CCPC
    蓝桥杯 (平民难度, 证书可拿offer/保研)
    PAT (平民难度, 考到一定分数可以直接免初试)
    天梯赛

你可能感兴趣的:(谏言)