web-dev-qa-db-fra.com

Les mathématiques sont-elles nécessaires à la programmation?

Il m'est arrivé de discuter avec un ami, pendant les années de collège, de la nécessité de mathématiques avancées pour tout programmeur expérimenté. Il avait l'habitude de se disputer farouchement contre cela. Il a dit que les programmeurs n'avaient besoin que de connaissances mathématiques de base issues des mathématiques au lycée ou au collège, et que presque toutes les tâches de programmation pouvaient être réalisées sans même avoir besoin de mathématiques avancées. Il a toutefois soutenu que les algorithmes sont des atouts fondamentaux et indispensables pour les programmeurs.

Ma position était que toutes les avancées en informatique dépendaient presque uniquement des avancées en mathématiques, et donc une connaissance approfondie en mathématiques aiderait beaucoup les programmeurs lorsqu'ils travaillent avec des problèmes difficiles du monde réel.

Je ne peux toujours pas décider de quel côté des arguments est correct. Pourriez-vous nous dire votre position, à partir de votre propre expérience?

117
simsim

Pour répondre à votre question telle qu'elle était posée, je devrais dire: "Non, les mathématiques ne sont pas nécessaires à la programmation". Cependant, comme d'autres personnes l'ont suggéré dans ce fil, je pense qu'il existe une corrélation entre la compréhension des mathématiques et la capacité de "penser par algorithme". C’est-à-dire pouvoir penser de manière abstraite à la quantité, aux processus, aux relations et aux preuves.

J'ai commencé à programmer vers l'âge de 9 ans et il serait exagéré de dire que j'avais appris beaucoup de mathématiques à ce stade. Cependant, avec un peu d'effort, j'ai pu comprendre les variables, pour les boucles, les déclarations goto (excusez-moi, j'étais Vic 20 BASIC et je n'avais pas encore lu Dijkstra) et la géométrie des coordonnées de base pour afficher des graphiques à l'écran. .

J'ai finalement obtenu un baccalauréat spécialisé en mathématiques pures avec une mineure en informatique. Bien que je me suis principalement concentré sur l'analyse, j'ai aussi étudié pas mal de mathématiques discrètes, la théorie des nombres, la logique et la théorie de la calculabilité. En plus de pouvoir appliquer quelques idées de statistiques, de théorie des probabilités, d’analyse vectorielle et d’algèbre linéaire à la programmation, j’ai étudié peu de mathématiques directement applicables à ma programmation au cours de mes études de premier cycle et à la programmation commerciale et de recherche que j’ai faite par la suite.

Cependant, je crois fermement que les méthodes de pensée formelles exigées par les mathématiques - raisonnement attentif, recherche de contre-exemples, établissement de fondements axiomatiques, identification des liens entre concepts - ont été d'une aide précieuse lorsque j'ai abordé des projets de programmation vastes et complexes.

Considérez la manière dont les athlètes s’entraînent pour leur sport. Par exemple, les footballeurs consacrent sans doute une grande partie de leur temps d’entraînement aux techniques de base du football. Toutefois, pour améliorer leur condition physique générale, ils pourraient également passer du temps au gymnase à bicyclette ou à la machine à ramer, à faire de la musculation, etc.

L’étude des mathématiques peut être assimilée à l’entraînement avec poids ou à un entraînement croisé pour améliorer votre force mentale et votre endurance pour la programmation. Il est absolument essentiel que vous pratiquiez vos compétences de base en programmation, mais étudier les mathématiques est un exercice mental incroyable qui améliore vos capacités analytiques fondamentales.

111
Mark Reid

Bien que les mathématiques avancées puissent ne pas être nécessaires à la programmation (à moins que vous ne programmiez des fonctions mathématiques avancées), le processus théorique de la programmation et des mathématiques est très similaire. Vous commencez avec une base de choses connues (axiomes, théories déjà éprouvées) et essayez d’arriver à un nouvel endroit. Vous ne pouvez pas sauter d'étapes. Si vous sautez des étapes, vous devez remplir les blancs. C'est un processus de pensée critique qui rend les deux incroyablement similaires.

Aussi bien les mathématiciens que les programmeurs ont une pensée critique dans l’abstrait. Les choses du monde réel sont représentées par des objets et des variables. La capacité de traduire du concret en abstrait relie également les deux domaines.

Il y a de fortes chances que si vous êtes doué pour l'un, vous serez probablement bon pour l'autre.

56
Jarrett Meyer

informatique! = programmation

OK, sérieusement, je connais de bons et de mauvais programmeurs qui étaient des majors en anglais et en psychologie et certains qui étaient des majors en informatique. Certains gars très célèbres que j'admire en tant que développeurs n'avaient pas de formation en informatique. Larry Wall (Perl), par exemple, était un linguiste. D'un autre côté, il est utile de connaître le domaine sur lequel vous travaillez car vous pouvez au moins voir si vos données ont un sens et aider votre client/utilisateur à trouver ce qu'il souhaite vraiment. Et oui, il y a le problème de la complexité informatique, de l'efficacité des structures de données et de l'exactitude des programmes. C'est ce que vous apprenez en informatique et qu'il est utile de connaître dans presque tous les domaines, mais ce n'est ni nécessaire ni suffisant.

39
David Nehme

Je suppose que je vais être la première personne à dire que vous avez besoin de mathématiques. Comme d'autres l'ont dit, les mathématiques ne sont pas si importantes pour certains aspects du développement, mais les fondements de la pensée critique et de l'analyse structurée sont très importants.

De plus, les mathématiques jouent un rôle important dans la compréhension de nombreux principes fondamentaux tels que les planificateurs, les optimisations, le tri, la gestion des protocoles et un certain nombre d’autres aspects de l’informatique. Bien que les mathématiques impliquées d'un niveau de calcul ne soient pas complexes (leur algèbre du niveau secondaire principalement), les théories et les applications peuvent être assez complexes car une solide compréhension des mathématiques par le calcul sera très bénéfique.

Pouvez-vous vous en passer, absolument, et vous ne devriez pas vous laisser détourner par une connaissance approfondie des mathématiques, mais si vous en aviez l'occasion, ou si vous le vouliez, j'étudierais autant de mathématiques que possible, calcul, théorie numérique, linéaire l'algèbre, la combinatoire, les applications pratiques, tout cela a des applications pratiques et théoriques dans un large éventail de sciences informatiques.

J'ai rencontré des personnes qui ont très bien réussi des deux côtés de la barrière (celles qui ne sont pas très axées sur les mathématiques et celles qui sont allées à l'école pour la physique ou les mathématiques), mais dans les deux groupes, ils se passionnaient pour les problèmes numériques et l'apprentissage des algorithmes et de la théorie des mathématiques. .

29
GrayWizardx

J'ai un diplôme en mathématiques, mais je ne me souviens pas d'avoir exigé ces mathématiques une seule fois dans ma carrière. C'était utile pour entraîner mon esprit à la pensée logique, mais je n'ai écrit aucun code utilisant la dynamique des fluides, la théorie quantique ou les chaînes de Markov. (Le dernier est le plus susceptible de se présenter, je suppose.)

La plupart des développeurs de secteurs d'activité n'ont pas besoin de maths avancées la plupart du temps. Parfois, connaître la trigonométrie peut aider, et être capable de comprendre suffisamment de mathématiques pour implémenter des algorithmes décrits mathématiquement peut être important - mais au-delà? Nah.

