6
votes

Programmation du réseau: Python contre c pour un débutant complet

Je cherche quelques indications, j'ai été signalée sur ce site.

Mon principal intérêt est la programmation réseau. J'ai fait un peu de lecture et d'expérimentation et je suis familier avec des mécanismes de la plupart des protocoles. Maintenant, je veux commencer à écrire du code. J'ai lu des trucs d'introduction sur Python et j'ai bien compris aussi. Je venais de commencer à jouer avec les modules Python, quand j'ai rencontré quelqu'un (avec une grande réputation) à la réunion de la colonne locale qui m'a dit que je pouvais toujours apprendre Python très facilement plus tard, mais c'était la langue que je dois savoir spécialement de mon intérêt sur la programmation du réseau. J'ai fait des recherches et j'ai pensé que le gars a raison. Donc, j'ai été avec une K & R pendant 4 semaines maintenant. Cela ne m'a pas intimidé mais je progresse très très lentement et peut-être que c'est pourquoi aussi relâcher un peu. Je pose cela parce que je suis au stade où il me préoccupe même maintenant. Je pense toujours que dans Python, je pouvais construire des choses en ce moment. Je sais que Python ne m'apprendra pas des choses de niveau bas comme la gestion de la mémoire, etc., mais mes progrès sont de la douleur à la douleur lentement dans c.

Question: Devrais-je continuer à se battre avec C comme je suis maintenant et j'écris du code de travail dans celui-ci ou à passer à Python où je serai à un peu plus facile? Un langage de haut niveau me gâte-t-il trop pour revenir à c plus tard?


4 commentaires

Go golang.org pourrait être une meilleure alternative que c pour la programmation réseau.


Si vous recherchez pointeurs , c est la voie ;-) Plus sérieusement, Python est probablement une approche plus approchée dans cette situation ...


Insérez un lien vers la bande dessinée XKCD, "Pointeurs", ici. Mais oui. Vous n'avez éventuellement pas besoin de savoir c si vous voulez apprendre la mise en réseau à la "Ce qui vient d'arriver à ce peu de choses?" niveau. Ce que vous n'avez probablement pas, au moins en ce moment.


Je ne peux pas répondre, la question est fermée. Allez python, pour apprendre d'abord. Mais personnellement (lorsque l'apprentissage) C ++ a été beaucoup plus attrayant que la sale sale sale Witchy Witchy C. Avec des classes, vous pouvez saisir l'ordre dans le code, C est souvent illisible pour le plaisir d'être des optimisations difficiles (mais vraiment stupides). Cela étant dit, allez python pour le moment, bien amusant, beaucoup de choses que vous pouvez réaliser avec elle.


9 Réponses :


17
votes

Utilisez simplement Python. Vous aurez accès aux mêmes API de socket de bas niveau que dans C, sans avoir à en apprendre davantage sur l'indirection et la gestion de la mémoire en même temps.

Plus tard, si vous trouvez que Python est trop lent pour vos besoins, vous pouvez réécrire certaines pièces dans C. mais ne le faites pas pour commencer.


0 commentaires

1
votes

En tant que programmeur Python, je vous donnerais le conseil opposé. Apprenez d'abord python. Au moins jusqu'à ce que vous appreniez les limitations et les possibilités que cela a comparé à ce que vous pouvez faire dans C. Ensuite, utilisez C pour ces problèmes de loin que vous ne pouvez pas réparer dans Python. :)


0 commentaires

5
votes

Selon quel niveau (s) de la pile de réseau que vous souhaitez travailler, C peut être indispensable, utile ou difficilement pertinent. Mais si vous essayez de lutter contre C d'abord consiste à porter votre motivation, par tous les moyens revenir à Python et obtenir du succès et donc une incitation - vous pouvez revenir à c plus tard. Apprendre une langue plus facile d'abord, plus plus tard, est une progression parfaitement naturelle! MIT, par exemple, utilise Python pour quelques cours de "programmation 101" - et pourtant, très certainement, qui ne transforme pas les élèves de langues plus difficiles telles que c (ou même c ++, ce qui est encore plus difficile!) Dans des cours ultérieurs. < / p>


0 commentaires

8
votes

Cela dépend de quelles fins pour la programmation de réseau que vous avez. Vous devez faire des tests pour être sûr, mais si la performance est critique et en fonction de la charge, vous voudrez peut-être aller avec c.

Si cela ne dépend pas de la vitesse, j'utiliserais Python, car il a tendance à être plus facile à utiliser et à être moins exposé aux erreurs résultant d'une langue de haut niveau. Il possède également un excellent ensemble de bibliothèques pour la programmation liée au réseau et en général.

