97 votes

Quels concepts informatique je devrais savoir ?

Quels concepts en Science Informatique, pensez-vous avoir fait de vous un meilleur programmeur?

Mon diplôme en Génie Mécanique de sorte d'avoir fini en tant que programmeur, je suis un peu défaut dans les bases. Il y a un peu de la norme CS concepts que j'ai appris récemment que m'ont donné une compréhension beaucoup plus profonde de ce que je fais, en particulier:

Fonctionnalités De La Langue

  • Les Pointeurs Et La Récursivité (Merci Joël!)

Structures De Données

  • Les Listes Liées
  • Les tables de hashage

Les algorithmes de

  • Bulle Sortes

Évidemment, la liste est un peu court pour le moment donc je m'attendais à des suggestions à:

  1. Ce que les concepts que je devrais comprendre,
  2. Toutes les bonnes ressources pour bien les comprendre (comme Wikipédia peut être un peu dense et académique, parfois).

63voto

jammycakes Points 2999

Jetez un oeil à ce blog par Steve Yegge (anciennement de l'Amazonie, maintenant à Google):

Il va dans quelques détails sur les cinq plus importants concepts que les développeurs devraient être tenus à savoir:

  1. Programmation de base (y compris la récursivité, fichier I/O, sortie formatée, boucles, etc)
  2. Conception orientée objet (y compris les modèles de conception, etc). Vous devriez être en mesure de créer des OO dessins ainsi que la compréhension des concepts.
  3. Les scripts et les regexes.
  4. Structures de données -- listes, ensembles, tables de hachage, arbres, graphes, etc-ainsi que Big O la notation et de la complexité algorithmique.
  5. Bits, octets et des nombres binaires -- comment les nombres sont représentés au sein de l'ordinateur, et comment les manipuler.

36voto

sharptooth Points 93379

Vous devez certainement comprendre la notation Big-O et des estimations de Big-O des algorithmes - ce que c’est, comment il est utilisé, pourquoi il est important, comment vous comparez deux algorithmes donnés leurs estimations de Big-O, comment construire des estimations de Big-O pour la simple algorithmes.

30voto

Rik Points 12802

Je trouve ça un peu drôle que vous êtes à la recherche pour les sciences de l'informatique de sujets, mais de trouver wikipédia trop académique :D

De toute façon, ici, en fait, dans aucun ordre particulier:

14voto

bubaker Points 1680

Certains concepts qui contribué à mon développement (l'intellect et le code):

  • Lexing, l'Analyse, la correspondance de Chaîne Regex
  • Memoization
    • l'encapsulation/portée/fermetures
    • la mise en cache
  • La récursivité
  • Les Itérateurs Et Les Générateurs
  • Programmation fonctionnelle - John Hughes est incroyable de voir l'article m'a eu à "pourquoi"

Ce sont des domaines des mathématiques discrètes, mais un sérieux introduction est nécessaire pour CS:

  • Matrice/Algèbre Linéaire
  • La Théorie Des Graphes

Bien que les conférences et les articles de Mark Jason Dominus sont souvent orientées vers Perl pirates, je pense que tout programmeur devrait bénéficier de sa clarté de la présentation et de code réel, en particulier en Ordre Supérieur Perl.

10voto

Jeremy French Points 7609

Je dirais que de nos jours une compréhension de l’objet orienté programmation est une nécessité, même si vous n’avez pas besoin de l’utiliser au jour le jour.

De là, je dirais aussi comprendre que les patrons les plus fréquents peuvent également aider.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X