N'oubliez pas que la plupart des programmeurs ne font pas progresser l'informatique, ils construisent des applications. Je n'ai pas besoin de connaître l'ingénierie avancée pour conduire une voiture moderne, même si cette voiture a presque certainement été améliorée à travers ingénierie avancée.

26
Jon Skeet

Je vais aller à contre-courant ici et dire "Oui"

Je passe du génie civil à la programmation (Concrete Sucks!). Mes antécédents en mathématiques comprennent les éléments habituels de première année, de calcul en deuxième et troisième année (Diff EQ, intégrations de volume, transformations de Series, Fourier et Laplace) et d’un cours d’analyse numérique.

Je trouve que mes calculs manquent incroyablement pour la programmation informatique. Il me manque des domaines entiers de mathématique discrète et de logique, et je ne vis que grâce à une vaste bibliothèque de manuels, Wikipedia et Wolfram. La plupart des algorithmes avancés sont basés sur des mathématiques avancées, et je suis incapable de développer des algorithmes avancés sans faire de recherches approfondies (cela équivaut essentiellement à un demi-cours.) Je suis certainement incapable de trouver de NOUVE ne pas avoir les fondements mathématiques comme les épaules des géants sur lesquels se tenir.

14
Chris Cudmore

Je dirais qu'avoir une mathématique avancée (discrète) peut vraiment aider. Cela avec la théorie des ensembles. Lorsqu'il s'agit de programmes informatiques courants, ces disciplines peuvent beaucoup aider. Cependant, une grande partie des autres maths que j'ai suivies à l'université était le calcul, dont l'utilisation était, à ma connaissance, très limitée. Étant donné que 90% (ou quelque chose de ce genre) de la programmation utilise des applications professionnelles avec des mathématiques très simples, je dirais que la plupart du temps, vous pouvez vous en tirer avec très peu de connaissances en mathématiques. Cependant, une bonne compréhension de l'algèbre booléenne, de la logique, des mathématiques discrètes et de la théorie des ensembles peut vraiment vous permettre d'atteindre un niveau supérieur.

14
Kibbee

Ça dépend de ce que tu fais. Si vous faites beaucoup de programmation 3D, la connaissance de la géométrie 3D est certainement nécessaire, n'est-ce pas? ;-) Si vous voulez créer un nouveau format d'image tel que JPG ou un nouveau format audio tel que MP3, vous êtes également assez perdu si vous ne comprenez pas une transformation en cosinus ou à quatre niveaux, car ce sont les bases de la compression basée sur la plupart des pertes. . De nombreux autres problèmes peuvent être mieux résolus si vous connaissez plutôt bien vos calculs.

De nombreuses autres tâches de programmation ne nécessiteront pas beaucoup de calculs.

14
Mecki

Si vous trouvez le sujet assez fascinant pour pouvoir le publier, continuez et commencez à apprendre. Le reste viendra naturellement.

13

Oui, les mathématiques avancées ne sont pas nécessaires - si vous programmez des logiciels commerciaux - des logiciels standard.

Cependant, lorsqu'il s'agit de choses hardcore telles que:

  • Calcul de trajectoires pour contrôler un robot
  • Créer des applications similaires à l'IA pour gérer l'incertitude et le raisonnement automatique
  • Jouer avec le mouvement et les graphiques 3D

Certaines connaissances avancées en mathématiques pourraient être utiles. Et ce n'est pas comme s'ils étaient des problèmes "hors du monde".

Je devais créer un logiciel pour essayer de "prévoir" la quantité de papier nécessaire pour un bureau (et c'était un enfer de trouver le meilleur moyen de calculer des valeurs approximatives).

Vous devez cependant faire attention, car il est facile de se perdre en utilisant des outils avancés - il y a un de mes amis qui a eu recours à Turing pour enregistrer l'état d'un menu dynamique juste pour l'afficher correctement - hum… peut-être il était trop loin dans son imagination.

9
rshimoda

Quel type de programmation?

Dans mon expérience commerciale, je n’ai pas eu besoin de mathématiques avancées, mais cela dépend fortement du domaine dans lequel vous vous trouvez.

Les graphiques informatiques nécessitent une grande quantité de mathématiques avancées. Une grande partie de la programmation informatique académique nécessite des mathématiques avancées.

Donc, dire qu'il y a une corrélation entre ceux qui sont doués en mathématiques et ceux qui savent bien programmer.

J'espère que cette réponse insipide aide.

8
David Waters

D'après mon expérience, les mathématiques sont indispensables à la programmation, vous ne pouvez pas vous en échapper. Toute la programmation est basée sur les mathématiques.

Le problème n'est pas noir et blanc, mais plus coloré. La question n'est pas de savoir si vous avez besoin de mathématiques ou non, mais de combien. Les niveaux supérieurs de mathématiques vous donneront plus d'outils et vous ouvriront l'esprit à différents chemins.

Par exemple, vous pouvez programmer si vous ne connaissez que l'addition et la soustraction. Lorsque la multiplication est requise, vous devrez effectuer de nombreux ajouts. La multiplication simplifie les ajouts répétitifs. L'algèbre permet de simplifier les mathématiques avant de les intégrer à des programmes. Algèbre linéaire fournit des outils pour transformer des images. L'algèbre booléenne fournit des mécanismes pour réduire toutes ces instructions if.

Et n'oubliez pas les frères et sœurs des mathématiques, de la logique et de la philosophie. La logique vous aidera à utiliser efficacement les instructions case ou switch. La philosophie vous aidera à comprendre la pensée du gars qui a écrit le code que vous modifiez.

Oui, vous n'avez pas besoin de beaucoup de maths pour écrire des programmes. Certains programmes peuvent nécessiter plus de maths que d'autres. Plus de connaissances en mathématiques vous donneront un avantage par rapport à ceux qui ont une compréhension moindre. À cette époque, les gens ont besoin de tous les avantages possibles pour obtenir ces emplois.

6
Thomas Matthews

Je fais de la programmation depuis 8 ans de façon professionnelle et depuis que j'ai 12 ans, c'est un passe-temps.

Les mathématiques ne sont pas nécessaires, la logique l'est. Les mathématiques sont terriblement utiles, mais dire que ce n'est pas nécessaire, c'est comme dire que pour tuer un homme, un pistolet n'est pas nécessaire, vous pouvez utiliser un couteau. C'est vrai, mais ce pistolet rend les choses beaucoup plus faciles.

Il y a quelques minimums que vous devriez déjà rencontrer. Vous devez connaître les expressions algébriques de base et la notation, ainsi que les équivalents informatiques courants. Par exemple, vous devez savoir ce qu'est une exponentielle (3 sur 3, 27), et l'expression commune de l'ordinateur est 3 ^ 3. Les notations communes pour l'algèbre changent d'une langue à l'autre, mais beaucoup d'entre elles utilisent une méthodologie unifiée. Les autres (en regardant votre LISP) ne le font pas. Vous devez également connaître l'ordre des opérations.

Vous devez comprendre la pensée algorithmique. Ceci produit d’abord ce qui est utilisé dans ce calcul. Il y a de fortes chances que vous compreniez ceci ou pas, et c'est un obstacle assez difficile à franchir si vous ne le comprenez pas; J'ai trouvé que c'est quelque chose que vous obtenez, et pas vraiment quelque chose que vous pouvez apprendre. Inversement, certaines personnes ne "reçoivent" pas d'art. Ils ne devraient pas devenir peintres. De plus, certains élèves du curriculum CS ne savent pas pourquoi cela ne fonctionne pas: x = z + w; z = 3; y = 5; Ce n'est pas qu'ils ne comprennent pas l'addition, mais qu'ils ne comprennent pas l'exigence de l'expression sans ambiguïté. S'ils le comprennent, l'ordinateur devrait aussi, non? Si vous ne pouvez pas voir ce qui ne va pas avec les trois lignes ci-dessus, ne devenez pas un programmeur.

Enfin, vous devez savoir quelles sont les mathématiques relevant de votre domaine de programmation. Un logiciel de comptabilité pourrait s’arrêter à l’algèbre de base. Si vous programmez la physique, vous devez connaître la physique (de manière lâche) et les mathématiques en géométrie tridimensionnelle (euclidienne). Si vous programmez un logiciel d'architecture, vous devez connaître la trigonométrie.

Cela va plus loin que les mathématiques cependant; quel que soit le domaine pour lequel vous programmez, vous devez bien comprendre les bases. Si vous programmez un logiciel d’analyse de langage, vous devez connaître les probabilités, les statistiques, la théorie grammaticale (plusieurs langues), etc.

Souvent, certains domaines ont besoin ou peuvent tirer profit de connaissances que vous penseriez sans lien. Par exemple, si vous programmez un logiciel audio, vous devez connaître la trigonométrie pour traiter les formes d'onde.

La magnitude change aussi les choses. Si vous triez un ensemble de données financières de 1 000 éléments, ce n'est pas grave. Cependant, s’il s’agissait de 10 millions d’enregistrements, il serait très utile de connaître les mathématiques vectorielles et de bien comprendre le tri au niveau binaire (comment un système trie-t-il par ordre alphabétique? Comment sait-il que "a" est inférieur à "b '?)

