web-dev-qa-db-fra.com

Quelle est l'importance de l'auto-apprentissage dans le domaine de la programmation?

J'ai 16 ans. J'ai commencé à programmer il y a environ un an lorsque j'allais commencer le lycée. Je me lance dans une carrière en programmation et je fais de mon mieux pour en apprendre le plus possible. Quand j'ai commencé, j'ai appris les bases du C++ à partir d'un livre et j'ai commencé à apprendre des choses par moi-même à partir de là. Aujourd'hui, je suis beaucoup plus expérimenté qu'il y a un an. Je savais que je devais étudier par moi-même parce que le lycée ne m'apprendrait (probablement) rien de précieux sur la programmation, et je veux être préparé.

La question ici est: dans quelle mesure est-il important d'étudier la programmation par soi-même?

76
Bugster

C'est critique. Je ne pense pas avoir jamais connu un bon programmeur qui n'ait pas été autodidacte à un certain niveau. En tant que responsable du recrutement dans une grande entreprise, je peux dire qu'un candidat qui décrit projets personnels et un envie d'apprendre en emportera un à chaque fois avec un degré impressionnant. (Bien qu'il soit préférable d'avoir les deux.)

Voici la chose à propos de l'université: les cours d'informatique enseignent la théorie, pas la technologie. Ils vous apprendront la différence entre une table de hachage et un arbre B, et les bases du fonctionnement d'un système d'exploitation. En général, ils pas vous apprendront les langages informatiques, les systèmes d'exploitation ou d'autres technologies au-delà d'un niveau superficiel.

Je me souviens dans la nuit des temps quand j'ai pris mon premier cours sur les structures de données et nous avons obtenu un manuel léger pour ce nouveau langage appelé "C++" qu'ils avaient décidé de commencer à apprendre. Nous avons eu deux semaines pour le récupérer suffisamment pour écrire du code. C'était une bonne leçon en soi. C'est ainsi que se déroulera votre carrière.

Votre école ne vous apprendra probablement pas ce dont vous avez besoin pour obtenir un bon emploi. Les écoles suivent souvent ce qui est chaud dans l'industrie pendant de nombreuses années. Ensuite, vous obtiendrez un emploi. Quelle que soit l'entreprise dans laquelle vous allez, vous ne ferez certainement aucun effort particulier pour vous former. Les mauvaises entreprises sont trop bon marché et, franchement, les bonnes entreprises n'embaucheront que des personnes suffisamment intelligentes pour les récupérer au fur et à mesure.

J'ai obtenu mon diplôme universitaire en 1987. Je suis allé travailler en tant que programmeur C avec une expertise dans les programmes DOS, NetBIOS et "Terminate-and-Stay-Resident". Au cours des années qui ont suivi, j'ai eu peu ou pas de formation réelle. Regardez les offres d'emploi ... peu d'appels pour ces compétences! La seule raison pour laquelle je peux être employé aujourd'hui, c'est parce que j'ai passé les années intermédiaires à apprendre constamment. Pour réussir en tant qu'ingénieur, il faut avoir l'habitude d'apprendre. Enfer, j'irais au-delà de ça: il faut avoir l'amour d'apprendre. Vous devez être le genre de personne qui joue avec WebGL ou Android ou iOS parce que cela a l'air amusant. Si vous êtes ce genre de personne et que vous avez l'habitude d'apprendre, vous irez loin dans l'industrie.

101
Gort the Robot

L'auto-apprentissage est très important. Vous ne pouvez pas compter sur une éducation formelle pour vous apprendre tout ce que vous devez savoir sur votre domaine. Cependant, cela étant dit, une éducation formelle est également très importante si vous voulez entrer dans ce domaine professionnel bien préparé et bien équipé.

