Devrais-je apprendre d’abord sur les structures de données et les algorithmes ou sur le langage de programmation Java?

Je suis débutant en programmation. Dois-je apprendre les structures de données, les algorithmes et le langage de programmation Java côte à côte? Maintenant que je sais que les structures de données et les algorithmes forment la base de la programmation. Devrais-je les apprendre d’abord?

Je suis confus. Quel devrait être mon parcours d’apprentissage?

Je veux être un très bon programmeur Java.

Ma recommandation:

1.) Apprenez les bases

Apprendre le langage Java

(à l’exception du chapitre sur les génériques, il s’agit davantage d’un sujet avancé)

2.) Tout en apprenant les bases, mettez en pratique vos connaissances en résolvant des exercices simples

Chauve-souris de codage

3.) Commencer à mettre en œuvre des algorithmes simples, apprendre à utiliser la récursivité

  • Tri à bulles (uniquement pour la pratique, ne l’utilisez jamais réellement)
  • Tri par insertion

4.) Prenez un bon livre sur les structures de données et les algorithmes et commencez à les apprendre

Je pense que c’est bien d’apprendre les deux côte à côte. Si vous essayez simplement d’apprendre les structures de données et les algorithmes sans faire de programmation, ce sera un peu abstrait. Je pense que vous apprendrez probablement plus efficacement si vous pouvez utiliser ce que vous apprenez dans un contexte pratique. Cela signifie également que vous pouvez expérimenter avec ce que vous apprenez… Il est plus difficile d’expérimenter de manière théorique.

Je pense que vous ne devriez apprendre que les bases de Java, puis commencer à vous familiariser avec les structures de données et les algorithmes côte à côte avec du Java plus avancé. Si vous commencez à étudier des choses comme des algorithmes sans apprendre au moins quelques constructions de langage, les choses vont être difficiles à comprendre.

Souvent, nous, les programmeurs, n’apprenons jamais à être de bons programmeurs.

La langue dans laquelle nous abordons en premier a trop d’influence sur la façon dont nous pensons aux problèmes. Plus tard, nous pouvons apprendre d’autres langues mais nous continuons à écrire des programmes comme si nous utilisions la première.

Nos horizons sont découpés par ce langage de démarrage (par exemple, Java) ou par ce paradigme (par exemple, orienté object).

Bien que nous sentions qu’il nous manque quelque chose, nous sums trop occupés à lutter contre les alligators pour assécher le marais qui nous engouffre.

Mon conseil est de ne pas sauter trop rapidement dans Java. Exposez-vous dès le début à une progression des langues. Vous finirez par devenir un meilleur programmeur Java.

C’est un très bon chemin à suivre:

http://www.teach-scheme.org/Overview/

Je recommanderais personnellement que vous appreniez Java, bien que la plupart des langages de programmation le fassent. Bien que les algorithmes et les structures de données constituent une partie importante de la programmation, ils ne sont pas les seuls. Il est utile de se familiariser avec un langage de programmation lorsque vous étudiez une sous-section du domaine de l’ingénierie logicielle, telle que l’IA ou les structures de données, car elle vous permet de mieux comprendre le fonctionnement interne des algorithmes. Il est important de pouvoir lire le pseudocode et de le traduire en code de travail réel.

Les tutoriels Sun sont excellents car ils couvrent une grande quantité de matériel, à la fois débutant (voir la section Notions de base du langage) et avancé.

Ce manuel Java en ligne gratuit est excellent car il peut être consulté en ligne ou hors ligne en téléchargeant une version PDF gratuite.

Je recommanderais alors un peu de pratique pour bien comprendre le langage, soit en travaillant sur de petits projets personnels (jeux de texte simples, utilitaires, etc.), soit en étudiant du code source ouvert. Sourceforge est idéal pour cela.

De plus, si vous aimez les mathématiques, Project Euler est un excellent moyen d’apprentissage de Java (ou de tout autre langage, car les défis peuvent être résolus dans n’importe quel langage). Cela vous aidera également à développer les compétences nécessaires pour travailler avec des algorithmes et les résoudre.

Une fois que vous sentez que vous maîsortingsez bien la langue de votre choix, passer aux algorithmes et aux structures de données sera non seulement plus facile, mais plus agréable. Votre capacité à traduire le pseudo-code en code de travail s’avérera très utile, car vous pourrez réellement comprendre le fonctionnement des algorithmes et des structures de données et les implémenter dans des applications de test.

La plupart des livres de structures de données vont être enracinés dans un langage de programmation. Je suggérerais de trouver celui qui utilise Java et partir de là. Cela étant dit, DS et les algorithmes sont excellents, mais ceux-là seuls ne feront pas de vous un «très bon programmeur Java».

Voici un lien vers une recherche Google Shopping pour les livres de structures de données Java. Je vais sortir avec moi en disant que je n’ai jamais lu aucun d’entre eux, et le livre DS que j’ai lu au collège a été écrit pour C.

Vous devriez également jeter un œil à la bibliothèque pragmatique (Google, je ne peux pas coller plusieurs liens avec ma faible représentante). Ils ont également des livres sur le savoir-faire de la programmation, plutôt que sur les langues. Très pratique en effet.

Ma recommandation est sans aucun doute d’apprendre d’abord les algorithmes, puis les structures de données, puis un langage de programmation comme Java. Je parle par mon expérience.