本篇内容分享主要分为三部分:推荐学习路线 + 本人真实学习经历&心得 + 职业生涯推荐
由于内容主要为口语化个人总结, 所以主观性会比较强, 见解有差异也欢迎大家留下评论交流, 勿喷
推荐学习路线(适用于非ACMer)
掌握一门编程语言(Java/C) - 学习基础数据结构+基础算法 - 适当挑战出现频率较高且难的算法
基础数据结构推荐 | List \ Set(hashSet+treeSet) \ Map \ Queue (后续会分享笔记) |
基础算法推荐 | 枚举 \ 模拟 \ 递归 \ 前缀和+差分 \ 并查集 \ 离散化 \ 双指针 \ 二分 |
还有一些竞赛必备常用的 | 时间复杂度(必学) \ 进制转换 \ 位运算 |
频率较高且有一定难度的算法推荐 | 字符串哈希 \ Floyd \ bfs+dfs \ 排列组合类题目 |
本人真实学习经历&心得
大一阶段(摸着石头过河,瞎摸索)
我是从大一开学那时候开始接触的代码, 一开始只是大概知道个学习需要刷题去巩固知识, 多敲能熟代码, 但迟迟没有开始真正的学习编程语言, 幸运的是睡我上床的舍友Z从暑假就开始学C++了, 开学已经领先了其他人一大截, 在他的分享带动下, 我们宿舍大部分也开始了学C, 并在洛谷上面刷一点题。
刚接触代码并开始学算法, 说真的确实痛苦, 尤其是对自己有一定要求的, 我大一上学期学的时间还是很少的, 开学一个多月就遇上了广州疫情爆发, 然后就回到家开始摆, 那时候还没有多少要比赛拿奖的想法, 所以直到下学期2月份左右, 回到学校不久决定冲刺一下蓝桥杯, 看看自己什么实力。
也是经舍友Z的分享, 报了Acwing的算法基础课和蓝桥冲刺课, 一直到省赛前都是疯狂学的状态, 也是真正开始学算法, 甚至是动态规划和搜索图论这些难度比较高的算法, 想着自己短时间内也许可以啃下来, 结果一到省考就发现学习的大方向完全跑偏了, 勉强拿下了个省三(真的菜)
教训: 不能光顾着建空中楼阁,打好地基更重要
Acwing部分截图
当时就意识到自己没有重视基础数据结构和基础算法是多愚蠢的行为, 做题的时候很多都是有思路的, 结果卡在了不会用STL容器和字符串处理, 白白浪费了好多时间, 拿下省三还是多亏了一道前缀和, 然后就没有然后了。
迷茫期: 经过三年疫情的封闭, 难得那段时间开始好转了, 我便想着先好好感受下大学生活, 多尝试和社会接轨, 便有了轻创业的念头, 也是折腾了小半个学期, 就深刻体会到了创业的不容易, 以及面对风险而无力承担的忧惧(普通家庭的孩子最好还是先踏踏实实赚钱, 先踏实赚钱, 积累一定的资源和见识再去考虑有一定风险性的高回报)
也是那段时间的折腾, 我的数电要挂了, 大二回来还要补考(真的难受, 拖累影响了后面的计划)
大二阶段(吸取教训,重新起步)
上学期回来就是先把精力重心放在了数电补考和新学期的科目上面, 这一年要考的科目也是最多的, 剩余课后时间多是花在了黑马程序员上面, 不过那里讲的Java更多是面向对象编程的, 即使是学到了异步那里, 面对基础的题目仍然是下不了手, 傻傻的C语言和Java分不清, 太混了。
1月份寒假开始就决定走前端方向了, 那个寒假就学了三件套和鸿蒙开发, 不过想到了以后要进大厂的话, 算法基础还是少不了, 有算法竞赛奖项的话更是可以让我的竞争力上一个档次。
大概是二月初, 决定开始all in蓝桥杯, 有了去年的经验教训, 这次我不再把学习重点平台放在Acwing(主要是y总主攻的C++, 包括题目讲解都是用的C++, Java选手学起来挺费劲的), 经过一段时间的摸索后发现了蓝桥云课, 那里有以Java为主要语言的课程, 价格也还行。
蓝桥杯省赛视频
2月初~省赛(4.13) : 这段时间我没怎么听过学校的课, 去了教室听不了课就在刷题, 回到宿舍就看蓝桥的视频, 有时候蓝桥视频里面部分算法没有听明白, 就回到acwing找下视频和题解, 配合ai教程学习, 效率还算蛮高的。这里还是想夸一下蓝桥云课讲Java的那个老师, 基础数据结构,基础算法部分讲得还是很好的, 非常适合Java刷题入门, 我可以在短时间内速通Java, 有很多程度上是因为这个课程吧(良心推荐, 无广)
刷题部分:刷的题目其实没有很多, 主要刷的是往年真题(蓝桥杯历届真题), 然后就是在蓝桥官网按知识点分类做些题目(蓝桥题库)。
主用软件:eclipse, 这也是蓝桥Java组的官方指定软件, 用来刷题还是很舒服的, 相比idea, 我更推荐eclipse, 单词补充快捷键是alt+/, 有些比较长的单词容易记不住, 用这个快捷键就会流畅很多。
想要比赛当中发挥好一点, 那必然少不了在真实比赛中锻炼一下, 包括但不限于:
- 在比赛当中没有思路时应该怎么样去分析题目
- 在紧张刺激的环境中, 如何按自己冷静下来
- 赛前适合记一下哪些模板
毕竟人各有异, 所以这些是需要个人在不断思考+反思中 找到最适合自己的方式, 总之, "思考"也很重要!!
也是得要感谢舍友Z, 我也跟着得到了一个去深圳大学参加线下校赛的机会, 刚好可以检验一下前段时间allin的成效。作为外宾, 和一群专业的ACMer 在一个组别比赛, 虽然没能拿到奖项, 但看成绩排名:AC5题, 排名46, 总参赛人数300+好像。在acm赛制下拿到这个成绩很满意了
舍友Z也是AC5题,不过他的解题时间比我少, 所以他排名靠前一点, 毕竟舍友Z大一就拿下了C++组国二, 能和他的成绩接近真的很超乎意料,也正是这场线下赛给了我很大的信心。所以同学们有机会的话一定要多去尝试, 努力了总会有收获的。
省赛(4.13)~国赛(6.1) : 有了两次线下赛的经验, 省赛当天就比较从容, 提前几分钟到达考场
过程: 调好eclipse, 开考后先大致浏览一下所有题目 不用着急开始做, 然后在草稿纸上写下感觉能拿下的题目序号, 题目顺序不代表题目难度梯度, 这个有点看运气, 有时候压轴题会是自己擅长的算法, 也是可以很轻松拿下的。所以不能死磕在某道题目, 特别是填空题, 五分钟内没有思路就要跳了, 两道填空题尽量不要花超过30分钟, 因为有时候填空题是需要一定技巧的, 这里推荐一个视频(填空题技巧), 编程大题也是先清楚各题目的大致考察知识点, 根据掌握程度来排优先级, 先做把握高的, 毕竟蓝桥是oi赛制, 不一定要ac, 能解出部分答案也是有分的。
省赛结束之后也是没有继续刷题了, 继续去学前端, 好像是一周多时间就出了成绩, 如下图
收获: 结果也是蛮惊喜的, 没想到排名可以这么靠前(广东省第12名, 一等奖人数240+), 这次也是运气比较好, 碰到的题没有很难, 20分压轴题刚好会做 甚至比前面的题目还要轻松地拿下了, 所以排名比较靠前。 毕竟打算走的前端方向嘛, 所以对拿奖要求并没有很高, 所以不打算冲国一了, 把更多时间放在了前端技术栈上面, 走后端的同学可以考虑冲下国一。
虽然中间一个月没有怎么刷题, 临近国赛时还是要回味一下学过的知识点, 简单刷几题保持手感, 不至于考试时手生疏了。最后也是顺利拿下了国二
职业生涯推荐
学计算机遇到迷茫期其实很正常, 主要还是见识有限, 比如 未来可以就业的方向有哪些\各就业方向的技术栈有哪些\该如何去提高个人的竞争力等等
想要打破迷茫期, 个人认为首要的就是拓展自己的认知空间, 多去搜索编程学习路线相关的内容, 向已经做出成绩的学长学姐求教咨询, 总结就是多学多问多思考, 要有自己的一套认知, 不人云亦云。
毕竟最近大环境不太好, 所以有很多网络上的声音会比较消极, 容易误导新人。
这里分享下我个人的认识吧,也希望给读者或者关注我的同学们带来好运:
拿最热门的就业岗位来举例: 算法 后端 前端 测试
这几个方向适合的群体不同
如算法, 由于工资高的缘故, 大量985硕博高材生涌入了这个赛道, 并且难度大, 所以普通的本科生甚至是211, 都很难在这个方向走下去, 除非个人非常有天赋, 在acm\icpc这些高含金量的竞赛中拿到好名次 or 发表了有一定影响力的期刊或论文。普通的大学生几乎是没有机会在这个方向找到合适工作的
后端, 这个方向的工资也算是蛮高的, 在互联网行业里面, 卷得最厉害的也是这个方向, Java选手占大头, 貌似我们的大学里面, 很多都是首选后端 Java, 所以才有了"一个岗位放出,短时间内收到上千份简历"的说法, 换作我是hr, 我能做的也许只是从学历开始筛。普通双非的简历很难到hr面前, 除非你的简历写得非常好, 并且有项目经历+实习经历。据我所知, 我们学校的后端学长能拿到大厂面试的机会, 确实很少。
前端, 虽然前端的工资没有后端高, 但其实差不了多少, 同级别也许少个一两千这样子。毕竟市面上流传的地位里面, 前端还是要比后端低一点的, 入行门槛也没有那么高, 所以很多985 211的同学不会考虑这个方向。对于"前端已死"这个说法, 其实偏差还是很大的吧, 前端也只是入行门槛低, 但那只是初级前端, 高级前端还是有一定难度的。真正学到东西的前端选手并不缺大厂实习, 我身边就有蛮多师兄师姐去了大厂, 同26届的同学这个月也是相继拿到了美团or快手的实习offer, 我观察他们的共同点有: 普通本科 + 扎实的前端技术栈基础 + 有项目经历。这些条件确实已经能够支撑他们在大厂工作了, 稳定地学习积累下去, 在秋招春招拿到好的offer还是很有希望的。相对来说, 普通本科生更要明确自身的定位, 清楚自己能否在这个方向坚持并生存下去, 这是理智且非常关键的。
测试, 这个方向的门槛要更低, 可替代性也是更高的, 竞争压力相对来说也没有其他岗位那么大, 适合基础不太好或者已经大三大四还没确定方向的同学, 冲刺个几个月起码能找到份还算体面的工作。
这里分析一下"前端已死", 也许和幸存者偏差有关吧, 真正找到工作的, 一般是不会在公众场合发表这些消极的言论, 除非是部分人不希望更多后人加入竞争, 打个比方, 100个人里面也许只有30个找到工作, 剩余70人里面可能就有40个人对外宣称前端找不到工作之类的。
所以应届本科生其实不用担心前端找不到工作的问题, 学习的方向选对了, 努力的位置放对了, 自然会找到理想的工作。
这次的分享就到这里啦, 我是Luckyfif, 后续会继续分享自己的算法笔记 以及 前端相关的内容, 欢迎大家点个关注评论, 一起交流进步。