Pourquoi est-il toujours «quelle langue dois-je apprendre ensuite» au lieu de «quel projet dois-je aborder ensuite»? [fermé]

14

Pourquoi les programmeurs débutants (comme moi) demandent-ils toujours la prochaine langue qu'ils devraient apprendre au lieu de poser des questions sur le prochain projet à aborder?

Pourquoi Eric Raymond, dans la section " Apprendre à programmer " de son essai " Comment devenir un pirate informatique ", a-t-il parlé de l'ordre dans lequel vous devriez apprendre les langues (par rapport à l'ordre dans lequel vous devriez aborder les projets).

Les menuisiers débutants demandent-ils "Je sais comment utiliser un marteau ... devrais-je apprendre à utiliser une scie ou un niveau ensuite?"

Je demande parce que je trouve que presque n'importe quel projet significatif que je souhaite aborder (par exemple une application web, un ensemble d'outils d'analyse de poker) nécessite que j'apprenne juste assez d'une multitude de langages (Python, C, HTML, CSS , Javascript, SQL) et des frameworks / bibliothèques (wxPython, tkinter, Django) pour les implémenter.

Merci,

Mike

MikeRand
la source
5
Cela semble un peu ... délirant, pour être honnête. Peut-être pourriez-vous supprimer les insinuations et laisser votre question?
Anon.
4
Je pense que vous dépassez chronologiquement les étapes. Il y a de fortes chances que le menuisier sache déjà comment utiliser ces outils, s'il sait encadrer une porte. Mais plus tôt dans sa vie, il a lui aussi suivi la voie de quel outil devrais-je étudier ensuite.
CrazyPenguin
Commentaire juste re: ranty ... allait pour le divertissement. Toutes mes excuses si cela s'est avéré comme une rage
MikeRand
4
La comparaison du langage de programmation à l'outil à main n'est pas une très bonne comparaison. Cela semble avoir un sens superficiel, mais se désagrège rapidement et finit par être plus nocif qu'utile. Beaucoup trop de gens le traitent également comme une vérité incontestable. Ce gars fait un travail décent en décrivant certaines raisons pour lesquelles cela ne fonctionne pas. journal.dedasys.com/2007/12/12/…
Nick Knowlson
J'aime cette question ...!
Michael K

Réponses:

6

Je pense que lorsque la plupart des gens entreprennent d'apprendre une langue, ils le font parce qu'ils veulent s'attaquer à un projet écrit dans cette langue, maintenant ou à l'avenir. Pour ce faire, ils doivent apprendre cette langue, ce qui prend du temps. Les langages de programmation sont comme des outils, mais alors que vous pouvez apprendre à utiliser un marteau en une soixantaine de secondes, les langages mettent un peu plus de temps à apprendre à utiliser; ainsi, beaucoup de gens se concentrent sur l'apprentissage d'une langue avant de se concentrer sur un projet écrit dans cette langue.

Sur une autre note, je pense que quand la plupart des gens demandent ce que la langue à apprendre à côté, ils ont vraiment sont penser à ce projet pour apprendre à côté, mais ils se concentrent sur l' apprentissage de la première langue.

Enfin, l'apprentissage des langues peut être amusant , même si vous n'avez pas de projet ou d'objectif spécifique en tête.

mipadi
la source
6
  • Le motif de nombreux développeurs à temps plein est d'être plus employable.

  • Être plus employable signifie généralement passer l'obstacle de l'examen des RH (et plus tard franchir l'obstacle de l'entretien réel).

  • Le filtreur RH typique a généralement une liste de contrôle des langues qu'il peut comparer à un curriculum vitae, mais n'a aucun moyen d'évaluer les compétences ou les projets.

  • Le succès d'une entrevue dépend généralement plus de la chance et des compétences minimales dans une langue que de l'expérience et d'une compréhension approfondie d'une langue.

Par conséquent, être médiocre dans de nombreuses langues est préférable pour l'employabilité que d'être un expert dans quelques-unes, à moins que l'on ne postule à des postes supérieurs.

Uri
la source
Malheureusement, pour dépasser l'écran HR, vous devez fournir la liste des mots à la mode de la journée. Le processus de sélection des RH est plutôt un filtre de cours qui laissera de nombreux candidats qualifiés derrière.
Jeff
1
@Jeff, d'après ce que j'ai entendu à propos du filtrage RH, tout ce qu'ils veulent, c'est réduire le nombre de CV à un niveau gérable et ils appliquent beaucoup de filtres arbitraires, comme "bin si plus de 2 pages".
Dominique McDonnell
2