Vous allez découvrir qu'en tant que programmeur, votre base de connaissances générale va exploser, car chaque projet nécessitera davantage d'apprentissage en dehors du domaine de la programmation. Si vous êtes sensuel ou paresseux à propos de l'auto-apprentissage et que vous n'aimez pas l'idée de passer plus de 10 heures par semaine à faire essentiellement des "devoirs", ne devenez pas un programmeur.

Si vous aimez les exercices de pensée, si vous aimez apprendre, si vous pouvez penser à des choses abstraites telles que les maths sans calculatrice ou les dessins sans croquis, si vous avez de larges goûts dans la vie et les loisirs, si vous êtes critique et que vous pouvez vous débarrasser " idées favorites, si vous aimez perfectionner les choses, devenez programmeur. Ne fondez pas cette décision sur les mathématiques, mais plutôt sur la capacité de penser de manière logique et d’apprendre. Ce sont ce qui est important. les mathématiques ne sont que le sous-produit.

6
user634669

Je suis d'accord avec Chris. Je dirais "oui", aussi. Mais cela dépend de votre marché, comme indiqué ci-dessus. Si vous créez simplement des applications de base ou des outils d'écriture pour vous aider dans votre travail quotidien ... alors les mathématiques ne sont pas aussi importantes.

L'ingénierie de solutions logicielles personnalisées exige beaucoup de résolution de problèmes et de réflexion critique. Des compétences qui sont très certainement améliorées lorsqu'un contexte mathématique est présent. J'ai étudié les mathématiques avec mon diplôme en génie informatique et je tiens à remercier tous mes antécédents en mathématiques pour expliquer pourquoi je suis là où je suis aujourd'hui.

Ce sont mes 2 cents, je peux dire de la lecture ci-dessus que beaucoup ne seraient pas d'accord. J'encourage tous les participants à considérer que je ne dis pas que ces compétences ne peuvent pas être acquises sans une formation en mathématiques, je dis simplement que ces compétences sont les effets secondaires d'une telle expérience et peuvent avoir un impact positif sur les logiciels.

6
MaTT

Les mathématiques sont nécessaires aux développeurs dans certains domaines, mais sont presque inutiles dans d'autres.

Si vous êtes développeur de jeux et devez travailler beaucoup avec la physique, la compréhension des mathématiques est cruciale. Si vous travaillez avec des contrôles visuels avancés, vous ne pouvez pas faire grand chose sans la géométrie. Si vous envisagez de faire des calculs financiers, il serait VRAIMENT utile d’avoir de solides connaissances en statistiques.

Par contre, au cours des 5 dernières années, je n’avais que 2 ou 3 projets pour lesquels TOUT calcul mathématique était requis. Parmi ceux-ci, il n'y a eu qu'un seul événement lorsqu'une recherche sur Google n'a pas aidé.

En fin de compte, même les calculs financiers sont très souvent ce que vos clients font pour vous et vous donnent des formules à mettre en œuvre.

Donc, si vous êtes dans le secteur des "logiciels appliqués", vous n’utiliserez probablement jamais votre diplôme en mathématiques. Si vous êtes dans un logiciel académique, les mathématiques sont cruciales.

6
Ilya Kochetov