Je suis sur le chemin de l'université et j'ai passé les quatre dernières années à m'enseigner le développement de logiciels.Par conséquent, je travaille maintenant pour une grande entreprise bien connue qui gère des applications d'entreprise. Cela ne prend pas une tonne de talent mais cela prend une tonne de travail et de motivation. Je pense que la littérature et la pratique sont votre meilleur pari quand il s'agit d'apprendre. Il est également important de choisir un domaine spécifique car, bien que vous puissiez transmettre les langues et la logique dans tous les domaines, vous ne pouvez vraiment devenir "génial" que si vous pratiquez et comprenez suffisamment dans un domaine spécifique.

29
Johnny Rotten

Apprendre par vous-même est très important. Avoir la discipline de rechercher et de rassembler les connaissances nécessaires pour accomplir une tâche vous mettra loin devant beaucoup d'autres qui comptent sur une formation formelle pour accomplir la même tâche. Cela vaut pour n'importe quelle industrie, pas seulement l'industrie du logiciel.

Ne vous méprenez pas, obtenir une formation ou une éducation formelle est utile, mais votre propre motivation pour améliorer vos compétences vous aidera à devenir un meilleur développeur de logiciels. Il y a toujours quelque chose à apprendre: nouvelles plateformes ou langages de programmation à expérimenter, méthodologies de développement à implémenter, outils et algorithmes à utiliser, la liste est longue. Tout ne vous sera pas présenté par le biais d'une formation formelle et c'est donc à vous d'apprendre d'autres sujets et idées qui pourraient vous intéresser et qui vous aideront tout au long de votre carrière en programmation.

11
Bernard

En programmation, l'auto-apprentissage est ce que vous ferez tous les jours. Vous devrez vous apprendre beaucoup de choses, pas seulement des langages informatiques et des outils qui changent constamment. Vous devrez apprendre le code que d'autres personnes ont écrit et vous devrez également le corriger avec un minimum d'instructions et de supervision. Il est rare dans certaines organisations de recevoir une vraie formation plus d'une fois par an (si jamais!). Assurez-vous que vous pouvez le faire (et en profiter), sinon, envisagez une carrière différente pendant que vous êtes encore jeune.

6
NoChance

L'auto-instruction est une compétence indispensable pour un programmeur. Trop de gens ne le font pas. Si vous êtes bon, vous utiliserez cette compétence pour le reste de votre carrière.

4
Edward Strange

L'autoformation est très importante car vous n'aurez pas toujours des opportunités de formation formelle. Lorsque vous commencez à chercher un projet, un stage ou un emploi, trouvez ceux qui ont de solides développeurs seniors qui peuvent vraiment vous apprendre quelque chose. Être dans un environnement qui fait les choses correctement peut être la voie express vers un code de qualité.

3
JeffO

Je peux vous dire qu'il y a eu plusieurs endroits où j'ai travaillé où ils ne considéraient même pas quelqu'un qui n'avait pas leurs propres projets en dehors du travail. Il montre un amour pour la programmation au-delà de la simple présentation d'un emploi et de la collecte d'un chèque. Je vais sortir sur un membre ici et dire ceci: Tous les programmeurs qui n'aiment pas programmer sont nulles à leur travail. Pire encore, ils n'ont rien à ajouter à une équipe qu'ils pourraient rejoindre.

Je prendrais un développeur junior inexpérimenté qui aime tellement ce qu'il fait qu'il joue avec le code pendant son temps libre sur trois développeurs de niveau intermédiaire qui passent simplement par les mouvements: ce développeur junior sera génial un jour, et les autres le feront ne soyez jamais mieux qu'eux.

Si vous n'apprenez pas de nouvelles choses, vous restez assis à oublier ce que vous savez.

3
blesh

Le talent est surévalué.

Il faut au moins 10 ans de pratique avant que l'on puisse devenir grand dans un domaine donné. Il est donc important de commencer tôt.

Le fait que vous ayez commencé à un stade précoce de votre vie à faire quelque chose que vous semblez aimer vous place déjà en tête du peloton. Donc, sauf si vous avez des doutes sur la zone dans laquelle vous allez travailler, ne vous arrêtez pas ... ne vous arrêtez jamais!

