Existe um livro canônico sobre matemática para programadores? [fechadas]

52

Sou um programador autodidata. Honestamente, não sou bom em matemática. Que conselho você pode dar para melhorar minhas habilidades matemáticas para que eu não fique tão inseguro com meus colegas programadores? Quais são as etapas ou diretrizes que você pode recomendar para melhorar minhas habilidades matemáticas?

Existe um livro por aí que seja o padrão de fato para descrever as melhores práticas, metodologias de design e outras informações úteis sobre matemática para programadores? E esse livro o torna especial?

adietan63
fonte
8
Você conhece geometria? álgebra? trigonometria? álgebra linear? cálculo? A que distância você está?
Marcelo
3
@ adietan63: As sugestões serão apenas especulações, a menos que você seja mais específico sobre seu conhecimento matemático atual.
precisa
11
Eu usaria Python com PyGame. Se você deseja entrar em 3D sem muita dificuldade, o Panda3D de Carnegie Mellon, da Disney Studios, é muito fácil de aprender.
Thorsten Müller
11
@FrustratedWithFormsDesigner | O java é adequado para processamento de gráficos e jogos ou seu c ++?
adietan63
5
Você poderia nos contar um pouco mais sobre como seus colegas programadores usam matemática? Eu daria conselhos bem diferentes se você estiver trabalhando para uma empresa financeira versus uma loja de programação. (Se você se sentir mais seguro ao lançar palavras como "espaço de Hilbert" e "heterocedasticidade" pelo escritório, aprenda um pouco de álgebra linear e estatísticas avançadas. Só não espere impressionar os desenvolvedores do hoi polloi.)
rajah9

Respostas:

24

Hmm, pelo que você diz, parece que você quer começar muito básico. Nada de ruim nisso, fiz o mesmo. Minha matemática era na maior parte do ensino médio e muito esquecida.

Comece com a Khan Academy , vá para a seção prática e veja até onde você pode chegar. Isso lhe dará uma boa idéia do que você pode fazer e por onde começar a aprender.

Não se preocupe em assistir aos vídeos. Pelo menos para mim, os vídeos são apenas uma maneira lenta de aprender e os de Khan são muito chatos. Existem muitos outros recursos para aprender matemática básica. Como alguns dos WikiBooks ou ck-12

A questão é discutida no Math.StackExchange com bastante frequência e a pesquisa de 'recursos livres' ou 'livros gratuitos' trará muitas informações e materiais. O mesmo vale para termos de pesquisa como "iniciar" ou "iniciante". Ou faça sua própria pergunta lá. Isso também funciona na subseção / r / math no reddit. Lá você encontrará mais subreddits, por exemplo, para aprender matemática.

Pratique muito. Não basta apenas entender um conceito e seguir para o próximo. Você deve se sentir confortável para aplicá-lo. Você não entenderá porcentagens se não estiver confortável com a divisão e a multiplicação (como exemplo). Isso também é verdade para conceitos superiores. É por isso que para mim a seção de prática em Khan é muito mais valiosa do que os vídeos.

Assim como na programação, manter contato com a comunidade o manterá motivado. Basta entrar em algum fórum de vez em quando e ler sobre o que as pessoas estão falando.

thorsten müller
fonte
Valeu cara! Você está certo. Eu acho que preciso começar do básico para entender a ampla área da matemática.
adietan63
+100 O KhanAcademy é ótimo para fortalecer os fundamentos da matemática. Não há nada de errado em começar do básico. O aprendizado individual remove o 'fator de humilhação' de não conhecer alguns dos fundamentos simples da matemática. O sistema de avaliação faz um bom trabalho identificando pontos fracos e indo rapidamente além dos pontos fracos.
Evan Plaice
16

Matemática Concreta: Uma Fundação para a Ciência da Computação (2ª Edição) seria a minha escolha para um bom livro de Matemática cobrindo várias áreas da Matemática, além de ter algum humor para o livro que possa ser útil.

JB King
fonte
Eu também li. Um bom livro.
Ando
2
+1 porque é um livro muito bom. Não tenho certeza se é algo para alguém que se define como "não é bom em matemática".
vartec
Seria ótimo se, em vez de simplesmente usar a palavra "óbvio", Knuth tornasse algumas partes mais óbvias. Mas, com muito trabalho, tudo pode ser entendido, se alguém tiver uma sólida formação matemática na escola.
precisa saber é o seguinte
8
Esteja avisado, este livro definitivamente não é para iniciantes.
MAK
2
O truque é realmente lê-lo. Eu continuava me achando querendo lê-lo como um manual ou um site. Isso não funciona. Palavra ou conceito inexplicável? Você o encontrará se voltar o suficiente. Lento para mim (nunca terminou o cálculo - mas mais por ser mais preguiçoso do que ruim em matemática), mas uma boa recomendação IMO. Eles explicam bem as coisas. Apenas seja paciente e não se apresse.
precisa
10