Une personne ayant une solide formation mathématique (qui n'est pas simplement arithmétique) ou logique maîtrisera bien les algorithmes, l'utilisation de variables, le raisonnement conditionnel et les structures de données.

  • Tout le monde ne peut concevoir une interface utilisateur.
  • Tout le monde ne peut pas créer un code efficace.
  • Tout le monde ne peut commenter et documenter clairement.
  • Tout le monde ne peut pas faire un bon algorithme

Les mathématiques vous aideront à un point, mais seulement à un point.

5
Unsliced

Je ne pense pas que des connaissances avancées en mathématiques soient une exigence pour un bon programmeur, mais en me basant sur mon expérience personnelle, je pense que les programmeurs qui maîtrisent mieux les mathématiques avancées font aussi de meilleurs programmeurs. Cela peut simplement être dû à un esprit plus logique, ou à un Outlook plus logique en raison de leurs expériences de résolution de problèmes mathématiques.

5
Jimoc

Math est une boîte à outils pour créer des programmes. Je recommande l'introduction aux algorithmes de Cormen. Cela touche plus au truc "mathy".

- Greatest lowest limit (managing resources) 
- Random variables (game programming)
- Topological sort (adjusting spreadsheets)
- Matrix operations (3d graphics)
- Number theory (encryption)
- Fast fourier transforms (networks)
5
user559910

Le concept fondamental des mathématiques est le suivant: conception, compréhension, implémentation et utilisation d'algorithmes. Si vous ne pouvez pas faire de calcul, c'est parce que vous ne pouvez pas faire ces choses, et si vous ne pouvez pas faire ces choses, vous ne pouvez pas être un programmeur efficace.

Les tâches de programmation courantes peuvent ne nécessiter aucune connaissance mathématique spécifique (par exemple, vous n'aurez probablement pas besoin d'algèbre vectorielle ni de calcul sauf si vous effectuez des tâches telles que des graphiques 3D ou des simulations physiques, par exemple), mais les compétences sous-jacentes sont identiques et le manque de capacité. dans un domaine sera compensé par un manque correspondant de capacité dans l'autre domaine.

5
DrPizza

Bien sûr, cela dépend du type de programmeur que vous souhaitez devenir ou, mieux encore, du type de programmeur que vos employeurs souhaitent que vous soyez. Je pense que le calcul et l'algèbre sont essentiels, la statistique et la programmation linéaire sont en effet un bon outil à avoir dans votre porte-documents, peut-être que l'analyse (dérivée, intégrales, fonctions ...) pourrait être réalisée sans. Mais si vous voulez savoir comment les choses fonctionnent à fond la peau (électronique, par exemple, ou certains algorithmes non triviaux), les mathématiques "avancées" sont quelque chose que vous feriez mieux de ne pas manquer sans nulle part.

5
Manrico Corazzi

La plupart de la programmation que j'ai effectuée comprenait des simulations de physique pour la recherche, notamment en électromagnétisme, en mécanique quantique et en mécanique des structures. Étant donné que les domaines problématiques ont des mathématiques avancées qui leur sont associées, il serait difficile de les résoudre sans utiliser des mathématiques avancées.

La réponse à votre question est donc - cela dépend de ce que vous essayez de faire.

5
WalkingRandomly

Une connaissance avancée des mathématiques est essentielle pour écrire un nouveau langage de programmation. Ou vous devez écrire vos propres algorithmes.

Cependant, pour la plupart des programmes quotidiens - des sites Web aux applications de traitement d’assurance - seuls les mathématiques de base sont nécessaires.

5
Oak

Tu as besoin de maths. La programmation n'est rien de plus que des mathématiques. Les découvertes de la physique théorique ne deviennent pas une implication pratique (applicable), à ​​moins d'être expliquées en termes de solutions mathématiques. Aucune de ces solutions ne peut être résolue par voie informatique si elles ne peuvent pas être interprétées sur des ordinateurs, et plus spécifiquement sur des langages de programmation. Différentes langues sont donc conçues pour résoudre des problèmes spécifiques. Mais pour les langages de programmation courants et répandus tels que Java, c, c ++, la plupart de nos tâches de programmation impliquent des solutions répétitives (continues) aux mêmes problèmes, tels que l'extraction de valeurs d'une base de données, de fichiers texte, leur mise sous Windows (ordinateur de bureau, Web), leur manipulation. mêmes valeurs, accédant parfois à des données provenant d’appareils similaires (mais avec des noms de marque différents, un port différent et un mal de tête), etc. qui n’implique pas plus que la méthode unitaire, et l’algèbre (compteur, une certaine logique), la géométrie (graphique), etc. Cela dépend de ce que vous essayez de résoudre.

4
Pramod

J'ai commencé à programmer à peu près au même moment où je suis entré dans mon cours de pré-algèbre .. Donc, je ne dirais pas que les mathématiques sont si importantes, bien qu'elles puissent aider dans certains types de programmation, en particulier fonctionnelle.

Je n'ai pas encore pris Discrete Math, mais je vois beaucoup de choses théoriques avec la programmation écrite dans une notation mathématique enseignée dans cette classe.

Assurez-vous également que vous savez comment calculer quoi que ce soit dans n’importe quelle base, en particulier les bases 2, 8 et 16.

De plus, un cours qui m'a vraiment apporté des concepts est ce cours de pré-programmation. Nous avons appris aux syndicats, aux intersections et à toutes ces choses heureuses et cela correspond presque exactement aux calculs au niveau des bits. Et nous avons très fortement couvert la logique booléenne. Ce que j’ai jugé le plus utile, c’est quand nous avons appris à réduire les déclarations booléennes complexes. C'était très pratique:

(x|y) & (x|z) & (x|foo)

peut être simplifié à

x | (y & z & foo)

Ce que je n'avais pas tout à fait compris auparavant.

4
Earlz

Les connaissances mathématiques sont souvent utiles au programmeur, tout comme les compétences en graphisme, les capacités de résolution de casse-tête, l’éthique professionnelle et une multitude d’autres compétences et caractéristiques. Très peu de programmeurs sont bons dans tout ce qu'un programmeur peut éventuellement bien faire. Je ne serais pas d’accord avec un énoncé de la forme "tu n’es pas un vrai programmeur à moins que tu ne puisses {insérer ici ta capacité de programmation préférée}".

Mais je me méfierais d'un programmeur qui ne pourrait pas faire de maths. Plus que de ceux qui ne pouvaient pas dessiner.

4
MusiGenesis

Pour être un bon programmeur, je ne pense pas que les mathématiques soient plus poussées - cela dépend toujours de ce que vous codez.

Bien sûr, si vous êtes dans la programmation graphique 3D, vous aurez besoin de matrices et d'autres choses. En tant qu'auteur de logiciels de gestion, vous aurez probablement besoin de statistiques mathématiques.

Mais être programmeur professionnel depuis près de 10 ans (et 10 autres années comme amateur), il n’était pas nécessaire que je fasse régulièrement des "maths supérieures". Dans environ 99,8% des cas, il s'agit simplement de plus, moins, division et multiplication dans certaines combinaisons intelligentes - dans la plupart des cas, il s'agit d'algorithmes et non de mathématiques.

4
BlaM

Apprendre des mathématiques supérieures, pour la plupart des programmeurs, est important simplement parce que cela oblige votre cerveau à penser de manière logique, étape par étape, pour passer d'une chose à une autre.

Cependant, très peu d’emplois en programmation ne nécessitent rien de plus que les mathématiques au secondaire. J'ai utilisé l'algèbre linéaire une fois. Je n'ai jamais utilisé de calcul. J'utilise l'algèbre tous les jours.

4
Lucas Oman

Je pense que cela dépend vraiment de ce que vous essayez de faire, mais IMHO, la théorie de CS et de l'OS sont plus importantes que les mathématiques ici, et vous n'avez vraiment besoin que des mathématiques qu'elles impliquent.

Par exemple, la théorie et l'optimisation de la planification reposent sur de nombreux antécédents de la plupart des ordonnanceurs des systèmes d'exploitation modernes. C'est un exemple de quelque chose qui nécessiterait des calculs, mais pas quelque chose de très compliqué.

Mais honnêtement, pour la plupart des choses, vous n'avez pas besoin de maths. Ce dont vous avez besoin, c’est d’apprendre la capacité de penser en bases 2 et 16, comme la capacité de penser mentalement OU/ET. Par exemple, si vous avez un octet et dans cet octet, il y a deux champs de 3 bits et 2 bits perdus, savoir quels bits sont dans quels champs sont actifs lorsque la valeur de l'octet est quelque chose comme 11, cela rendra les choses légèrement plus rapides que d'avoir à utiliser stylo et papier.

4
Uri

Eh bien, vous avez généré un certain nombre de réponses, et non, je ne les ai pas toutes lues. Je suis au milieu sur ce point, non, vous n’avez certainement pas besoin des mathématiques pour être programmeur. Les pilotes d'assembleur et de périphérique sous Linux ne sont ni plus ni moins compliqués que les autres et ne requièrent aucun calcul.

En aucun cas, avez-vous besoin de prendre ou de réussir un cours de mathématiques pour tout cela?.

Je conviens que la résolution de problèmes pour la programmation est assez similaire à celle des solutions mathématiques et que, par conséquent, les mathématiques viennent probablement facilement. ou au contraire si les mathématiques sont difficiles, la programmation peut être difficile. Une classe, un diplôme, des bouts de papier ou des trophées ne sont pas nécessaires. Partir apprendre, c'est certain.

Maintenant, si vous ne pouvez pas convertir rapidement d'hex en binaire en décimal, que ce soit dans votre tête, sur papier ou à l'aide d'une calculatrice, vous allez avoir du mal à vous en sortir. Si vous souhaitez vous lancer dans la mise en réseau et dans d’autres tâches liées à la synchronisation, les pilotes du noyau le font souvent mais n’y sont pas obligés. Vous allez vous battre. Je connais une très longue liste de personnes ayant des diplômes en mathématiques et/ou en informatique et/ou des diplômes d'ingénieur qui peinent à calculer leur débit, bits par seconde, octets par seconde, de la mémoire dont vous avez besoin pour faire quelque chose, etc. Dans une certaine mesure, cela peut être considéré comme une sorte de talent que certains ont et que d’autres doivent travailler.

En résumé, je crois en la volonté, si vous voulez apprendre ce que vous pouvez et ce que vous voulez, c'est aussi simple que cela. Vous n'avez pas besoin de suivre un cours ou de dépenser beaucoup d'argent. Par exemple, linux et qemu peuvent vous occuper pendant un bon bout de temps, différentes langues, etc. environnements difficiles à développer pour le développement du noyau, embarqué, etc. Vous n'y êtes pas limité , mais je ne crois pas qu'il faille prendre des cours si vous ne voulez pas. Si vous voulez alors bien sûr prendre quelques cours d'ee, quelques cours de cs et quelques cours de maths ..

4
old_timer

La programmation nécessite de maîtriser, ou au moins d'apprendre, deux matières. La programmation elle-même et quel que soit le domaine de votre programme. Si vous écrivez un logiciel de comptabilité, vous devez apprendre la comptabilité, si vous programmez la cinématique d'un robot, vous devez alors comprendre la cinématique directe et inverse. Compte ne peut prendre que des compétences de base en mathématiques, d'autres domaines prennent d'autres types de mathématiques.

3
Jim C

La programmation est un outil informatique.

Dans de nombreux domaines de la programmation, les mathématiques sont sur la banquette arrière. Si vous ne savez pas comment trier rapidement, téléchargez un module pour le faire à votre place. Vous ne comprenez pas les courbes elliptiques, pas de problème, achetez un module de cryptage AES .


Maintenant pour l'informatique. Oui, vous avez besoin de mathématiques de niveau supérieur. Aucun doute là dessus. La cryptographie, les systèmes d'exploitation, la construction de compilateurs, l'apprentissage automatique, les langages de programmation, etc. requièrent tous une forme de calcul plus poussé (calcul, discrète, linéaire, complexe) pour bien la comprendre.

3
J.J.

OMI, vous avez probablement besoin d’une aptitude pour les mathématiques, sans nécessairement avoir beaucoup de connaissances dans le domaine. Donc, les choses dont vous avez besoin pour être bon en maths sont similaires à celles dont vous avez besoin pour être bon en programmation.

Mais en général, je ne me souviens pas de la dernière fois où j'ai utilisé une mathématique avancée dans la programmation quotidienne, alors non.

3
Lehane

Il est important de garder la perspective. Apprendre les mathématiques, les mathématiques avancées, les calculs, etc. est idéal pour les processus de pensée et de nombreux postes de programmation s’attendent et peuvent utiliser des concepts de mathématiques et de mathématiques. Mais de nombreux travaux de programmation utilisent peu ou pas de maths.

L'informatique, étant une discipline mathématique, nécessite évidemment beaucoup de mathématiques. Mais peu d’emplois en programmation sont des dérivés de comp sci. La CS est une discipline très spécifique. Il y a une raison pour laquelle les écoles d'informatique ont maintenant le génie logiciel en tant que discipline distincte de CS. Ce sont des domaines très différents.

Comp Sci, par exemple, ne vous prépare pas bien au monde de la plupart des applications Web. Et l’ingénierie logicielle ne vous prépare pas bien à la conception du compilateur et au développement du noyau.

2

Non, pas besoin de maths. Je n'en ai pas fait depuis que j'ai obtenu mon diplôme et j'ai probablement oublié le peu de calcul que j'ai maîtrisé de toute façon.

Pensez-y comme une voiture. À votre avis, combien de mathématiques/physique se cache derrière des éléments tels que le contrôle de traction et le freinage ABS? Beaucoup. Combien de maths avez-vous besoin de savoir pour utiliser ces outils? Aucun.

EDIT: Une chose à ajouter. L'industrie est probablement importante ici. Un programmeur travaillant dans une entreprise de recherche ou qui écrit des systèmes de contrôle de traction intégrés à cette voiture a probablement beaucoup plus de chances d'avoir besoin de maths que le programmeur d'outils professionnels.

2
CodeRedick

Je vais m'asseoir sur la barrière avec vous ici ... il y a beaucoup de bons arguments pour et contre, et la plupart d'entre eux sont également valables. Alors quelle est la bonne réponse?

Les deux ... en fonction de la situation. Ce n'est pas un cas de "si vous n'êtes pas avec nous, vous êtes contre nous".

De nombreux aspects des mathématiques facilitent beaucoup les domaines de la programmation: géométrie, algèbre, trigonométrie, équations linéaires, équations quadratiques, dérivées, etc. En fait, bon nombre des "algorithmes" les plus performants reposent sur des principes mathématiques.

Comme Jon l'a souligné, il est diplômé en mathématiques, mais il utilise à peine cette connaissance dans le monde de la programmation. Je propose qu'il utilise les mathématiques beaucoup plus qu'il ne le pense probablement, quoique inconsciemment ... D'accord, peut-être pas de la mécanique quantique, mais des principes plus fondamentaux. Chaque fois que nous mettons en place une interface graphique, nous utilisons des principes mathématiques pour concevoir de manière esthétique, nous ne le faisons pas consciemment - mais nous le faisons.

Dans le monde des affaires, nous pensons rarement aux calculs que nous utilisons dans nos logiciels - et dans de nombreux aspects du logiciel que nous écrivons, ce sont juste des algorithmes standard pour effectuer les mêmes tâches monotones pour aider le monde des affaires à rattraper la technologie disponible.

Il serait assez facile de sauter toute une carrière sans jamais utiliser consciemment les mathématiques dans notre logiciel. Cependant, comprendre les mathématiques aide à simplifier de nombreux aspects de la programmation.

Je pense que la question se résume vraiment à: "Est-ce que avancé math est nécessaire pour la programmation?" et bien sûr, à that question la réponse est non ... à moins que vous ne commenciez à écrire et/ou à craquer des algorithmes de chiffrement (qui est un sujet fascinant) ou à travailler avec des équations hydrauliques comme Mil a souligné ou des systèmes de contrôle de flux (comme je l'ai fait dans le passé). Mais j'aurais ajouté que, même si les mathématiques de base ne sont peut-être pas nécessaires, cela vous facilitera la vie beaucoup.

1
BenAlabaster

Nécessaire! = Suffisant

Allez les gars! le titre dit "nécessaire", je dirais que c'est au mieux une condition suffisante pour pouvoir bien programmer. De nombreuses conditions suffisantes mais non nécessaires sont réunies: expérience de 5 ans, diplôme universitaire en sciences ou autre formation scientifique.

Certains pourraient même affirmer qu'être poète ou major en anglais pourrait faire de vous un bon concepteur d'API ou qu'un artiste pourrait être bon en programmation UI/Web.

Mais ce ne sont évidemment pas des garanties, tout comme le fait de savoir que les mathématiques peuvent ne pas faire de vous un bon programmeur, mais vous pouvez quand même pirater du C++ ou du F # comme le reste ...

1
user37468

Ma réponse est absolument pas. J'étais/je suis (maintenant, sans emploi, merci l'Inde) un programmeur informatique de plus de 25 ans. Et, dans toute ma carrière, je n’ai jamais rencontré de programme LOGIC qui exigeait plus que des compétences de base en mathématiques. À moins de travailler quotidiennement avec des mathématiques qui dépassent les compétences de base en mathématiques, le besoin de mathématiques avancées est toujours présent. Au niveau de l'entreprise, tout calcul complexe SERA renvoyé à un staticien ou à un mathematicain, qui fournira au programmeur le pseudo-code nécessaire et les deux collaboreront à la mise à l'essai approfondie du produit final. En fin de compte, la balle est dans le camp des nerds de mathématiques. Quel que soit votre niveau, à moins que vous ne soyez mathématicien/staticien/programmeur principal, l'idée d'avoir un programmeur responsable des résultats escomptés d'un programme informatique avancé complexe en mathématiques est absurde et très téméraire.

1
user266745

D'après mon expérience, l'exigence en mathématiques pour un diplôme en informatique existe simplement pour éliminer ceux qui échoueront. Si vous ne pouvez pas réussir les calculs I et II, vous ne passerez certainement pas un cours avancé sur la construction de compilateur, la base de données ou la théorie des systèmes d'exploitation.

1
Brian Teeter

Les mathématiques discrètes que j'ai trouvées très utiles. J'ai pris le calcul, et il y a eu des moments où cela aurait pu être très utile aussi, mais je ne me souviens de rien. Par exemple, à l'époque, j'essayais d'implémenter une interface DIS (qui traitait de choses comme les vitesses de rotation et les transformations de coordonnées). J'ai passé une journée à conduire dans toute la ville à la recherche d'un livre à expliquer quaternions (c'était avant WWW). Il y a eu aussi une fois où j'ai eu besoin d'écrire une installation que certains ingénieurs pourraient implémenter interpolation n-linéaire . Si vous ne savez pas ce que cela signifie, croyez-moi, je ne l'ai pas fait non plus. Heureusement, c'était post - WWW.

