在开始攻读学位之前给CS ungrad的建议

时间:2009-06-04 05:35:41

标签: computer-science

我在Java,C#和VB中有过几个CS类,并为我目前的工作学习了很多PERL,Python,Javascript,WPF和RegEx。我申请了华盛顿大学的CS部门,我还在等待,如果我被录取了。

我的问题是,在我希望前往威斯康星大学开始学位之前的几个月里,我现在应该做些什么呢?我正在尝试根据我的主管的建议尽可能多地学习C#和WPF。但是,在“正式”开始我的CS学位之前,有什么我应该学习的,或者至少是熟悉的吗?

提前致谢。

编辑: 我觉得我遗漏了我背景的一个关键部分,因为我已经去过一所社区学院,并且从那里获得了2年的学位,当我上四年大学时,这将超过我的GUR。所以我已经有了几个基本类,逻辑,历史,英语,数学等。

10 个答案:

答案 0 :(得分:3)

尝试学习一点理论。如数学逻辑,面向对象的概念,递归,设计模式,数据结构,算法等...因为现在有大量的语言和技术,没有人会是肯定的,但计算机科学的基础知识将始终如一真。

http://en.wikipedia.org/wiki/Computer_science

答案 1 :(得分:3)

听起来你已经在语言方面给自己一个很好的基础。如果您希望花时间超越曲线,请考虑查看以下某些领域:

  • 设计模式
  • 应用程序块(企业库,用户界面处理)
  • 参考架构(智能客户端软件工厂)
  • 单元测试
  • 构建自动化,持续集成
  • 安全
  • 静态代码分析
  • 代码覆盖率

您还可以观看last years PDC中的某些会话,这些会话可以让您深入了解事情的进展。

您可能还想探索不同的平台(网络,桌面设备,移动设备),看看您是否偏好其中一个平台。

答案 2 :(得分:2)

找到您感兴趣的内容并尽可能多地使用它。贡献或创建一个开源项目,从事你从未做过的事情等等。

这是大学前的夏天,所以放松一下,享受自己。尽可能多地投入到自己喜欢的项目中(它们应该很有趣!),但要知道大学里会有足够的时间争论你是否应该使用vi或emacs。

答案 3 :(得分:2)

看起来你有比大多数同学更多的编程背景和经验,所以我认为你已经远远超过了曲线:)

我的一个建议是,我建议你不要试图学习新的编程语言或者提高你对现有语言的知识,而是要重新审视你已经知道的东西,并尝试用更具学术性的概念来构建这些知识。光。请记住,您将开始学习计算机科学课程,而不是计算机编程培训课程。

根据您当前的背景,以下是您可能希望进一步探索的一些想法:

  • 您已经知道哪种语言是动态类型的,哪些是静态类型的?每种风格有哪些优点/缺点?他们来自哪些语言?

  • 用这些语言编写的程序的性能有何不同?造成这种差异的可能原因是什么?

  • 正则表达式的理论局限是什么?例如,你能写一个匹配平衡括号的正则表达式吗?为什么或为什么不呢?

当然,也许最好的做法是在开始上大学之前放松和放松。玩得开心!

答案 4 :(得分:1)

你已经远远超过大多数注册CS部门的学生(通常)。如果你愿意的话,你可能会在暑假里学习一些人们在这里给你建议的东西,但是如果你问我,大部分是你在CS教育期间作为CS课程的一部分学习的东西。 。对事物有一个良好的开端很好,但我不认为这是绝对必要的。它当然可以帮助您减轻您在学期中将面临的负担,在那里您必须每学期解决一些课程(这不会跨越很长时间)。但是,我相信这有助于培养学生在压力和有限时间内学习新事物的能力,其中一些可能与其他新事物无关,我认为这是学习和调教的重要技能。

