Je suis un débutant à la programmation. Devrais-je apprendre des structures de données et des algorithmes et le langage de programmation Java côte à côte? Maintenant que je connais des structures de données et des algorithmes constituent la base de la programmation. Devrais-je les apprendre d'abord? P>
Je suis confus. Que devrait être mon chemin d'apprentissage? P>
Je veux être un très bon programmeur Java. P>
8 Réponses :
Je pense que c'est bien d'apprendre les deux côte à côte. Si vous essayez d'apprendre d'abord les structures de données et les algorithmes d'abord sans faire de programmation, il sera un peu abstrait - je pense que vous êtes susceptible d'apprendre plus efficacement si vous pouvez utiliser em> ce que vous êtes apprendre dans un contexte pratique. Cela signifie également que vous pouvez expérimenter ce que vous apprenez ... Il est plus difficile d'expérimenter de manière théorique. P>
ok..Merci pour répondre :)
Je pense que vous devriez apprendre que les bases mêmes de Java, commencent ensuite à en apprendre davantage sur les structures de données et les algorithmes côte à côte avec un java plus avancé. Si vous commencez à regarder dans des algorithmes sans apprendre au moins certaines constructions de langue, les choses vont être difficiles à saisir. p>
La plupart des livres de structures de données vont être enracinés dans un langage de programmation. Je suggérerais de trouver un qui utilise Java et d'aller de là. Cela étant dit, DS et algorithmes sont formidables, mais ceux qui ne vous feront que «un très bon programmeur Java». P>
Voici un lien vers une recherche Google Shopping pour les livres de structures de données Java. Je prendrai sortir avec moi en disant que je n'ai jamais lu d'entre eux et que le livre DS que j'ai lu au collège a été écrit pour c. P>
Vous devez également consulter la bibliothèque pragmatique (Google it, je ne peux pas coller plusieurs liens avec mon faible représentant) également, ils ont des livres sur le Craft em> de la programmation, plutôt que Juste des langues. Très pratique en effet. P>
Apprenez à utiliser em> le cadre de collections: p>
http://java.sun.com/docs/books /Tutorial/Collections/index.html P>
http://www.cs.lmu.edu/~ray /talks/jcf.pdf p>
http://java.sun.com /javase/6/docs/technotes/guides/collections/changes6.html p>
Certainement, ma recommandation est d'apprendre d'abord des algorithmes d'abord et des structures de données après ... et ensuite un langage de programmation comme Java. Je parle par mon expérience. p>
Ma recommandation: P>
1.) Apprenez les bases P>
(à l'exclusion du chapitre Generics, il s'agit plus d'un sujet plus avancé) p>
2.) Tout en apprenant les bases, pratiquez vos connaissances acquises en résolvant des exercices simples p>
3.) Commencez à mettre en œuvre des algorithmes simples, apprenez à utiliser la récursion p>
4.) Prenez un bon livre sur les structures de données et les algorithmes et commencez à les apprendre P>
La recherche binaire est un tel algorithme qui semble extrêmement simple mais est difficile à mettre en œuvre correctement. Je ne pense pas que cela devrait être dans des "algorithmes simples"; J'ai vu ma part d'implémentations incorrectes dans le code de production.
@Ritsaert vous êtes absolument juste. Quand je l'ai mis en place pour la première fois pour une mission, je l'ai également mal arrivé ;-).
Le tri des bulles peut être utile dans la pratique d'un jeu de données est petit IMHO mais +1 pour cela comme c'est vraiment un excellent point de départ
Souvent, nous les programmeurs n'apprencent jamais d'être de bons programmeurs. P>
La langue que nous allons entrer en premier a trop d'influence sur la façon dont nous pensons sur les problèmes. Plus tard, nous pouvons apprendre d'autres langues mais nous continuons écrire des programmes comme si nous utilisions le premier. P>
Nos horizons sont coupés par cette langue de départ (par exemple Java) ou paradigme (par exemple orienté objet). P>
Bien que nous sentons que nous manquons de quelque chose, nous sommes trop occupés Combattre les alligators à drainer le marais qui nous tourne. P>
Mon conseil est de ne pas sauter dans Java, ni autre chose trop vite. Exposez-vous à une progression des langues dès le début. Vous finirez par mieux faire un meilleur programmeur Java. p>
C'est un très bon chemin à suivre: p>
Je vous recommanderais personnellement que vous appreniez Java, bien que la plupart des langues de programmation feront. Bien que des algorithmes et des structures de données soient une partie importante de la programmation, elles ne sont pas la seule. Il est utile de connaître un langage de programmation lors de l'étude de tout sous-section du royaume de l'ingénierie du logiciel, tel que A.I. ou des structures de données, comme cela vous donne une compréhension plus profonde du fonctionnement intérieur des algorithmes. Il est important de pouvoir lire pseudocode et la traduire en code de travail réel. P>
the Les tutoriels de soleil sont excellents car ils couvrent un grande quantité de matériau, à la fois débutant (voir la section de base de base) et avancé. P>
Ce manuel Java gratuit est génial car il peut être consulté en ligne ou hors ligne en téléchargeant une version PDF gratuite. P>
Je recommanderais ensuite une certaine pratique de saisir pleinement la langue, que ce soit en travaillant sur de petits projets personnels (jeux de texte simples, utilitaires, etc.) ou en étudiant du code source ouvert. Sourceforge est excellent pour cela. p>
Aussi, si vous aimez Mathematics, Project Euler est un excellent moyen d'apprendre Java (ou toute autre langue d'autre que Les problèmes peuvent être résolus dans n'importe quelle langue). Cela vous aidera également à développer les compétences nécessaires pour travailler avec des algorithmes et les résoudre. P>
Une fois que vous avez l'impression d'avoir une bonne compréhension de votre langue de choix, passez à des algorithmes et les structures de données ne seront pas seulement plus faciles mais plus agréables. Votre capacité à traduire le pseudo-code en code de travail sera très utile car vous pouvez vraiment comprendre le fonctionnement des algorithmes et des structures de données et peut les mettre en œuvre dans des applications de test. P>
Voir aussi Stackoverflow.com/questions/2786995/... Publié par le même utilisateur.