Quels sont les inconvénients de démarrer un projet opensource si l'on n'est pas un programmeur expérimenté? [fermé]

12

J'ai beaucoup d'idées de produits à construire. Le problème est que j'ai moins d'un an d'expérience professionnelle et j'ai peur d'être jugé négativement à l'avenir en fonction de ce que je produis maintenant. Je n'ai aucune idée si mon code est bon.

Je ne connais aucun des schémas de codage. Tout ce que je sais, c'est créer des produits qui fonctionnent. Je veux avoir un profil public dans github pour mes futurs projets et je m'efforcerai de m'assurer qu'il est bien commenté, optimisé et propre.

Ce sont les choses que je crains d'être exposées publiquement:

  1. Mon code n'est peut-être pas hautement optimisé.
  2. Utilisation incorrecte de certaines bibliothèques ou fonctions qui font par hasard le travail.
  3. Ne pas connaître ou suivre aucun modèle de codage.
  4. Beaucoup de bugs / pas de cas de coin, bord
  5. Manque fondamental de compréhension et d'application de certains concepts tels que la sécurité des threads, les problèmes de concurrence dans la programmation multi-thread, etc.

Dois-je aller de l'avant et commencer ou continuer à m'en tenir à la construction locale et privée jusqu'à ce que j'obtienne plus d'expérience. Je ne veux pas que les erreurs commises ici hantent mes perspectives de carrière à long terme.

endrendum
la source
4
Je comprends d'où tu viens. Lorsque vous exposez vos projets au monde, vous exposez efficacement une partie de vous-même. Considérez cela cependant, pratiquement tout le code de la planète contient des bogues, à moins qu'ils n'aient triché en le vérifiant formellement. Vous avez bien plus à gagner qu'à perdre. Si un employeur potentiel découvre que vous avez fait une erreur dans l'un de vos projets alors que vous étiez relativement inexpérimenté, il pensera gros, alors moi aussi et tout le monde ici. Le scénario le plus probable est qu'ils n'auront pas le temps de parcourir tout ce que vous avez écrit.
dan_waterworth
1
À mon avis, la vérification formelle d'un programme n'est pas de la «tricherie».
4
All I know is to build products that work.- Ce qui est très bien. Il est facile de se laisser
entraîner
Je dis vis ce que disent les autres et n'ayez pas peur. Si vous voulez faire quelque chose de positif et que vous pensez que vous-même ou les autres peuvent bénéficier de votre travail plutôt que de le faire. (Prise Nike)
Snake

Réponses:

32

Après 30 ans de développement logiciel professionnel, je continue de créer des bugs. Je trouve toujours des motifs que je ne connais pas. J'apprends toujours de mes collègues et rencontre des choses que je ne connais pas tous les jours.

La plupart des développeurs expérimentés vous jugeront sur la façon dont vous répondez aux problèmes et aux critiques, si vous apprenez de vos erreurs et améliorez votre produit pour répondre aux besoins des utilisateurs ou de la communauté, si vous admettez ce que vous ne savez pas et cherchez à améliorer.

L'une des meilleures compétences pour un développeur est la volonté de poser des questions stupides et de paraître parfois un peu stupides afin de trouver les bonnes réponses le plus rapidement possible.

Tous ceux qui sont expérimentés et très compétents étaient autrefois là où vous êtes maintenant. Vous apprendrez beaucoup plus rapidement si vous travaillez et travaillez avec d'autres personnes.

Il n'y a aucune raison d'attendre. Ouvrez votre projet.

Mieux encore, contribuez à d'autres projets ouverts et apprenez d'eux.

joshp
la source
+1. BTW, je me demande pourquoi votre deuxième paragraphe me fait penser à l'équipe de développement PHP.
Arseni Mourzenko
+1 Comprendre et respecter que tout le monde peut faire le mal est l'une des qualités les plus importantes en tant que membre d'une équipe.
jgauffin
6

Je pense que tu t'inquiètes trop.

La communauté du système d'exploitation est plus préoccupée par l'utilité d'une application particulière que par la qualité de son écriture. S'il est mal écrit, la communauté interviendra et aidera à rectifier les erreurs. Ce qui est plus intéressant, c'est la façon dont l'application résout les problèmes avec lesquels les gens ont du mal. Si l'application / le projet fournit une solution élégante à un problème de vexation, la qualité du code devient alors un point discutable.

Mettez-le là-bas, voyez ce qui se passe. Vous ne saurez pas à quel point votre code est bon / mauvais jusqu'à ce que d'autres le regardent et commencent à jouer avec. TOUT le code a des bogues. Ce qui est plus intéressant, c'est la rapidité avec laquelle l'auteur travaille pour résoudre ces bogues.

Considérez cela comme un exercice d'apprentissage. Vous n'allez pas découvrir ce que vous ne savez pas tant que vous ne vous serez pas un peu couché et que vous n'aurez pas critiqué. Espérons que la plupart des critiques pourront devenir constructives. Étant donné que vous posez des questions à ce sujet en premier lieu, je suis assez à l'aise de dire que vous aurez au moins un code de qualité moyenne ou meilleure.


la source
5

Nous trouvons des personnes ayant une connaissance élevée dans le domaine Open Source. C'est vrai, et aussi intimidant pour les nouveaux arrivants. Mais ils sont également très bons pour aider les bons projets, même si le développeur principal ne reflète pas les exigences réelles pour que le logiciel atteigne une qualité élevée.

Vous connaissez déjà vos limites. Ce n'est pas un mauvais début. Voilà un bon début.

Entrez dans la fête et trouvez votre place là-bas.

Bonne chance!

rdconsolo
la source