Depuis que vous êtes neuf, voici quelques liens qui pourraient être intéressants:


0 commentaires

5
votes

Il y a vingt ans, même dix, vous ne pouviez pas vivre sans elle.

Maintenant beaucoup font.

Il est possible (probable, en fait) que plus de la moitié des programmeurs du monde ne connaissent pas C. Il est totalement inutile pour le travail Web et pour la plupart des travaux d'application. Je suis gracieux avec cela - si vous deviez vraiment inclure Web, passe-temps, consultants à l'étranger etc., le pourcentage qui a utilisé C est probablement assez faible à ce stade.

Embedded utilise souvent C, mais j'ai travaillé sur 2 plates-formes embarquées (un analyseur de forme d'onde et une boîte de câble) où je n'ai rien fait mais Java Travail.

Honnêtement, une compréhension de base de C est agréable pour écrire des pilotes et compréhentant les pointeurs, mais ces jours-ci, vous pouvez facilement traverser toute une carrière sans jamais avoir besoin de C. i personnellement sauter complètement C ++, bien que ce soit utilisé un peu, je ne vois pas de gros avantages pour l'apprendre maintenant.


0 commentaires

1
votes

Je recommanderais Python comme meilleur choix pour tout débutant complet dans la programmation. Et je pense que pour la mise en réseau, Python fonctionnera très bien.

Dans la mise en réseau, vous devez attendre un moment (en termes informatiques) pour que les messages soient envoyés et reçus. Même si votre langue est beaucoup plus lente que c, vous ne remarquerez peut-être aucune différence. Et les tripes de bas niveau des bibliothèques de réseau Python sont probablement écrites en C de toute façon; Python n'est pas très lent lorsque vous l'utilisez comme moyen d'invoquer C code.

Aussi, en tant que débutant, vous seriez émerveillé de la quantité de travail en C pour gérer toutes les conditions d'erreur possibles. En Python, vous pouvez utiliser la manipulation des exceptions pour gérer facilement les erreurs. C'est vraiment mieux.

Et enfin, dans l'événement improbable que votre application fonctionne bien, mais est trop lente dans Python, vous pouvez facilement écrire un C "module" qui remplacera la partie critique de votre application Python. Obtenez un prototype de travail, trouvez la partie qui doit être rapide et remplacez simplement cette partie avec C. beaucoup moins de travail que de faire tout ce qui est en c.

Pour le moment, j'écris c comme mon travail de jour et j'écris Python pour le plaisir. Je peux me faire beaucoup faire dans quelques lignes de python. Vous trouverez plus facilement d'apprendre avec Python, vous aurez plus fait, vous aurez moins de bugs et vous en profiterez plus.

Je suggère de commencer avec le livre apprendre Python .

bonne chance et amusez-vous!


0 commentaires

1
votes

Je recommanderais de commencer par Python, sauf si vous avez absolument besoin de la vitesse. On dit souvent que les langues de programmation ne sont que des outils dans votre boîte à outils et certains sont en mesure d'accomplir une tâche donnée mieux que d'autres. Si vous n'avez pas besoin de la vitesse, Python va accomplir la tâche que vous souhaitez accomplir avec moins de code et sera plus facile à apprendre.

Je suis entièrement autodidacte et je suis allé de Apple II Basic à la langue d'assemblage aux langues de script (PERL, PHP, RUBY) et que l'utilisation de la plupart du temps C. C est une langue relativement petite, mais je crois que j'ai commencé Avec C, j'aurais probablement perdu ma motivation. Commencez avec Python - vous apprendrez l'essentiel de la programmation, puis si vous avez le besoin ou le souhait d'apprendre plus tard, il sera plus facile de ramasser.


0 commentaires

2
votes

Je recommanderais d'utiliser Python. Parce que c'est une langue de niveau plus élevée que c, vous pouvez vous concentrer davantage sur le "quoi" plutôt que le "comment". Cela signifie que vous pouvez éviter le niveau de détail requis par C afin de réaliser ce que vous devez faire en ce moment.

Cela ne veut pas dire qu'un faible niveau de détail n'est jamais nécessaire. C'est certainement, mais à ce moment-là, je vous recommanderais de l'ignorer et de le ramasser à l'avenir, si vous devez.


0 commentaires

0
votes

Apprenez LISP, sa performance est presque celle de C et de sa facilité à apprendre et vous pouvez faire plus dans LISP que vous ne pouvez en python et ce n'est pas difficile à apprendre. Vous pouvez également faire une programmation de langage naturel pour résoudre des problèmes. aller lisp.


0 commentaires