【问题标题】:Advice for a CS ungrad before starting on my degree [closed]在开始攻读学位之前对 CS ungrad 的建议 [关闭]
【发布时间】:2009-06-04 05:35:40
【问题描述】:

我在 Java、C# 和 VB 中上过一些 CS 课程,并为我目前的工作学习了一些 PERL、Python、Javascript、WPF 和 RegEx。我已向华盛顿大学的计算机科学系提出申请,但我仍在等待是否被录取。

我的问题是,在我希望去华盛顿大学攻读学位之前的暑假期间,我现在应该做什么?在我的主管的建议下,我正在尝试尽可能多地学习 C# 和 WPF。但是,在“正式”开始我的 CS 学位之前,我应该学习或至少熟悉什么吗?

提前致谢。

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

【问题讨论】:

  • 营销和人力资源机器人可能不在乎(或知道),但 Perl 不是首字母缩略词,也不是用大写字符拼写的。 “Perl”(或“Perl 5”、“Perl 4”、“Perl 6”;不是“Perl5”、“Perl6”)是语言,“perl”是解释器。对于在一些 Perl 商店接受采访,这可能是一个重大的转折。
  • 嗯,看来我们都说对了一半。我以为这是一个首字母缩略词,所以我把它放在大写字母中。来自 O'Reilly 的书“Learning Perl”:“Perl 是 'Practical Extraction and Report Language' 的缩写。它实际上是一个缩略词,而不是首字母缩略词,Larry 先想出了这个名字,然后是扩展。这就是为什么 'Perl ' 不是全部大写。"
  • “Perl”有许多缩略词,其中最值得称赞的是您命名的那个。另一个传统的扩展是“病态折衷的垃圾李斯特”。这个名字最初来源于“珍珠”。

标签: computer-science


【解决方案1】:

也尝试学习一点理论。比如数学逻辑、面向对象的概念、递归、设计模式、数据结构、算法等……因为现在有大量的语言和技术,没有人能确定,但​​计算机科学的基础永远是站得住脚的真的。

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

【讨论】:

  • 计算理论和数学的复习很重要+1
【解决方案2】:

听起来您已经在语言方面打下了良好的基础。如果您热衷于花时间领先一步,请考虑研究以下一些领域:

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

您还可以观看last years PDC 的一些会议,这可以让您深入了解事情的发展方向。

您可能还想探索不同的平台(Web、桌面、移动设备),看看您是否偏爱其中之一。

【讨论】:

    【解决方案3】:

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

    现在是大学前的夏天,所以放松并享受自己。尽可能多地投入到你喜欢的业余项目中(它们应该很有趣!),但要知道在大学里会有很多时间来争论你应该使用 vi 还是 emacs。

    【讨论】:

    • 或者两者都没有(他们都烂,只是方式不同 :-)
    【解决方案4】:

    看起来你的编程背景和经验比大多数同学都多,所以我认为你已经走在了前面:)

    我的一个建议是,与其尝试学习新的编程语言或提高您对现有语言的知识,我建议您重新检查您已经知道的知识,并尝试以更学术、更概念化的方式来构建这些知识光。请记住,您将开始一个计算机科学课程,而不是计算机编程培训课程。

    鉴于您当前的背景,以下是您可能想要进一步探索的一些想法:

    • 您已经知道哪些语言是动态类型的,哪些是静态类型的?每种风格的优点/缺点是什么?它们起源于哪些语言?

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

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

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

    【讨论】:

    • 所以我不应该担心我从未使用过 C/C++ 或使用 Duck-Typing 编程过?
    • 不,完全不用担心!您可以在需要时按需选择这些语言。我同意 JDany(见他的帖子)的观点,如果你有精力,你应该努力学习一些计算机科学,而不仅仅是更多的编程语言细节 :) 否则好好享受你的夏天吧!
    【解决方案5】:

    您已经远远领先于大多数(通常)进入计算机系的学生。如果你愿意,你可能会在暑假里学习人们在这里向你推荐的一些东西,但如果你问我,大部分是你在 CS 教育期间作为 CS 课程的一部分学习的内容.在事情上有一个良好的开端是很好的,但我认为这不是绝对必要的。它当然可以帮助你减轻你在学期中将面临的负担,因为你每学期必须处理许多课程(时间不长)。但是,我确实相信这可以培养学生在压力下和有限的时间跨度内学习新事物的能力,其中一些可能与其他新事物无关,我认为这是学习和调整的重要技能.

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

    【讨论】:

      【解决方案6】:

      我想说这真的取决于你想从事的计算机科学方向。

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

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

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

      您提到您曾使用过几种语言。我会保持这种状态。不要只关注 C# 或 Microsoft 特定平台。

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

      了解abstraction。这也可以让您在同行中领先一步。

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

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

      你知道difference between ASCII and Unicode吗?

      或者你已经很好地掌握了这一切?

      了解动态语言、函数式编程、OO 编程。

      Java 和 C# 有很多共同点。那么为什么不玩一些不同的东西呢? 试试 Haskell。玩 Erlang。尝试在 Lisp 中做一些事情。它们都略有不同。

      也不要只坚持“中间层”语言。 复习 SQL(不仅仅是 mySQL 或 SQL Server,还有 ISO/ANSI 标准 SQL)。 复习表现逻辑——HTML / CSS,也许还有flash。

      您不必掌握所有这些语言,只需了解它们即可。

      在您感兴趣的领域/语言中开展项目很有价值。通过一本书中的实验室工作是一回事,但实际上完成一个完整的项目是另一回事。你能在暑假期间做一个你感兴趣的项目/网站吗?

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

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

      还有wear sunscreen

      【讨论】:

        【解决方案7】:

        我的第一个暑假和随后的暑假都在一家小型 ISV 担任程序员,如果他们在大学/大学里没有教的一件事是如何处理客户/老板等,那么您可以从中汲取经验做一些编程工作是一个很大的好处——当你以后申请你的第一份“真正的”工作时,你的简历也会看起来更好。赚到的零用钱也是加分项——即使只是多买几桶啤酒:)

        【讨论】:

          【解决方案8】:

          买一台咖啡机!

          【讨论】:

          • 我会,但我不喜欢这种味道,我会坚持使用露水:)
          【解决方案9】:

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

          这里的另一个想法是,你会在 CS 之外开设哪些第一年课程,你是否为这些课程做好了准备?你能画出第二、第三和第四年的课程似乎会给你一个“我必须接受那个!”感觉,以便您可以为此做好准备。您对校园、可能会提供帮助的学生组织(如 CS 俱乐部)或其他可能出于共同兴趣而聚集的技术人员了解很多吗?

          你知道你怎样学得最好吗?如果有人让你学习一些 gobbledgook 主题,你知道你会如何处理它并完成它吗?

          我想这里很多人已经涵盖了各种技术建议,所以我不会在这里重复。

          【讨论】:

            【解决方案10】:

            作为一个已经完成大学一年级并攻读计算机科学学位的人,我可以提供不同的观点。

            我的建议是放松一下,不一定要阅读有关将要涵盖的主题的书籍。你会走在潮流的前面,并且可能会在课堂上感到非常自大。您只需要准备好在课堂环境中学习新事物即可。

            第一年之前的夏天没有真正的“点”学习,第一年既是“除草器”又是“均衡器”,领先意味着你不会被淘汰你会在被均衡时感到无聊。

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-09-13
              • 1970-01-01
              • 2014-09-21
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多