As Notas Online de Paul da Universidade de Lamar são fornecidas em formato PDF. É muito bom para referência rápida e há exemplos em todas as páginas. Se eu quiser me atualizar sobre um tópico ou entender alguma coisa, costumo voltar a este site.

Aqui está o conjunto:

Álgebra (Matemática 1314): notas completas
Listagem de conteúdos

  • Preliminares - Propriedades de expoentes, expoentes racionais, expoentes negativos, radicais, polinômios, fatoração, expressões racionais, números complexos
  • Resolvendo Equações e Desigualdades - Equações Lineares, Equações Quadráticas, Completando o Quadrado, Fórmula Quadrática, Aplicações de Equações Lineares e Quadráticas, Redutíveis para a Forma Quadrática, Equações com Radicais, Desigualdades Lineares, Desigualdades Polinomiais e Racionais, Equações de Valor Absoluto e Desigualdades.
  • Gráficos e funções - Gráficos de linhas, círculos e funções por partes, definição de funções, notação de funções, composição de funções, funções inversas.
  • Gráficos Comuns - Parábolas, Elipses, Hipérboles, Valor Absoluto, Raiz Quadrada, Função Constante, Funções Racionais, Turnos, Reflexões, Simetria.
  • Funções polinomiais - Divisão de polinômios, zeros / raízes de polinômios, localização de zeros de polinômios, representação gráfica de polinômios, frações parciais.
  • Funções exponenciais e logaritmo - Funções exponenciais, funções de logaritmo, resolvendo funções exponenciais, resolvendo funções de logaritmo, aplicativos.
  • Sistemas de Equações - Método de Substituição, Método de Eliminação, Matriz Aumentada, Sistemas Não Lineares.

Cálculo I (Matemática 2413): separado em

  1. Listagem de conteúdos
  2. Notas
  3. Problemas Práticos
  4. Soluções para praticar problemas
  5. Problemas de atribuição

    • Revisão de álgebra / trigonometria - funções e equações de trigonometria, funções e equações exponenciais, funções e equações de logaritmo.
    • Limites - conceitos, definição, computação, limites unilaterais, continuidade, limites que envolvem o infinito, regra de L'Hospitals
    • Derivadas - Definição, interpretações, fórmulas derivadas, regra de potência, regra de produto, regra de quociente, regra de cadeia, derivadas de ordem superior, diferenciação implícita, diferenciação logarítmica, derivadas de funções trigonométricas, funções exponenciais, funções logarítmicas, funções inversas de trigonometria e funções trigonométricas hiperbólicas .
    • Aplicações de derivadas - taxas relacionadas, pontos críticos, valores mínimos e máximos, funções crescentes / decrescentes, pontos de inflexão, concavidade, otimização
    • Integração - Definição, Integrais Indefinidos, Integrais Definidos, Regra de Substituição, Avaliando Integrais Definidos, Teorema Fundamental do Cálculo
    • Aplicações de Integrais - Valor Médio da Função, Área Entre Curvas, Sólidos de Revolução, Trabalho.

Cálculo II (Matemática 2414) Notas completas

Cálculo III (Matemática 2415) Notas completas

Álgebra Linear (Matemática 2318) Notas Completas

Equações diferenciais (matemática 3301) Notas completas

Você pode verificar o site para o restante das listagens de tópicos.

phwd
fonte
11
Não acredito que isso não tem mais votos. Paulo é um deus.
n0pe 21/06
8

Sei que não é um livro, mas acho que pode ser uma boa maneira de ampliar seu pensamento sobre matemática. Tente trabalhar com os problemas do Project Euler .

Por exemplo, o primeiro é :

Se listarmos todos os números naturais abaixo de 10 que são múltiplos de 3 ou 5, obtemos 3, 5, 6 e 9. A soma desses múltiplos é 23.

Encontre a soma de todos os múltiplos de 3 ou 5 abaixo de 1000.

