Eu programo há 8 anos profissionalmente, e desde os 12 como hobby.
A matemática não é necessária, a lógica é. Mas a matemática ajuda muito, dizer que não é necessário é como dizer que, para matar um homem, não é preciso usar uma arma, você pode usar uma faca. Bem, é verdade, mas aquela arma torna tudo muito mais fácil.
Existem alguns requisitos mínimos, que você já deve atender. Você precisa conhecer as expressões e notações algébricas básicas e os equivalentes comuns do computador. Por exemplo, você precisa saber o que é um exponencial (3 à 3 é 27) e a expressão de computador comum é 3 ^ 3. As notações comuns para álgebra mudam entre as linguagens, mas muitas delas usam uma metodologia um tanto unificada. Outros (olhando para você LISP) não. Você também precisa saber a ordem das operações.
Você precisa entender o pensamento algorítmico. Primeiro isso, depois isso, produz o que é usado neste cálculo. Provavelmente, você entende isso ou não, e é um obstáculo bastante difícil de pular se você não entende; Descobri que isso é algo que você "entende", e não realmente algo que você pode aprender. Por outro lado, algumas pessoas não "entendem" a arte. Eles não deveriam se tornar pintores. Além disso, há alunos no currículo de ciência da computação que não conseguem descobrir por que isso não funciona: x = z + w; z = 3; y = 5; Não é que eles não entendam adição, é que eles não estão compreendendo a exigência do expresso inequívoco. Se eles entendem, o computador também deve entender, certo? Se você não consegue ver o que há de errado com as três linhas acima, não se torne um programador.
Por último, você precisa saber a matemática que está sob seu domínio de programação. O software de contabilidade pode parar na álgebra básica. Se você estiver programando física, precisará saber física (vagamente) e matemática em geometria tridimensional (euclidiana). Se você estiver programando software de arquitetura, precisará saber trigonometria.
Isso vai além da matemática; seja qual for o domínio para o qual você está programando, você precisa entender profundamente o básico. Se você for um software de análise de linguagem de programação, precisará saber probabilidade, estatística, teoria gramatical (várias linguagens), etc.
Muitas vezes, certos domínios precisam ou podem se beneficiar de um conhecimento que você acha que não está relacionado. Por exemplo, se você estava programando um software de áudio, você realmente precisa saber trigonometria para lidar com formas de onda.
A magnitude também muda as coisas. Se você está classificando um conjunto de dados financeiros de 1000 itens, não é grande coisa. Se fossem 10 milhões de registros, no entanto, você se beneficiaria muito em saber matemática vetorial na verdade e ter um conhecimento profundo de classificação no nível binário (como um sistema classifica em ordem alfabética? Como ele sabe que 'a' é menor que 'b '?)
Você descobrirá que, como programador, sua base de conhecimento geral vai explodir, porque cada projeto exigirá mais aprendizado fora da esfera direta da programação. Se você é melindroso ou preguiçoso em relação à autoaprendizagem e não gosta da ideia de gastar mais de 10 horas por semana essencialmente fazendo 'lição de casa', não se torne um programador.
Se gosta de exercícios de reflexão, se gosta de aprender, se consegue pensar em coisas abstratas como matemática sem calculadora ou design sem bloco de desenho, se tem gostos amplos na vida e hobbies, se é autocrítico e pode jogar fora ' ideias favoritas, se você gosta de aperfeiçoar as coisas, torne-se um programador. Não baseie esta decisão na matemática, mas sim na capacidade de pensar logicamente e aprender. Isso é o que é importante; matemática é apenas o subproduto.