web-dev-qa-db-fra.com

Quelle est la chose la plus efficace que vous ayez faite pour améliorer vos compétences en programmation?

En repensant à ma carrière et à ma vie en tant que programmeur, il y avait de nombreuses façons d'améliorer mes compétences en programmation - lire du code, écrire du code, lire des livres, écouter des podcasts, regarder des screencasts et plus encore.

Ma question est: quelle est la chose la plus efficace que vous ayez faite pour améliorer vos compétences en programmation? Que recommanderiez-vous à d'autres qui souhaitent s'améliorer?

Je m'attends à des réponses variées ici et pas de réponse unique "taille unique" - je voudrais savoir ce qui a fonctionné pour différentes personnes.

876
Oded

J'ai essayé d'appliquer une bonne technique de programmation à un langage tel que TI-83 + BASIC.

0
user14563

Il est facile de se laisser entraîner dans les marathons de codage. Il est essentiel de prendre du recul de temps en temps, de voir comment d'autres personnes ont mis en œuvre des projets similaires.

Lisez des livres écrits par d'excellents auteurs. Parcourez des livres tels que "C: A Programming Language", "The Perl CookBook", ou l'un des meilleurs pour vos langues préférées. Lisez les problèmes qu'ils résolvent, ne regardez pas les exemples de code, écrivez-les vous-même, puis comparez votre code avec le leur. Découvrez pourquoi le leur/le vôtre est meilleur.

0
SammyO

Utilisé différents cadres, IDE, systèmes d'exploitation et langages. En général, si vous n'êtes pas confus, vous ne grandissez pas. La mauvaise chose n'est pas d'être médiocre. La mauvaise chose est d'être médiocre quand vous pensez que vous êtes génial.

0
hoyhoy
  1. J'ai rejoint les communautés centrées sur les développeurs Web et physiquement
  2. Lire/Essayez de lire le code des autres.
  3. Écrivez le code.
  4. Lire lire lire (blogs, podcasts, livres, etc.) et faire ce que vous avez lu lire lire.
0
Coda

Lecture de nombreux livres et articles ..

0
Legend

Lisez plus de livres et écrivez plus de codes.

0
William

Je pense que la chose la plus importante pour moi a été lorsque j'ai pris du recul par rapport à la mise en œuvre et commencé à regarder l'ensemble, à mieux comprendre l'architecture, les modèles, les processus, l'analyse des exigences, etc.

0
mattlant

Je suis sûr que cela ne fait que réitérer les commentaires précédents:

1: Lisez le code de nombreuses langues. Comprendre comment la langue gère une situation donnée. Cela peut vous éclairer davantage dans la langue que vous cherchez à améliorer.

2: Équipes ... Débat sur les pratiques de programmation, les approches, les tests, la planification, la mise en œuvre, etc.

3: Utilisez ce qui précède pour vous concentrer sur un plus petit ensemble de langues.

4: N'assumez jamais votre droit à 100%, alors vous n'aurez aucune raison de remettre en question quoi que ce soit.

0
Matt

travailler avec des gens beaucoup plus intelligents que moi

0
Kevin

Utilisez votre ordinateur et comprenez-le bien.
Écrivez le code pour tout ce que vous pensiez pouvoir.
Lisez le bon code et apprenez à écrire. Lisez le mauvais code et apprenez à ne pas coder.

0
amadamala

Il y a beaucoup de choses mais ce qui suit a eu un grand impact sur le fait de faire de moi un meilleur programmeur

1) Pendant les journées universitaires, j'étais en compétition continue avec un camarade de classe très talentueux pour créer le meilleur jeu/programme jugé par d'autres camarades de classe. C'était comme 2 petites start-ups se battant pour des parts de marché.

2) Lire "Deep C secrets"

3) Participer à des projets Open Source où des gens intelligents peuvent commenter votre code.

0
azeemarif