Peter K.
fonte
As perguntas do Project Euler são baseadas em matemática, mas o problema que tive com elas foi que elas foram tão avançadas tão rapidamente que a única maneira de resolvê-las foi com algoritmos de força bruta (a menos que eu trapaceie). Eles dizem que você deve conseguir encontrar uma solução elegante que seja executada em menos de 60 segundos para todas as perguntas.
Mike
4
@ Mike, eu não acho que pesquisar problemas semelhantes e tentar entender os conceitos subjacentes o suficiente para atacar o problema seja trapaça. Você está aprendendo mais "trapaceando" dessa maneira e não fazendo toda essa pesquisa.
Doug T.
11
Eu fiz muitos deles e isso aprimorou minhas habilidades de programação. Embora, em relação à matemática, você aprenda muitos truques, mas não acrescenta muito ao conhecimento fundamental, como cálculo ou álgebra. Mas isso aumenta a sua motivação fazendo matemática.
Thorsten Müller
11
@ thorsten: minha esposa (o matemático da família) acha que a matemática é apenas um monte de truques legais. :-)
Peter K.
11
O modo como costumo enfrentar os problemas de Euler é que primeiro eu geralmente tento uma força bruta e a otimizo. Só isso já ensinou muitos fatos matemáticos que eu nunca soube. A leitura dos fóruns de soluções posteriormente geralmente gera ainda mais insights matemáticos.
Sistema> Down
8

Eu sempre recomendo a Matemática Discreta de Kenneth Rosen e Suas Aplicações . Ele cobre muitos tópicos diferentes (como qualquer bom livro de Matemática Discreta) com um bom equilíbrio entre teoria e aplicação. Ele também possui muitas barras laterais interessantes sobre matemáticos e cientistas da computação que originaram os conceitos abordados.

Bill the Lizard
fonte
Obrigado! mas quais são os pré-requisitos antes de estudar Matemática Discreta etc.
adietan63
11
@ adietan63: Álgebra é tudo o que eu diria que é necessário . Minha universidade deixou-nos fazer a matemática discreta antes do cálculo ou das estatísticas, mas certamente não faria mal em primeiro.
Bill o Lagarto
@ adietan63: Você também pode conferir alguns dos livros de matemática do Head First, se precisar de uma atualização, ou assistir a algumas palestras em vídeo online gratuitas.
Bill o Lagarto
@ Bill Obrigado! Talvez eu me sinta pressionado a aprender essas coisas porque quero aprender muitas coisas na programação em um curto período de tempo. Talvez eu aceite um de cada vez. Eu acho que isso faz parte do processo de aprendizagem. obrigado novamente!
adietan63
7
De nada. Além disso, esse sentimento de "eu quero aprender muitas coisas em programação em um curto período de tempo" nunca desaparece realmente. :)
Bill the Lizard
4

Embora ler um livro de matemática discreto para 1000 seja uma boa solução, pode não ser o caminho ideal se o tempo for uma restrição. Se você quiser ter uma ideia de quanto matemática você deve ter para aprofundar, dê uma olhada no apêndice A da introdução do livro de algoritmos (cormen) : http://www.acmsolver.org/books/ Introdução% 20 a% 20 Algoritmos,% 202nd% 20Ed% 20-% 20Thomas% 20H.% 20Cormen.pdf

Eu li o apêndice e ele me deu uma melhor compreensão de quais tópicos de matemática devo revisar mais. Depois de saber o que esperar, dê uma olhada:

http://www.amazon.com/Journey-into-Mathematics-Introduction-Proofs/dp/0486453065/ref=sr_1_15?ie=UTF8&qid=1308591694&sr=8-15 insira a descrição da imagem aqui

Na minha opinião, aprender a provar (especialmente por indução) é uma pedra angular na compreensão dos algoritmos de análise . Infelizmente, a maioria dos algoritmos e até os cursos de matemática do ensino médio não se concentram muito na prova. eles já assumem que você é competente para não ultrapassar algumas páginas. A jornada para o livro de matemática é muito pequena e fácil de ler. Ele usa problemas de CS e seu aspecto matemático também. Outros bons tópicos a aprender são a aritmética matricial , a probabilidade , a contagem e a teoria dos grafos .

Os outros dois grandes livros populares: Matemática Discreta e sua aplicação no EPP (meu favorito) e o outro na Rosen.

http://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0534359450/ref=sr_1_4?ie=UTF8&qid=1308591784&sr=8-4

http://www.amazon.com/Discrete-Mathematics-Applications-Kenneth-Rosen/dp/0073229725/ref=sr_1_1?ie=UTF8&qid=1308591784&sr=8-1

Não tive o prazer de ler o livro intitulado " Matemática concreta ", mas sempre ouvi coisas boas sobre isso.

Armando
fonte
1

Francamente, você pode ser um programador perfeitamente adequado em muitos campos sem um conhecimento fundamentalmente muito forte de matemática. Você pode não ser muito capaz quando se trata de mecanismos de jogos ou otimização de roteamento de rede, mas, verdade seja dita, muitos aplicativos de negócios são bastante simples. No entanto, gostaria de encorajá-lo a manter a esperança viva e ainda não desistir da matemática.