Je considère l'auto-apprentissage comme l'une des meilleures compétences d'un développeur donné et le second étant un diplôme universitaire. Un bon diplôme d'études collégiales est important simplement parce qu'il ajoute tant de qualité à vos connaissances que vous ne seriez probablement pas en mesure de rassembler par vous-même. Il y a certainement des exceptions à cette règle, mais c'est tout ce qu'elles sont; exceptions.

De plus, plus vous accumulez d'expérience tôt, plus vous apprécierez le collège et mieux vous absorberez les nouveaux concepts qui vous seront présentés. Au début, vous trouverez tout cela si facile et inutile, mais très rapidement, vous vous sentirez mis au défi et désireux d'en savoir plus.

Après avoir quitté le collège, n'arrêtez jamais d'apprendre, car ce sera l'une de vos meilleures fonctionnalités. Je recommande de lire "Le talent est surévalué". Vous pouvez jeter un œil à cet article rapide sur ce livre:

http://www.devlounge.net/strategy/the-talent-myth

2
Alex

Par rapport à presque tous les autres domaines auxquels je peux penser, la programmation est essentiellement tous sur l'auto-éducation. Une formation formelle en informatique/génie logiciel est utile, mais ce n'est pas vraiment là que vous apprenez à coder.

Ce que vous devez vraiment faire, c'est simplement commencer à travailler sur des projets: construire quelque chose que vous voulez exister. Rejoignez ensuite un projet open source pour travailler sur quelque chose que vous voulez être encore meilleur. L'apprentissage est gratuit alors ...

2
Steve Bennett

Vous devez apprendre de nouvelles choses vous-même - allez là où votre curiosité vous mène.

Obtenez également une éducation formelle - 90% de ce que vous enseignez dans une éducation formelle ne sera pas utilisé sur le lieu de travail. Mais les 10% utilisés seront une chose étrange et obscure que vous pensiez à l'époque ne servirait à rien du tout.

Sans l'éducation formelle, vous souffrez du problème le mieux décrit comme "vous ne savez pas ce que vous ne savez pas". L'éducation formelle vous donne une couverture large et large de beaucoup de choses en sachant que personne ne sortira jamais et n'utilisera pas tout cela. Parce que ce que vous utiliserez est quelque chose que vous ne saurez pas jusqu'à ce que vous en ayez besoin, il s'agit de se préparer afin que vous sachiez où aller chercher.

La chose axée sur l'auto-apprentissage/la curiosité est ce qui fait de vous une personne beaucoup plus compétente et bien équilibrée. Sans parler de plus précieux pour un employeur.

Note latérale: J'ai passé toute ma carrière, depuis le début de la programmation à environ 15 ans (sheesh, plus de 25 ans ... près de 30 ans), à part mes études universitaires, la plupart des cours de formation (vous savez ... apprenez BLAH en 3 jours à temps plein) sont assez inutiles. Celles-ci sont généralement superficielles, et en ce qui concerne le mantra tant vanté "garder vos compétences", pas très utile pour celui qui a besoin d'entrer dans des détails techniques approfondis. Acheter des livres, utiliser Internet, me plonger dans les mathématiques/la physique/l'architecture/tout ce qui m'a rendu utile et précieux. À un moment donné, je faisais partie d'une dizaine de personnes dans le monde avec une expertise spécifique sur un sujet particulier - toutes ces connaissances ont été acquises par l'auto-apprentissage et l'apprentissage en cours d'emploi.

Le seul moment pour arrêter d'apprendre est lorsque vous êtes à 6 pieds sous une boîte en pin.

2
quickly_now

Il y a une bonne parabole à ce sujet:

Le championnat du monde annuel tenu en Colombie-Britannique. Les finalistes étaient canadiens et norvégiens.