Les choix de programmation analogues au menuisier seraient "Quelle application devrais-je construire ensuite?" ou "Quel système dois-je construire ensuite?" qui sont plutôt valables et distinctes d'un projet qui peut réellement être appliqué presque universellement. Je pourrais avoir un projet pour changer mon alimentation ou perdre 20 livres aussi facilement que je pourrais avoir quelque chose qui nécessite l'écriture de nouveaux logiciels pour lier les choses ensemble.

Pour répondre à la question, je pense que l'idée est qu'une langue représente un outil dans la boîte à outils de cette personne qui peut être utile dans un CV. Certaines personnes peuvent choisir de devenir programmeur pour payer les factures et, dans l'affirmative, elles peuvent demander quel outil suivant elles devraient ajouter, qui serait souvent une langue, mais il existe d'autres possibilités, comme l'apprentissage du déploiement, du contrôle des sources, des tests et des méthodologies de développement pour citez quelques autres domaines. Si un menuisier devait divulguer les outils dont il disposait, il pourrait avoir une perspective similaire, selon moi. Cependant, il existe un ensemble général d'outils que la plupart des charpentiers sont supposés avoir ou avoir accès à obtenir si demandé assez rapidement. Avez-vous déjà vu combien de types différents de scies et de marteaux existent pour les gens?

JB King
la source
1

Il s'agit peut-être en partie de la mentalité de pirate informatique, du moins pour certains programmeurs. Le pirate est défini dans le fichier Jargon comme

"Une personne qui aime explorer les détails des systèmes programmables et comment étendre leurs capacités, contrairement à la plupart des utilisateurs, qui préfèrent apprendre seulement le minimum nécessaire."

Ainsi, pour une âme de hacker, il s'agit davantage d'apprendre et de "bricoler" le processus, les concepts, les outils et oui, les langages de création de quelque chose, que le produit final lui-même. En savoir plus sur le processus lui-même.

C'est un effort constant pour la prochaine nouvelle chose et / ou le défi. Le projet terminé perd rapidement son attrait. Parfois (la plupart du temps?) Les plus grands défis créatifs ou techniques sont surmontés avant la fin du projet. De nombreux projets sont abandonnés, lorsqu'un esprit avide de nouveaux défis mentaux avance.

Les hackers sont particulièrement intéressés par de nouveaux points de vue, concepts, abstractions et façons de penser, sorte de piratage mental:

"Un langage qui n'affecte pas votre façon de penser la programmation, ne vaut pas la peine d'être connu." - Alan Perlis

Maglob
la source
0

Il existe une variété de langages de merde couramment utilisés aujourd'hui: C, C ++, C #, Java, JavaScript, Python, Perl, Ruby, Visual Basic, etc. ensemble.

Il existe une petite communauté connue sous le nom de communauté Lisp qui est libre de la folie qui imprègne l'informatique moderne.

Puisque Lisp est un langage de programmation programmable, vous pouvez y exprimer toutes vos idées sans jamais avoir à vous éloigner vers d'autres langages ou d'autres formats de données tels que XML. Lisp peut être appliqué partout, même au niveau matériel comme nous l'avons vu avec les machines Lisp .

jhuni
la source
Vous devez connaître autant de langues différentes que possible afin de coder efficacement en Lisp. Sinon, vous finirez par réinventer la roue au lieu de simplement voler les concepts et les idées appropriés dans les autres langues et les implémenter au-dessus de Lisp.
SK-logic
D'accord avec votre sentiment sur le pouvoir de Lisp, mais en désaccord sur le fait qu'il est inutile d'apprendre d'autres langues: la plupart des astuces que j'utilise dans Lisp exploitent activement ce que j'ai appris d'autres langues (que ce soit en tant que modèles ou anti-modèles ...)
mikera
0

Parce que l'apprentissage d'un nouveau langage de programmation est un énorme investissement, et personne n'aime faire un mauvais investissement.
Apprendre un nouveau langage de programmation ne consiste pas à mémoriser comment écrire des constructions de boucle, déclarer des classes, importer un autre module ...
Vous devez savoir comment écrire un code idiomatique dans ce langage et ce processus prend vraiment beaucoup de temps et de dévouement .
Le temps est une ressource limitée, l'effort est une ressource limitée mais la distraction, le stress quotidien, les factures et les jeux sportifs du dimanche sont toujours là et doivent vivre avec.
Les programmeurs veulent investir judicieusement.

Chiron
la source