发布于 2026-01-06 5 阅读
0

作为一名计算机科学/工程专业的学生,​​我希望在大学入学前就知道以下5件事

作为一名计算机科学/工程专业的学生,​​我希望在大学入学前就知道以下5件事

大学对计算机科学专业的学生来说压力很大,尤其是像我这样之前没有任何编程经验的人。你可能会觉得自己落后于那些比你更早开始学习的人,甚至觉得现在才开始学习已经太晚了,自己也无法成为一名优秀的工程师。“多做项目才能找到实习机会”、“不断解决问题才能通过面试”、“掌握所有数据结构和算法”之类的“建议”被反复提及,仿佛它们很容易就能快速掌握。很快,你就会感到压力过大,不知该专注于什么。如果你还在大学初期,感到迷茫和不知所措,请记住,你并不孤单。接下来,我将分享一些我认为最有价值的方法,帮助你克服这些感受,甚至取得优异的成绩!那么,让我们开始吧!

1. 慎重选择朋友。
这听起来可能有点跑题,但或许是我最宝贵的建议。寻找那些积极向上、意志坚定的人,那些对学习和创造充满热情的人。他们会激励你努力工作,成为更好的自己。他们会成为你的项目团队成员,你的学习伙伴,他们会督促你不断进步。除非你始终保持百分之百的动力,否则这些人会在你低落的时候鼓励你,督促你朝着梦想和目标前进。记住,你就是你身边五个最常接触的人的平均值。

2. 竞技编程与面试准备的区别
当我第一次听说问题解决能力以及它的重要性时,我开始探索 Codeforces——一个竞技编程平台。我会选一个问题,然后盯着它看一整天。当我最终决定编写代码并提交给在线评测系统时,却收到了“测试用例在测试编号 # 处失败”的提示。听起来很令人沮丧,对吧?的确如此。虽然这在初期是完全正常的。我不应该只是盯着问题看,我需要看到解决方案,从中学习,找出代码的不足之处,并学习编写简洁的代码和编码规范。Codeforces 是用来解决问题和进行竞技编程的,它的题目以故事的形式呈现,这可能会让人感到恼火,因为技术要求隐藏在所有细节之中。解决问题是成为一名工程师的重要组成部分,它塑造你的思维方式,并帮助你掌握为那些可能并不明确的约束条件开发解决方案的技能。另一方面,面试准备则完全是另一回事。面试和编程略有不同,它们更侧重于数据结构和算法。大多数问题都比较直接。面试准备平台包括 LeetCode 和 HackerRank。LeetCode 非常棒,它提供了不同难度级别的题目列表。先从简单的题目入手,等你水平有所提高后再尝试中等难度的题目。LeetCode 的文章中提供了一些题目的解答,你也可以在讨论区找到其他人的解答。当你遇到难题时,盯着它看一整天是没用的。相反,你应该花大约 20 分钟思考这个问题。如果你仍然不知道答案,那就研究一下答案。没错,研究答案,理解算法,识别简洁的代码以及数据结构的使用方式。你的进步取决于你从问题中学到的东西,而不是你解决了多少道题。质量胜于数量。这两种解题技巧都会对你成为一名优秀的工程师大有裨益,但你需要知道何时使用哪一种。Codeforces 非常适合参加编程竞赛,而 LeetCode 则非常适合面试。总而言之,我再怎么强调掌握算法和数据结构的重要性都不为过。如果你想获得梦寐以求的实习机会,最好尽快开始解决问题。

3. 你不必是天才也能脱颖而出。
我记得我第一次学习递归,或者更确切地说是“汉诺塔”问题时,我完全无法理解。这让我有点担心,心想也许我根本不适合这份工作。有些人几乎可以瞬间理解这些概念,但正如我最近了解到的,这并不总是优势。我最近在芭芭拉·奥克利(Barbara Oakley)的在线课程“思维转变:突破学习障碍,发现你的隐藏潜能”中接触到了一个有趣的概念。芭芭拉举了一个例子:当老师在课堂上提出一个问题时,还没等你理解问题,就有人举手回答了。 “有些人似乎天生就拥有赛车手般的头脑。他们到达终点线时,反应速度极快。而另一些人则拥有你所谓的‘徒步者思维’。他们也能到达终点线,但因为是步行,所以速度要慢得多。赛车手虽然到达终点线的速度更快,但一切都匆匆而过。他们行驶在平坦的赛道上,对方向了如指掌。而徒步者则行动缓慢。但在徒步的过程中,他们可以尽情探索。他们可以触摸树叶,嗅闻空气,聆听鸟鸣。他们可以轻松地偏离既定路线,进入人迹罕至的地方。” 芭芭拉接着指出,这些“徒步者思维”拥有诸多优势,因为他们思考问题的速度较慢,所以理解力可能比其他人更深刻。她谈到了诺贝尔奖得主圣地亚哥·拉蒙·卡哈尔,他本人并非天才,但他曾与许多天才共事。他发现,天才们常常面临相似的问题。例如,这些天才拥有赛车般的思维,习惯于快速得出结论。即使结论错误,他们也不习惯改变想法。因此,他们会坚持错误的结论,凭借超快的思维能力,他们很容易就能找到合理的解释。然而,拉蒙·卡哈尔却拥有登山者般坚持不懈的思维。他会提出一个假设,然后坚持不懈地进行验证,直到发现错误为止。他不会仅仅试图证明自己是对的。如果错了,他会改变想法,灵活地再次尝试。正是这种坚持不懈和灵活应对数据真相的能力,使他成为了一位杰出的研究员。当我第一次听到这种比较时,我觉得非常震撼。我有时会发现自己被某些概念难住,而其他人却能瞬间理解,这时我就会开始担心:我够聪明成为一名优秀的软件工程师吗?我真的彻底理解了这个算法吗?现在我明白了,每个人都是独一无二的,我们都有自己的长处和短处。理解某些概念需要时间,这很正常,我们都会有遇到困难的时候。