Há um mundo de diferença entre a matemática que você faz em um nível mais baixo e a matemática que você faz em um nível mais alto. É uma coisa muito diferente dizer que você é ruim em Cálculo (eu fui - eu falhei com o Calc I na primeira vez que o tomei) do que dizer que você é ruim em Teoria dos Gráficos. À medida que você avança na matemática, o foco não está na simples solução de problemas que é francamente entediante e repetitiva e que pode ser feita pela sua calculadora gráfica. Em vez disso, o foco está nas habilidades de raciocínio lógico: construir provas é francamente como escrever software.

A melhor aula de matemática que já tive foi a que considerei minha primeira aula de matemática "real": basicamente uma introdução à aula de provas que abrangeu uma variedade de áreas, desde a teoria dos grafos à teoria dos números. O texto que usamos foi ótimo ( Pensamento Matemático: Resolução de Problemas e Provas de D'Angelo e West .) Você pode achar útil apenas trabalhar nesse livro para obter algumas idéias de provas de ataque.

No geral, eu realmente precisava de algumas das contas que fiz na faculdade? Não, provavelmente não. Mas ter um histórico formal me deu melhores habilidades de pensamento crítico, uma imaginação melhor (normalmente existem muitas maneiras de resolver um problema, algumas vezes boas, outras ruins, mas uma idéia única pode ser útil) e confiança na resolução de problemas.

Edward Thomson
fonte
| Valeu cara! Eu acho que mesmo que a matemática não possa ajudá-lo o tempo todo. Talvez sua presença o ajude no pensamento crítico e melhore suas habilidades analíticas?
precisa saber é o seguinte
Francamente, acho que você gosta da palavra "francamente".
bukzor
1

Olha, eu sou bom em matemática, mas eu realmente não uso nada para programação, e eu programa bastante. Meu conselho seria simplesmente se acostumar a não saber o suficiente e mandar alguém fazer as contas para você.

Há tantas coisas para saber que você não pode esperar ser bom em todas elas, mas a matemática em particular não é muito útil.

Claro, você pode precisar disso porque seus programas são científicos, caso contrário, use esse tempo para aprender algo mais útil.

Ando
fonte
2
Discordo, boas habilidades de programação estão relacionadas a boas habilidades matemáticas.
Marcelo
11
Bem, eu acho que você pode discordar. Eu acho que esse desacordo é um direito, mas se isso faz você se sentir autorizado a diminuir a minha contribuição, isso é realmente arriscado.
Ando
Privilégios - voto negativo - requer 125 reputação; você já ganhou esse privilégio.
Marcelo
11
Promovido porque concordo que você não precisa de matemática para se tornar um bom programador em muitas áreas. Embora eu discorde muito que matemática não seja muito útil. Mesmo que você não precise de matemática em seu trabalho diário, ganha muito aprendendo certos aspectos da matemática e se é apenas o suficiente para entender a notação O-grande.
Thorsten Müller
1

Observar as notas de alguns dos cursos (iniciantes) da seção "Lógica e computação" da ESSLLI (por exemplo, o próximo programa de 2011 ou o programa de 2010 , procure por mais) pode ser interessante. Isso lhe dará uma impressão sobre os desenvolvimentos teóricos atuais no campo relacionado à programação. Então você pode decidir estudar mais profundamente as fundações em um determinado subcampo abordado nesses cursos.

(Caso contrário, é difícil responder à sua pergunta, há muitas "matemáticas" diferentes, das quais você pode realmente não precisar ou se interessar. Uma das razões pelas quais os cursos ESSLLI podem se tornar interessantes para nós é porque eles refletem algumas pesquisa, de modo a resolver certos quebra-cabeças; e tentar resolver um determinado quebra-cabeça é um componente importante no processo de uma verdadeira compreensão de uma teoria, de entender o que é interessante por trás dela.)

imz - Ivan Zakharyaschev
fonte
1

Se você está estudando matemática do ensino médio adequadamente, está estudando coisas como lógica matemática e teoria dos conjuntos. Estes são alguns matemáticos bastante envolvidos que os apoiam. Portanto, se o seu nível básico de matemática é um pouco complicado, é melhor começar com os fundamentos, antes de passar para as áreas mais relacionadas à CS.

Portanto, sugiro que você comece com a Engenharia Matemática de KA Stroud . Bem escrito, fácil de seguir e abrange o básico, além de coisas mais avançadas.

CdMnky
fonte
1

Comece com os fundamentos e depois passe para o especialista: Delícia do matemático e Como resolvê-lo são dois ótimos livros para começar. O prazer do matemático aborda tópicos fundamentais de matemática (por exemplo, geometria, álgebra, cálculo, etc.) de uma maneira divertida e amigável ao ser humano. Ainda não li Como resolvê-lo, mas ele se concentra em como atacar problemas de matemática através do raciocínio.

sakisk
fonte