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.