Leur tâche était la suivante. Chacun d'eux qu'une certaine partie de la forêt. Le vainqueur est celui qui a pu abattre le plus grand nombre d'arbres de 8h à 16h.

À huit heures, un coup de sifflet a retenti et deux bûcherons ont pris position. Ils ont abattu un arbre derrière un arbre, alors que le Canadien n'avait pas entendu dire que le Norvégien s'arrêtait. Réalisant que c'était sa chance, Canadien redoubla d'efforts.

À neuf heures du matin, le Canadien entendit que le Norvégien se remit au travail. Et encore une fois, ils ont travaillé presque simultanément, lorsque dix à dix Canadiens ont entendu que le Norvégien s'était arrêté à nouveau. Et encore une fois, le Canadien s'est mis au travail, voulant profiter de la faiblesse de l'ennemi.

À dix heures dans le norvégien rentrer dans l'œuvre. Jusqu'à dix minutes pour onze heures, il ne l'interrompit brièvement. Avec le sentiment grandissant de jubilation, le Canadien a continué à travailler au même rythme, sentant déjà l'odeur de la victoire.

Cela a duré toute la journée. Chaque heure du Norvégien est restée dix minutes et le Canadien a continué à travailler. Lorsque vous apprenez la fin de la compétition, à quatre heures de l'après-midi, le Canadien était bien sûr d'avoir le prix en poche.

Vous pouvez imaginer combien il a été surpris d'apprendre qu'il avait perdu.

  • Comment est-ce arrivé? - Il a demandé au Norvégien. - Toutes les heures, je vous ai entendu pendant dix minutes d'arrêts. Comme, Merde, tu as réussi à couper plus de bois que moi? C'est impossible.

  • En fait, tout est très simple - vient de dire le norvégien. - Toutes les heures, je m'arrêtais pendant dix minutes. Et pendant que vous continuez à couper du bois, j'affûtais ma hache.

Vous devriez donc étudier tout le temps pour garder votre hache tranchante.

2
webvitaly
  • C'est crucial, sinon tu resteras derrière

  • J'apprends tous les jours, au travail, ici, en lisant des livres, en posant et en répondant à des questions. Plus j'apprends, plus je comprends le peu que je connais.

1
CodeART

L'auto-apprentissage est très important pour deux raisons:

  • après vos études : comme déjà indiqué dans d'autres réponses, l'auto-apprentissage est ce que vous ferez dans votre vie quotidienne en tant que développeur. Vous ne pouvez pas tout savoir et les entreprises le savent. Ce que vous DEVEZ savoir, c'est comment vous améliorer. Les meilleurs développeurs ont la capacité d'apprendre rapidement de nouveaux langages et de nouvelles technologies.
  • pendant vos études : la distance entre ce que les cours universitaires vous apprendront et la réalité de ce que sera votre travail est énorme. Plus précisément, je parle de maintenance et de maintenabilité. Une partie essentielle du travail d'un développeur consiste à maintenir le code hérité (corrections de bugs, améliorations, ajout de fonctionnalités, etc.). Vous pouvez lire La création de nouveaux logiciels est-elle généralement une partie importante de la plupart des travaux de programmation? pour plus de détails.
    Comme la maintenance du code hérité est essentielle, vous devrez également écrire vous-même du code maintenable, ce qui est rarement enseigné avec des leçons formelles (voir Comment améliorer la formation des étudiants en matière de maintenabilité? =). Si vous ne pratiquez pas l'auto-apprentissage et lisez beaucoup pendant vos études, il est peu probable que vous acquériez les compétences nécessaires qui feront de vous un meilleur développeur que la moyenne.
    N'essayez pas d'apprendre beaucoup de langues/technologies pendant vos études, mais apprenez les bonnes pratiques et un codage propre. Par exemple, vous feriez mieux de lire "Clean Code" de Robert C. Martin que "Java The Complete Reference" de Herbert Schildt pendant vos études.
1
Matthias Jouan