下学期(从不到5周开始),我将进行系统编程,并同时使用。显然,SP是在Linux上工作的中心,我只有Java和Python的经验,所以我对此有些紧张。

对于那些在大学里接受这些的人,我应该寻找什么?

我已经接受了计算机组织,其中包括汇编的概述。除了在组装中实施循环外,我的范围从b+到a-在组装项目中。但是,建筑电路是另一个故事。

有帮助吗?

解决方案

好吧,尽管可能会有一些概括,但正是您需要的一切取决于课程。我建议您为Java程序员提供一本C书籍。它可能指出主要的陷阱并帮助您过渡。

您在C中不必担心的最大项目是指示器和内存管理。 Java参考在技术上是指的指针,但它们严重愚蠢的指针,从我所看到的,Java程序员并没有真正将它们视为它们是它们的指针,并且通常在最初遇到一些麻烦。与之并驾齐驱的事实是,您不会有垃圾收集器,因此任何分配在堆上的东西不仅必须手动分配,而且还必须在当您''时手动分配它。重新完成。因此,您将不得不熟悉 mallocfree. 。您也不会上课,并且C中的结构不能在其中具有功能,因此您通常不会以面向对象的方式在C中编程。这可能对您来说可能没什么大不了的。但是,这确实意味着您将在系统编程课程中学习的内容和面向对象的设计课程可能会大不相同。

OOD应该更多地是您所知道的,教您如何以面向对象的方式更好地编程。另一方面,系统编程更多地是关于下降和肮脏的,并且在处理过程中将更加低级。两者对于成为一名优秀的程序员都非常重要。

在不知道您的确切技能和经验的情况下,并且在不了解确切的课程的情况下,提供更详细的建议将是困难的,但是主要是,问题可能在于处理C如何无法为您管理和不做任何事情' t尝试使您免受自己的侵害。您必须在C中比在Java或Python中更仔细的编程。有很多完全合法的内容,这是非法的许多其他语言,可能会让您感到惊讶。尽管如此,要关注的主要内容是指针和手动记忆管理。

其他提示

没有恐惧 - 这只是代码

Java和C具有来自相同语言家族的非常相似的语法。正如其他人所说,您最大的障碍将是学习指针(提示: 他们只是间接)和内存管理。突然,必须处理您在Java中宣布的所有这些数组。像任何主题一样,一旦您分解了全部内容,它突然变得直接。

总体而言,更多的是学习您将要工作的环境,而不是某些语言语法和构造。 Linux编程与一般Java编程非常不同。一个密切依赖操作系统API,所有c指针和结构,另一个通常要简单得多,因为它处于较高的抽象水平,其中还有很多。

发展心态

也许您的方法是在虚拟机(浮现在类似机器或VMware)中维护两个工作环境。一个纯粹是为了开发C代码,另一个用于Java,不将其混合。您可以为桌面使用不同的主题来增强不同的心态(黑色,C蓝色,Java或其他任何)。每次您在一个或其他环境中工作时,您都有许多视觉提示来促进完成工作所需的适当心态。

我总是发现在同一学期上很难上课。

如果您的系统课程非常低,则可能需要做一些非常非OOO的事情。

如果您可以将两者保持直率,尽管这可能是学习每种方法优势的好时机。

我在OOD课程中的个人经验是,您需要进入几乎理论上的抽象才能获得全部信誉,并且系统课程通常比代码更重要,因为在一个学期中构建大量OS功能是不合理的。

如果您从未做过任何C或汇编器,请准备在一个全新的水平上了解Java和Python。即使您已经有一些Comp SCI调查课程,告诉您记忆和参考如何工作,您几乎可以肯定不会完全掌握它。

以开放的心态和敞开心heart进入它。 C是一件美丽的事情,但根本不像Python美丽一样。它更美丽,就像一把沟槽刀美丽一样。

对于系统,您必须降低。您必须了解基本内容指针,内存管理,寄存器,系统呼叫,甚至组装和系统体系结构等。 OOPS处于较高的抽象水平。因此,您将不得不不断切换您的视角或抽象框架。只要您牢记这一点,我认为这不应该那么困难。

许可以下: CC-BY-SA归因
scroll top