计算机学习路线及个人心得大家好,我是 Ray。今天想和大家聊聊计算机专业,包括学习路线以及我个人的心得。本人 bg 民办本准大三,目前在一家小厂实习,base 深圳做后端开发。因为我还没完整地经历大学四年,所以对于大三、大四应该怎么去学习,我没有一个绝对正确的看法。我只能根据自己的经历、身边同学的状态,以及对就业和考研的观察,谈谈我目前的想法。也因为学历问题,文中有些绝对性的话语只是针对我个人而言,还请各位多见谅。到现在我越来越觉得,大学不存在一条绝对正确的学习路线。有人大一开始打竞赛,有人大二才接触开发;有人很早就进入实验室,有人到了大三才确定方向;有人选择就业,有人选择考研。真正重要的,并不是你一定要去复刻某个优秀学长的路,而是你有没有找到一条适合自己的路线,并且持续推进下去。很多人痛苦,是因为大一就用大四的就业压力折磨自己,大二就拿别人的实习经历审判自己,大三又因为过去两年没有完美规划而否定自己。我也经历过这种状态,每个阶段所面对的问题是不同的,不应该用同一种目标去硬套自己。一、 大一刚进入大学时,你会接触到很多事情:学生会、社团、班委、比赛、绩点、奖学金、谈恋爱、游戏,以及各种看起来必须参加的活动。大学当然可以丰富多彩,我没有资格决定别人应该怎么度过。我能做的只是根据自身的情况,对那些在计算机这条路上还处于迷茫阶段的人,给出一些建议。社交活动: 如果你的目标是毕业后直接就业,那么学生会、班委和很多比赛活动,是完全没有必要的(比如大创、职规赛……)。这些事情在就业层面的价值极低,却会占用你大量白天没课的时间、晚上和周末的时间,甚至于你的寒暑假。当然,参加与否取决于你,只是我不太推荐。(如果你是92或者学校硬实力强,可以参与,重点是认识人而不是参与比赛)绩点: 如果你准备保研、考研、出国,或者毕业想进央国企(机关或者二级等单位比较看重学校经历),那么绩点非常重要。如果你主要准备大厂、私企就业,绩点不是决定性因素,只要不挂科就行。当然,这里的不挂科意味着你的成绩和你的平时分都不能太低。把更多时间放到技术学习、项目、面试准备上,不要为了一个并不影响目标的高分,牺牲大量可以用于提升专业能力的时间。 大一最重要的是,确定:你能不能静下心下来学习。 确定你能不能接受一个报错卡住自己半天,能不能主动搜索资料,能不能沉下心阅读又臭又长的文档,能不能在学完之后留下笔记,能不能在遇到困难时,不放弃地继续往下推进。只有开始行动,你才会获得反馈。没有行动时,所有选择都只是想象。1. 方向探索如果你对竞赛、实验室或者学校项目没有明显兴趣,那么大一可以用一段时间探索开发方向。从入学开始,我认为一个月左右的时间去集中探索,通常已经足够让你对几个主要方向形成初步认识。你可以去了解不同语言对应的岗位和应用场景,例如: 语言 常见岗位与应用场景 Java 后端开发、企业级应用 C++ 嵌入式、音视频、游戏开发、客户端、后端开发 Go 云原生、基础设施、后端开发 JS / TS 前端开发、全栈开发 Python 数据处理、自动化、人工智能、部分后端场景 你不用一上来就去死记每门语言怎么写,你只需要收集起来:对应语言所做的岗位具体是干什么的,需要纵向深入的技术栈有哪些就行了。选择方向时,需要同时考虑兴趣、岗位数量、学习难度和自身条件。方向确定后,至少坚持一段时间。频繁更换语言和技术栈,会让你一直停留在入门阶段。 每次换方向时都觉得自己学到了新东西,但实际上只是把同一道门槛反复跨了多次,始终没有真正迈过去。比如选择 C++,你可能会面对嵌入式、音视频、Qt、游戏开发、后端等方向,不同方向的岗位数量差距较大,并且存在”生殖隔离“。(如果你是做音视频的,那你的纵向技术不能支撑你去做嵌入式)我接触到的大部分学 C++ 的人,主要选择 Qt、嵌入式或者硬件相关方向。纯 C++ 后端岗位相对少,通常集中在大厂,对基础和算法要求也更高(比如腾讯 wxg、网易雷火……)。这并不是说不能选择 C++,而是选择之前要了解对应的市场。方向没有高低,但存在岗位数量、竞争难度和学习成本的区别。后面我会出两篇关于 C++ 和 Go 的学习路线。当然,最终的方向需要你自己决定。2. 算法竞赛这里单指算法竞赛,比如 ICPC (ACM)、CCPC、蓝桥杯、天梯赛等。其余的,类似于大创赛等,我个人不敢恭维。算法竞赛的好处是能实打实地提高你的算法能力,坏处是门槛较高,个人天赋决定了你的上限,但努力能拉高你的下限。竞赛是个不错的选择,如果你有中大厂梦,算法通常无法完全避免。未来面试中的算法题会不会被 AI 场景题取代我不知道,但至少目前来看,算法依然是很多中大厂筛选候选人的硬性方式之一。自己摸索出的竞赛路线语言基础: 一般我会推荐 C++,因为 STL 库很方便(当然 Python 也可以)。学习基础的语法,比如输入输出,for、while、if,数组,结构体,字符串等(这里大家可以去买课,或者 B 站找。我当时是看英雄从哪出来的知识星球,付费的,纯分享不是广)。这里必须做到:所有代码必须由自己亲手敲一遍,不容商量。刷题: 将基础的语法学完就可以去刷题了。去洛谷,从 B2001 开始,刷大概 150 多道题,大概刷到 B2150 左右吧。这一步是为了让你熟悉,基础语法是怎么解决实际问题的(虽然并不是真的实际生产问题),主要是练习“怎么将文字逻辑转换成代码”的能力。基础数据结构: 比如数组、链表、栈、队列、哈希表、树、图等。这里也必须做到:所有代码必须由自己亲手敲一遍,不容商量。 学完一个模块,可以去力扣或者洛谷刷对应的题目。对于图这种抽象的东西,我个人觉得学习成本过高了,可以适当推迟。STL 库: 比如 vector 、queue、stack、map 等。这一步见仁见智,有的人先学 STL 再学数据结构。但我认为先学数据结构比较好,因为 STL 也是封装好的数据结构,只是调用暴露的底层接口而已,有了数据结构基础,会更好理解 STL。同样,学完一个模块,刷对应的题。核心算法: 比如经典的十大排序,DFS、BFS,贪心,滑动窗口等。这一块大家可以去力扣看灵山茶艾府,这个佬非常 nb,B 站有课,力扣个人题库相辅相成;或者labuladong也是很有实力的佬,题库什么的也很全。这一块我没有什么更高深的见解,因为我涉及得不深,在竞赛方面我属于“痴呆”级别的,只参加过蓝桥杯,混了个三等奖就没继续学了。但以上路线可以当作各位入门算法的路线。因为部分竞赛周期较长(比如 ICPC 从每年 9 月持续到次年 6 月,跨度近一年)。这就导致很多同学刚入学,在缺乏充分训练的情况下,要么无法通过校内选拔进入校队,要么参赛后难以取得理想成绩。如果你想打竞赛,就要做好准备——学习开发的时间或许得到大二下或者大三才能开始。好处是对于面试手撕,你可能会如鱼得水;坏处是算法与实际开发是截然不同的两条路线,大部分算法知识在常规业务开发中应用有限,投入产出比需要你自己权衡。3. 计算机四大件大一也是接触四大件最合适的时候,很多散播焦虑的视频天天在讲四大件。说实话,在日常业务开发中,四大件的底层原理对绝大多数开发者的日常工作影响不大。绝大多数人学习它们,是为了应付面试、考研或期末考试的。通常所说的计算机四大件,包括:数据结构与算法计算机网络操作系统计算机组成原理大一没有必要同时深入学习所有内容。对于刚开始接触开发的学生,可以优先学习数据结构与算法、计算机网络和基本编程知识,操作系统随后,计组最后。数据结构与算法: 在学习时必须要做到代码必须经由你手去敲(这里可以参考我上面写的竞赛路线)。计算机网络: 能够帮助你理解客户端、服务器、HTTP、TCP/IP、端口、DNS、代理和负载均衡等开发中经常出现的概念。它是必学的。操作系统(OS): 权重其实也很高,但可以适当放缓进度。因为在绝大多数实际业务开发中,我们使用的都是已经封装好的库(比如进程、线程、并发锁等),它在日常中更偏向于面试中的八股文。有精力的话,可以去深入了解其源码实现。计算机组成原理(计组): 抽象程度极高,在刚学开发时优先级较低,看个人选择,我不太推荐。4. 大学生活大学当然不应该只有学习。游戏可以玩,社交可以参加,恋爱也可以谈。没有人能够一直保持高强度学习。这里我主要讲谈恋爱……大一是你脱单的,最优时间,往后会越来越难......好的关系能够让两个人都轻松愉快,错误的关系也可能大量消耗时间和精力。所以恋爱并不是重点,关系质量才是重点(关系质量也可以延伸到交友这方面)。如果两个人能够互相支持、尊重彼此的目标,并且在一起之后都变得更稳定,那么这段关系是有价值的。如果一段关系长期让你痛苦、焦虑、内耗,甚至无法正常学习和生活,那么离开,是比勉强维持而言,最佳的决策。二、 大二大二开始,焦虑会变得更加具体。如果大一什么都没有做,和我一样,那么你可能会突然发现,身边的人已经开始向不同方向推进:有人在算法比赛夺得头筹,有人开始做项目,有人刷力扣和背八股,有人在社交平台展示简历,甚至有人在大二上就拿到了实习 Offer。而自己可能还在反复学习基础知识。这时候心理很容易失衡,会觉得自己学不会、找不到实习,甚至觉得自己没有价值。你也可能会产生一些不正常的比较心理:我明明成绩比他好,为什么他能获得荣誉?我明明比他努力,为什么他已经找到实习?为什么别人学得这么快,而我还在原地?这种状态很常见。但别人获得什么,并不会减少你拥有的东西。 你真正能控制的,只有自己今天做了什么,当前方向推进到了什么程度,以及下一步准备干什么。大二应该做的,是找到一个能够持续推进的方向,并且开始形成可以交付的能力。 所谓交付能力,就是你不只是看过课程、记过笔记、听懂概念,而是真的能够通过所学知识完整地完成一个东西。现在 AI 非常给力,你完全可以通过 AI 去辅助实现。你可以在提出需求,与它讨论,从而构建项目。项目可大可小,重要的是你需要知道:需求是什么、结果是什么,逻辑怎么转换、数据如何存储、程序如何运行、出现问题怎么排查,最终如何部署或者展示。确定方向后,需要问自己一个问题:我是否愿意接受这个方向的困难,并且持续走下去?这个过程会很煎熬。你会反复遇到看不懂的代码、无法解决的报错、复杂的环境配置、不熟悉的项目结构,以及大量不知道有什么用的概念。这就是学习的一部分,你无法避免。于我而言,我的学习路线也非常弯曲。具体经历可以看我的博客 raymq.com 的碎碎念(一),里面记录了我这两年的学习过程。1. 准备较早、计划尽早实习的人如果你在大一已经开始学习,并且经过一年时间对开发有了基础认识,那么大二上可以开始准备以下内容:个人项目一份简历刷算法题大二下学期就可以开始在 Boss 等平台投递简历了。投递不代表一定能够马上进入公司,投递本身就是一种最好的市场反馈。 如果简历已读不回,可能是学历、项目描述或简历表达存在问题,也可能是大环境确实太卷了或者不招大二的,无论哪种,投递本身都在帮你缩小问题的范围;如果笔试过不了,说明算法或者基础知识存在问题;如果面试中说不清项目,说明项目理解不够深入。越早接触市场,越早知道自己缺什么。2. 不准备过早实习的人不是所有人都必须在大二下找到实习。如果大二时你的技术体系还没有完全形成,或者想多体验体验校园生活,也可以到大三再准备实习。大三下实习在时间上并不算晚。如果前两年你有一一直在持续学习,那么大三大概率是有足够基础储备的,可以去做项目、准备面试和投递岗位了。不需要担心是否找得到,如果你真的有做到持续学习,那你必然不可能找不到,通常只是时间问题。关键不是必须在某个固定时间点去实习,而是不要一直停留在“原地准备”的阶段。 有些人从大一开始看教程,到了大三仍然觉得自己还没有准备好。但很多能力,只有在做项目、投简历和参加面试受挫时,才能真正获得。三、 大三与大四大三、大四我还没有亲身完整经历,所以就简单说一说我的观察,源于学习群以及身边大三、大四同学的真实状态。到了大三,一部分人准备就业,一部分人准备考研,一部分人准备考公、留学或者其他方向。这个时候,最消耗人的状态是长期在两个方向之间左右摇摆。一边准备考研,一边羡慕别人实习;一边准备就业,一边担心自己学历不够;今天刷数学,明天做项目,后天又开始查考公资料。看起来每天都很忙,但没有任何一条路线获得了足够的有效投入。 选择可以调整,但你不能永远不做出决定。四、 建立自己的学习节奏我最近看到一句话:“你可以在两周内学会任何东西。” 这里的“学会”当然不是精通,也不是两周之后就能成为这个领域的佼佼者,你克服了未知的恐惧,变得比大多数完全不懂的人更加擅长它。 和学车一样,起步总是难的,油门是不敢踩的,路是不敢上的......很多改变不是因为天赋突然出现,而是因为你认真给某件事情分配了很多的时间与精力。我认为这句话有一定道理,但它不能被用来压榨自己。因为人总是高估一天能够完成多少事情,却低估一年能够积累多少东西。 一天没有学完,不代表失败;两周没有精通,也不代表没有收获。真正有价值的是,你能不能在一年里反复经历这种小周期:选择一个目标 —> 学习 —> 做出结果 —> 发现问题 —> 复盘调整然后,进入下一个周期。你想拥有你从未有过的东西,那么你必须去做你从未做过的事情。改变通常不是靠某一天突然爆发,而是不断让自己进入新的领域。但进入新领域并不等于每天都要把自己逼到极限。很多人能够连续高强度学习三天,却无法坚持三个月。真正拉开差距的,通常不是某一天学习了 12 个小时,而是在很长一段时间里,你的那根线没有彻底断掉。五、 焦虑与自己这一部分,我想聊聊焦虑与自己。我认为很多的焦虑来自于比较,信息茧房里的畸形比较。刷牛客,会觉得高手太多;刷抖音、小红书,会看到别人大一下就进大厂、拿高薪、参与顶级开源、获得各种比赛金奖;在学习群聊天,会觉得大家学历又好、Offer 又多,但就是喜欢串......看 AI 写代码,又觉得自己一点竞争优势都没有。于是我们陷入一种很难受的内耗状态:学习时觉得自己太慢,休息时觉得自己浪费时间,做项目时觉得项目太 low,找实习时又觉得自己不配。这种比较背后,其实是巨大的同龄人压力。最痛苦的不是别人真的比你强,而是你每天都在用别人的结果,去审判你自己的过程。别人拿到 Offer,你会忘记他背后可能投递了几百份简历、被拒绝了无数次;别人展示完美的项目截图,你会忘记他可能为了一个 Bug 熬夜、踩坑;别人说自己学会了一项技术,你会默认他已经精通。信息流通常只展示成果结果,不展示代价。我们看到的不是一个完整的人,而是一段被硬生生截取出来的成功片段。同时,环境也会放大这种压力。如果一个环境里大家都在讨论绩点、比赛、实习、大厂和薪资,你很难完全不受影响;如果身边的人都在摆烂,你也很难长期保持上进;如果身边的人都在焦虑,你甚至可能因为自己“不够焦虑”而感到焦虑。 环境会影响一个人的默认选择,你每天看什么、听什么、和谁交流、把什么当成正常,最后都会逐渐影响你的价值观。但环境并不是完全无法改变的。如果没有很好的同学、导师、伴侣或者公司环境,也可以尝试为自己创造一个小环境: 固定记笔记、写文章、写代码,和比自己厉害的人进行交流(这里推荐b站 爱学习的小q,q老师麾下的学习群非常权威,92、留子如过江之鲫)。环境可以影响人,但人也可以逐步筛选和重建环境。二十多岁,是一个人从校园向社会过渡的阶段。社会关系、生存能力、职业方向和财富积累,都像是在从零开始构建。你会发现时间不够、精力不够,判断力也不够。以前只需要准备期末考试,现在每个选择都像会深刻影响未来的几年:要不要考研、要不要实习、要不要换方向、要不要去大城市、要不要继续深入某项技术。在这种精力与判断力都捉襟见肘的时期,更需要保护好自己的注意力。 如果一段关系、一个圈子或者一种信息流会持续消耗你,让你无法学习、行动和正常生活,那么离开,是一个非常明智的选择。认识自己,不仅仅是知道自己喜欢什么、适合什么,还需要知道自己什么时候容易被影响。 知道自己什么时候会因为攀比打乱节奏,什么时候会因为同龄人压力做出不属于自己的选择。没有 Offer 时焦虑,有了 Offer 之后也焦虑;找实习前觉得有一份就不错,找到后又觉得和想象中不一样;入职前担心自己不够格,入职后又开始担心环境、导师、技术栈和未来的职业规划。人好像永远在为下一个阶段焦虑,永远想直接跳过二十多岁的生长过程。但这个过程,我们无法避免。成长不只是找到一份工作,也不只是学会一门技术。它还包括不断重新理解自己:我能承受什么,我害怕什么,我愿意为什么投入时间,我不愿意继续被什么消耗。 焦虑不会因为获得某个结果就彻底消失,它只会换一种形式重新出现。所以,比起追求完全不焦虑,更现实的是:学会带着焦虑,继续行动。六、 总结以我的经历来看,像我这样的人,最重要的不是突然变成天才,而是不要彻底断掉。从入学到现在,我也有因为学历不好而自甘堕落的时候,有沉迷游戏的时候,有计划打乱的时候,有依赖 AI 快速学习之后感到心虚的时候,也有刚进入公司后看不懂项目代码、甚至手足无措的时候。但回头看,真正让我继续向前的,不是某一次突然开悟,而是一次次把自己拉回正轨,继续学习,继续记录。计算机这条路,很少有一劳永逸的胜利。它更像是,不断把“不懂”变成“稍微懂一点”、把“稍微懂一点”变成“我理解了”,最后把“我理解了”变成“能够解释给别人听”。对于普通人来说,真正能够依靠的,通常不是某个突然出现的好运,而是在很长一段时间里持续积累,并且没有彻底停下来。这条路不浪漫,也不轻松,但它足够真实。愿诸君顺遂。
计算机学习路线及个人心得
计算机学习路线及个人心得
大家好,我是 Ray。今天想和大家聊聊计算机专业,包括学习路线以及我个人的心得。
本人 bg 民办本准大三,目前在一家小厂实习,base 深圳做后端开发。因为我还没完整地经历大学四年,所以对于大三、大四应该怎么去学习,我没有一个绝对正确的看法。我只能根据自己的经历、身边同学的状态,以及对就业和考研的观察,谈谈我目前的想法。也因为学历问题,文中有些绝对性的话语只是针对我个人而言,还请各位多见谅。
到现在我越来越觉得,大学不存在一条绝对正确的学习路线。
有人大一开始打竞赛,有人大二才接触开发;有人很早就进入实验室,有人到了大三才确定方向;有人选择就业,有人选择考研。真正重要的,并不是你一定要去复刻某个优秀学长的路,而是你有没有找到一条适合自己的路线,并且持续推进下去。
很多人痛苦,是因为大一就用大四的就业压力折磨自己,大二就拿别人的实习经历审判自己,大三又因为过去两年没有完美规划而否定自己。我也经历过这种状态,每个阶段所面对的问题是不同的,不应该用同一种目标去硬套自己。
一、 大一
刚进入大学时,你会接触到很多事情:学生会、社团、班委、比赛、绩点、奖学金、谈恋爱、游戏,以及各种看起来必须参加的活动。大学当然可以丰富多彩,我没有资格决定别人应该怎么度过。我能做的只是根据自身的情况,对那些在计算机这条路上还处于迷茫阶段的人,给出一些建议。
大一最重要的是,确定:你能不能静下心下来学习。 确定你能不能接受一个报错卡住自己半天,能不能主动搜索资料,能不能沉下心阅读又臭又长的文档,能不能在学完之后留下笔记,能不能在遇到困难时,不放弃地继续往下推进。
只有开始行动,你才会获得反馈。没有行动时,所有选择都只是想象。
1. 方向探索
如果你对竞赛、实验室或者学校项目没有明显兴趣,那么大一可以用一段时间探索开发方向。从入学开始,我认为一个月左右的时间去集中探索,通常已经足够让你对几个主要方向形成初步认识。
你可以去了解不同语言对应的岗位和应用场景,例如:
你不用一上来就去死记每门语言怎么写,你只需要收集起来:对应语言所做的岗位具体是干什么的,需要纵向深入的技术栈有哪些就行了。
选择方向时,需要同时考虑兴趣、岗位数量、学习难度和自身条件。方向确定后,至少坚持一段时间。频繁更换语言和技术栈,会让你一直停留在入门阶段。 每次换方向时都觉得自己学到了新东西,但实际上只是把同一道门槛反复跨了多次,始终没有真正迈过去。
比如选择 C++,你可能会面对嵌入式、音视频、Qt、游戏开发、后端等方向,不同方向的岗位数量差距较大,并且存在”生殖隔离“。(如果你是做音视频的,那你的纵向技术不能支撑你去做嵌入式)我接触到的大部分学 C++ 的人,主要选择 Qt、嵌入式或者硬件相关方向。纯 C++ 后端岗位相对少,通常集中在大厂,对基础和算法要求也更高(比如腾讯 wxg、网易雷火……)。这并不是说不能选择 C++,而是选择之前要了解对应的市场。方向没有高低,但存在岗位数量、竞争难度和学习成本的区别。
后面我会出两篇关于 C++ 和 Go 的学习路线。当然,最终的方向需要你自己决定。
2. 算法竞赛
这里单指算法竞赛,比如 ICPC (ACM)、CCPC、蓝桥杯、天梯赛等。其余的,类似于大创赛等,我个人不敢恭维。
算法竞赛的好处是能实打实地提高你的算法能力,坏处是门槛较高,个人天赋决定了你的上限,但努力能拉高你的下限。竞赛是个不错的选择,如果你有中大厂梦,算法通常无法完全避免。未来面试中的算法题会不会被 AI 场景题取代我不知道,但至少目前来看,算法依然是很多中大厂筛选候选人的硬性方式之一。
自己摸索出的竞赛路线
或者
这一块我没有什么更高深的见解,因为我涉及得不深,在竞赛方面我属于“痴呆”级别的,只参加过蓝桥杯,混了个三等奖就没继续学了。但以上路线可以当作各位入门算法的路线。
因为部分竞赛周期较长(比如 ICPC 从每年 9 月持续到次年 6 月,跨度近一年)。这就导致很多同学刚入学,在缺乏充分训练的情况下,要么无法通过校内选拔进入校队,要么参赛后难以取得理想成绩。如果你想打竞赛,就要做好准备——学习开发的时间或许得到大二下或者大三才能开始。好处是对于面试手撕,你可能会如鱼得水;坏处是算法与实际开发是截然不同的两条路线,大部分算法知识在常规业务开发中应用有限,投入产出比需要你自己权衡。
3. 计算机四大件
大一也是接触四大件最合适的时候,很多散播焦虑的视频天天在讲四大件。说实话,在日常业务开发中,四大件的底层原理对绝大多数开发者的日常工作影响不大。绝大多数人学习它们,是为了应付面试、考研或期末考试的。
通常所说的计算机四大件,包括:
大一没有必要同时深入学习所有内容。对于刚开始接触开发的学生,可以优先学习数据结构与算法、计算机网络和基本编程知识,操作系统随后,计组最后。
4. 大学生活
大学当然不应该只有学习。游戏可以玩,社交可以参加,恋爱也可以谈。没有人能够一直保持高强度学习。
这里我主要讲谈恋爱……大一是你脱单的,最优时间,往后会越来越难......
好的关系能够让两个人都轻松愉快,错误的关系也可能大量消耗时间和精力。所以恋爱并不是重点,关系质量才是重点(关系质量也可以延伸到交友这方面)。如果两个人能够互相支持、尊重彼此的目标,并且在一起之后都变得更稳定,那么这段关系是有价值的。如果一段关系长期让你痛苦、焦虑、内耗,甚至无法正常学习和生活,那么离开,是比勉强维持而言,最佳的决策。
二、 大二
大二开始,焦虑会变得更加具体。如果大一什么都没有做,和我一样,那么你可能会突然发现,身边的人已经开始向不同方向推进:有人在算法比赛夺得头筹,有人开始做项目,有人刷力扣和背八股,有人在社交平台展示简历,甚至有人在大二上就拿到了实习 Offer。
而自己可能还在反复学习基础知识。这时候心理很容易失衡,会觉得自己学不会、找不到实习,甚至觉得自己没有价值。你也可能会产生一些不正常的比较心理:我明明成绩比他好,为什么他能获得荣誉?我明明比他努力,为什么他已经找到实习?为什么别人学得这么快,而我还在原地?
这种状态很常见。但别人获得什么,并不会减少你拥有的东西。 你真正能控制的,只有自己今天做了什么,当前方向推进到了什么程度,以及下一步准备干什么。
大二应该做的,是找到一个能够持续推进的方向,并且开始形成可以交付的能力。 所谓交付能力,就是你不只是看过课程、记过笔记、听懂概念,而是真的能够通过所学知识完整地完成一个东西。
现在 AI 非常给力,你完全可以通过 AI 去辅助实现。你可以在提出需求,与它讨论,从而构建项目。项目可大可小,重要的是你需要知道:需求是什么、结果是什么,逻辑怎么转换、数据如何存储、程序如何运行、出现问题怎么排查,最终如何部署或者展示。
确定方向后,需要问自己一个问题:我是否愿意接受这个方向的困难,并且持续走下去?
这个过程会很煎熬。你会反复遇到看不懂的代码、无法解决的报错、复杂的环境配置、不熟悉的项目结构,以及大量不知道有什么用的概念。这就是学习的一部分,你无法避免。于我而言,我的学习路线也非常弯曲。具体经历可以看我的博客 raymq.com 的碎碎念(一),里面记录了我这两年的学习过程。
1. 准备较早、计划尽早实习的人
如果你在大一已经开始学习,并且经过一年时间对开发有了基础认识,那么大二上可以开始准备以下内容:
大二下学期就可以开始在 Boss 等平台投递简历了。投递不代表一定能够马上进入公司,投递本身就是一种最好的市场反馈。 如果简历已读不回,可能是学历、项目描述或简历表达存在问题,也可能是大环境确实太卷了或者不招大二的,无论哪种,投递本身都在帮你缩小问题的范围;如果笔试过不了,说明算法或者基础知识存在问题;如果面试中说不清项目,说明项目理解不够深入。越早接触市场,越早知道自己缺什么。
2. 不准备过早实习的人
不是所有人都必须在大二下找到实习。如果大二时你的技术体系还没有完全形成,或者想多体验体验校园生活,也可以到大三再准备实习。大三下实习在时间上并不算晚。如果前两年你有一一直在持续学习,那么大三大概率是有足够基础储备的,可以去做项目、准备面试和投递岗位了。不需要担心是否找得到,如果你真的有做到持续学习,那你必然不可能找不到,通常只是时间问题。
关键不是必须在某个固定时间点去实习,而是不要一直停留在“原地准备”的阶段。 有些人从大一开始看教程,到了大三仍然觉得自己还没有准备好。但很多能力,只有在做项目、投简历和参加面试受挫时,才能真正获得。
三、 大三与大四
大三、大四我还没有亲身完整经历,所以就简单说一说我的观察,源于学习群以及身边大三、大四同学的真实状态。到了大三,一部分人准备就业,一部分人准备考研,一部分人准备考公、留学或者其他方向。
这个时候,最消耗人的状态是长期在两个方向之间左右摇摆。
一边准备考研,一边羡慕别人实习;一边准备就业,一边担心自己学历不够;今天刷数学,明天做项目,后天又开始查考公资料。看起来每天都很忙,但没有任何一条路线获得了足够的有效投入。 选择可以调整,但你不能永远不做出决定。
四、 建立自己的学习节奏
我最近看到一句话:“你可以在两周内学会任何东西。” 这里的“学会”当然不是精通,也不是两周之后就能成为这个领域的佼佼者,你克服了未知的恐惧,变得比大多数完全不懂的人更加擅长它。 和学车一样,起步总是难的,油门是不敢踩的,路是不敢上的......
很多改变不是因为天赋突然出现,而是因为你认真给某件事情分配了很多的时间与精力。我认为这句话有一定道理,但它不能被用来压榨自己。因为人总是高估一天能够完成多少事情,却低估一年能够积累多少东西。 一天没有学完,不代表失败;两周没有精通,也不代表没有收获。
真正有价值的是,你能不能在一年里反复经历这种小周期:
选择一个目标 —> 学习 —> 做出结果 —> 发现问题 —> 复盘调整
然后,进入下一个周期。
你想拥有你从未有过的东西,那么你必须去做你从未做过的事情。改变通常不是靠某一天突然爆发,而是不断让自己进入新的领域。但进入新领域并不等于每天都要把自己逼到极限。很多人能够连续高强度学习三天,却无法坚持三个月。
真正拉开差距的,通常不是某一天学习了 12 个小时,而是在很长一段时间里,你的那根线没有彻底断掉。
五、 焦虑与自己
这一部分,我想聊聊焦虑与自己。
我认为很多的焦虑来自于比较,信息茧房里的畸形比较。刷牛客,会觉得高手太多;刷抖音、小红书,会看到别人大一下就进大厂、拿高薪、参与顶级开源、获得各种比赛金奖;在学习群聊天,会觉得大家学历又好、Offer 又多,但就是喜欢串......看 AI 写代码,又觉得自己一点竞争优势都没有。
于是我们陷入一种很难受的内耗状态:学习时觉得自己太慢,休息时觉得自己浪费时间,做项目时觉得项目太 low,找实习时又觉得自己不配。
这种比较背后,其实是巨大的同龄人压力。最痛苦的不是别人真的比你强,而是你每天都在用别人的结果,去审判你自己的过程。
别人拿到 Offer,你会忘记他背后可能投递了几百份简历、被拒绝了无数次;别人展示完美的项目截图,你会忘记他可能为了一个 Bug 熬夜、踩坑;别人说自己学会了一项技术,你会默认他已经精通。
信息流通常只展示成果结果,不展示代价。我们看到的不是一个完整的人,而是一段被硬生生截取出来的成功片段。
同时,环境也会放大这种压力。如果一个环境里大家都在讨论绩点、比赛、实习、大厂和薪资,你很难完全不受影响;如果身边的人都在摆烂,你也很难长期保持上进;如果身边的人都在焦虑,你甚至可能因为自己“不够焦虑”而感到焦虑。 环境会影响一个人的默认选择,你每天看什么、听什么、和谁交流、把什么当成正常,最后都会逐渐影响你的价值观。
但环境并不是完全无法改变的。如果没有很好的同学、导师、伴侣或者公司环境,也可以尝试为自己创造一个小环境: 固定记笔记、写文章、写代码,和比自己厉害的人进行交流(这里推荐b站 爱学习的小q,q老师麾下的学习群非常权威,92、留子如过江之鲫)。环境可以影响人,但人也可以逐步筛选和重建环境。
二十多岁,是一个人从校园向社会过渡的阶段。社会关系、生存能力、职业方向和财富积累,都像是在从零开始构建。你会发现时间不够、精力不够,判断力也不够。以前只需要准备期末考试,现在每个选择都像会深刻影响未来的几年:要不要考研、要不要实习、要不要换方向、要不要去大城市、要不要继续深入某项技术。
在这种精力与判断力都捉襟见肘的时期,更需要保护好自己的注意力。 如果一段关系、一个圈子或者一种信息流会持续消耗你,让你无法学习、行动和正常生活,那么离开,是一个非常明智的选择。
认识自己,不仅仅是知道自己喜欢什么、适合什么,还需要知道自己什么时候容易被影响。 知道自己什么时候会因为攀比打乱节奏,什么时候会因为同龄人压力做出不属于自己的选择。
没有 Offer 时焦虑,有了 Offer 之后也焦虑;找实习前觉得有一份就不错,找到后又觉得和想象中不一样;入职前担心自己不够格,入职后又开始担心环境、导师、技术栈和未来的职业规划。人好像永远在为下一个阶段焦虑,永远想直接跳过二十多岁的生长过程。但这个过程,我们无法避免。
成长不只是找到一份工作,也不只是学会一门技术。它还包括不断重新理解自己:我能承受什么,我害怕什么,我愿意为什么投入时间,我不愿意继续被什么消耗。 焦虑不会因为获得某个结果就彻底消失,它只会换一种形式重新出现。
所以,比起追求完全不焦虑,更现实的是:学会带着焦虑,继续行动。
六、 总结
以我的经历来看,像我这样的人,最重要的不是突然变成天才,而是不要彻底断掉。
从入学到现在,我也有因为学历不好而自甘堕落的时候,有沉迷游戏的时候,有计划打乱的时候,有依赖 AI 快速学习之后感到心虚的时候,也有刚进入公司后看不懂项目代码、甚至手足无措的时候。但回头看,真正让我继续向前的,不是某一次突然开悟,而是一次次把自己拉回正轨,继续学习,继续记录。
计算机这条路,很少有一劳永逸的胜利。它更像是,不断把“不懂”变成“稍微懂一点”、把“稍微懂一点”变成“我理解了”,最后把“我理解了”变成“能够解释给别人听”。
对于普通人来说,真正能够依靠的,通常不是某个突然出现的好运,而是在很长一段时间里持续积累,并且没有彻底停下来。
这条路不浪漫,也不轻松,但它足够真实。
愿诸君顺遂。