Mon conseil est de ne pas transpirer. Vous pouvez être bloqué sur un projet ou deux, mais pas si mal ces jours-ci.

1
T.E.D.

J'ai utilisé beaucoup de maths pour résoudre des problèmes de mécanique des solides et de transfert de chaleur à l'aide d'ordinateurs. Algèbre linéaire, méthodes numériques, etc.

Je ne puise jamais dans ces connaissances maintenant que j'écris des applications métier qui transmettent des informations depuis des bases de données relationnelles vers des interfaces utilisateur basées sur le Web.

Je recommanderais quand même un meilleur bagage en mathématiques à quiconque.

Les mathématiques discrètes sont très utiles pour un développeur. Je n'ai aucune formation formelle dans ce domaine.

Je pense que les techniques décrites dans " Programmation de l'intelligence collective " sont bien loin de ce que j'ai fait en tant que ME et pourraient tomber dans les applications professionnelles que je suis en train de créer. Netflix en a certainement fait une belle affaire. L'intelligence de groupe semble être à la hausse.

1
duffymo

Pour répondre à la question: n °

Talent mathématique et talent en programmation: forte corrélation, peu ou pas de causalité.

L’un n’est certainement pas une condition préalable pour l’autre, et l’amélioration de vos compétences en mathématiques ne fera pas de vous un meilleur programmeur, sauf si vous programmez dans l’un des domaines spécialisés dans lequel les mathématiques sont très intégrées (graphiques 3D, programmation statistique, etc.). .)

