2010-05-28 2 views
3

Je suis un étudiant avec un peu d'expérience en Java et C++ (un semestre)pratique C pendant l'été

Actuellement, je vais à K & R et de travailler sur les exercices dans le livre. Cependant, je pensais à ce que je pourrais travailler au cours de l'été puisque j'ai presque fini avec K & R et je vais avoir beaucoup de temps libre bientôt. J'ai vraiment aimé construire des applications en ligne de commande, alors je pensais à m'impliquer dans le projet coreutils d'une manière ou d'une autre. Ma question est la suivante: est-il trop tôt pour moi de jouer avec les coreutils? Devrais-je travailler sur quelque chose d'un peu plus simple peut-être? Je suis un peu nouveau avec le monde Linux/Open source si cela compte mais je l'apprécie vraiment.

J'ai fait quelques problèmes avec le projet euler et je n'aime pas vraiment ça.

+2

pourquoi la pratique C, si vous connaissez des C++? Pratiquez C++! –

+1

Le problème d'être un débutant et de se lancer dans un projet très mature tel que les coreutils, c'est que tous les fruits mûrs ont disparu depuis longtemps. Mais par tous les moyens, suivre la liste de diffusion de développement (ou tout ce qu'ils utilisent) fonctionnera à votre avantage. Si tout ce que vous voulez est de contribuer, il y a toujours un besoin de documentation et de tests supplémentaires. –

+0

D'accord, juste aller mieux au C++, je ne peux pas penser à beaucoup de raisons de descendre à C. Surtout si vous êtes encore en train d'apprendre C++. :) – jsmith

Répondre

0

Vous pouvez faire d'autres choses avec C:

  • Utilisez différentes structures de données comme lien liste, arbre, hacher, tas
  • Essayez de codage différentes implémentation de l'algorithme
  • Jouer avec diverses manipulations de chaînes
  • travail avec le système de base et la prise programmant

Liste continue ..

0

Il y a (je dirais) probablement seulement un couple d'endroits où C est encore largement utilisé de préférence au C++, donc si vous voulez faire une différence dans le monde Open Source, je vous recommande de penser à travailler dans l'un des domaines suivants:

  • Pilotes de périphériques, et en effet la plupart des aspects des noyaux OS.
  • Interfaces de langages de script (Python, Perl, Lua, etc.)

Dans les deux cas, C++ n'a pas d'avantage significatif ou quelques inconvénients significatifs, sur C.

Je suis absolument d'accord avec le commentaire de Mark Au-dessus, il est difficile de rejoindre un projet mature. J'ai récemment essayé d'obtenir une liaison Haskell pour SWIG, et cela s'est avéré assez difficile - et je le dis avec plus de 20 ans de C et environ 15 de C++ derrière moi! Le problème est que les bases de code matures ne sont généralement pas si propres, ce qui signifie qu'il peut être difficile de comprendre comment les choses se déroulent ensemble. Si vous avez le cas, travailler sur un périphérique ARM tel qu'un Pandora ou un autre petit périphérique embarqué que vous pouvez ramasser est très amusant, et vous enseignera beaucoup. Dans la plupart des cas, ce que vous cherchez est un périphérique avec un port Linux 'communautaire', et pour beaucoup d'entre eux il y a des composants assez basiques qui ne fonctionnent pas encore.

Bonne chance, et amusez-vous!

1

Téléchargez les sources Nethack. Joue-le. Si jamais vous passez cette étape, ajoutez de nouveaux monstres, armes, pièges et autres objets intéressants.

0

Je suis d'accord avec Jeremy O'Donoghueanswer (depuis que je suis aussi un développeur de périphériques mobiles). Allez installer une distribution linux 32 bits (si vous ne l'avez pas déjà), et commencez à pirater AndroidSource Code.

Il ya beaucoup de mailing-lists dédié à l'Android et vous pourriez essayer de discuter de quelques idées à partir de là.

Et il y a aussi Google Summer of Code si vous pouvez le faire

Questions connexes