Je suis un ingénieur logiciel qui a eu des postes de programmation en VBA (bien que je n'ose pas considérer cette `` vraie '' expérience, car c'était un essai et une erreur!), Perl avec CGI, C # et ASP.NET. Les deux derniers sont post-licence, avec mon entrée dans le «monde réel». Je suis diplômé de 2 ans et j'ai 5 ans d'expérience (au total) dans les langues que j'ai mentionnées. Cependant, en ce qui concerne mon CV, je ne peux que mettre 2 ans pour C # et moins d'un an pour ASP.NET.
Je sens que je connais le C #, mais je dois encore passer du temps à dire «Que fait cette méthode?», Alors que certains des ingénieurs de niveau supérieur peuvent immédiatement dire: «Oh, la méthode X fait cela, sans jamais avoir examiné cela. avant. " Je sais donc empiriquement qu'il y a un gouffre, mais je ne sais pas exactement comment le combler. J'ai commencé à programmer dans Project Euler et j'ai acheté un livre sur les modèles de conception, mais j'ai toujours l'impression de passer chaque jour à marcher sur l'eau, au lieu d'avancer.
Cela ne veut pas dire que je n'ai pas l'impression d'avoir progressé, cela signifie simplement que dans la mesure où je viens chaque jour, je vois toujours le sommet de la montagne au loin.
Ma question est la suivante: comment avez-vous surmonté ce plateau? Combien de temps cela vous a-t-il pris? Quelles méthodes pouvez-vous suggérer pour m'aider à cet égard?
J'ai lu Code Complete , The Mythical Man Month et CLR via C #, 2e édition - ma question est: que dois-je faire maintenant?
Edit : Je viens de trouver cette question sur les projets d'un programmeur de niveau intermédiaire. Je pense que cela ajoute à la discussion (même si cela ne remplace pas ma question). En tant que tel, je l'ajoute à la question en tant que "Pour plus d'informations".
la source
Réponses:
Toutes nos félicitations!
D'après votre description, vous êtes un développeur intermédiaire.
Cette phase durera environ 3-8 ans, selon votre volonté d'apprendre au-delà du problème du moment
Pour accélérer le processus, lisez, surfez, bloguez, allez aux réunions de groupes d'utilisateurs, trouvez un mentor, faites des recherches indépendantes, codez des projets parallèles et ensevelissez-vous dans les nouvelles technologies. Cela peut raser un an ou deux de temps.
Ou vous pourriez avoir une vie en dehors de la programmation ;-)
Sérieusement, restez à jour et introspectif, mais désactivez de temps en temps la chose #% $ @
Addendum: lorsque vous sortez, pensez à porter un pantalon.
la source
L'une des meilleures façons de gravir la montagne est d'écrire quelque chose pour vous parce que vous le souhaitez. Les meilleurs programmeurs ont de merveilleuses réponses à la question «quel est le programme le plus intéressant que vous ayez écrit pendant votre temps libre». Si vous n'écrivez aucun code pendant votre temps libre, vous n'aimez pas assez votre métier pour vous améliorer.
la source
Vous devez passer par le stade larvaire.
Bien que je programme maintenant en VB.NET sous Windows, je suis passé par une étape larvaire sous Linux x86 avec l'assemblage comme langue principale.
Pendant un certain temps, vous devez vous consacrer au métier jusqu'à ce que vous le maîtrisiez. Ce que l'on appelle les instincts d'un programmeur maître sont des comportements vraiment appris. C'est une culture partagée. Les programmeurs doivent penser les uns aux autres et aimer la machine.
Connaissez et comprenez. Les plus grandes compétences ne sont pas celles liées à une langue spécifique, mais peuvent être appliquées à presque toutes les langues. Connaître les concepts, les rechercher dans les problèmes et les langues, être prêt à inventer de nouvelles choses si nécessaire.
C'est le chemin vers la grandeur.
la source
Je programme depuis que j'ai 8 ans ... j'aurai 33 ans la veille de Noël. Je vois toujours la montagne au loin. Peu importe le chemin parcouru, il y a toujours plus à apprendre.
Mettez les paradigmes à votre portée et découvrez comment le langage que vous codez actuellement met en œuvre ces paradigmes. La programmation est une expérience de vie qui a toujours plus à apprendre. C'est ça la joie, peu importe votre compétence, il y en a toujours plus.
Une façon que je trouve d'apprendre de nouvelles choses que je n'apprendrais pas normalement est de passer du temps ici et sur d'autres forums de programmation comme Bytes et Experts Exchange où les gens posent des questions. Si vous pouvez répondre à la question, allez-y, si vous ne le pouvez pas, essayez de comprendre comment accomplir la tâche vous-même, non seulement le PO appréciera vos efforts et votre aide, mais vous apprendrez aussi quelque chose de nouveau.
Je trouve que j'apprends plus en aidant d'autres personnes à trouver des réponses à des choses que je ne connais pas encore que je ne le ferais en programmant simplement mes trucs quotidiens que je fais jour après jour.
la source
Le statut de programmation intermédiaire implique que vous sortez de la mentalité de "type plus rapide" de singe de code et que vous souhaitez construire de vrais systèmes en tant que carrière. Il s'agit d'un changement professionnel majeur et, franchement, il ne s'agit pas vraiment de compétences techniques. Travailler au niveau intermédiaire (aka "développeur") nécessite un ensemble de compétences relationnelles très avancé.
Voici quelques symptômes auxquels vous pourriez penser:
Le meilleur résumé que je puisse trouver est que le programmeur intermédiaire (ou "développeur") a appris à être plus productif en huit heures de travail afin qu'il puisse rentrer à la maison et avoir une vie en dehors du travail.
Points bonus attribués si vous parvenez à trouver un conjoint et à vous reproduire ....
la source
Ce que vous faites maintenant est génial, mais si vous voulez accélérer considérablement vos progrès, vous pouvez faire deux choses supplémentaires:
1) "Enseigner" - Un moyen simple de le faire est de créer un blog et d'essayer de contribuer quelque chose d'utile sur une base régulière (hebdomadaire peut-être). Visez des choses que vous avez récemment apprises ou que vous ne connaissez pas encore . Cela signifie que vous vous forcerez à rechercher, à comprendre et à redévelopper.
BTW, vous pouvez très facilement vous inscrire à un compte SingingEels auquel vous obtenez un blog gratuit sur une communauté de développement existante.
2) Écrivez beaucoup de mini-programmes - Par cela, je veux dire environ 1 par semaine. Vous pouvez l'utiliser en conjonction avec ce qui précède ... ou tout simplement pour le plaisir. Ce que j'ai fait en tant que jeune développeur, c'était juste de choisir au hasard (je ne plaisante pas) un espace de noms dans le framework .NET. En cela, choisissez une classe que vous n'avez jamais vue / utilisée auparavant et créez un petit programme qui l'utilise.
la source
Essayez de
Lire PLUS de livres Prenez ces gros titres d'Amazon et lisez-les. Par exemple, l'auteur de Code Complete avait écrit un excellent livre sur l'ingénierie logicielle - Développement rapide de logiciels, achetez-en un et lisez-le.
Apprendre un langage de programmation différent Un langage de script comme python / ruby mérite d'être étudié. Ou peut-être un langage de programmation fonctionnel :) Cela peut changer votre esprit de programmation. Vous savez peut-être que certains des modèles GOF ne sont pas nécessaires pour ce type de langues.
Rejoignez une communauté Les gens peuvent échanger leurs idées en écoutant les autres et en faisant des présentations.
la source
Trouvez des programmeurs intelligents et apprenez d'eux. Imitez-les. Remarquez les choses qu'ils font différemment de vous.
Votre entreprise effectue-t-elle des révisions de code? C'est l'une des meilleures façons d'apprendre. Vous pourriez être étonné des suggestions des programmeurs les plus avancés et des choses auxquelles ils pensent lors du codage.
la source
que diriez-vous de vous impliquer dans un autre projet open source en cours, afin qu'au moins votre travail en vaille la peine pour quelqu'un et que vous puissiez apprendre et interagir avec d'autres développeurs plus avancés qui travaillent dans le monde réel.
de sorte qu'au moins vous n'êtes pas limité dans ce que vous voulez apprendre ou dans quel type de projet que vous voulez faire. et c'est déjà un outil gratuit que vous utilisez, vous pouvez être fier d'avoir réellement contribué à l'améliorer.
et ça se voit bien avec votre CV aussi. :)
Donc, si cela vous laisse encore du temps libre, pourquoi ne pas garder un blog documentant votre apprentissage, vos expériences et ce qui ne l'est pas. qui sait, vous pourriez être le prochain joel sur le logiciel ou le codage de l'horreur: p
la source
Pour exceller en tant que développeur C #, lisez les deux suivants. Notez que l' accent de ces livres est plus sur le langage (C #) que sur le framework (.NET).
Vous avez déjà lu CLR via C # , sinon c'est probablement la troisième suggestion de quiconque pour les développeurs C #.
Celles-ci devraient également faire de vous un meilleur développeur: les directives de conception du cadre et l'utilisation efficace du code hérité .
la source