Cela dit, bien sûr, une formation en mathématiques ne vous fera certainement pas de mal et vous aidera grandement dans certains cas. Et comme d'autres l'ont noté, les processus de pensée impliqués en mathématiques et en programmation sont assez similaires; Si vous avez un talent pour l'un, vous constaterez probablement que vous avez un talent pour l'autre.

Si je voulais recommander aux programmeurs une exigence en mathématiques, il s'agirait de statistiques de base. Presque tous les emplois de programmation nécessitent un petit rapport.

Le besoin de mathématiques augmente un peu à mesure que vous commencez à faire plus de choses avancées et/ou amusantes. Les jeux sont assez lourds en mathématiques, de même que les applications critiques en termes de performances dans lesquelles vous devez vraiment comprendre le coût des différents algorithmes.

1
John Rose

J'ai un diplôme en mathématiques et je ne peux pas dire que cela m'aidait de quelque façon que ce soit. (Je développe des applications Web générales, rien de scientifique). J'apprécie travailler avec d'autres développeurs non diplômés en mathématiques, car ils semblent penser en dehors de mon champ "mathématiques" et me forcer à faire de même.

1
Mike K.

Ce n'est pas nécessaire à long terme, mais ...

Comme exemple trivial - Sans une compréhension de la géométrie, il est impossible de faire beaucoup de choses avec des carrés et des rectangles. (Chaque programmeur a/obtient une géométrie, alors ce n'est qu'un exemple).

Sans trigonométrie, il y a certaines choses difficiles à faire. Essayez de dessiner une horloge analogique sans comprendre la trigonométrie - vous pouvez le faire, mais le processus que vous devez suivre est essentiellement une réinvention de la trigonométrie.

Le calcul est intéressant. Vous n'en aurez probablement jamais besoin à moins de concevoir des jeux, mais le calcul vous apprend à modéliser des choses qui agissent beaucoup plus dans le "monde réel". Par exemple, si vous essayez de modéliser un arbre en chute, pour obtenir la bonne vitesse à chaque point de l'arche, vous aurez probablement besoin de beaucoup de calculs.

D'un autre côté, c'est juste une question d'exactitude. Tout ce que vous pouvez faire avec le calcul, vous pouvez probablement le faire avec des boucles et des approximations.

Au-delà de cela, pour rendre les choses encore plus réalistes, vous aurez probablement besoin de fractales et de mathématiques plus avancées.

Si vous programmez des sites Web et des bases de données, vous n’avez pratiquement pas besoin de l’algèbre 101.

1
Bill K

En tant que programmeur autodidacte qui a commencé à travailler sur les jeux il y a environ 30 ans, je dirais certainement que vous devez maîtriser le maximum de maths. Des choses comme les matrices, les quaternions, le lancer de rayons, les systèmes de particules, les moteurs physiques, etc. exigent un bon niveau de compréhension des mathématiques et je souhaiterais seulement avoir appris toutes ces choses beaucoup plus tôt.

1
KPexEA

Je travaille en tant que programmeur de jeu, en équipe avec des artistes, des concepteurs de jeux, des concepteurs de niveaux, etc.