4. 志愿服务是你的新朋友。
许多大公司都喜欢在你的简历上看到志愿服务经历,但这并非我推荐它的主要原因。我之所以这样建议,是因为我本人就是IEEE亚历山大学生分会软件开发委员会的志愿者。我在那里已经待了一年左右,以下是我的一些经历:我和我的团队为我们分会开发了一款安卓应用(一开始我对安卓几乎一窍不通,但在经验丰富的同学的指导、在线课程以及队友的帮助下,我学到了很多东西,并参与了一个可以写进简历的新项目!)。我有机会与许多大学里的学长学姐交流,他们与我分享了宝贵的经验和见解。我参加了许多教育活动和研讨会。我有机会帮助低年级的学生,并结交了很多朋友。除了这些好处之外,志愿服务本身也很有趣!如果你的大学有与你兴趣相投的社团或俱乐部,那就加入他们,开始学习、拓展人脉和社交吧。这是我那一年做出的最棒的决定之一。

5. 认真学习大学课程。
我知道保持高GPA并非人人都能做到,但我可以告诉你,它确实有好处。很多人会说软件工程并不需要高GPA,这话有一定道理,但这并不意味着拥有不错的GPA不会提升你的成功率。之前我参加了谷歌在我们学校举办的活动并投递了简历,之后一位谷歌招聘人员联系了我。当时我的简历上并没有什么特别出彩的项目,所以我猜想真正让我脱颖而出的是我的GPA。我知道保持高分有多么艰难和压力巨大,我个人也为此苦苦挣扎,但如果你能做到,我认为这是值得的。记住,你上大学的真正目的是学习,而且是认真学习。如果你有幸攻读计算机工程/科学学位,那么你的大部分课程都将对你的职业生涯至关重要。学习是一个美好的过程,要想成为一名成功的工程师,你需要终身学习。现实世界中,当你开始工作后,几乎不可能找到一天空闲时间,可以整天静下心来学习和解决问题。但在大学里,你可能会有很多时间阅读教科书,消化吸收知识。现在你可能觉得这不算什么,但以后你会怀念这些时光,所以现在一定要珍惜并充分利用它们!

我知道我说过要分享5条建议,但这是我对这篇文章的最后总结。
找到让你兴奋的事情!我自己也还在探索,但我意识到,只有尝试过很多不同的事情,了解哪些事情让你提不起兴趣,你才会知道自己真正热爱什么。比如说,你尝试了一个月的网页开发,然后发现自己并没有那么喜欢它。这难道不比盲目地选择网页开发作为职业,然后因为一时冲动而被困在这个行业更有意义吗?你现在有时间去探索更多不同的领域,这绝不是浪费时间。从长远来看,这会为你节省更多的时间。
不要等到准备好才去申请实习。现在就去申请,如果幸运地获得了面试机会,一定要抓住它!面试也是一项技能,你面试的次数越多,这项技能就会掌握得越快。即使没能在那些大型科技公司获得实习机会也不要灰心,这对国际学生来说尤其困难,但同时也要保持乐观!我认识很多优秀的人都拿到了像Facebook和谷歌这样的大型科技公司的offer。

照顾好自己的健康。整天盯着屏幕、坐在办公桌前,对健康极其有害,尤其是一些程序员,人们普遍认为他们必须熬夜写代码。这可不行,你不应该半夜都睡不着觉。锻炼和健康的饮食习惯能让你精力充沛、头脑敏锐,并提高你的生活质量。不要以“与其睡觉不如多写一个小时”之类的借口忽视健康。如果你的健康——你最重要的资产——状况不佳,那么你为将来找到一份好工作所做的一切努力都将付诸东流。

今天就分享到这里啦!希望对你有帮助。欢迎在下方评论区分享你的实用技巧和窍门!

文章来源:https://dev.to/fatmasherif98/5-things-i-wish-i-knew-starting-university-as-a-computer-science-engineering-student-ojl