2010-05-28 18 views
3

我有位在Java和C++(一个每学期)练下在夏天

目前经历的学生,我要到K & R和对书中的练习题。但是,我正在考虑在今年夏天我能做些什么,因为我几乎完成了K & R,我很快就会有很多空闲时间。

我真的很喜欢构建命令行应用程序,所以我想以某种方式参与coreutils项目。我的问题是,对于我来说,搞coreutils还为时过早吗?我应该做些简单的事情吗?如果有问题,我对Linux/Open源世界有点新,但我真的很喜欢它。

我已经做了一些项目euler的问题,我并不真的很喜欢它。

+2

为什么实践C,如果你知道一些C++?练习C++! – 2010-05-28 02:40:38

+1

成为初学者和跳入Coreutils等非常成熟的项目的问题在于,所有低悬的果实早已消失。但通过一切手段,跟上开发邮件列表(或任何他们使用的)将会对您的利益起作用。如果你想要的只是贡献,那么总是需要文档和额外的测试。 – 2010-05-28 02:42:21

+0

同意,只要在C++中变得更好,我想不出有很多原因可以转移到C语言。特别是如果你还在学习C++。 :) – jsmith 2010-05-28 02:42:35

回答

0

你可以做各种其他事情与C:

  • 使用不同的数据结构,如链表,树,哈希,堆
  • 尝试不同的编码算法实现
  • 玩各种字符串操作
  • 与基本制度和插座编程

列表工作进展..

0

有(我要说)可能只有几个地方C仍然被广泛使用而不是C++,所以如果你想在开源世界中有所作为,我建议你考虑在以下领域中的一个工作:

  • 设备驱动程序,实际上是操作系统内核的大多数方面。
  • 接口脚本语言(的Python,Perl和Lua的等)

在这两种情况下,C++没有显著的优势,或者一些显著的缺点,在C.

我与马克的评论绝对同意在这之上很难加入一个成熟的项目。我最近一直在努力为SWIG获得一个Haskell绑定,它已被证明非常棘手 - 我说20多年的C和大约15个C++背后!

问题是,成熟的代码库通常不那么干净,这意味着它可能很难理解事物如何挂在一起。

如果您有这种情况,使用ARM设备(例如Pandora或其他小型嵌入式设备)可以获得很多乐趣,并且会有相当多的教导。在许多情况下,您所寻找的是具有“社区”Linux端口的设备,而其中许多设备还有一些非常基本的组件尚未运行。

祝你好运,玩得开心!

1

下载Nethack的来源。播放。如果你经过那个阶段,那么添加一些新的有趣的怪物,武器,陷阱和其他物体。