Il m'est arrivé de débattre avec un ami pendant mes études universitaires pour savoir si les mathématiques avancées sont nécessaires pour un programmeur chevronné. Il avait l'habitude d'argumenter farouchement contre cela. Il a dit que les programmeurs n'ont besoin que des connaissances mathématiques de base du lycée ou du lycée, ni plus ni moins, et que presque toutes les tâches de programmation peuvent être accomplies sans même avoir besoin de mathématiques avancées. Il a cependant fait valoir que les algorithmes sont un atout fondamental et indispensable pour les programmeurs.
Ma position était que tous les progrès de l'informatique dépendaient presque uniquement des progrès des mathématiques, et donc une connaissance approfondie des mathématiques aiderait grandement 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. Pouvez-vous nous dire votre position, à partir de votre propre expérience?
Réponses:
Pour répondre à votre question telle qu'elle a été posée, je devrais dire: "Non, les mathématiques ne sont pas nécessaires pour la programmation". Cependant, comme d'autres personnes l'ont suggéré dans ce fil, je crois qu'il existe une corrélation entre la compréhension des mathématiques et la capacité de «penser algorithmiquement». Autrement dit, être capable de penser de manière abstraite à la quantité, aux processus, aux relations et à la preuve.
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, les boucles for, les déclarations goto (pardonnez-moi, j'étais Vic 20 BASIC et je n'avais encore lu aucun Dijkstra) et la géométrie des coordonnées de base pour mettre 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 sois principalement concentré sur l'analyse, j'ai également étudié un peu les 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, il y avait peu de mathématiques que j'ai étudiées qui étaient directement applicables à ma programmation pendant mon diplôme 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 formelles de pensée qu'exigent les mathématiques - raisonnement minutieux, recherche de contre-exemples, construction de fondements axiomatiques, repérage des connexions entre les concepts - ont été d'une aide précieuse lorsque j'ai abordé des projets de programmation vastes et complexes.
Considérez la façon dont les athlètes s'entraînent pour leur sport. Par exemple, les footballeurs consacrent sans aucun doute une grande partie de leur temps d'entraînement aux compétences de base du football. Cependant, pour améliorer leur condition physique générale, ils peuvent également passer du temps au gymnase sur des vélos ou des rameurs, faire des poids, etc.
L'étude des mathématiques peut être comparée à la musculation ou à l'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 travail mental incroyable qui améliore votre capacité analytique de base.
la source
Bien que les mathématiques avancées ne soient pas nécessaires pour la programmation (à moins que vous ne programmiez des capacités mathématiques avancées), le processus de réflexion 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 endroit nouveau. Vous ne pouvez pas sauter des étapes. Si vous sautez des étapes, vous devez remplir les espaces vides. C'est un processus de réflexion critique qui rend les deux incroyablement similaires.
De plus, les mathématiciens et les programmeurs pensent tous deux de manière 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 à l'abstrait relie également les deux domaines.
Il y a de très bonnes chances que si vous êtes bon dans l'un, vous serez probablement bon dans l'autre.
la source
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 types très célèbres que j'admire en tant que développeurs n'avaient pas de formation en CS. Larry Wall (Perl), par exemple, était linguiste. D'un autre côté, il est utile de savoir quelque chose sur le domaine sur lequel vous travaillez, car vous pouvez au moins voir si vos données ont du sens et aider vos clients / utilisateurs à explorer ce qu'ils veulent vraiment. Et oui, il y a le problème de la complexité des calculs, des structures de données efficaces et de l'exactitude des programmes. Ce sont des choses 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.
la source
Je suppose que je vais être la première personne à vous dire faire 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 principes fondamentaux de la pensée critique et de l'analyse structurée sont très importants.
Plus encore, les mathématiques sont importantes pour comprendre un grand nombre de principes fondamentaux qui entrent dans des choses comme les ordonnanceurs, les optimisations, le tri, la gestion des protocoles et un certain nombre d'autres aspects des ordinateurs. Bien que les mathématiques impliquées à partir d'un niveau de calcul ne soient pas complexes (il s'agit principalement de l'algèbre du lycée), les théories et les applications peuvent être assez complexes car une solide compréhension des mathématiques par le biais du calcul sera d'un grand avantage.
Pouvez-vous vous en passer, absolument, et vous ne devriez pas laisser une connaissance moins approfondie des mathématiques vous retenir, mais si vous en aviez la chance, ou l'inclination, j'étudierais autant de mathématiques que possible, calcul, théorie numérique, linéaire algèbre, combinatoire, applications pratiques, tout cela a des applications pratiques et théoriques dans un large éventail de l'informatique.
J'ai connu des gens qui réussissaient très bien des deux côtés de la clôture (ceux qui ne se concentraient pas fortement sur les mathématiques et ceux qui allaient à l'école pour la physique ou les mathématiques), mais dans les deux groupes, ils aimaient les problèmes numériques et apprendre les algorithmes et la théorie mathématique. .
la source
J'ai un diplôme en mathématiques, mais je ne me souviens pas 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 en utilisant la dynamique des fluides, la théorie quantique ou les chaînes de Markov. (Le dernier est le plus susceptible de survenir, je suppose.)
La plupart des développeurs métier n'auront pas besoin de mathématiques avancées la plupart du temps. Parfois, la connaissance de la trigonométrie peut aider, et certainement être capable de comprendre suffisamment de mathématiques pour mettre en œuvre des algorithmes décrits mathématiquement peut être important - mais au-delà de cela? Non.
N'oubliez pas que la plupart des programmeurs ne font pas progresser l'informatique - ils créent 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 grâce à une ingénierie avancée.
la source
Je dirais qu'avoir des mathématiques avancées en logique (discrète) peut vraiment aider. Cela avec la théorie des ensembles. Lorsqu'il s'agit de programmes informatiques courants, ces disciplines peuvent être très utiles. Cependant, une grande partie des autres mathématiques que j'ai suivies à l'université était le calcul, qui, pour autant que je sache, avait un usage très limité. Étant donné que 90% (ou quelque chose du genre) de la programmation fait des applications commerciales avec des mathématiques très simples, je dirais que pour la plupart, 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 mettre au niveau suivant.
la source
Je vais aller à contre-courant ici et dire "Oui"
Je passe du génie civil à la programmation (Concrete Sucks!). Ma formation en mathématiques comprend les trucs habituels de première année, les deuxième et troisième années de calcul (Diff EQ, intégrations de volume, séries, transformées de Fourier et Laplace) et un cours d'analyse numérique.
Je trouve que mes mathématiques font cruellement défaut pour la programmation informatique. Il me manque des domaines entiers de mathématiques discrètes et de logique, et je ne survis 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 des recherches approfondies (essentiellement l'équivalent d'un demi-cours de travail.) Je suis certainement incapable de proposer de NOUVEAUX algorithmes, comme je viens de le faire. Je n'ai pas les fondements mathématiques comme les épaules des géants sur lesquels se tenir.
la source
Cela dépend de ce que vous faites. 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 souhaitez créer un nouveau format d'image comme JPG ou un nouveau format audio comme MP3, vous êtes également assez perdu si vous ne pouvez pas comprendre une transformation en cosinus ou en fourier, car ce sont les bases sur lesquelles la compression avec perte est basée sur la plupart . De nombreux autres problèmes peuvent être mieux résolus si vous connaissez assez bien vos mathématiques.
Il existe également de nombreuses autres tâches de programmation qui ne nécessitent pas beaucoup de mathématiques.
la source
Si vous trouvez le sujet suffisamment fascinant pour le publier, allez-y et commencez à apprendre. Le reste viendra naturellement.
la source
Oui, il n'y a pas besoin de mathématiques avancées - si vous programmez des logiciels commerciaux - prêts à l'emploi.
Cependant, lorsqu'il s'agit de choses hardcore telles que:
Certaines connaissances avancées en mathématiques pourraient être utiles. Et ce n'est pas comme s'il s'agissait de problèmes «hors de ce monde».
J'ai dû créer un logiciel pour essayer de "prédire" la quantité de papier nécessaire pour un bureau (et c'était un enfer juste pour trouver la meilleure façon d'approcher les valeurs).
Vous devez faire attention, cependant, car il est facile de se perdre en utilisant des choses avancées - il y a un de mes amis qui a eu recours à Turing pour stocker l'état d'un menu dynamique juste pour l'afficher correctement - humm ... peut-être ... il est allé trop loin dans son imagination.
la source
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.
L'infographie nécessite 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 les gens qui sont bons en mathématiques et ceux qui sont bons en programmation.
J'espère que cette réponse insipide vous aidera.
la source
Les mathématiques sont nécessaires pour les développeurs dans certains domaines mais sont presque inutiles dans d'autres.
Si vous êtes un développeur de jeux et devez beaucoup travailler avec la physique, la compréhension des mathématiques est cruciale. Si vous travaillez avec des commandes visuelles avancées, vous ne pourriez pas faire grand-chose sans géométrie. Si vous prévoyez de faire des calculs financiers, il serait VRAIMENT utile d'avoir une solide connaissance des statistiques.
D'un autre côté, au cours des 5 dernières années, je n'avais que 2 ou 3 projets où N'IMPORTE QUELLE quantité de mathématiques était nécessaire. Parmi ceux-ci, il n'y a eu qu'un seul événement lorsqu'une recherche Google n'a pas aidé.
En fin de compte, même les calculs financiers sont très souvent quelque chose que vos clients font pour vous et vous donnent des formules à mettre en œuvre.
Donc, si vous êtes dans le domaine 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.
la source
Je suis d'accord avec Chris. Je dirais aussi "Oui". Mais cela dépend de votre marché comme indiqué ci-dessus. Si vous créez simplement des applications ou des outils d'écriture de base «prêts à l'emploi» pour vous aider dans votre travail quotidien ... alors les mathématiques ne sont pas aussi importantes.
L'ingénierie de solutions logicielles personnalisées nécessite beaucoup de résolution de problèmes et de réflexion critique. Compétences qui sont certainement améliorées lorsqu'une formation en mathématiques est présente. J'ai une mineure en mathématiques avec mon diplôme en génie informatique et j'accorde du crédit à tous mes antécédents en mathématiques pour expliquer pourquoi je suis là où je suis aujourd'hui.
C'est mes 2 cents, je peux dire d'après la lecture ci-dessus que beaucoup ne seraient pas d'accord. J'encourage tout le monde à considérer que je ne dis pas que vous ne pouvez pas avoir ces compétences sans une formation en mathématiques, je dis simplement que les compétences sont des effets secondaires d'avoir une telle expérience et peuvent avoir un impact positif sur le logiciel.
la source
D'après mon expérience, les mathématiques sont nécessaires dans la programmation, vous ne pouvez pas vous en éloigner. L'ensemble de la programmation est basé 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 ou non de mathématiques, mais de combien. Les niveaux plus élevés de mathématiques vous donneront plus d'outils et ouvriront votre esprit à différentes voies de pensée.
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 implémenter dans des programmes. L'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
if
déclarations.Et n'oubliez pas le frère des mathématiques, de la logique et de la philosophie. Logic vous aidera à utiliser efficacement les instructions
case
ouswitch
. La philosophie vous aidera à comprendre la pensée de celui qui a écrit le code que vous modifiez.Oui, vous n'avez pas besoin de beaucoup de mathématiques pour écrire des programmes. Certains programmes peuvent exiger plus de mathématiques que d'autres. Plus de connaissances en mathématiques vous donneront un avantage sur ceux qui ont moins de compréhension. En ces temps, les gens ont besoin de tous les avantages possibles pour obtenir ces emplois.
la source
Je programme depuis 8 ans professionnellement, et depuis l'âge de 12 ans comme passe-temps.
Les mathématiques ne sont pas nécessaires, la logique l'est. Les mathématiques sont horriblement utiles cependant, dire que ce n'est pas nécessaire, c'est comme dire que pour tuer un homme, une arme à feu n'est pas nécessaire, vous pouvez utiliser un couteau. Eh bien, c'est vrai, mais ce pistolet rend les choses beaucoup plus faciles.
Il y a quelques minimums que vous devriez déjà respecter. 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 à la 3e est 27), et l'expression informatique courante est 3 ^ 3. Les notations communes pour l'algèbre changent entre les langues, mais beaucoup d'entre elles utilisent une méthodologie quelque peu unifiée. D'autres (en vous regardant LISP) ne le font pas. Vous devez également connaître l'ordre des opérations.
Vous devez comprendre la pensée algorithmique. D'abord ceci, puis ceci, produit ce qui est utilisé dans ce calcul. Il y a de fortes chances que vous compreniez ceci ou que vous ne le compreniez 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 n'obtiennent pas d'art. Ils ne doivent pas devenir peintres. En outre, il y a eu des étudiants dans le programme CS qui ne peuvent pas comprendre pourquoi cela ne fonctionne pas: x = z + w; z = 3; y = 5; Ce n'est pas qu'ils ne comprennent pas l'addition, c'est qu'ils ne comprennent pas l'exigence d'un express sans ambiguïté. S'ils le comprennent, l'ordinateur devrait aussi, non? Si vous ne voyez pas ce qui ne va pas avec les trois lignes ci-dessus, ne devenez pas programmeur.
Enfin, vous devez connaître les mathématiques relevant de votre domaine de programmation. Les logiciels de comptabilité pourraient s'arrêter à l'algèbre de base. Si vous programmez la physique, vous aurez besoin de connaître la physique (vaguement) et les mathématiques en géométrie tridimensionnelle (euclidienne). Si vous programmez un logiciel d'architecture, vous aurez besoin de connaître la trigonométrie.
Cela va plus loin que les mathématiques; 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 aurez besoin de connaître les probabilités, les statistiques, la théorie de la grammaire (plusieurs langues), etc.
Souvent, certains domaines ont besoin ou peuvent bénéficier de connaissances que vous pensez être sans rapport. Par exemple, si vous programmiez un logiciel audio, vous devez en fait connaître la trigonométrie pour gérer les formes d'onde.
L'ampleur change aussi les choses. Si vous triez un ensemble de données financières de 1 000 éléments, ce n'est pas grave. S'il s'agissait de 10 millions d'enregistrements, cependant, vous bénéficieriez grandement de la connaissance des mathématiques vectorielles et d'une compréhension approfondie du 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 constater qu'en tant que programmeur, votre base de connaissances générales va exploser, car chaque projet nécessitera plus d'apprentissage en dehors de la sphère directe de la programmation. Si vous êtes dégoûté 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 programmeur.
Si vous aimez les exercices de réflexion, si vous aimez apprendre, si vous pouvez penser à des choses abstraites comme les mathématiques sans calculatrice ou à la conception sans carnet de croquis, si vous avez de larges goûts en matière de vie et de passe-temps, si vous êtes autocritique et pouvez jeter '' idées préférées, si vous aimez perfectionner les choses, devenez programmeur. Ne basez pas cette décision sur les mathématiques, mais plutôt sur la capacité de penser logiquement et d'apprendre. Voilà ce qui est important; les mathématiques ne sont que le sous-produit.
la source
Bien sûr, cela dépend du type de programmeur que vous souhaitez être, ou mieux du type de programmeur que vos employeurs veulent que vous soyez. Je pense que le calcul et l'algèbre sont essentiels, la programmation statistique et linéaire est en effet un bon outil à avoir dans sa mallette, peut-être que l'analyse (dérivée, intégrales, fonctions ...) pourrait se faire sans. Mais si vous voulez savoir comment les choses fonctionnent en profondeur (l'électronique, par exemple, ou certains algorithmes non triviaux), les mathématiques «avancées» sont quelque chose que vous feriez mieux de ne pas vous passer de n'importe où.
la source
La plupart de la programmation que j'ai faite impliquait des simulations physiques pour la recherche, y compris des choses comme l'électromagnétisme, la mécanique quantique et la mécanique structurelle. Étant donné que les domaines de problèmes sont associés à des mathématiques avancées, j'aurais du mal à les résoudre sans utiliser de mathématiques avancées.
La réponse à votre question est donc - cela dépend de ce que vous essayez de faire.
la source
Des connaissances avancées en mathématiques sont essentielles si vous voulez é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 des assurances - seuls les mathématiques de base sont nécessaires .
la source
Quelqu'un avec une solide expérience mathématique (qui n'est pas simplement arithmétique) ou logique se débrouillera bien avec les algorithmes, l'utilisation de variables, le raisonnement conditionnel et les structures de données.
Les mathématiques vous aideront jusqu'à un certain point, mais seulement jusqu'à un certain point.
la source
Je ne pense pas que des connaissances avancées en mathématiques soient une exigence pour un bon programmeur, mais sur la base de mon expérience personnelle, je pense que les programmeurs qui maîtrisent mieux les mathématiques avancées font également de meilleurs programmeurs. Cela peut simplement être dû à un esprit plus logique ou à une perspective plus logique en raison de leurs expériences de résolution de problèmes mathématiques.
la source
Le concept fondamental des mathématiques est le suivant: concevoir, comprendre, implémenter et utiliser des algorithmes. Si vous ne pouvez pas faire de maths, c'est 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 pas nécessiter de connaissances mathématiques spécifiques (par exemple, vous n'aurez probablement pas besoin d'algèbre vectorielle et de calcul à moins que vous n'effectuiez 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 correspondra un manque de capacité correspondant dans l'autre domaine.
la source
Math est une boîte à outils pour créer des programmes. Je recommande l'introduction aux algorithmes de Cormen. Cela touche à des choses plus «mathématiques».
la source
Je ne pense pas que des mathématiques plus élevées soient une exigence pour être un bon programmeur - comme toujours, cela dépend de ce que vous codez.
Bien sûr, si vous êtes en programmation graphique 3D, vous aurez besoin de matrices et d'autres choses. En tant qu'auteur de logiciels d'entreprise, vous aurez probablement besoin de statistiques mathématiques.
Mais être programmeur professionnel pendant près de 10 ans (et encore 10 ans en amateur) "mathématiques supérieures" n'est pas quelque chose dont j'avais besoin régulièrement. Dans environ 99,8% de tous les cas, il s'agit simplement de plus, moins, de division et de multiplication dans certaines combinaisons intelligentes - dans la plupart des cas, il s'agit d'algorithmes, pas de mathématiques.
la source
Apprendre des mathématiques plus élevées, pour la plupart des programmeurs, est important simplement parce que cela incite votre cerveau à penser logiquement, étape par étape pour passer d'une chose à une autre.
Cependant, très peu d'emplois en programmation nécessitent quelque chose au-dessus des mathématiques du 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.
la source
Les connaissances mathématiques sont souvent utiles pour un programmeur, tout comme les compétences en conception graphique, la capacité à résoudre des énigmes, l'éthique de travail et une foule d'autres compétences et traits. Très peu de programmeurs sont bons dans tout ce pour quoi un programmeur peut être bon. Je ne serais d'accord avec aucune déclaration de la forme "vous n'êtes pas un vrai programmeur à moins que vous ne puissiez { insérer la capacité de programmation préférée ici }".
Mais je me méfierais d'un programmeur qui ne pourrait pas faire de mathématiques. Plus que celui qui ne savait pas dessiner.
la source
Je pense que cela dépend vraiment de ce que vous essayez de faire, mais à mon humble avis, la théorie du CS et du système d'exploitation est plus importante que les mathématiques ici, et vous n'avez vraiment besoin que des mathématiques qu'elles impliquent.
Par exemple, il existe de nombreux antécédents CS en matière de théorie et d'optimisation de la planification qui se cachent derrière de nombreux planificateurs dans les systèmes d'exploitation modernes. C'est un exemple de quelque chose qui exigerait des mathématiques, mais pas quelque chose de très compliqué.
Mais honnêtement, pour la plupart des choses, vous n'avez pas besoin de mathématiques. Ce dont vous avez besoin, c'est d'apprendre la capacité de penser en base 2 et 16, comme la capacité de OU / ET mentalement. Par exemple, si vous avez un octet et que 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 d'octet est quelque chose comme 11 rendra les choses légèrement plus rapides que d'avoir à utiliser stylo et papier.
la source
J'ai commencé à programmer à peu près au même moment où je suis entré dans ma classe de pré-algèbre. Donc je ne dirais pas que les mathématiques sont si importantes, même si elles peuvent aider dans certains types de programmation, en particulier fonctionnels.
Je n'ai pas encore pris de mathématiques discrètes, mais je vois beaucoup de choses théoriques avec de la programmation écrite dans une notation mathématique enseignée dans cette classe.
Assurez-vous également de savoir comment calculer quoi que ce soit dans n'importe quelle base, en particulier les bases 2, 8 et 16.
De plus, une classe qui m'a vraiment apporté quelques concepts était cette classe de pré-programmation. Nous avons appris les unions, les intersections et toutes ces choses heureuses et cela ressemble presque exactement aux mathématiques au niveau du bit. Et nous avons très largement couvert la logique booléenne. Ce que j'ai considéré comme le plus utile, c'est quand nous avons appris à réduire les instructions booléennes complexes. C'était très pratique:
peut être simplifié à
Ce que je n'avais pas tout à fait compris auparavant.
la source
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 de 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 nécessitent aucun calcul.
En aucun cas, vous n'avez besoin de suivre ou de réussir un cours de mathématiques pour tout cela.
Je conviendrai que la mentalité de résolution de problèmes pour la programmation est assez similaire à celle des solutions mathématiques, et 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 ou un diplôme ou des morceaux de papier ou des trophées ne sont pas nécessaires, partir et apprendre des choses, bien sûr.
Maintenant, si vous ne pouvez pas convertir rapidement hexadécimal en binaire en décimal dans votre tête, sur papier ou en utilisant une calculatrice, vous allez avoir du mal. Si vous voulez entrer dans le réseautage et d'autres choses qui impliquent le timing, ce que font souvent les pilotes du noyau, mais ce n'est pas obligatoire. Vous allez lutter. Je connais une très longue liste de personnes diplômées en mathématiques et / ou en informatique et / ou en ingénierie qui ont du mal avec les calculs de taux, les bits par seconde, les octets par seconde, la quantité de mémoire dont vous avez besoin pour faire quelque chose, etc. dans une certaine mesure, il peut être considéré comme une sorte de talent que certains ont et d'autres doivent travailler.
Mon objectif est que je crois au pouvoir de la volonté, si vous voulez apprendre ce genre de choses, vous pouvez et voudrez, c'est aussi simple que cela. Vous n'avez pas besoin de suivre un cours ou de dépenser beaucoup d'argent, linux et qemu par exemple peuvent vous occuper pendant un certain temps, différents langages asm, etc. environnements crashable pour le développement du noyau, embarqués, etc. Vous n'êtes pas limité à cela , mais je ne crois pas que vous deviez vous enfuir et prendre des cours si vous ne le voulez pas. Si vous voulez bien sûr prendre quelques cours ee, quelques cours cs et quelques cours de mathématiques.
la source
Vous avez 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 qu'elles ne soient expliquées en termes de solutions mathématiques. Aucun de ceux-ci ne peut être résolu par ordinateur s'il ne peut pas être interprété sur des ordinateurs, et plus particulièrement sur les langages de programmation. Différents langages sont ainsi conçus pour résoudre des problèmes spécifiques. Mais pour les langages de programmation à usage général et largement répandus comme java, c, c ++, une grande partie de nos tâches de programmation impliquent une solution répétitive (continue) aux mêmes problèmes tels que l'extraction de valeurs de la base de données, des fichiers texte, leur mise sur Windows (bureau, Web), la manipulation mêmes valeurs, accédant parfois à certaines données à partir d'appareils similaires (mais étant donné des noms de marque différents, un port différent et un mal de tête) etc. qui n'implique pas plus qu'une méthode unitaire,
la source
IMO, vous avez probablement besoin d'une aptitude aux mathématiques, sans forcément avoir beaucoup de connaissances dans le domaine. Donc, les choses dont vous avez besoin pour être bon en mathématiques 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 que j'ai utilisé une sorte de mathématiques avancées dans la programmation quotidienne, donc non.
la source