Lorsque vous programmez seul, il est très facile de supposer que les choses qui vous viennent le plus facilement ou qui vous semblent les plus évidentes sont donc les meilleures. Cependant, lorsque vous êtes en contact actif avec un groupe d'autres personnes bien informées (en particulier celles qui ont plus d'expérience que vous), vous trouverez probablement de nombreux problèmes que vous n'avez jamais envisagés et des solutions à ces problèmes qui ne vous sont peut-être pas venus à l'esprit non plus. Il vaut beaucoup mieux apprendre de l'expérience de quelqu'un d'autre que de commettre ses propres erreurs et, ce faisant, foirer un projet important (de votre choix ou de celui de votre employeur). Si vous pouvez apprendre ces choses de vos pairs avant de les affronter vous-même, vous pouvez éviter de nombreux premiers faux pas qui surprennent la plupart des programmeurs. Il est possible de devenir programmeur avec une expérience junior mais une compréhension du développement logiciel par un senior si vous prêtez suffisamment attention à ce que font d'autres personnes plus expérimentées.

La chose la plus utile que j'ai faite a probablement été de passer quelques années à lire régulièrement des forums en ligne tels que comp.lang.c, comp.lang.c ++ et comp.lang.Java (quotidiennement ou au moins une fois par semaine), et participer aux discussions du forum. (Le jour où je fréquentais activement les forums, la plupart d'entre eux étaient sur Usenet. Maintenant, ils ont tendance à s'associer à des sites Web spécifiques et à des communautés de développeurs.)

Dans des groupes de discussion actifs comme ceux-ci qui attirent un grand nombre de développeurs professionnels (et en particulier des développeurs professionnels de haut niveau, tels que les auteurs de langage et les implémenteurs de bibliothèques importantes), il est beaucoup plus facile de savoir quelles techniques de programmation sont jugées utiles. versus découragés, et quels langages de programmation, outils et bibliothèques sont en faveur ou en désaccord. En outre, il est utile de prêter attention aux techniques de génie logiciel utilisées par d'autres professionnels, allant des systèmes de contrôle de version aux langages de modélisation visuelle, aux méthodologies de programmation, etc. Apprendre quels domaines sont controversés est également important - Regarder un débat prolongé entre deux développeurs expérimentés de haut niveau avec des points de vue nettement différents peut être une expérience extrêmement éducative.

