代码之家  ›  专栏  ›  技术社区  ›  chester89

如果学习和工作中的时间有限,那么首先学习什么?——C++/STL /QT或.NET/C?

  •  0
  • chester89  · 技术社区  · 17 年前

    我现在是一个四年级的CS学生(共5年)。我在学习和工作。在工作中,我使用ASP.NET。所以,在工作和学习的时候,我没有那么多时间学习新的语言和技术。
    你建议先学习什么?C++/STL /QT还是C/Y/LINQ/WPF? 我的意思是,C++和它的库是稳定的,不会像.NET技术那样快速变化。所以,如果我选择先学习C++,可能是在我决定完成对它的学习的时候,.NET技术是如此之遥远,以至于我无法真正地捕捉到它们。
    最后,在6月底,我从亚马逊收到了6本关于WPF、WF、Astoria、EF和LINQ的书。所以,如果C++先行,当我决定打开它们时,这些书就会过时。
    编辑
    在我看来,我将为.NET开发生活和C++。但是,尽管如此,我还是想学习这两个方向。
    这是一个棘手的部分——我正在学习.NET/C,差不多一年了,C++长了一点。所以,问题是,学习这些东西的最佳顺序是什么?

    12 回复  |  直到 11 年前
        1
  •  11
  •   Jay    17 年前

    C++是工具的凯迪拉克。更难学习和使用,但更强大。 C握着很多手,学习起来更容易,但限制性更强。 你想成为最好的吗?选择C++。 你只是想找份工作吗?选择C

        2
  •  3
  •   jmq ryanshow    17 年前

    我会确保我首先知道C++。如果你是一个CS学生,你会得到很好的服务,因为你知道这是你以后学到的所有东西的基础。您将获得低级别能力(普通C)、指针、内存管理和稍后的OOP的混合。了解C++中可用的一些编程基础,这些抽象原理在Java和C语言等语言中被抽象。

    imho,这作为一个基地会更好地为你做准备。

    我从UNIX和C开始学习C++。我现在用Java工作,我无法相信从那个基础上学习Java是多么容易。

    JMHO。

        3
  •  2
  •   cwap    17 年前

    既然您已经在使用ASP.NET,那么您应该对.NET框架有点熟悉。许多ASP.NET(和声明性UI设计)的思想都被带入了WPF,这将对您有很大帮助。

    我会说去吃WPF/C。它可能会使您能够在更少的时间内做更多的工作,而不是用C++/STL/Qt(/Boost?).

        4
  •  2
  •   Charlie Salts    17 年前

    使用C您可以相对快速地运行许多有趣的事情,而不必太担心内存管理。

    另一方面,C++是一种非常有价值的技能。 坚硬的 .在C++中编码需要很长的时间。 好 .

    我将首先处理C和相关技术——把你的设计模式和数据结构用到,然后再回到C++。正如你所说的,C++不会改变这么多。

        5
  •  2
  •   StackedCrooked    11 年前

    C和C++之间的选择取决于你的个性:

    • 如果你想快速(或多或少)顺利地完成工作,那么选择C。#
    • 如果你感觉更像掌握一门手艺,那就学习C++

    我的印象是C职位的报酬也比较高(我是C++开发人员)。

    如果你想同时学习这两种语言,那么我建议你先学习C语言,因为它更容易掌握,它可以作为C++的垫脚石。

        6
  •  1
  •   Eric J.    17 年前

    最好的答案取决于你当地的劳动力市场(看看网上招聘板,看看有什么需求)和你的个人兴趣(不要低估这一点……你会很好,你会感兴趣的)。

    在加利福尼亚的橙县,C似乎比C++更需要更多。

        7
  •  1
  •   JeremyWeir    17 年前

    如果你认为你将来会做更多的.NET开发工作,这对你来说很有趣,我会继续学习。但是,如果你的目标只是获得更多的接触面,那么就选择一种新的语言。

        8
  •  1
  •   Shaun    17 年前

    虽然我个人喜欢C++,但并不是每个人都喜欢。我说,如果你想有市场,既然你已经做了ASP.NET,那就走.NET路线吧。学习它在今天的简历上比C++更突出,除非你想专攻“系统”开发。

    我的0.02美元。

        9
  •  1
  •   Remus Rusanu    17 年前

    重要的是学习和理解 真的? 在机器里继续。内存、CPU、I/O、设备。要了解堆栈、分配堆、内存中的结构布局、虚拟方法调用、线程、缓存等等。C和C++更接近金属,你将会是 强迫 理解这些概念。clr处于更高的抽象级别,隐藏通常隐藏在法庭后面。但我的想法是一旦你 知道 这台机器的工作原理很容易从clr和udnerstand的烟雾和镜子中看到发生了什么。当您调试一个问题,或者当您设计一个应用程序时,当您了解系统并将其用于您的优势时,这将极大地帮助您。如果你只是学习高级管理的堆栈,它将永远看起来是某种巫术,你将陷入错误的假设和错误的决定。这就是为什么我相信你对这个领域充满热情,你应该学习和 使用 一些C/C++。

    对于本机OS API(即Windows上的win32)和托管的等效操作系统,有一个类似的理由,但情况较弱。最初.NET框架是win32 api上的一个薄垫片,在需要从托管对象获取句柄并执行一些p-invoke以利用一些留在托管库中的api的地方都可以看到。但是思想已经进化了,现在有了暴露的整个框架 只有 作为管理(如wcf),您可以在使用上走很长的路 Stream.BeginRead 甚至不知道 GetQueuedCompletionStatus 存在。

    除此之外,学习C++和学习C语言主要是学习标准库与托管框架的问题。标准的库要多得多 乐趣 imho和他们将更快地向您展示先进的概念。您可以转换理解STL算法的经验,以及让您的第一个mem_fun_p稍后工作到托管代码(lambda表达式,linq)的乐趣。

    因此,为了减少闲聊,我相信在去C语言之前应该了解C/C++。Lerning C和to 开始 使用托管框架是 容易的 . 需要几年时间 主人 它看起来像是在未来的几年里,随着新版本的发布,使库中旧的部分过时,它将比您领先一步。如果你在第一次行动时没有抓住下面发生的事情,你可能就没有时间再追上来了。

        10
  •  0
  •   Jherico    17 年前

    从C++背景来看,.NET框架和C语言的垃圾收集使其更容易在业务逻辑上启动,而不是编写支持类。

        11
  •  0
  •   MRG    17 年前

    C++要求你知道很多东西,我建议C++,因为它有比较小的学习曲线。

    C.*

        12
  •  0
  •   Gern Blanston    17 年前

    正如杰伊所说…取决于你想要什么。我认为在我们给出任何建议之前,你真的需要更新这个问题来告诉我们你的目标是什么。

    推荐文章