大学里没人给你的诚实建议

发布: (2026年3月15日 GMT+8 05:17)
7 分钟阅读
原文: Dev.to

Source: Dev.to

这是一篇 4 分钟阅读的文章。但如果其中有一点让你恍然大悟,它将改变你接下来几年学习的方式。

如果你是大一或大二学生

学习解决问题。这就是目前的全部任务。

  • 专注于解决问题,而不是排名。
    不是 Codeforces 评分。不是成为竞技程序员。竞赛编程的意义在于让你足够聪明,能够在不慌乱的情况下思考难题。它训练你的大脑拆解问题、发现模式,并在压力下写出正确代码。这项技能正是公司在技术面试中考察的重点,也正是能思考的人与只能照抄的人之间的区别所在。

  • 掌握基础。
    数据结构和算法不是为了考试而记住、随后忘记的东西。它们是你整个职业生涯都会使用的“词汇”。如果你不明白为什么哈希表是 O(1),或者二叉搜索树到底是怎么工作的,那么你的基础就像建在沙子上。

  • 避免追逐排名。
    解决问题是因为它们能让你变得更好。要追求深度,而不是速度。

如果你在大三或大四

把注意力转向软件工程。真正的SWE。那种在一屋子同样会写代码的人中让你脱颖而出的类型。

  • 深化系统知识。
    有一种开发者只知道 MongoDB 的存在,另一种开发者知道何时使用主‑从‑从(p‑s‑s)副本集,主节点宕机时会发生什么,读写在该配置下的行为以及权衡是什么。第一类人遵循指令,第二类人设计系统。你想成为第二类人。

  • 学习高级设计。
    系统设计并非魔法;它只是对大规模问题的思考。如何让系统具备容错能力?节点宕机时会怎样?如何在一夜之间应对 10 倍流量?当某个服务变慢时,你的架构会怎样表现?这些是资深工程师在面试中会问的问题,更重要的是,它们是实际工作中每周都会碰到的问题。

  • 也要学习低级设计。
    这里是软件工程原则的落脚点:SOLID、整洁代码、设计模式——不是因为你需要为面试记住工厂模式或观察者模式,而是因为构建复杂系统并感受其崩溃会让你明白这些模式存在的原因。不要先去学习模式。先构建一些东西,体会痛点,然后模式自然会变得有意义。

如果你已经毕业并且跳过了解题阶段

这并不算太晚。真的。

把它变成一种仪式:每天早餐后做一道 LeetCode 题目。起初不要选太难的——只做一题。每天坚持。它的累积效应比你想象的要快,而且在你找工作或刚开始第一份工作时,能让你的逻辑思维保持活跃。连续六个月坚持这样做的人,在面试时的表现会与那种只临时突击两周的人截然不同。

我还想让你思考的几点

  • 构建真实的项目。
    不是教程项目,也不是 YouTube 跟随式教学。挑选一个你真实遇到的、或是你感兴趣的问题,并为它构建解决方案。你会遇到教程里没有准备的难题,而解决这些难题才是真正的学习所在。招聘人员能够分辨出是有人真正动手构建了东西,还是仅仅克隆了仓库。

  • 阅读代码库。
    优秀的工程师会阅读大量他人编写的代码。挑选一个与你关心的领域相关的开源项目,仔细阅读它的代码。它是如何组织的?他们为什么做出这样的决定?你会有什么不同的做法?这能培养审美,而审美很重要。

  • 写作与沟通要清晰。
    这听起来乏味,但其实并非如此。能够用非技术人员也能理解的方式解释技术决策是很少见的能力,一旦加入团队,这种能力的价值巨大。多加练习。

  • 深度优先于广度。
    目前的就业市场非常艰难。要在其中生存,关键不是学习十个框架,而是深入掌握某一领域,真正理解它。真正懂得分布式系统的人,能够比那些简历上写着“微服务”却解释不清两个服务同时写同一数据库行会发生什么的人,走得更久。

  • 不要比较时间线。
    你这一批的人中有人已经在好公司拿到工作——为他们感到高兴。也有人仍在探索中——这也没问题。成长最快的工程师是那些保持好奇心并坚持不懈的人,而不是起点最好的那几个人。

你拥有的时间比你感觉的要多。好好利用它吧。

0 浏览
Back to Blog

相关文章

阅读更多 »