Vous constaterez peut-être après un certain temps que votre langue ou votre approche de programmation préférée n'est pas aussi universellement appréciée que vous le pensiez au départ, et vous constaterez peut-être que vous commencez à envisager des alternatives - c'est bien! Cela signifie que vous commencez à devenir plus nuancé et plus réaliste au sujet de vos croyances (plutôt que d'adopter simplement la dernière mode) et, espérons-le, à élargir vos horizons pour inclure différentes façons de faire les choses.

0
unknown (yahoo)

Passez un peu de temps à y penser, plutôt qu'à le faire.

c'est à dire

  • pensez à vos compétences.
    • pensez à quelles compétences vous n'avez pas.
    • réfléchissez aux compétences que vous aimeriez avoir.
    • pensez aux compétences que vous pensez que l'industrie voudrait que vous possédiez.
  • 0
    Paul Rowland

    Apprendre une nouvelle langue par an a été formidable (même si j'ai appris 3 langues l'année dernière seulement). Je préfère toujours le C++, mais connaître différentes façons de résoudre les choses a amélioré mes compétences en codage de nombreuses façons. Cela et j'ai une série de "Katas" ou de petits objectifs de codage que je continue à essayer sur mon temps libre, en leur appliquant chaque fois mes nouvelles connaissances.

    0
    Robert Gould

    Travaillez avec les personnes les plus intelligentes possible et posez-leur des questions. N'ayez pas peur de demander.

    Quelqu'un devrait créer un site Web pour ce faire ... ;-)

    0
    Stuart Helwig

    Participer plusieurs fois à Concours de programmation ICFP .

    Il n'y a pas d'autre compétition de programmation comme ça! Chaque fois que j'ai beaucoup appris . Surtout en travaillant dans une équipe avec des gens beaucoup plus intelligents que moi.

    0
    Anton Orlov

    J'ai lu K & R2 pour la 2ème fois. Et puis relisez-le une troisième fois.

    0
    Serafeim

    De retour à l'école élémentaire, je voulais créer un faux écran de connexion qui volerait les mots de passe du PC de bureau de mon père. C'était juste un script batch qui s'exécutait sur MS-DOS et il n'y avait rien d'extraordinaire. Ensuite, au lycée, j'ai continué à écrire de simples virus de macro MSWord parce que je trouvais fascinant de pouvoir "personnaliser" MSWord à mon goût.

    Les compétences en programmation que j'ai acquises à l'époque n'étaient que des effets secondaires sur la réalisation de quelque chose que j'ai trouvé fascinant.

    0
    simoncpu

    Il n'y a pas une seule pensée à laquelle vous pouvez penser pour l'améliorer. c'est une compétence apprise. cela vous rendra meilleur par la pratique. Par pratique, je ne veux pas dire d'un seul attribut. les attributs les plus importants auxquels je peux penser sont 1. Écrire du code 2. Appairer ou collecter des persapactifs de différents ppl (activité comme codage dojo - http://www.codingdojo.org/ ). 3. révision du code

    0
    kiritsinh parmar

    Travailler en programmation par paires avec un programmeur de plus de 50 ans qui est un expert de Smalltalk. Nous programmions en Java, mais j'ai vraiment beaucoup appris sur la conception orientée objet et les techniques de débogage.

    La programmation en binôme avec un mentor expérimenté est quelque chose à recommander, tant que nous gardons un esprit ouvert.

    0
    Mario Ortegón

    Travailler avec des gens plus intelligents que moi (pas si dur) et être curieux de savoir comment tu fais les choses. La lecture aide beaucoup, mais vous devez être capable de trouver votre propre façon de résoudre les choses.

    0
    FrankS

    Travailler avec d'autres personnes a été la seule chose qui a fait exploser mes compétences. J'ai commencé à apprendre de leurs échecs. :)

    0
    zgoda

    coder beaucoup n'ayez pas peur d'apprendre de nouvelles choses

    0
    reuven

    Je sais que la plupart d'entre elles ont été mentionnées précédemment, mais je les réitérerai car elles ont fonctionné pour moi.

    1) La chose la plus importante est de s'intéresser à ce que vous faites. Si cela vous intéresse, vous êtes à mi-chemin. Rien ne tue plus votre désir de travailler/s'améliorer que le désintérêt.

    2) Trouvez quelqu'un dans votre organisation qui est plus intelligent/meilleur/plus rapide que vous et absorbez autant de connaissances et d'expertise que possible. Cela s'applique à toute personne, junior/senior/etc. Les titres d'emploi n'ont aucun sens pour moi. J'ai vu des développeurs de niveau "junior" qui avaient beaucoup plus d'expertise/connaissances que ceux supposés de niveau senior.

    3) J'ai fait de mon mieux pour suivre mon propre code de codage. Écrivez, lisez, analysez, révisez, discutez. Une fois que vous avez écrit votre code, relisez-le. Est-il maintenable? Est-il bien commenté? A-t-il l'air de faire ce qu'il devrait? Dans ce cadre, vous devez analyser le code. Est-ce la meilleure façon de procéder? Pourrait-il être amélioré de quelque façon que ce soit? Apportez des modifications en conséquence. Ensuite, passez en revue, testez-le. Fait-il ce qu'il devrait? Fait-il quelque chose qu'il ne devrait pas faire? Faites de votre mieux pour essayer de casser votre code. Une fois que vous en êtes satisfait, discutez de votre code avec les autres. Quelle est leur opinion à ce sujet? Est-ce qu'ils sont d'accord ou pas avec vos décisions? Ont-ils d'autres idées sur ce qui aurait pu être fait pour l'améliorer?.

    4) Soyez toujours prêt à apprendre de nouvelles choses et/ou idées.

    0
    Jason

    Couverture 100% des tests unitaires.

    Faire des tests unitaires a vraiment amélioré ma programmation.

    Mais l'utilisation d'un outil de couverture de code pour mesurer la couverture du test unitaire l'amène à un autre niveau.

    Un bon exemple est de prendre un module et d'essayer de faire une couverture de test unitaire à 100%.

    Vous pourriez même faire une compétition amicale avec vos collègues en prenant chacun un module et voir comment obtenir la couverture la plus élevée.

    -

    Suivez-moi sur CrowdNews.e

    0
    equanimous

    A commencé à enseigner la programmation et la conception de programmes. J'étais surtout désemparé de OO jusqu'à ce que j'enseigne un cours de première année Java cours et un cours de génie logiciel de niveau junior).

    0
    Lewis Baumstark

    Utiliser mon cerveau, au lieu de marteler du code inutile. Code une fois, code correct.

    0
    leppie

    J'ai trouvé que lire Code Complete 2 de Steve McConnell d'un bout à l'autre (et essayer de suivre la plupart de ses conseils) a considérablement amélioré mes compétences en programmation, d'autant plus que je n'ai pas l'avantage de travailler avec d'autres programmeurs dans une grande entreprise. .

    De plus, pratiquer un bon design (expliqué dans le livre) et analyser le design des autres est important pour aller dans la bonne direction, en termes de compétences.

    0
    Levi

    Je pense que la chose la plus efficace que j'ai faite est de me forcer à utiliser différents langages et outils alternatifs sur des projets basés sur ce qui convient le mieux. IOW J'ai essayé de regarder les capacités de la langue pour voir si elle correspond mieux à l'un de mes choix standard. Cela m'a obligé à apprendre et à utiliser divers outils en fonction de leurs mérites individuels.

    J'essaie TRÈS difficile de ne jamais fourrer les chevilles carrées dans les trous ronds quand il s'agit de mon style de programmation. Nous avons de nombreuses langues disponibles car il existe de nombreuses façons de faire les choses. Plus je peux comprendre d'autres styles, mieux c'est!

    0
    flxkid

    Une façon d'améliorer les compétences en programmation consiste à apprendre différents domaines d'activité et comment les logiciels sont utilisés pour résoudre les problèmes dans ces domaines. Par exemple, si vous travaillez uniquement sur des applications Web d'entreprise, vous pouvez acquérir une connaissance approfondie du HTML, du CSS et des bases de données relationnelles, mais pas nécessairement avoir la possibilité de maîtriser des concepts tels que la concurrence ou la programmation graphique 3D.

    0
    newdayrising

    Écrivez une application non triviale dans plusieurs langues/systèmes. J'ai écrit une application de pool de paris en VB6, LISP commun, Java/jsp, Java/spring/struts, Rails, grails et Django. Je l'écris maintenant en Ruby/cacao OSX

    Chaque implémentation est différente. Et j'ai appris comment les systèmes diffèrent les uns des autres.

    0
    sal

    Travailler avec un ensemble diversifié de programmeurs plus expérimentés et intelligents.

    Les gens qui disent "il suffit d'écrire du code" sont à courte vue. J'ai vu beaucoup de projets où quelqu'un "vient d'écrire du code". Cela ne donne à personne un aperçu des bonnes habitudes et de la programmation pratique, ni n'aide à développer de solides compétences dans les parties secondaires du codage. Spécifications, documentation, faire clairement passer les idées.

    0
    Geekoid
    1. La lecture de la source de tout logiciel (open-source) est brillante et importante dans votre domaine d'expertise.

    2. Apprendre et apprécier différents paradigmes de programmation (par exemple OO n'est pas la réponse à tout)

    3. Écriture de bibliothèques/composants plutôt que de "systèmes" monolithiques, apprentissage de la valeur de la conception d'interfaces, de la documentation, de la simplicité conceptuelle.

    0
    Marijn

    Programmation avec au moins une autre personne (expérimentée), idéalement dans un environnement de programmation extrême. Débattre des approches alternatives aidera à hacher les avantages et les inconvénients de chacun.

    0
    Adam

    Écrivez beaucoup de code comme beaucoup l'ont déjà écrit ici.

    Mais, écrivez tellement que vous ne voulez pas en écrire plus, obtenez paresseux en gros, la première des trois grandes vertus .

    "La brièveté est l'âme de l'esprit" - Shakespeare

    0
    epatel

    J'ai vu une énorme amélioration après avoir commencé à apprendre comment les autres (les meilleurs programmeurs) codent. L'une des choses que j'ai faites a commencé à regarder des vidéos "Comment faire" par les experts/gourous de toute technologie qui m'intéresse.

    Je vois un grand avantage dans les vidéos d'apprentissage par rapport à la lecture d'un livre. Ne pas ignorer le fait que la lecture de livres est également un excellent moyen. Mais les vidéos sont plus interactives, rapides et font une bonne impression visuelle (c'est si les vidéos sont bonnes)

    Les podcasts techniques, dnrtv sont mes autres favoris. Lisez ceci fil SO.

    0
    Vin

    J'ai toujours une liste de "petits" projets en tête. Chaque fois que je pense à un "il doit y avoir ...", je le range pour une utilisation future. Ensuite, chaque fois que je rencontre une technologie qui semble intéressante et que je veux jouer avec, je compare ses fonctionnalités à ma liste de projets. Si l'on semble être en bonne forme, je pars pour les courses.

    Cela me permet d'avoir toujours quelque chose de plus pratique que "Hello, World!" vers lequel travailler.

    0
    cmreigrut

    Je pense qu'il est important d'améliorer vos compétences en travaillant sur un projet qui vous aime vraiment
    et il est important de partager vos connaissances avec les autres.
    sur l'autre site, vous devez effectuer des recherches sur un sujet sur lequel vous devez en savoir plus.
    Enfin, travailler sur un projet open source m'a été très utile en tant que programmeur.

    0
    Peter GA.

    En fait, la programmation dans un but. Une fois que j'ai commencé à travailler et à écrire des programmes qui seraient réellement utilisés par les utilisateurs et non pas simplement remis pour une note, j'ai commencé à mieux comprendre l'impact de mes programmes. J'ai pu voir la situation dans son ensemble.

    0
    Mogura

    Faire de l'informatique fondamentale et apprendre que c'est pareil. Tout se résume aux mêmes concepts et tout est construit sur des machines logiques et de turing, et vous pouvez le faire tout de même.

    Appliquer OOP à Assembly and Digital Logic est amusant ...

    0
    Aethylred

    Quand j'ai commencé à écrire du code qui avait l'air "beau" et très propre, mes programmes ont commencé à fonctionner presque au premier lancement, avec très peu de bugs. S'il y a des bogues, ils ont tendance à être très faciles à trouver.

    Je recherche donc simplement la simplicité, la propreté et la beauté. :-)

    N'écrivez jamais de code de manière "intelligente" ou complexe. Écrivez aussi propre et lisible que possible, et les programmes fonctionnent et sont facilement maintenables.

    0
    Jesper Hertel

    Lire de bons livres comme Effective C++. Remarquez que j'avais déjà programmé en C++ pendant plusieurs années, mais ce n'est que lorsque j'ai commencé à lire un bon C++ et d'autres livres de programmation que j'ai ressenti un bond des connaissances, ce qui s'est traduit par devenir un meilleur programmeur.

    0
    A Non

    Faire beaucoup de revues de code avec le principe que je n'ai pas fini la revue jusqu'à ce que j'aie trouvé au moins une pièce à critiquer.

    Soit dit en passant, dans de nombreux cas, pour pouvoir faire une telle révision de code, je devais m'asseoir à côté de l'auteur d'origine et leur demander de m'expliquer le code ligne par ligne jusqu'à ce que je le comprenne. Si vous avez la chance d'être invité à réviser le code de grands programmeurs, vous augmenterez rapidement vos compétences également.

    0
    A Non

    Pour la maîtrise de la langue, creuser à travers l'API de base et écrire du code qui utilise chaque méthode/classe. Cela a 2 avantages:

    1. Vous apprenez l'API, vous pouvez donc arrêter de réinventer la roue.
    2. Plus important encore, vous comprenez bien les principaux idiomes de la langue. Cela permet de garder votre code propre et lisible. Comme lorsque vous arrêtez enfin d'essayer de coder de manière procédurale dans LISP.
    0
    noah

    lire, travailler avec les autres et en général entrer et jouer avec :)

    0
    knight0323

    Tout ce qui vous encourage à écrire plus de code. Je travaille actuellement sur Project Euler pour améliorer mes compétences, mais j'ai aussi beaucoup appris au cours de la dernière année, simplement en regardant la base de code avec laquelle je travaille au travail. De plus, lire plus de livres ne fait pas de mal, bien qu'il soit préférable de se concentrer sur ceux en génie logiciel jusqu'à ce que vous sachiez dans quelles langues vous voulez réellement programmer.

    0
    deworde

    1) J'ai fait beaucoup d'erreurs et j'ai appris d'elles en demandant aux autres ou en lisant
    1) Avait un mentor
    2) J'ai écouté beaucoup de podcasts puis lu les sujets dont j'ai entendu parler
    3) Programmation jumelée
    4) Examiner les projets open source pour le style et les techniques (et enquêter sur des pièces que je ne comprenais pas)

    0
    Mike
    0
    Jeremy

    Écrire du code non seulement à mon travail mais aussi à la maison. Cela m'a donné le temps que je n'ai pas au travail pour découvrir des choses très intéressantes et utiles.

    0
    Andre Gallo

    Copie douloureuse des échantillons imprimés de magazines informatiques dans les années 1980. Ligne par ligne. Seulement pour comprendre qu'il y avait une erreur quelque part.

    En général, lire les échantillons d'autres personnes et les modifier; trouver des bogues en eux; extrapoler d'eux.

    0
    akauppi

    En passant de l'équipe, j'étais programmeur principal à une nouvelle équipe qui s'occupe d'une technologie très différente dont je ne sais rien.

    Et puis je recommence après 2 ans.

    0
    shoosh

    A écrit un compilateur Scheme en C. Non seulement ai-je dû apprendre Scheme à l'intérieur et à l'extérieur, mais j'ai tout appris sur les compilateurs, comment le code est exécuté sur le matériel, comment fonctionnent les ramasse-miettes, entre autres.

    0
    Josh Segall

    Comme beaucoup d'autres l'ont dit, écrivez BEAUCOUP de code et assurez-vous d'apprendre des langages de quelques styles différents. Par cela, je veux dire ne vous limitez pas aux langues qui sont similaires. Par exemple, si vous connaissez Java alors l'apprentissage de C # ne sera pas trop difficile car il y a pas mal de similitudes (garbage collection automatique, etc.) mais l'apprentissage de c ++ après Java ou C # s'améliorera vos compétences beaucoup plus car si vous oblige à penser votre application différemment. Apprenez également à utiliser l'outil approprié pour le travail. Il est inutile d'écrire une simple transformation de fichier dans Java quand vous pouvez faire la même chose avec la moitié du code en Perl ou avec des outils standard comme awk

    Faire des choses qui étaient un défi pour moi a le plus aidé

    0
    Sean

    Dans mon expérience:

    • Pratiquez le développement piloté par les tests (TDD) jusqu'à ce que vous vous sentiez à l'aise d'écrire des tests avant la mise en œuvre réelle. Cela fera de vous un meilleur programmeur.
    • Ayez des projets pour animaux de compagnie à côté ou participez simplement à des projets open source.
    • Essayez de faire équipe avec des gens mieux que vous. Observez quels outils ils utilisent et comment ils abordent les problèmes.
    • Trouvez toujours de nouvelles choses qui vous passionnent pour la programmation. Soyez passionné.
    • Créer. Si vous êtes juste pour l'argent, vous pouvez oublier d'être un gourou de la programmation.
    0
    mislav
    • Faire des erreurs et en tirer des leçons - L'une d'elles consistait à écrire un prototype en trois semaines que 12 ans plus tard, je maintiens toujours, car je l'ai autorisé à sortir, au lieu de le réécrire correctement.
    • Faire des algorithmes 300 et surtout ordre de complexité. À certains égards, c'est le saignement évident, mais il s'est cristallisé dans mon esprit des concepts que j'utilise tous les jours.
    • Revenons aux bases et au code de l'OS et en "C". (C'était en partie une réaction en partie à la mise en production d'un prototype.). Rend le code tellement plus rapide et plus robuste. Je pense qu'à mesure que l'amélioration des performances des ordinateurs s'aplatira, cela deviendra plus important à l'avenir. Je ne suis pas un grand fan des frameworks. Je soupçonne que je suis minoritaire ici, et je pourrais poster cela comme une question plus tard.
    • Lecture du "Code terminé". De cela, la chose la plus importante était la mise en page de mon code et l'accent mis sur la simplicité.
    0
    David L Morris

    Travailler sur une variété de technologies et de programmes. La clé est de continuer à essayer de nouvelles choses, donc je suppose que la seule chose est de me mettre au défi de faire des choses que je n'ai pas faites!

    0
    Mitchel Sellers

    J'ai lu Effective Java par Josh Bloch. Du jour au lendemain, j'étais un meilleur programmeur.

    0
    Craig Day

    Beaucoup de gens ont dit de programmer, et je suis d'accord. Plus précisément, j'aime:

    1) Faites des compétitions de programmation! Je viens de faire mon premier cet été et ça valait vraiment la peine (même si j'avoue, je ne l'ai pas fait de façon phénoménale). Cela vous oblige à travailler rapidement sur des problèmes intéressants. Google Code Jam est excellent pour cela.

    2) Écrivez des algorithmes que je connais bien (les sortes sont géniales pour cela) dans des langues que je viens de comprendre en utilisant les fonctionnalités utiles de cette langue pour le faire. Il ne suffit tout simplement pas d'écrire un tri impératif en ML lorsque l'élégance vient de le faire fonctionnellement.

    3) Parlez aux gens qui AIMENT des langues particulières de POURQUOI ils aiment ces langues. Plutôt que de choisir un côté dans le débat Perl/Python, je préfère parler à une personne de chaque côté de la raison pour laquelle ils aiment leur langue de prédilection et saisir les bits utiles pour référence future.

    4) Lisez les blogs techniques. Vous en apprendrez beaucoup sur les différentes langues en lisant les blogs des personnes qui les connaissent. Bien sûr, cela s'applique à beaucoup plus que la programmation.

    Bien sûr, ces choses ont tendance à faire plus pour faire de vous un meilleur programmeur et peuvent ou non vous aider avec le génie logiciel.

    0
    Alex Gartrell
    1. lire des articles de recherche [ACM, IEEE] sur des sujets qui vous intéressent

    2. essayez de résoudre des problèmes difficiles; même si vous échouez, vous en tirerez des leçons

    0
    Steven A. Lowe

    Compris mon style d'apprentissage (ou peut-être mon trouble d'apprentissage.)

    J'ai découvert qu'écouter les gens parler est le moyen le plus difficile pour moi d'apprendre. Les cours, les podcasts et les vidéos sont donc le moins bon moyen d'apprendre et je ne perds pas mon temps à les essayer même si je peux l'aider. Je suis bien meilleur pour apprendre en lisant. J'ai donc acheté et lu beaucoup de livres et d'articles Web. (Vous savez. Un peu comme ce site.)

    Tout comme il existe plus d'une façon de résoudre un problème, il y a plus d'une façon d'apprendre. Optimiser ce qui fonctionne pour moi a été le meilleur moyen pour moi d'améliorer mon métier.

    0
    OldGreyTroll