Avoir quelqu'un dans l'équipe qui connaît quelques mathématiques est un net plus, tout comme c'est un avantage d'avoir quelqu'un qui joue à toutes sortes de jeux, quelqu'un qui est un membre représentant de notre public cible, quelqu'un qui a vécu des productions douloureuses, etc.

Souvent, ceux qui en savent le plus sont les programmeurs (parfois les concepteurs de jeux), car les domaines sont suffisamment proches. Mais au jour le jour, les programmeurs de jeux n'ont pas besoin de beaucoup de maths au-delà de la géométrie 3D et (parfois) de la physique.

Parmi les mathématiques que j’ai étudiées, j’ai trouvé les statistiques les plus utiles, même si certains concepts me manquent parfois.

1
Emile
0
JosephStyons

Je pense que la meilleure réponse à cette question (que l’on me pose souvent) est une analogie.

Beaucoup d'entre nous soulèvent des poids. Pourquoi? Est-ce parce que nous nous préparons pour le jour où nous deviendrons un haltérophile professionnel? Verrons-nous jamais la levée de poids en tant qu'obligation?

Bien sûr que non. Nous soulevons des poids parce que cela exerce nos muscles. Cela nous maintient en forme et en forme. Une personne en forme performera mieux dans d’autres domaines: randonnée, construction, course à pied, sommeil, etc.

Apprendre les mathématiques, c'est comme l'haltérophilie pour le cerveau. Il exerce l'esprit et le maintient en forme. Vous ne pouvez jamais utiliser le calcul dans votre carrière, mais votre cerveau sera en meilleure forme à cause de cela.

0
Barry Brown

Deux choses viennent à l'esprit:

  • Le contexte est primordial. Si vous êtes programmeur de jeux ou dans une discipline de l’ingénierie, les mathématiques peuvent être vitales pour votre travail. Je fais de la base de données et du développement Web, donc les mathématiques au niveau secondaire me conviennent.
  • Vous êtes très susceptible de réutiliser le code mathématique prédéfini de quelqu'un d'autre plutôt que de réinventer la roue, en particulier dans des domaines tels que le cryptage et la compression. (Cela peut également s'appliquer si vous développez des jeux en utilisant un outil de physique tiers ou un moteur 3D.) Disposer d'un cadre de routines éprouvées à utiliser dans vos programmes évite les erreurs et les failles de sécurité potentielles - définitivement une bonne chose.
0
Dave R.

Pour votre interface graphique générale et vos applications Web, seules des connaissances de base en mathématiques seront nécessaires.

Une fois dans votre vie, vous pourriez avoir un projet étrange où vous avez besoin de calcul ou d’algèbre linéaire.

(Si vous faites de la programmation de jeux 3D ou un autre domaine spécifique de la programmation, vous pourriez en avoir besoin tous les jours)

0
Martin Liesén

Les mathématiques sont autant une façon de penser que les compétences elles-mêmes. Et même cela se situe à plusieurs niveaux. Quelqu'un d'autre a fait remarquer que les compétences analytiques et d'abstraction communes aux mathématiques sont précieuses pour la programmation et qu'il s'agit d'un niveau. Je dirais également qu'il existe un autre niveau qui contient des analogues précis qui vont de l'un à l'autre - par exemple, la théorie des ensembles derrière les bases de données relationnelles, qui est entièrement masquée par la sémantique SQL.

Très souvent, les "meilleures" solutions, qui sont les plus performantes et les plus concises, sont celles qui ont un peu de maths derrière. Si vous commencez à penser à vos problèmes de programmation orientés données comme une manipulation de matrice, ce qui est souvent le cas, vous pouvez souvent trouver de nouvelles solutions dans le monde des mathématiques.

Évidemment, il n’est pas nécessaire d’être un expert en mathématiques pour programmer, on peut enseigner à tout le monde, mais c’est une des compétences qui mérite d’être acquise - et que l’on recherche chez les recrues.

0
Simon

Cela dépend de ce que vous faites: développement Web, logiciel de gestion, etc. Je pense que pour ce genre de choses, vous n'avez pas besoin de mathématiques.

Si vous voulez faire des graphiques informatiques, traitement audio/vidéo, AI, cryptographie, etc. alors vous besoin un fond de mathématiques, sinon vous pouvez simplement ne pas le faire.

0
Nils

Les techniques d’apprentissage statistique deviennent de plus en plus importantes.

0
Jamie Eisenhart

C'est une bonne réponse, vous n'avez pas besoin de savoir les mathématiques (bon Dieu, je ne sors jamais de la base de l'Ordre des opérations: Maths PEMDAS) haha, pourtant j'arrive toujours à une solution. Bien sûr, en 1970, les maths étaient extrêmement importants pour les programmeurs qui tentaient de programmer efficacement pour un cycle de processeur en utilisant des équations mathématiques très complexes pour éviter les boucles, etc.

Maintenant, les ordinateurs ont une boucle d'environ 100%, évitant ainsi l'utilisation de mathématiques complexes, ne nuira pas vraiment à votre programme à long terme, mais bien sûr, vous maîtriserez les compétences mathématiques en tant qu'observateur sans même apprendre les mathématiques haha, ce qui améliorera vos capacités de programmation efficaces .

Voyons les choses en face, plus vous en savez sur les mathématiques, plus vous optimiserez un programme, mais vous comprendrez ce qu'il est possible de programmer et ce qui est impossible sans lire les articles qui disent que c'est impossible, à cause de cette folle équation mathématique.

Apprendre les mathématiques peut vous aider à comprendre comment les choses fonctionnent sans expérience réelle (je me base sur ma vie).

Voici mon exemple (un article de compression). Je n'arrêtais pas d'essayer et d'essayer sans comprendre le calcul derrière cela .. à partir de 700? tentatives ratées/échouées Je sais maintenant plus de choses possibles (ce qui peut échouer à nouveau) et je connais aussi les 700 façons erronées de voir les choses.

Si je connaissais probablement les mathématiques, je n'essaierais même pas ces 700 tentatives ratées, probablement parce que je connaissais trop de mathématiques. Mais le chemin que j’ai choisi sans savoir autant de mathématiques me semble beaucoup plus amusant et plus éducatif.

Mais c'est juste moi .. je suis toujours les mains sur personne .. pas le ver de livre;)

Certaines conduisent à de nouvelles percées mathématiques, d’autres à un logiciel optimisé plus rapide et plus rapide.

Laissez cette leçon être une leçon pour vous, les gars, choisissez votre voie selon ce qui vous convient le mieux, croyez-moi que les deux sont gratifiants.

0
SSpoke

La programmation système n’est pas sorcière :-) IMHO, n’importe quel good le programmeur peut s’approcher de la programmation système. Cependant, il faut savoir

  • Algorithmes (cela nécessite peu de calcul, mais pas trop pour faire peur à un bon programmeur),
  • Structures de données, et
  • Certaines connaissances (pas toutes) du domaine, par exemple OS, architecture, compilateurs.

Je pense que les qualités les plus recherchées consisteraient à écrire précisez le code et les capacités vont en profondeur, si nécessaire, dans l’un des éléments ci-dessus.

BTW, c'est ma théorie personnelle, YMMV; Je ne me considère pas encore comme un bon programmeur! :-(

0
Arun

Pour faire ce que vous voulez, vous n'avez pas besoin de connaître les mathématiques, mais vous devez l'aimer beaucoup.

0
AVB

Programmation commerciale: arithmétique, un peu d'algèbre

Ingénierie: analyse numérique

Programmation scientifique: le ciel est la limite

0
Steven A. Lowe

Je pense que les mathématiques de Certian sont indispensables. Par exemple, chaque ingénieur logiciel devrait connaître et comprendre lois de De Morgan , et notation O .

D'autres types sont juste très utiles. En simulation, nous devons souvent faire beaucoup de modélisation physique. Si vous travaillez avec des graphiques, vous aurez souvent besoin d'écrire des algorithmes de transformation de coordonnées. Au cours de mes 20 années de carrière, j'ai eu beaucoup d'autres situations où je devais écrire et résoudre des équations linéaires simultanées afin de déterminer les constantes à mettre dans un algorithme.

0
T.E.D.

À mon avis, il y a de bons points à cette question.

Comme David Nehme l'a signalé ici, l'informatique et la programmation sont deux sujets très différents.

Je trouve parfaitement possible qu'un programmeur possédant des compétences en mathématiques très élémentaires au lycée et au début du collège soit un programmeur compétent. Pas si sûr du diplômé en informatique, cependant.

Comme vous l'avez souligné à juste titre, le processus de création d'algorithme est très lié à la manière dont vous calculez les mathématiques. Même si cela résulte simplement du type de processus mathématique et analytique que vous devez accomplir pour concevoir correctement un algorithme.

Je pense aussi que cela dépend beaucoup de ce que vous faites, plus que de votre description de poste ou de vos compétences. Par exemple, si la programmation et les mathématiques sont tous deux des outils pour produire un effet, vous devrez sûrement être compétent (c.-à-d.: Vous créez un programme de modélisation pour une raison quelconque). Bien que, si la programmation soit l'objectif ultime de votre activité, les mathématiques ne sont probablement pas nécessaires. (c'est-à-dire que vous créez une application Web)