我记得我曾经花了很多时间参加夏天的USENET科技新闻组的讨论。我可以肯定地说,这样做对我帮助很大。它不仅可以让您的知识逐渐增加,而且还有助于提高您的写作能力(特别是从技术角度来看,您可以阅读人们在讨论中如何解释技术内容,以及如何在寻求帮助时或者更经常地帮助他人时,也要做同样的事情。您最终还会学习正确的礼仪,以及在需要时如何以及在何处寻求帮助。

答案 5 :(得分:1)

我说这实际上取决于你想要的计算机科学的方向。

您对软件工程感兴趣吗? 数据库? 人机交互? 人工智能?

他们都属于计算机科学的旗帜,但他们都有不同的技能。

你可能还不知道。当你在计算机科学中找到想要做的事情的最佳位置时,你就会知道。你热爱的东西。

你提到你有几种语言的经验。我会保持这种方式。不要只关注C#或Microsoft特定平台。

我认为学习理论比掌握任何一门语言更重要。在你的职业生涯中,你会从语言转向语言,但实际上learning what’s happening under the hood (and why)可能更有价值。了解计算机科学理论可以为你奠定坚实的基础。

了解abstraction。这也可以让你在同龄人中占据先机。

这取决于你的水平。例如基本的东西 -

在C#中 - 你知道值类型和引用类型之间的区别吗?

您知道difference between ASCII and Unicode吗?

或者你已经掌握了这一切吗?

了解动态语言,函数式编程,面向对象编程。

Java和C#有很多共同之处。那么为什么不玩一些与众不同的游戏呢? 试试Haskell吧。和Erlang一起玩。尝试在Lisp中做一些事情。他们都略有不同。

不要只是坚持使用“中间层”语言。 刷新SQL(不只是mySQL或SQL Server,而是ISO / ANSI标准SQL)。 刷新表现逻辑 - HTML / CSS,也许是闪存。

您不必掌握所有这些语言,只需了解它们就很有用。

使用您感兴趣的区域/语言进行项目非常有价值。在书中练习实验是一回事,但实际上做一个完整的项目是另一回事。你可以在暑假期间做一个项目/网站吗?

为什么不从软件中分支出来?试用Arduino

到目前为止,给予该主题的许多建议都集中在计算机科学的软件元素上。对于一般职业的东西,我会说不要忘记人的技能。学习如何与其他人互动/交流可以给你额外的优势或优势。

wear sunscreen

答案 6 :(得分:0)

我度过了我的第一个夏天和后来的工作,作为一个小型ISV的程序员,如果有一件事,他们不在大学/大学教授如何处理客户/老板等所以任何经验,你可以从做一些编程工作是一个很好的补充 - 当你以后申请你的第一个“真正的”工作时,你的简历也会更好看。赚来的零用钱也是一个加分 - 即使只是买几桶啤酒:)

答案 7 :(得分:0)

买咖啡机!

答案 8 :(得分:0)

我的建议是查看毕业要求,看看各种一年级课程涵盖哪些主题,看看你对这些主题的了解程度如何。如果您认为自己足够了解课程,则可能值得探索。例如,在滑铁卢大学,根据以往的经验,可以改变第一年的计算机科学课程。让那些已经了解一些编程概念的人跳过可能是一个非常无聊的课程来获取更有趣的东西是很方便的。

另一个想法是你在CS之外的第一年的课程,你准备好了这些课程吗?你能指出哪些二年级,三年级和四年级课程似乎给你一个“我得拿那个!”感觉让你可以为此做好准备。您是否了解校园,可能像CS俱乐部或其他可能聚集在一起的技术人员那样有帮助的学生组织。

你知道你最好的学习方式吗?如果有人要求你了解一些gobbledgook主题,你知道你是如何接近它并完成它的吗?

我认为这里的很多人都提到了各种技术建议,所以我不会在这里重复这些建议。

答案 9 :(得分:0)

作为完成大学一年级大学攻读CS学位的人,我可以提供不同的观点。

我的建议只是放松,并不一定会涉及有关主题的书籍。你将领先于曲线,可能会在课堂上感到非常自大。你只需要准备好在课堂环境中学习新东西。

在第一年之前的夏天学习东西没有真正的“点”,第一年既可以作为'除草'也可以作为'均衡器',领先于曲线意味着你不会被淘汰出局在平等的同时你会感到无聊。

当你开始上学时,要努力选修课程。在你的生活中,你真的没有其他地方可以学习哲学,语言学和其他有趣的东西。