Voici quelques informations sur moi, avant de commencer par la question.
Je suis un étudiant de premier cycle en informatique, Java étant mon principal langage de codage.
Le problème fondamental de mon université concerne les normes d’enseignement. Personne ne s'inquiète de l'enseignement des connaissances de codage aux étudiants, plutôt que des connaissances théoriques.
L'effet étant que la plupart de mes camarades de collège ne comprennent pas du tout la programmation.
Même moi je n'ai pas été capable de sortir de l'environnement de programmation traditionnel, ce qui limite mon codage dans une certaine mesure.
Quels sont les moyens possibles par lesquels je peux développer et développer mes compétences en programmation / codage?
Aussi, pouvez-vous suggérer les sources pour la même chose?
Édité : Sources suggérant le développement des compétences de codage.
Réponses:
La programmation est l'un des domaines où l'expérience compte. Par conséquent, pour devenir un meilleur codeur, vous devez coder plus. Cependant, écrire n'est pas la seule chose à faire. Vous devriez également lire le code des autres développeurs et apprendre de ce qu’est un bon code. Reportez-vous aux questions SO à ce sujet .
Vous pouvez également trouver utiles des livres spécifiquement consacrés au codage; tels que "Code Complete". Ils contiennent des descriptions de ce qu'est un bon code qui, combiné à vos connaissances fondamentales, peut faire de vous un bon programmeur.
la source
must-read
liste. :) Merci!(push 'code-complete must-read)
Ma citation préférée est celle de Confucius:
Toutes les connaissances que j'ai acquises provenaient de l'application d'une stratégie unique:
Vous voulez apprendre le C #? Trouvez un emploi en tant que développeur C #.
Vous voulez apprendre l'italien? Allez-y avec un dictionnaire anglais / italien et parlez italien
Vous voulez apprendre le codage? Code!
la source
Coder est un bon conseil, mais sans quelqu'un pour vous donner votre avis, vous ne ferez que répéter vos erreurs. Trouvez un emploi, travaillez sur un projet open source, trouvez un mentor et demandez-leur de regarder votre code.
la source
Voici une présentation de Dan North et de QCon expliquant comment passer du programmeur débutant au programmeur expert appelée Sharpening the Tools . Vous trouverez ci-dessous les principales suggestions de la présentation:
la source
Essayez d'écrire un compilateur pour un langage simple à partir de zéro. Vous améliorerez beaucoup vos compétences en cours de route (avec en prime quelques techniques théoriques intéressantes tirées de la théorie du langage formel). J'ai essayé d'écrire une version simple d'Excel, et c'est aussi un très bel exercice.
Comme d'autres l'ont dit, le seul moyen d'améliorer vos compétences de codage est de le faire. Obtenez votre main sale avec de gros projets. Mais pour les gros programmes, il est encore plus important de maîtriser les techniques de conception de logiciels, sinon la taille du programme semble ingérable.
Il y a une belle citation de Nate Kirby:
Donc, la compétence que vous devez maîtriser est de basculer entre ces deux niveaux d’abstraction.
En outre, la vitesse avec laquelle vous pouvez écrire le nombre de lignes de code que vous pouvez écrire à l'heure n'est pas ce que vous devriez viser. J'aime une citation de David Parnas :
la source
J'ai mis en place un pool de paris ou un jeu de baccarat dans presque toutes les langues que j'ai apprises.
Ce type de logiciel couvre
Le blackjack et le poker à plusieurs joueurs fonctionneraient également.
Un inconvénient est que, dans mon travail quotidien, je travaille sur des systèmes financiers et il y a un énorme chevauchement entre les éléments à prendre en compte lors de l'écriture d'un jeu de hasard multijoueur et d'un système commercial.
la source
la source
Pensez-y comme cela ... Tiger Woods n'a pas réussi à être "le meilleur" golfeur en regardant le golf ou en lisant à ce sujet. Il a obtenu ce résultat, comme tout autre athlète, en étudiant, en pratiquant, en trouvant où il pourrait améliorer son jeu et en y apportant quelque chose.
Le codage est le même. La meilleure façon de s’y améliorer est d’étudier ce que les autres font, de comprendre POURQUOI ils le font de cette façon, puis de le faire vous-même.
la source
Comme dans toute autre activité humaine, le meilleur moyen de progresser est de mettre en pratique vos connaissances, mais vous aurez besoin d'exercices pour cela. Dave Thomas , l'un des auteurs du livre The Pragmatic Programmer, a présenté le concept de Code Katas , similaire au concept de kata dans les arts martiaux.
Vous pouvez y jeter un coup d'œil: http://codekata.pragprog.com/
la source
Sautez dans l’eau, il fera peut-être froid au début et vous serez tenté de sortir, mais votre corps s’y habituera et redeviendra chaud et, à mesure que vous vous sentirez à l’aise dans l’eau, vous pourrez ensuite nager dans les environs. limite.
Je viens de terminer mes études universitaires il y a quelques mois, où j'ai étudié Java. Même que vous, je n'avais pas la moindre idée sur la manière de coder correctement. Il y a environ un mois, je voulais créer une application Web en PHP. Je ne savais pas ce que je faisais mais j'y suis allé. C'était intimidant et accablant au début, mais en pratiquant, cela devient naturel. J'ai même écrit l'application à plusieurs reprises, chaque fois en la simplifiant encore plus. Maintenant, je travaille sur l’application à partir de rien, mais cette fois, j’imagine comment le faire objectivement et en utilisant PEAR et son module quickform, qui est un autre obstacle que je dois franchir, mais qui est néanmoins déterminé et enthousiaste.
Alors pratique. Saut dans l'eau! Bonne chance :)
la source
Je suggère d'apprendre toute la syntaxe de votre langue préférée. Comprendre comment utiliser les fonctions virtuelles, héritage, lambda si elles existent. etc. Une chose que j'ai faite a été de saisir une grande bibliothèque effrayante (avec boost et STL pour C ++) et de voir si chaque ligne et chaque mot clé ont un sens.
Vous pouvez également lire la référence de syntaxe de langage s’il en existe une bonne qui couvre la version la plus récente. À titre d'exemple, voici la référence C # (pas la version en haut. J'ai commis l'erreur en regardant une version plus populaire plus ancienne qui n'avait pas la syntaxe que je recherchais)
la source
Le consensus général est "écrire plus de code", avec lequel je suis d'accord, mais j'ajouterai à ce conseil que vous devriez écrire beaucoup de types de code différents. En ce qui concerne les langues, Java convient, mais vous devez absolument écrire du code dans le spectre de puissance. En plus de Java, je suggèrerais de faire quelques petits projets dans un langage de niveau inférieur (C est un bon pour cela), un langage de script (je préfère perl, mais python est également un bon choix), un langage fonctionnel ( lisp est la recommandation générale ici, mais OCaml et Haskell sont également de bons choix) et se familiarisent au moins avec la lecture d’un langage d’assemblage.
Choisissez également une variété de types de programmes que vous implémentez. Examinez au moins l'implémentation d'une interface utilisateur graphique de bureau, d'une application Web enrichie, d'un serveur et d'un client réseau, d'un pilote, d'un utilitaire de conversion de données, d'un traceur de rayons et d'une simulation physique.
Tous les projets doivent avoir une portée relativement petite, l’objectif n’est pas d’avoir un programme complet, mais d’avoir une vaste expérience dans les différents domaines que vous pourriez rencontrer, d’apprendre les différents types de réflexion nécessaires pour chacun, et pour savoir où sont vos intérêts.
Une fois que vous avez fait cela, vous aurez une bonne idée du type de programmation qui vous intéresse le plus et vous pouvez trouver ou démarrer un projet open source pour acquérir de l'expérience en travaillant sur des bases de code volumineuses, traitant de projets à terme, et travailler avec d'autres développeurs.
la source
Vous obtenez quelques réponses similaires et les miennes seront également les mêmes. Écrivez le code. Il y a deux bonnes façons de le faire.
L'un ou l'autre vous donnera l'expérience directe de la programmation dont vous avez besoin, ainsi que votre implication dans les communautés de programmation à mesure que vous apprenez et devez poser des questions pour en tirer le meilleur parti. Vous allez faire beaucoup d'erreurs. C'est bien. Si vous cessez de faire des erreurs, vous avez arrêté d'apprendre et vous devez trouver un nouveau moyen de vous remettre en question.
la source
Mes suggestions
la source
Les évaluations par les pairs contribuent réellement à améliorer la qualité de votre code. Si vous n'avez pas de véritable mentor, vous pouvez poster votre code [après l'avoir réduit au minimum nécessaire] sur StackOverflow ou RefactorMyCode ou sur des listes de diffusion et des personnes vous aideront à améliorer la qualité de votre code.
la source
"Entraine toi!" C'est un cliché.
Vous devriez revoir ce que vous avez appris dans les cours de mathématiques et créer des programmes qui traitent des problèmes. En outre, implémentez un programme d'ascenseurs, un distributeur automatique (qui calcule les changements de pièces), pour affiner vos compétences logiques. Pensez à tout dans la vie quotidienne et mettez-les en œuvre.
la source
Oui, la pratique est extrêmement importante pour développer des compétences en programmation et les maintenir précises. Cependant, la pratique seule ne vous mènera que jusqu'à présent. Vous devez également apprendre de personnes qui en savent plus que vous. Il existe des techniques dont vous n'avez jamais entendu parler, des pratiques dont les avantages ne sont pas immédiatement évidents, et des astuces que vous ne pourriez jamais inventer vous-même.
La manière d'apprendre de nouvelles techniques, astuces et pratiques utiles est multiple. Lire des livres. Parlez à vos collègues. Poser des questions. Passez en revue le code des autres utilisateurs et demandez-leur de réviser le vôtre. Lire des blogs et des articles sur la programmation, y compris ce site. En bref, ne travaillez pas en vase clos.
Oh, et si vous n'êtes pas sûr de ce que signifie NP-complete, ou si la notation big-O vous fait peur, alors vous devriez probablement prendre un peu de théorie du calcul et des classes d'algorithmes.
la source
Je dirais que vous devriez vous renseigner sur les modèles de conception, tels que Builder, Factory, Composite, et éventuellement Observer, Mediator et Flyweight. Les modèles de conception ne sont pas la fin ultime des solutions de codage, mais ils montrent comment implémenter les concepts théoriques de la programmation orientée objet.
la source
Je ne peux que suggérer la chose qui a fonctionné pour moi. J'avais rêvé d'apprendre le langage de programmation et de créer un moteur d'échecs avec celui-ci. Il me reste du temps pour des livres, des articles et de petits échantillons. J'ai donc décidé de vérifier les projets réels qui ont une meilleure documentation pour les développeurs. J'ai choisi un et j'ai commencé à lire le projet jour par jour. Ne pensez pas que les jours qui passent perdent du temps en lisant. C'est beaucoup mieux que de passer du temps à lire des articles et des livres. Vous rencontrerez beaucoup de choses qui ne sont pas claires à première vue, mais cela changera de jour en jour si vous essayez de faire des recherches patiemment. Ne vous attendez pas à tout comprendre en une semaine.Vous devez garder votre faible estime de vous-même lorsque vous ne comprenez pas certaines choses.Il suffit d'essayer de découvrir comment cette chose géniale fonctionne et s'amuse.
Choisissez un projet existant qui vous passionne. Commencez à lire les codes, corrigez-le et essayez de comprendre comment les choses fonctionnent au quotidien. Également utiliser le projet pour vous-même. Puis commencez à ajouter certaines fonctionnalités que vous souhaitez. Même essayer d'écrire une application identique ou similaire.
la source