0
Joum

À l'université, nous lisons le livre "Concrete Mathematics" de Knuth, Graham et Patashnik. Ceci est un livre de mathématiques avec des sujets choisis pour les étudiants en informatique. Plusieurs années plus tard, j'ai revérifié le livre et j'ai constaté que j'avais utilisé chaque sujet du livre au moins une fois (à l'exception des numéros de Stirling).

Dans la plupart des cas, connaître quelques notions mathématiques aide à résoudre des problèmes avec moins de travail, plus d'élégance ou à mettre en œuvre des solutions plus rapides. Cela dépend aussi du type de travail que vous faites. C'est à dire. les mathématiques sont plus importantes lorsque vous vous concentrez sur des algorithmes que sur des problèmes d’ingénierie.

0
abc

Si vous avez besoin de mathématiques avancées dans votre travail quotidien de programmeur, cela dépend vraiment de vos tâches. J'en ai besoin. La raison en est que je dois travailler avec des calculs hydrauliques pour les systèmes de tuyauterie afin d'évaluer dans le code le système de tuyauterie avant qu'il ne soit construit. Vous ne voudrez jamais vous tenir près d'un système de tuyauterie qui s'effondre en raison d'une surpression ou d'une sous-pression. ;)

Je suppose que pour de nombreux autres types de "simulations du monde réel", vous aurez également besoin de mathématiques avancées.

0
Mil

Les seules choses utiles que vous puissiez apprendre à l'université sont théoriques.

0
Marcin

Dans certaines programmations, j'imagine que les mathématiques seraient très utiles, mais ne seraient pas des programmeurs. J'ai de la chance si je peux ajouter 2 + 2 sans ma calculatrice de dandy bien pratique.

0
user18411

Dépend de la tâche de programmation. Je mettrais "prendre les données d'une base de données et les afficher sur un site Web" dans le style de programmation orientée vers le côté peu important, puis sur les "jeux vidéo" de l'autre côté (je travaille dans des jeux et j'ai l'impression d'utiliser quelque chose de différent au hasard. saveur des mathématiques tous les jours, et utilisera probablement plus si je savais plus).

0
Jeff

Vous n'avez pas besoin d'apprendre les mathématiques pour programmer.

Mais apprendre les mathématiques vous entraîne à penser à la discipline. Par conséquent, je considérerais que les mathématiques sont bonnes pour les développeurs.

0
Vlad

Voir aussi Programng == Math? from stackoverflow.

Bien que je ne pense pas que ce soit nécessaire pour la programmation, je ne peux pas vous dire combien de fois j'ai pu utiliser les concepts de algèbre linéaire pour écrire une solution claire et succincte permettant de remplacer un problème compliqué (et parfois incorrect) un. Lorsqu’un graphique ou une géométrie (et même un solveur) fonctionne, la connaissance de matrices et de la façon de les utiliser est également extrêmement utile.

0
Philip Rieck

Il existe de nombreuses tâches de programmation qui peuvent être bien exécutées sans avoir acquis une formation en mathématiques avancées. Il est probablement prudent de dire que la majorité des emplois de programmation disponibles nécessiteront rarement autre chose que des mathématiques de niveau secondaire. Mais vous n'allez pas écrire le logiciel qui aide à placer la navette dans l'espace en piratant avec votre niveau de maths d'algèbre de première année. Ainsi, bien que les mathématiques avancées ne soient généralement pas indispensables à de nombreuses tâches de programmation, les problèmes les plus difficiles en auront absolument besoin. L'étude des mathématiques enseigne également de précieuses compétences en résolution de problèmes qui peuvent être utilisées presque n'importe où. J'imagine que vous pourriez dire que ce n'est pas nécessaire la plupart du temps, mais cela va certainement aider presque tout le temps.

0
jm4

Vous n'avez pas besoin de beaucoup de maths. Une certaine pensée combinatoire peut vous aider à cadrer et à réduire un problème pour une exécution rapide. Être capable de se multiplier, c'est bien. Vous êtes un ingénieur, les approximations vont bien.

0
SK9

Je pense que pour les tâches que vous avez décrites, vous n'avez pas besoin de trop de calculs. mais en général, je pense que pour une programmation système avancée, vous:

  • Pas besoin de calcul du tout
  • Besoin d'une bonne compréhension des composants internes de l'ordinateur
  • Besoin de CS beaucoup et de la théorie de l'OS
  • Besoin de mathématiques discrètes (y compris les algorithmes et la combinatoire)
0
Andrey

J'ai deux diplômes en mathématiques. J'aimerais en savoir plus sur les bases de données.

Mon objectif est que, bien que pouvoir trouver les racines d’un polynôme ou pouvoir prouver que sqrt (2) est irrationnel est utile dans un sens abstrait, mais ne fera pas nécessairement de vous un meilleur programmeur.

0
Andrew Boes

Non, vous n'avez pas besoin de connaître les mathématiques (sauf peut-être les représentations binaires/oct/hex/déc) pour la programmation système, etc.

0
George

J'admets que je n'ai jamais utilisé de mathématiques avancées en programmation, sauf dans certains projets familiers traitant de sujets mathématiques.

Cela dit, j'aime bien travailler avec des personnes assez intelligentes pour faire des mathématiques. Maîtriser des tâches complexes et difficiles aide votre cerveau à se mettre en forme pour résoudre des problèmes de programmation complexes et difficiles.

0
Hans-Peter Störr