Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Blog de Stevey
A L E AT Ó R I O C H O R A M I N G A R E O U T R A S C O I S A S .
Sobre mim
Minha foto STEVE YEGGE
KIRKLAND,
Primeiro: os programadores não acham que precisam saber matemática. Eu ouço isso
com tanta frequência; Eu mal conheço alguém que discorde. Até mesmo programadores
que eram matemáticos me disseram que não usam muito matemática! Eles dizem que é
melhor saber sobre padrões de projeto, metodologias orientadas a objeto, ferramentas de
software, design de interface, coisas assim.
E sabe de uma coisa? Eles estão absolutamente certos. Você pode ser um programador
bom, sólido e profissional sem saber muita matemática.
Mas você também não precisa saber como programar. Vamos enfrentá-lo: há muitos
programadores profissionais por aí que percebem que não são muito bons nisso e ainda
encontram maneiras de contribuir.
Se de repente você está se sentindo fora de sua profundidade, e todo mundo parece estar
correndo círculos ao seu redor, quais são suas opções? Bem, você pode descobrir que é
bom em gerenciamento de projetos, gerenciamento de pessoas, design de interface do
usuário, redação técnica ou administração de sistemas, qualquer número de outras
coisas importantes que os "programadores" não são necessariamente bons. Você
começará a preencher esses nichos (porque há sempre mais trabalho a fazer) e, assim
que encontrar algo bom, provavelmente migrará para o trabalho em tempo integral.
De fato, eu não acho que você precise saber de nada , contanto que você possa se manter
vivo de alguma forma.
Então eles estão certos: você não precisa saber de matemática, e você pode se dar bem a
vida inteira sem ela.
3. Saber até mesmo um pouco dos tipos certos de matemática pode permitir que
você escreva alguns programas bem interessantes que, de outra forma, seriam
muito difíceis. Em outras palavras, matemática é algo que você pode pegar um
pouco de cada vez, sempre que tiver tempo livre.
5. Matemática é ... hummm, por favor, não conte a ninguém que eu disse isso; Eu
nunca serei convidada para outra festa enquanto eu viver. Mas matemática, bem
... é melhor eu sussurrar isso, então ouça: (na verdade é meio divertido).
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 1/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Como eles chegaram a essa lista específica para o ensino médio, afinal? É mais ou menos
os mesmos cursos na maioria das escolas americanas. Eu acho que é muito semelhante
em outros países, exceto que seus alunos terminaram a lista quando tinham nove anos
de idade. (Os americanos realmente chutam as competições de caminhões-monstro,
portanto, não é uma perda total.)
Álgebra? Certo. Sem dúvida. Você precisa disso. E uma compreensão básica da
geometria cartesiana também. Eles são úteis e você pode aprender tudo o que precisa
saber daqui a alguns meses, dar ou receber. Mas o resto deles? Acho que uma introdução
ao básico pode ser útil, mas passar um semestre inteiro ou um ano neles parece ridículo.
Eu suponho que a lista foi criada para preparar os estudantes para as profissões de
ciência e engenharia. Os cursos de matemática que eles ensinam no ensino médio não
ajudam você a se preparar para uma carreira em programação, e o simples fato é que o
número de trabalhos de programação está superando rapidamente a demanda por todas
as outras funções de engenharia.
E mesmo que você esteja planejando ser um cientista ou um engenheiro, descobri que é
muito mais fácil aprender e apreciar geometria e trigonometria depois de entender
exatamente o que é matemática - de onde veio, para onde está indo, para que serve. Não
há necessidade de mergulhar diretamente na memorização de provas geométricas e
identidades trigonométricas. Mas é exatamente isso que as escolas de ensino médio
fazem.
Então a lista não é mais boa. As escolas estão nos ensinando a matemática errada e estão
ensinando da maneira errada. Não é de admirar que os programadores achem que não
precisam de matemática: a maior parte da matemática que aprendemos não está nos
ajudando.
Eu vou falar em um futuro blog sobre algumas diferenças fundamentais entre ciência da
computação, engenharia de software, programação, hacking e outras disciplinas
confusas. Eu tenho a estrutura básica para esses insights (em breve), em grande parte,
do Patterns Of Software , de Richard Gabriel , então se você não pode esperar, leia isso. É
um bom livro.
Por enquanto, porém, não deixe que o termo "cientista da computação" o preocupe.
Parece intimidante, mas a matemática não é a competência exclusiva dos cientistas da
computação; você pode aprender sozinho como um hacker de armário e ser tão bom (ou
melhor) nisso do que é. Sua experiência como programador ajudará a manter você
focado no lado prático das coisas.
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 2/40
18/05/2019 Blogues de Stevey: Matemática para programadores
depois que você aprender o Uso Básico da Calculadora.
Eu ainda tenho meu livro didático de matemática da faculdade. É um pouco pesado para
um aluno da terceira série (talvez), mas ele cobre boa parte da matemática que usamos
na computação cotidiana e na engenharia da computação.
Por incrível que pareça, meu professor não me disse para que serve. Ou eu não ouvi. Ou
alguma coisa. Então eu não prestei muita atenção: apenas o suficiente para passar no
curso e esquecer esse tema odioso para sempre, porque eu não achei que tivesse algo a
ver com programação. Isso aconteceu em muitos dos meus cursos na faculdade, talvez
até 25% deles. Pobre eu! Eu tive que descobrir o que era importante sozinha, depois, da
maneira mais difícil.
Eu acho que seria bom se todos os cursos de matemática passassem uma semana inteira
apenas apresentando você ao assunto, da maneira mais divertida possível, então você
sabe por que diabos você está aprendendo. Heck, isso é provavelmente verdade para
cada curso.
Álgebra e Álgebra Linear (ou seja, matrizes). Eles devem ensinar Álgebra
Linear imediatamente após a álgebra. É muito fácil e é incrivelmente útil em
todos os tipos de domínios, incluindo aprendizado de máquina.
Há outros, é claro, e alguns dos campos se sobrepõem. Mas isso só serve para mostrar: a
matemática que você acha útil é bem diferente da matemática que sua escola acha que
seria útil.
E quanto ao cálculo? Todo mundo ensina isso, então deve ser importante, certo?
Bem, o cálculo é realmente muito fácil. Antes de aprender, parecia uma das coisas mais
difíceis do universo, com a mecânica quântica. A mecânica quântica ainda está além de
mim, mas o cálculo não é nada. Depois que percebi que os programadores podem
aprender matemática rapidamente, peguei meu livro de cálculo e passei a coisa toda em
cerca de um mês, lendo por uma hora à noite.
Cálculo é tudo sobre continuums - taxas de mudança, áreas sob curvas, volumes de
sólidos. Coisas úteis, mas os detalhes exatos envolvem muita memorização e muito tédio
que você normalmente não precisa como programador. É melhor conhecer os conceitos e
técnicas gerais e procurar os detalhes quando precisar deles.
Para colocar isso em perspectiva, pense em divisão longa. Levante sua mão se você puder
fazer uma longa divisão no papel, agora mesmo. Mãos? Qualquer um? Eu não penso
assim.
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 3/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Voltei e olhei para o algoritmo de divisão longa que eles ensinam no ensino fundamental
e, se não for irritantemente complicado. É determinístico, com certeza, mas você nunca
precisa fazer isso manualmente, porque é mais fácil encontrar uma calculadora, mesmo
se estiver preso em uma ilha deserta sem eletricidade. Você ainda terá uma calculadora
no seu relógio, ou seu preenchimento dentário, ou algo assim.
Por que eles ainda ensinam para você? Por que nos sentimos vagamente culpados se não
conseguimos lembrar como fazer isso? Não é como se precisássemos de saber mais. E,
além disso, se sua vida estivesse em jogo, você saberia que poderia realizar uma longa
divisão de qualquer número arbitrariamente grande. Imagine que você está preso em
alguma masmorra do terceiro mundo, e o ditador não vai deixar você sair até que você
tenha computado 219308862/103503391. Como você faria? Bem fácil. Você começaria a
subtrair o denominador do numerador, mantendo um contador, até que você não
pudesse mais subtraí-lo, e esse seria o restante. Se pressionado, você pode descobrir uma
maneira de continuar usando a subtração repetida para estimar o restante como um
número decimal (neste caso, 0,1185678219, ou mais ou menos o meu Emacs) M-x calc.
Você poderia descobrir porque você sabe que a divisão é apenas subtração repetida. A
noção intuitiva de divisão está profundamente arraigada agora.
Mas isso é realmente uma ótima notícia, porque é mais fácil de ler sobre o campo e
aprender os nomes de tudo do que aprender os algoritmos e métodos reais para modelar
e computar os resultados. Na escola, eles ensinam a Regra da Cadeia, e você pode
memorizar a fórmula e aplicá-la nos exames, mas quantos alunos realmente sabem o que
"significa"? Então eles não serão capazes de saber aplicar a fórmula quando se
depararem com um problema de regra de cadeia em estado selvagem. Ironicamente, é
mais fácil saber o que é do que memorizar e aplicar a fórmula. A regra da cadeia é como
pegar a derivada das funções "encadeadas" - ou seja, a função x () chama a função g () e
você quer a derivada de x (g ()). Bem, programadores sabem tudo sobre funções; nós os
usamos todos os dias, então é
É por isso que acho que eles estão ensinando matemática errado. Eles estão fazendo
errado de várias maneiras. Eles estão se concentrando em especializações que não estão
provando empiricamente para ser útil para a maioria dos graduados do ensino médio, e
eles estão ensinando essas especializações para trás. Você deve aprender como contar e
como programar antes de aprender como obter derivativos e realizar a integração.
Fazendo isso, você terá uma perspectiva incrível da matemática, depois de alguns meses.
Você começará a ver padrões - por exemplo, parece que quase todos os ramos da
matemática que envolvem uma única variável têm uma versão multivariada mais
complicada, e a versão multivariada é quase sempre representada por matrizes de
equações lineares. Pelo menos para matemática aplicada. Assim, a Álgebra Linear
aumentará gradualmente a sua lista até você se sentir compelido a aprender como ela
realmente funciona, e você fará o download de um PDF ou comprará um livro, e
descobrirá o suficiente para deixá-lo feliz por um tempo.
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 4/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Uma grande coisa que logo cai no esquecimento é a notação. A notação matemática é o
maior turn-off para pessoas de fora. Mesmo se você estiver familiarizado com
summações, integrais, polinômios, expoentes, etc., se você ver um ninho espesso deles,
sua inclinação é provavelmente pular sobre aquele sugador como uma operação atômica.
Uma vez que você está confortável com os muitos ramos da matemática, e as muitas
formas diferentes de notação, você está bem no seu caminho para saber muita
matemática útil. Porque não será mais assustador, e da próxima vez que você vir um
problema de matemática, ele vai pular direto para você. "Ei", você vai pensar: "Eu
reconheço isso. Isso é um sinal de multiplicação!"
E então você deve retirar a calculadora. Pode ser uma calculadora muito sofisticada
como R, Matlab, Mathematica ou uma biblioteca C para máquinas de vetores de suporte.
Mas quase toda a matemática útil é altamente automatizável, então você pode também
obter alguns servidores automatizados para ajudá-lo.
Depois de um ano de matemática em tempo parcial, você poderá fazer muito mais
matemática em sua cabeça, mesmo que nunca toque um lápis em um papel. Por
exemplo, você verá polinômios o tempo todo, então, eventualmente, você aprenderá a
aritmética de polinômios por osmose. O mesmo acontece com logaritmos, raízes,
transcendentais e outras representações matemáticas fundamentais que aparecem em
quase toda parte.
Eu ainda estou tendo uma idéia de quantos exercícios eu quero trabalhar com a mão. Eu
estou achando que eu gosto de poder seguir explicações (provas) usando um tipo de
"teste de plausibilidade" - por exemplo, se eu vejo alguém dividindo dois polinômios, eu
meio que sei qual forma o resultado deve tomar, e se o resultado deles parece mais ou
menos certo, então eu vou tomar sua palavra para isso. Mas se eu vejo a explicação
fazendo algo que eu nunca ouvi falar, ou que parece errado ou impossível, então eu vou
cavar um pouco mais.
Eu acho que é assim que pessoas com inclinação matemática (matemáticos e amadores)
lêem artigos de matemática, ou qualquer artigo antigo contendo muita matemática. Eles
fazem o mesmo tipo de verificação de sanidade que você faria ao ler o código, mas não
mais, a menos que eles tenham a intenção de derrubar o autor.
Com isso dito, eu ainda faço ocasionalmente exercícios de matemática. Se algo aparecer
de novo e de novo (como álgebra e álgebra linear), então eu vou começar a fazer alguns
exercícios para ter certeza que eu realmente entendo isso.
Mas eu enfatizo isso: não deixe que os exercícios deixem você de lado. Se um exercício
(ou mesmo um artigo ou capítulo em particular) começar a incomodar você, siga em
frente.. Ir ao redor tanto quanto você precisa. Deixe sua intuição guiá-lo. Você aprenderá
muito, muito mais rápido, e sua confiança aumentará quase todos os dias.
Bem, talvez não - não imediatamente. Certamente, isso irá melhorar sua capacidade de
raciocínio lógico; é um pouco como fazer exercício no ginásio, e sua aptidão mental geral
ficará melhor se você estiver se esforçando um pouco a cada dia.
Para mim, notei que alguns domínios nos quais sempre me interessei (incluindo
inteligência artificial, aprendizado de máquina, processamento de linguagem natural e
reconhecimento de padrões) usam muita matemática. E como eu investiguei mais
profundamente, descobri que a matemática que eles usam não é mais difícil do que a
soma total da matemática que aprendi no ensino médio; isto'matemática, na sua maior
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 5/40
18/05/2019 Blogues de Stevey: Matemática para programadores
parte. Não é mais difícil. E aprender é me permitir codificar (ou usar em meu próprio
código) redes neurais, algoritmos genéticos, classificadores bayesianos, algoritmos de
agrupamento, correspondência de imagens e outras coisas bacanas que resultarão em
aplicativos bacanas que eu posso mostrar aos meus amigos.
E eu gradualmente cheguei ao ponto em que eu não começo mais a suar frio quando
alguém me apresenta um artigo contendo notação matemática: n-escolha-k, diferenciais,
matrizes, determinantes, séries infinitas, etc. A notação é na verdade, para facilitar, mas
(como a sintaxe da linguagem de programação), a notação é sempre um pouco
complicada e assustadora no primeiro contato. Hoje em dia eu posso seguir melhor, e
não me faz mais sentir como um plebeu quando eu não sei. Porque eu sei que posso
descobrir.
E isso é bom.
E eu vou continuar melhorando nisso. Eu tenho muitos anos e muitos livros e artigos. Às
vezes eu passo um final de semana inteiro lendo um livro de matemática, e às vezes vou
passar semanas sem pensar nisso nem uma vez. Mas, como qualquer passatempo, se
você simplesmente confiar que será interessante, e que ficará mais fácil com o tempo,
poderá aplicá-lo com a frequência ou o mínimo que quiser e, ainda assim, obter valor a
partir dele.
Matemática todos os dias . Que ótima ideia que acabou por ser!
152 COMENTÁRIOS:
A lógica da ciência
03:26, 17 DE MARÇO DE 2006
Tenho 16 anos agora e moro na Holanda. Eu aprendi teoria da probabilidade este ano (o
básico, suponho). Estamos fazendo integrais + logaritmos agora. E vamos começar com
funções recursivas este mês (muito fácil se você puder programar).
O problema com a matemática é, pelo menos na Holanda, que você "não está autorizado"
a gostar dela. Mas a matemática é uma das poucas coisas que ainda serão importantes no
ano 4006.
onde:
Coisas boas, eu postei alguns comentários no meu blog, uma das coisas que eu
mencionei é que eu acho que prejudicamos os estudantes de programar de maneira
similar - ensinando-lhes profundidade (detalhes da mais recente sintaxe da linguagem
popular), ao invés de amplitude. primeiro.
8H38, 17 DE MARÇO DE 2006
Minha base principal tem sido engenharia e matemática numérica: a orientação prática é
boa. Para os principais livros que eu gostava: 'Matemática de Engenharia' - Croft,
Davison, Hargreaves; e 'Receitas Numéricas em C' - Imprensa, Teukolsky, Vetterling,
Flannery.
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 6/40
18/05/2019 Blogues de Stevey: Matemática para programadores
8:56, 17 DE MARÇO DE 2006
Fertheluvofgahd .. por favor, escreva um maldito livro! Leve-nos pela estrada com você
para que todos possamos consertar os danos cerebrais que recebemos durante a
educação matemática (nos EUA, de qualquer maneira).
E, aliás. Seu emacs deve estar quebrado causa, a menos que eu perdi alguma coisa,
219308862/103503391 = 2.1188567821898704748716880203471
-Vince
VincePlatt AT Yahoo
9H46, 17 DE MARÇO DE 2006
Que tal mostrar livros à medida que os lê e publica os seus pensamentos enquanto
passa? Mantenha os comentários abertos.
O livro que eu realmente gostei na faculdade por lógica é o Logic for Mathematicians da
AG Hamilton. Eu achei curto e claro.
http://www.amazon.com/gp/product/0521368650
John.
10H58, 17 DE MARÇO DE 2006
Concordo com a maior parte da sua opinião, mas há algumas coisas com as quais tenho
problemas.
Meu caminho para a matemática foi através da teoria dos números (longa história). Não
é necessário qualquer assunto que você aprende na escola, mas é principalmente um
exercício em busca de padrões em número .. Matemática para mim é reconhecer padrão
no espaço abstrato e é uma questão de estratégias que ajudam na resolução de
problemas e programas de escrita
11H09, 17 DE MARÇO DE 2006
Gostei do livro da EFT: é bastante rigoroso e é bom e curto. Ouvi dizer que Enderton é
menos rigoroso e mais legível, tornando-se uma melhor introdução à lógica, mas EFT foi
bom o suficiente para que eu não tivesse nenhum desejo de ler outro livro de lógica
introdutória.
EFT: http://www.amazon.com/gp/product/0387942580
Enderton: http://www.amazon.com/gp/product/0122384520
11:17 AM, 17 DE MARÇO DE 2006
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 7/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Eu não poderia concordar mais. Por favor, escreva um livro. Eu era uma daquelas
faculdades de CS que faziam o suficiente para sobreviver e agora que estou na indústria,
estou realmente gostando e lendo livros de matemática e CS. Acho que as universidades
devem adaptar um tipo de classe de matemática aplicada a engenheiros de software e
ensiná-la usando os métodos / conteúdos que você sugere.
11:21, 17 DE MARÇO DE 2006
Grande blog e aguardo com expectativa os artigos subseqüentes sobre este tópico.Eu
também não poderia concordar mais com o seu comentário para começar a aprender
matemática, gastando 15-30 minutos por dia na Wikipedia. Essa tem sido a minha
maneira preferida de revisitar e expandir os tópicos de Matemática. Eu sempre quis
aprender e absorver mais do Math por aí (segundo sua abordagem inicial) e agora esse
mundo (com o Firefox e sua lista de ferramentas de busca) está a alguns cliques de
distância.
11:41, 17 DE MARÇO DE 2006
Parece que você está defendendo a "nova matemática" que foi sensacionalista há cerca de
35 anos, quando eu comecei a estudar. Talvez seja hora de revisitar "nova matemática".
12:08, 17 DE MARÇO DE 2006
Introdução à Filosofia Matemática, embora não seja um livro de lógica em si, é muito
divertido. Estou fazendo um regime semelhante, e foi meu primeiro livro, que por sua
vez levou ao regime de leitura.
12:23 PM, 17 DE MARÇO DE 2006
Tudo depende do tipo de programação que você está fazendo. Se você gosta de fazer
programação de criptografia ou programação de jogos, você precisa de matemática ... e
muito disso. No entanto, muitos algoritmos já existem para o astuto
12:25 PM, 17 DE MARÇO DE 2006
Eu gostei
Discrete Matemática e seus aplicativos
http://www.amazon.com/gp/product/0072930330/sr=8-
1/qid=1142626982/ref=pd_bbs_1/102-8402190-1328907?%5Fencoding=UTF8
-Scott
12:25 PM, 17 DE MARÇO DE 2006
Eu encontrei este livro incrivelmente útil como um primer de álgebra linear, para não
mencionar que se aplica a algo que eu tenho um grande interesse em (programação 3D).
http://www.amazon.ca/exec/obidos/ASIN/1556229119/qid=1142627528/sr=8-
3/ref=sr_8_xs_ap_i3_xgl14/702-1502168-0287234
12:34 PM, 17 DE MARÇO DE 2006
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 8/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Não é tanto aprender 1/2 * base * altura para a área de um triângulo. É muito mais ao
longo das linhas de demonstrar que "a matemática é determinista". Isso está de acordo
com a programação de aprendizado. Se eu sei, o que posso descobrir disso? OK, agora eu
sei B. A
geometria é apenas o lugar mais interessante para aprender provas. Escrevendo provas
formais de Trig, por exemplo - enquanto _learning_ trig -> eeeewww.
12:39 PM, 17 DE MARÇO DE 2006
Essa é a coisa mais idiota que eu li em muito tempo. Esse cara argumenta que ele não
usa vários tópicos que estão no currículo atual, portanto, eles não deveriam estar lá. Ele
então defende seu próprio currículo, que é significativo apenas para os programadores
de computador.
Aqui está um cara de flash de notícias: nem todo mundo passa a se tornar um
programador de computador. Pessoalmente, meu treinamento é como físico, e não uso
praticamente nenhum dos absurdos da matemática que está em seu currículo. Em vez
disso, eu uso a matemática sobre os números reais e complexos, aquelas fórmulas
trigormes irritantes que te deixam pra baixo, e uma série de técnicas de cálculo que nem
estão na sua lista.
Só porque você não usa a matemática não significa que é inútil, e com certeza não
significa que o currículo está errado.
12:41, 17 DE MARÇO DE 2006
Portanto, a lição deste artigo é: "aprenda o que você precisa saber para fazer o que deseja
fazer".
Facilmente disse. Mais difícil saber aos 14 anos o que você quer fazer da sua vida.
12:57 PM, 17 DE MARÇO DE 2006
* Esse * é o livro que eu desejava que existisse quando eu estava aprendendo como
programar e como analisar a complexidade. Tudo o que faço hoje em dia é projetado
para arrastar problemas NP-completos para o domínio do tratável, por qualquer meio
possível. Ter uma compreensão firme da matemática subjacente a processos naturais e
computacionais é inestimável.
Eu sou uma engenharia, e devo dizer que, embora eu use, matemática discreta para
modelar funções para lógica digital, de longe eu uso trigonométricas e cálculos
diferenciais muito mais, como modelar sistemas de mudança é muito mais importante
para mim, também o identidades trigonométricas gostaria de salientar são muito
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 9/40
18/05/2019 Blogues de Stevey: Matemática para programadores
importantes, de que outra forma eu seria capaz de usar séries fouriers etc etc
Eu acho que se você fez alguma programação especialmente nas áreas de geomotria
como um motor de jogo que você provavelmente iria encontrar-se trabalhando com
essas funções muito mais .
13:10, 17 DE MARÇO DE 2006
Muito bem colocado! Eu costumava odiar a matemática, então comecei a tocar com o
Flash e me interessei em matemática como arte, é realmente lindo. Também ler os livros
de Bart Kosko foi muito intrigante, interligando, discutindo filosofia e arte ... pela
primeira vez eu finalmente entendi um pouco.
Eu gostaria que eles tivessem conversado sobre algumas dessas coisas quando eu estava
no colegial, eu teria prestado muito mais atenção. Quando você começa a entender a
história e os problemas reais que são resolvidos e mais importante que a matemática
tenta explicar ... oh meu ... eu teria sido um super geek na escola.
13:13, 17 DE MARÇO DE 2006
Acho que você pode ter dado a si mesmo uma imagem distorcida da matemática. Você
deixou de fora os dois campos mais ativos da matemática moderna, álgebra linear e
análise complexa. Estas, especialmente a álgebra linear, são vitais para qualquer
programação além do nível de utilidade. Álgebra Linear é a linguagem dos gráficos 3D, o
OpenGL é praticamente escrito como funções de álgebra linear. Álgebra linear e análise
complexa em conjunto são o que permitem compactação jpeg e compactação mp3, por
meio de sua análise wavelet infantil. Além disso, a probablilidade não é verdadeiramente
uma parte da matemática discreta. A introdução que recebemos em nossa primeira aula
de estatísticas é, na maioria das vezes, discreta. Isso porque até o ciclo tradicional de
cálculo (Calc 1: limites e derivativos, calc 2: métodos de integração, calc 3: multivariável,
calc 4, intro para diff. Eq. ) ou alguma variação, você não terá as ferramentas para
entender a parte contínua. A integração é o análogo contínuo da soma. Eu gosto do que
você tinha a dizer, acho que o ensino de matemática está errado na América. Eu acho que
as pessoas precisam aprender aritmética primeiro, simplesmente porque é um lugar fácil
para começar e é vital para sobreviver. O que vem a seguir é difícil.
13:16, 17 DE MARÇO DE 2006
O ponto é perceber que os números primos são os átomos de inteiros. Com essa ideia
fundamental, muitas áreas da matemática de números inteiros se tornam transparentes.
13H18 DE 17 DE MARÇO DE 2006
Só queria dizer uma grande visão. Eu não percebi, mas apesar de meus professores
tentarem me ensinar como os professores costumam fazer, eu fui em frente e aprendi a
maneira como você descreveu que deveríamos aprender. Eu acho que o único problema
está no teste de retenção de conhecimento. (especialmente com menos recursos para
fazer um em um teste) Eu costumava me sair muito bem na resolução de problemas e
qualquer coisa 'livro aberto'. Mas foi, e ainda sou notoriamente terrível na memorização.
Consequentemente, eu me apresentava baixo, e meus professores e professores
costumavam dizer que sabiam que eu sabia das coisas, mas não conseguiam provar.
Tanto quanto seria maravilhoso se as pessoas pudessem aprender por si mesmas,
infelizmente exigimos mais responsabilidade do que o aprendizado real que pareceria.
13:23, 17 DE MARÇO DE 2006
Eu estou no mesmo barco agora: voltando por textos antigos da faculdade para revisar
minha matemática, que ficou muito enferrujada.
Eu inicialmente bati uma parede em reaprender todas essas coisas, e agora vejo que é
porque estou tentando aprender do jeito que foi originalmente ensinado para mim na
faculdade.
Obrigado!
13:35, 17 DE MARÇO DE 2006
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 10/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Ótimo post.
13H36 DE 17 DE MARÇO DE 2006
Você estava falando sério sobre Stephen Kleene inventando o Kleenex? Eu não acho que
ele tenha idade suficiente para isso. Kleenex foi originalmente desenvolvido durante a
Primeira Guerra Mundial como um filtro de máscara de gás durante a Primeira Guerra
Mundial (veja este PDF ).
13:48, 17 DE MARÇO DE 2006
Bela postagem.
>> Se você se ensinar matemática do jeito certo, você aprenderá mais rápido, lembre-se
disso por mais tempo.
Ok, eu tenho uma filha de seis anos prestes a embarcar no longo julgamento da educação
matemática e queria perguntar se você poderia me indicar os recursos que você
considera ensinar matemática com mais eficiência. Eu concordo com você em relação ao
currículo formal e passei muito tempo desaprendendo meu material de aula de
matemática, então se há uma maneira melhor, eu definitivamente estou disposto a
tentar. Pelo menos para salvar meus filhos a mesma tortura.
Obrigado!
1:49 PM, 17 DE MARÇO DE 2006
Isto é brilhante.
Para começar, sempre penso em mim como bom em matemática. Eu tenho feito um
programa chamado Kumon (começou no Japão, resume-se a ser 25 minutos de
matemática por dia, todos os dias, 365 dias por ano) e eu tive um grande começo nele. É
bastante logicamente estruturado e torna tudo muito fácil de aprender. O único
argumento que eu faria sobre isso é que não permite calculadoras, no entanto, penso
que, para a aritmética básica, a pessoa deve ser capaz de fazê-lo mentalmente de
qualquer maneira. Para encurtar a história, posso fazer álgebra linear na cabeça
enquanto o professor começa a escrever o primeiro passo no quadro.
Eu fiz Kumon por 7 anos. Isso é aproximadamente 2500 dias. Eu trabalhei como
instrutor nos últimos 2 anos e meio.
o que eu quero é:
Trig. trigonometria é nozes. a maneira como é ensinada faz com que ela viole todos os
outros ensinamentos até este ponto. Há tanta coisa que seria mais útil. Alguém precisa
refazer os currículos.
14:24, 17 DE MARÇO DE 2006
POST IMPRESSIONANTE! Eu quase nunca deixo comentários em blogs ... mas este
realmente bateu em casa. Continuem o bom trabalho e eu vou estar de volta!
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 11/40
18/05/2019 Blogues de Stevey: Matemática para programadores
14:44, 17 DE MARÇO DE 2006
Sim eu concordo. Por favor, nos dê links e recursos que tornem o aprendizado de
matemática, * divertido *. Eu amo a sugestão da Wikipedia. Eu vou começar a fazer isso
agora.
>> Ok, eu tenho uma filha de seis anos prestes a embarcar no longo julgamento da
educação matemática e queria perguntar se você poderia me apontar para quaisquer
recursos que você considera ensinar matemática de forma mais eficaz. Eu concordo com
você em relação ao currículo formal e passei muito tempo desaprendendo meu material
de aula de matemática, então se há uma maneira melhor, eu definitivamente estou
disposto a tentar. Pelo menos para salvar meus filhos a mesma tortura.
14:53, 17 DE MARÇO DE 2006
Artigo maravilhoso.
Eu tive alguns problemas com matemática até o 8º ano. Então, quando a maioria dos
meus colegas estava fazendo Álgebra 1, eu fiz "Aritmética II". E então eu "peguei" e as
coisas estavam melhores. E sim, em muitos aspectos, a matemática era divertida.
Mas antes disso havia muitas lágrimas. E eu não uso muito do que aprendi na minha
vida diária como escritor de programa / tecnologia. (Então, novamente, a maior parte do
que é ensinado no ensino médio, e na faculdade, não tem relação com a vida real depois
da escola)
A propósito, minha mão está levantada. Eu posso fazer uma longa divisão no papel,
agora
14:56, 17 DE MARÇO DE 2006
Goedel, Escher e Bach - Uma eterna trança dourada. Douglas Hofstadter, 1979.
Se você quer aprender Mecânica Quântica / Eletrodinâmica, escolha um livro muito fino
chamado "QED" de Richard Feynman. Foi feito a partir de uma série de quatro palestras
que definem todo o negócio - até explica os reflexos do arco-íris nos CDs.
Eu não conheço ninguém, nem mesmo o flunkout do colégio, que não pode fazer longas
divisões.
Alguém mais acha que esse cara está fora para almoçar neste tópico?
15:13, 17 DE MARÇO DE 2006
A resposta para a pergunta sobre quem determina o currículo de matemática nos EUA é
o NCTM (Conselho Nacional de Professores de Matemática). Eles têm um conjunto de
padrões para cada série. Os estados usam esses padrões no todo ou em parte ao
determinar o que o currículo do estado específico incluirá.
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 12/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Anônimo disse ...
Eu concordo e ainda discordo. Depende da programação sendo feita. Como uma pessoa
mencionou, os gráficos requerem muita matemática se você programar a partir do zero,
como as transformações entre os planos 3D e 2D.
Por outro lado, se a programação diz um programa de CRM, não é preciso muita
matemática para rastrear tabelas e informações de clientes dentro de um banco de
dados.
Basicamente, esse cara está nos dizendo para aprender por conta própria, como
deveríamos estar fazendo de qualquer maneira. A razão pela qual a matemática não é
interessante para as pessoas não é um fracasso dos professores, é uma falha das pessoas
em abrir os olhos e pensar em aprender como algo que fazem fora da sala de aula. Você
não precisa me dizer para usar a Wikipedia para encontrar coisas interessantes.
As pessoas respondem a este post com "oh ótimo! Escrever um livro porque eu concordo
com você e vou comprá-lo!" Quando todo o ponto do artigo é apenas ir encontrar e ler
algumas coisas que são interessantes e úteis para você.
http://www.amazon.com/gp/product/0465026567/qid=1142641394/sr=2-
1/ref=pd_bbs_b_2_1/102-7588289-3509704?s=books&v=glance&n=283155
16:25, 17 DE MARÇO DE 2006
mas é muito mais importante explicar por que e como o algoritmo funciona. em primeiro
lugar, porque existem outros "tipos de aprendizagem"; pessoas que não conseguem se
lembrar de uma lista de etapas computacionais aparentemente arbitrárias com
facilidade, mas que serão capazes de realizar o cálculo sem esforço uma vez que o
"consigam". e, em segundo lugar, e essa é a parte importante, porque isso fornece a você
uma percepção real do assunto e desenvolve habilidades de resolução de problemas que
você pode fazer bom uso de todos os dias da sua vida.
Não me lembro das lições na escola quando me disseram como fazer divisão longa, ou
quais funções trigonométricas para aplicar a quais triângulos, ou quais funções
combinatórias a serem aplicadas a quais problemas. mas se eu tivesse que fazer nada
disso agora, eu poderia facilmente descobrir, porque
talvez seja verdade que "matemática é muito mais fácil de aprender depois que você sabe
programar". (talvez, também é verdade que a programação é muito mais fácil de pegar
depois que você sabe sua matemática.), mas sugerindo no mesmo writeup de usar o mais
simples possível (e tediosamente tediosa) algoritmo para realizar uma divisão não muito
rígido que ponto em casa. Se você é um cientista da computação, ou mesmo apenas um
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 13/40
18/05/2019 Blogues de Stevey: Matemática para programadores
aluno comp-sci no primeiro ano, fazer isso seria absolutamente idiota. você deveria ser
capaz de criar um algoritmo melhor no local.
Certamente há algumas coisas nessa entrada que são verdadeiras para mim. No entanto,
eu definitivamente não estou tomando alguém sério que rotula principalmaterial
escolar "irritantemente complicado". Espera-se que algo que cada criança de 10 anos de
idade compreenda não seja simplesmente "irritantemente complicado", mesmo que haja
melhores maneiras de ensiná-la.
16H54, 17 DE MARÇO DE 2006
Você pode querer ler nas áreas de ciências da aprendizagem, design instrucional,
psicologia cognitiva e áreas afins. Veja, por exemplo, o livro "Como as pessoas
aprendem" e um livro sobre design instrucional chamado "Compreensão pelo design".
Um tema semelhante em todos eles é que você aprende no contexto, enquanto resolve
um problema do mundo real. Chama-se cognição situada ou aprendizagem situada.
17:08, 17 DE MARÇO DE 2006
Se você quer uma lógica matemática divertida, não pode se irritar com Raymond
Smullyan. Seus livros normalmente começam com uma série de problemas lógicos
fascinantes, com uma história para uni-los e, em seguida, segue para um estudo extenso
e agradável de algum ramo da lógica e fundações que quase sempre termina em uma
discussão sobre alguns dos trabalhos de Godel. uma nova direção a cada vez. Eu
particularmente sugiro "A Dama ou o Tigre", "Satã, Cantor e Infinito", e meu favorito
"Mock a Mockingbird", no qual ele introduz uma grande quantidade de lógica
combinatória (aka lambda calculus aka Lisp) sob a forma de um expedição de
observação de aves em uma série de florestas estranhas. A propósito, isso é
especialmente apropriado porque os principais fundadores do assunto eram Moses
Schonfinkel - o nome significa "pássaro bonito". - e Haskell Curry, um ávido observador
de pássaros. Você também pode obter alguma quilometragem de "Infinity and the Mind"
e a ficção matemática "White Light", de Rudy Rucker. Há também um antigo livro de
Dover chamado "How to Calculate Rapidamente" que ensina maneiras realmente úteis
baseadas em senso numérico de fazer quatro aritmética de banger que, praticada bem, o
tornará altamente independente de uma calculadora e melhorará sua intuição
aritmética.
17H21, 17 DE MARÇO DE 2006
http://www.amazon.com/gp/product/1558606793/sr=8-
1/qid=1142648877/ref=sr_1_1/104-2348453-7316769?%5Fencoding=UTF8
18H30, 17 DE MARÇO DE 2006
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 14/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Todo esse post é tão positivista que me faz tremer.
Quero dizer: sim, você está certo, os adultos aprendem coisas do outro lado (foi essa
"amplitude inicial" que você disse?) E isso é um fato que eu gosto de outra pessoa, mas
eu notei. Obrigado.
Então:
1) Um STILL não pode se safar dizendo "Eu li na Wikipédia" (pegue um endosso público
para isso e isso provavelmente irá mudar - então: obtê-lo e provavelmente a Wikipedia
perderá editores)
2) Haverá momentos em vida você realmente não tem nenhuma maldita calculadora à
mão ou você não pode confiar em uma, (ei, TCPA está vindo!)
3) A escola não está destinada a produzir programadores, e no caso, eu me pergunto.
Sobre isso, então, talvez em um certo ponto, o futuro será; e com todos os
programadores (advogados e médicos), os recém-formados acabarão sendo
subespecializados.
18:37, 17 DE MARÇO DE 2006
mfwic
18:42, 17 DE MARÇO DE 2006
Acho que o que eu mais concordo em seu artigo é que matemática deveria ser ensinada
em um primeiro formato amplo. Seria muito mais fácil e mais agradável se os conceitos
fossem ensinados primeiro em vez de serem afogados em exercícios e memorizações
ROTE. Isso é o que as referências são para.
18:42, 17 DE MARÇO DE 2006
O melhor que pode ser dito sobre este artigo é que ele é um emaranhado de truísmos
falsos; o pior que se pode dizer é que estamos lidando com um papo furado.
Cálculo não é "fácil". Se você acha que não concorda, tente resolver algumas equações
integrais simples. Depois de se recuperar desse desastre, você pode se divertir com o
cálculo das variações; e quando você se levantar do chão sangrando e recuar, tente um
pequeno mapeamento conformacional. Integrais no plano Argand operam de maneira
diferente do que no domínio dos reais, como o teorema de Cauchy nos assegura. Mas é
claro que o autor deste artigo não conhece nem o Teorema de Cauchy, nem o
mapeamento conformacional, nem nenhum dos outros elementos básicos do cálculo que
ele deturpa de maneira falsa e distorcida como "fácil".
Na maioria das tarefas de programação do mundo real, a teoria da probabilidade é tão
inútil quanto inútil. A grande maioria da programação envolve a travessia de listas e a
realização de vários tipos de tipos. Para essas tarefas, a teoria dos grafos e a teoria das
filas continuam imprescindíveis. Naturalmente, essas áreas de matemática nunca
chegaram à lista de coisas supostamente "importantes para saber" do autor. A álgebra
linear essencialmente não tem nenhuma conexão com a programação real no mundo
real, a menos que você precise resolver sistemas de equações simultâneas e, na maioria
dos casos, há maneiras muito mais simples de chegar à solução que funciona no mundo
real do que resolver conjuntos lineares simultâneos. equações. O método Monte Carlo é
um exemplo (e você não precisa saber a probabilidade de implementar o Monte Carlo,
Tantas outras afirmações falsas e pronunciamentos extravagantes sujam este artigo
(como bosta num pote de bala) que, quando você já leu 2/3 do caminho, percebe que é
tudo tolice inacreditável.
A arrogância sempre foi o pecado dos programadores. Infelizmente, ao contrário dos
engenheiros que constroem pontes ou físicos que constroem foguetes, um programador
cujo design falha pode sempre culpar a máquina - "compilador ruim", "memória
insuficiente", e assim por diante.
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 15/40
18/05/2019 Blogues de Stevey: Matemática para programadores
A matemática é realmente ensinada mal na América, mas 99% dela, você nunca precisa
saber. Eu ainda não conheci nenhum especialista em eletricidade que já precisou saber
como fazer uma Laplace Transform para fazer um circuito funcionar, eu ainda não
conheci um graduado de CS que já precisou conhecer os detalhes da prova de
completude de Cohen em 1964 para fazer um programa funcionar , e eu ainda não
encontrei um programador que alegou que [preencher o espaço em branco: matemática
avançada ou linguagem de programação exótica] é na verdade "simples e fácil de
aprender" que não era um idiota incompetente ignorante.
18:57, 17 DE MARÇO DE 2006
Eu acho que é seguro dizer que sua habilidade de se mover facilmente de um assunto
para outro deve muito aos professores que gastaram incontáveis horas perfurando em
nossas cabeças os fundamentos da matemática. Você pode aprender álgebra sem cálculo,
mas não vice-versa.
19:42, 17 DE MARÇO DE 2006
http://www.amazon.com/gp/product/0521007585/sr=8-
1/qid=1142654323/ref=pd_bbs_1/102-5472329-8864945 ?% 5Fencoding = UTF8
20:02, 17 DE MARÇO DE 2006
Eu acho que foi um ato divino que me levou a este blog. Recentemente, tive uma enorme
vontade de aprender matemática (sou muito ignorante em matemática), mas não fazia
ideia de onde deveria começar. Então, obrigado pelo ótimo blog. Estou adicionando aos
meus favoritos.
20:05, 17 DE MARÇO DE 2006
Aqui estão alguns livros que eu recomendo para qualquer um que queira aprender
matemática no contexto de alguns problemas interessantes:
Olá. Só preciso estender um enorme obrigado a você. Apenas no meu primeiro semestre
de comp sci e tem sido um tempo desde ive feito qualquer matemática. Às vezes eu fico
sentado e ouço o tipo de coisas que algumas pessoas estão falando durante a aula e eu
sinto que não pertenço a elas. É apenas um grande impulso de confiança para alguém
como eu ler algo assim. No final, isso me faz sentir um pouco melhor. Só porque eles
podem fazer toda essa matemática extravagante eu ainda consigo notas mais altas em
programação.
Jerome
21:49, 17 DE MARÇO DE 2006
Eu concordo com o teor geral deste post. Há muito tempo tenho criticado a maneira
como a matemática é ensinada; parece calculado para desligar a maioria das pessoas. Eu
também acho que ensinar às crianças que a matemática é o estudo de padrões - qualquer
padrão - e depois dar-lhes alguma compreensão das coisas que eles sentem
visceralmente (por exemplo, taxas de mudança: uma bola rápida dói mais do que uma
lenta etc.) fazer muito para remover o "mistério". Exatamente como abordar o ensino de
matemática dessa forma é algo em que venho trabalhando há alguns anos. Espero
ensinar aos meus filhos muita matemática antes que eles limitem suas visões à
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 16/40
18/05/2019 Blogues de Stevey: Matemática para programadores
matemática como simples manipulação de símbolos abstratos.
No entanto, uma reserva: parece-me que a sua abordagem à matemática (o método just-
in-time?) Leva apenas à compreensão superficial que pode ser perigosa - literalmente
mortal. Probabilidade e estatística, é uma área, por exemplo, onde esses erros podem ser
especialmente chocantes, pois, para alguns, parece enganosamente simples para alguns.
Sutilezas que vêm do conhecimento mais profundo estão perdidas.
Isso confunde a ideia de que existem majores de CS por aí que não tiveram a Lógica
Abstrata, uma das fundações da disciplina. Eu não vou incomodar listando outras áreas
que estão faltando.
A título de divulgação completa, devo declarar que meus diplomas são em Matemática,
Engenharia Elétrica e Ciência Política. Eu tenho muitos anos de experiência em
diferentes indústrias e estou fazendo um trabalho de pós-graduação em Biologia
Molecular entre fazer um monte de contratação para uma startup.
Ummmm, a razão pela qual os programadores podem não achar a matemática útil é
porque eles não sabem disso.
É triste, mas é verdade, que as empresas americanas enviem trabalhos para outros países
porque a força de trabalho dos EUA não faz matemática.
http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF
por Dykstra.
21H56, 17 DE MARÇO DE 2006
/ewd10xx/EWD1036.PDF
é o final
21:59, 17 DE MARÇO DE 2006
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 17/40
18/05/2019 Blogues de Stevey: Matemática para programadores
alto. E não é apenas medicina onde as estatísticas são importantes, mas negócios,
governo e muitas outras áreas.
Eu acho que seria muito mais benéfico para os alunos do ensino médio obterem uma boa
base em estatística, cálculo ou pré-cálculo.
22H58, 17 DE MARÇO DE 2006
O currículo moderno de matemática estava em vigor nos anos 1930. Naquela época, as
empresas empregavam salas cheias de "computadores", pessoas com treinamento em
matemática, para fazer todas as coisas que hoje seriam feitas com uma calculadora de
mesa ou uma planilha eletrônica. As firmas de engenharia empregavam um número de
graduados em engenharia que elaboravam projetos e resolviam equações de cálculo. A
educação matemática não mudou muito desde então.
Eu concordo com muito do que o artigo diz. Se você conseguir enquadrar seu problema
em termos matemáticos, poderá encontrar alguém que resolva o problema para você.
Perdoe-me pelo que parece ser um post duplo, mas me senti obrigado a corrigir (e
adicionar) o post inicial; foi escrito às pressas antes de eu sair. Talvez seja o matemático
em mim.
Concordo com o teor geral do artigo original no que diz respeito ao ensino de
matemática. Há muito tempo tenho criticado a maneira como a matemática é ensinada;
parece calculado para desligar a maioria das pessoas. Eu também acho que ensinar às
crianças que a matemática é o estudo de padrões - qualquer padrão - e depois dar-lhes
alguma compreensão das coisas que eles sentem visceralmente (por exemplo, taxas de
mudança: uma bola rápida dói mais do que uma lenta etc.) fazer muito para remover o
"mistério". Exatamente como abordar o ensino de matemática dessa forma é algo em que
venho trabalhando há alguns anos. Espero ensinar aos meus filhos (quando os tenho)
muita matemática antes de limitar suas visões à matemática como simples manipulação
de símbolos abstratos.
Isso confunde a ideia de que existem majores de CS por aí que não tiveram a Lógica
Abstrata, uma das fundações da disciplina. Eu não vou incomodar listando outras áreas
que estão faltando. "As maiores do CS pensam que não precisam de matemática?" Hã?!
Alguns posts anteriores a este explicam mais detalhadamente a falácia dessa abordagem
superficial: a filosofia do "aprendizado-apenas-enought-to-get-by". Infelizmente mostra
nos resultados dos programadores que vêm do fundo refletido no artigo. Algumas coisas
são difíceis de aprender e nenhuma simplificação alcançará a profundidade necessária.
Aviões reais irão colidir, os pacientes receberão uma overdose de raios X, seres humanos
reais podem realmente morrer.
A título de divulgação completa, devo declarar que meus diplomas são em Matemática,
Engenharia Elétrica e Ciência Política. Eu tenho muitos anos de experiência em
diferentes indústrias como engenheiro e programador, entre outras coisas; e estou
fazendo um trabalho de pós-graduação em Biologia Molecular entre fazer várias
contratações para uma startup. Embora, provavelmente, eu tenha algum preconceito,
acho que essas opiniões vêm de uma experiência duramente conquistada.
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 18/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Perdoe-me pelo que parece ser um post duplo, mas me senti obrigado a corrigir (e
adicionar) o post inicial; foi escrito às pressas antes de eu sair. Talvez seja o matemático
em mim.
Concordo com o teor geral do artigo original no que diz respeito ao ensino de
matemática. Há muito tempo tenho criticado a maneira como a matemática é ensinada;
parece calculado para desligar a maioria das pessoas. Eu também acho que ensinar às
crianças que a matemática é o estudo de padrões - qualquer padrão - e depois dar-lhes
alguma compreensão das coisas que eles sentem visceralmente (por exemplo, taxas de
mudança: uma bola rápida dói mais do que uma lenta etc.) fazer muito para remover o
"mistério". Exatamente como abordar o ensino de matemática dessa forma é algo em que
venho trabalhando há alguns anos. Espero ensinar aos meus filhos (quando os tenho)
muita matemática antes de limitar suas visões à matemática como simples manipulação
de símbolos abstratos.
Isso confunde a ideia de que existem majores de CS por aí que não tiveram a Lógica
Abstrata, uma das fundações da disciplina. Eu não vou incomodar listando outras áreas
que estão faltando. "As maiores do CS pensam que não precisam de matemática?" Hã?!
Alguns posts anteriores a este explicam mais detalhadamente a falácia dessa abordagem
superficial: a filosofia do "aprendizado-apenas-enought-to-get-by". Infelizmente mostra
nos resultados dos programadores que vêm do fundo refletido no artigo. Algumas coisas
são difíceis de aprender e nenhuma simplificação alcançará a profundidade necessária.
Aviões reais irão colidir, os pacientes receberão uma overdose de raios X, seres humanos
reais podem realmente morrer.
A título de divulgação completa, devo declarar que meus diplomas são em Matemática,
Engenharia Elétrica e Ciência Política. Eu tenho muitos anos de experiência em
diferentes indústrias como engenheiro e programador, entre outras coisas; e estou
fazendo um trabalho de pós-graduação em Biologia Molecular entre fazer várias
contratações para uma startup. Embora, provavelmente, eu tenha algum preconceito,
acho que essas opiniões vêm de uma experiência duramente conquistada.
Obrigado por este artigo legal. Eu particularmente aprecio (i) a maneira desinteressada e
relaxada de abordar e estudar matemática que você descreve, (ii) suas dicas gerais e (iii)
a lista de livros que você mencionou.
Vou ficar de olho em mais de seus blogs.
3H33 DE 18 DE MARÇO DE 2006
Você pode seguir este link para obter um bom ebook gratuito sobre lógica matemática,
escrito por Stefan Bilaniuk:
http://euclid.trentu.ca/math/sb/pcml/pcml-16.pdf
4H05, 18 DE MARÇO DE 2006
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 19/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Dave Rosen disse ...
Gostei disso não apenas pelo ângulo Math, mas também por você aprender algo novo. Eu
acho que quando muitas pessoas deixam a escola, elas apenas continuam a se expandir
lá e lentamente você se torna um pouco estagnado.
Não importa qual seja o assunto, se você estiver alimentando seu cérebro, algum
combustível certamente lhe ajudará com a programação ou o que seja.
Posso usar matemática? Sim, mas sem os fundamentos apropriados, foi cada vez mais
difícil, quanto mais eu estudava matemática. No mundo real, você tem livros de
referência facilmente acessíveis e, se souber de qual informação precisa, procure-a. No
mundo dos acadêmicos, você memoriza, memoriza e memoriza. Isso produz
matemáticos? Não, isso produz papagaios que grasnam de volta a resposta correta
quando fazem a pergunta certa. Fineman (SP) descobriu que quando ele foi ao Brasil e
viu suas faculdades.
Eu faço matemática para ganhar a vida e gosto de encontrar pessoas que percebem que a
matemática é útil fora da matemática que aprendem na escola.
Para um programador, o cálculo é quase inútil, a menos que você esteja fazendo
computação gráfica, mas acho que algumas das coisas mais discretas devem aparecer em
praticamente todos os programas já escritos. Não recomendo ignorar a divisão longa,
porque existem generalizações dessa ideia chamadas "domínios integrais". onde isso é
importante quando você precisa encontrar o maior divisor comum (importante em
aplicativos de criptografia).
Por lógica eu recomendo livro que usei em filosofia The Logic Book . A maioria dos
textos matemáticos discretos também cobre a lógica.
7H31 DE 18 DE MARÇO DE 2006
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 20/40
18/05/2019 Blogues de Stevey: Matemática para programadores
matemáticos sem congelar ... Mas eu percebi anos atrás que a chave para as crianças
entenderem essas coisas era que elas aprendessem as aplicações práticas primeiro, para
que pudessem ver como os conhecimentos matemáticos poderiam salvá-los de ter que
"reinventar a roda" na solução de problemas reais. É incrível que eu tenha sido capaz de
trabalhar como técnico de informática e depois como programador, já que tenho um
bloqueio mental em matemática.
De fato, em meus momentos mais cínicos, vejo que, para a maioria das crianças, a escola
serve apenas como uma espécie de prisão diurna - projetada para mantê-los fora das
ruas e longe de problemas enquanto seus pais trabalham. Eu não consigo pensar em
nada de valor que eu aprendi na escola (e eu comecei a tirar 5 graus). Quanto de uma
perda de tempo é para todas as outras crianças.
9H32, 18 DE MARÇO DE 2006
Não sei como você conseguiu pular a Teoria dos Números. Um livro sólido de teoria dos
números básicos (Kochy vem à mente logo de cara) é incrivelmente útil para
programadores. Usando seu exemplo de dividir grandes números, algumas relações de
congruência básicas podem tornar isso trivial para se estender a situações muito mais
elaboradas, além de fornecer um conjunto muito forte de 'truques', como expulsar 9s
para verificar somas, verificações eficientes de paridade, etc etc.
10H20, 18 DE MARÇO DE 2006
Obrigado! Eu recuperei minha motivação para aprender para o meu exame abrangente.
Especialmente para essa complexidade de Kolmogorov…;)
11:29 AM, 18 DE MARÇO DE 2006
Bem, Stevey, estou feliz por você estar aprendendo mais matemática e gostando, mas
acho que seu artigo foi bastante fraco.
Então você (uma pessoa) não aprendeu muita matemática no ensino médio ou na
universidade, porque * eles * ensinaram errado. Em primeiro lugar, sua experiência
recém-descoberta em estatística deve indicar que um tamanho de amostra de um não é
muito impressionante. Segundo, você pode estar aprendendo mais porque está muito
mais motivado, já que está escolhendo o que quer aprender. Você teria escolhido alguma
coisa quando adolescente?
Eu acho que o ponto mais importante (isto é, um dos que eu concordo, ha!) É que é
importante motivar os alunos a aprender algo e engajar sua intuição. Lembro-me de
aprender cálculo vetorial, e achar difícil, e depois aprender a física (eletromagnetismo)
que deu origem à matemática, e de repente entender tudo (ok, infelizmente nem todos,
mas muito mais!).
Talvez seja outra uma generalização ruim, mas acho que as pessoas aprendem muito
melhor quando podem imaginar o que está acontecendo e aplicar sua intuição, em vez de
apenas empurrar símbolos ao redor (o que também é interessante mais tarde, na ciência
da computação).
O que eu pessoalmente gosto de matemática funky é que isso parece esticar meu cérebro
de maneiras totalmente novas, e acabo saindo com uma melhor compreensão de como
todo o universo se encaixa. E quando você vê conceitos de diferentes áreas se juntando
(álgebra linear para cálculo multi-variável, tensores de inércia parecendo matrizes de
covariância a partir de estatísticas) é bem legal.
E sim, eu posso fazer uma longa divisão no papel. Inferno, eu posso ter uma raiz
quadrada, mas eu sou um geek que gosta de matemática (e usa diariamente, no meu
trabalho de programação - principalmente coisas 3D). Eu também sou sortudo porque
sou bom nisso e tive bons professores.
Então, sim, os alunos devem aprender mais álgebra linear e estatística, e sim, é possível
aprender matemática à medida que você envelhece, mas não para a maioria do resto do
seu post "Solucionei os problemas de aprendizado de matemática do mundo".
11:49 AM, 18 DE MARÇO DE 2006
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 21/40
18/05/2019 Blogues de Stevey: Matemática para programadores
fosse por alguns dos meus professores de matemática).
A propósito, enquanto estou fazendo meus níveis A, pesquiso matemática no mundo da
matemática e na Wikipédia e compartilho com meus professores de matemática, isso faz
interessantes discussões sobre matemática que eu quero investigar. Eu também sou
ensinado certos elementos de matemática antes que alguém seja assim.
13:03, 18 DE MARÇO DE 2006
Estou feliz por ter encontrado o seu post através do osnews.com !! Estou pensando
seriamente em aplicar algumas das coisas em nosso campo.
Quantum é fácil.
Quantum I: Resolva INT (f ~ (x) * f (x) dx) = 1 onde f ~ (x) é o conjugado complexo de f
(x).
Quantum II: Solve H * Psi = E * Psi onde E é a energia, Psi é a equação espaço-tempo da
partícula (s), e H é o hamiltoniano (como você aprende na mecânica) escrito em termos
de operadores (p -> -i * hbar * d / dx).
14:52, 18 DE MARÇO DE 2006
Ótimo blog.
Primeiro até o meu primeiro ano de universidade, E até os últimos 2 anos do ensino
médio eu realmente sabia que WTF eu estava fazendo em matemática, então veio os
últimos 2 anos em uma escola diferente e eu estava indo imediatamente WTH é isso?
Eu estava sendo ensinado a fazer quem sabe o que e não ser capaz de entender o que foi
usado, cavando equações na minha garganta e me dizendo que encontra x quando algo
mais é inútil de eu não posso reconhecer quando a equação seria realmente útil.
Então, agora vem a universidade, E eu estou fazendo matemática discreta como uma
primeira unidade, bastante fácil de entender diretamente fora do bastão ao contrário de
muitos outros que pensaram que eram excelentes em matemática nos últimos 2 anos ..
..Excepto, Long divisão é algo que eu nunca foi Tentado a fazer, isso é certo, eu nunca
pensei como fazer isso, eu realmente não poderia resolver isso .. foi assumido que todos
saberiam como fazê-lo quando o passado 7 anos eu tinha sido dito "Não, não se preocupe
com isso, basta usar a calculadora, você sempre terá uma alça, e se você não, há
subtração" Algo que eu concordo com ..
Então agora chegou o tempo que eu preciso sei divisão longa - Divisão Binária - Eu ainda
não tenho 100% de certeza sobre como fazer isso ... mas, supostamente, adivinha como
eu cheguei ao meu entendimento atual sobre isso?
Escrevi uma função PHP para fazer exatamente isso, de fato, sempre que tenho um
conceito de matemática que não consigo entender agora, escrevo uma função / programa
PHP para fazer isso manualmente sem depender de todas as funções matemáticas
incorporadas (Ok, FLOOR () e ROUNDUP () para arredondar para o próximo número
maior ou menor, mas isso é apenas porque os humanos podem fazer isso em um instante
em que os computadores precisam de muito mais etapas), mas você sabe o que? Na
verdade, ele está me ensinando como fazer isso na minha cabeça, eu posso ver a lógica
por trás dele, eu posso ver onde a estrada se divide e há uma escolha de executar duas
tarefas diferentes que fazem parte do mesmo conceito.
E mais uma vez eu posso realmente seguir e se destacar em matemática mais uma vez.
Pode não ser um curso de Ciência da Computação (na verdade, o seu Bach de Tecnologia
da Informação - mas ninguém comentar sobre isso), mas ainda requer um pouco de
conhecimento.
Outra coisa que eu notei? Aqueles que tentam fazer programação funcional e chamada
repeditiva de funções (termo técnico me escapa agora) geralmente não têm
absolutamente nenhuma idéia de como resolver uma função complexa .. Uma vez pensei
como fazer a função matemática correta, e ENTÃO ensinando a programação eles ficam
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 22/40
18/05/2019 Blogues de Stevey: Matemática para programadores
toda vez ..
Great Post, e se o blogueiro tiver um feed RSS, você acabou de conseguir outro leitor.
D
3:00 PM, 18 DE MARÇO DE 2006
Foi bom encontrar este blog, pois até agora eu realmente não conhecia mais ninguém
que é um
amador de matemática. Pessoalmente, acredito que a matemática amplia minha
compreensão das coisas e eu sou capaz de
pensar de uma maneira muito mais lógica quando estou fazendo matemática
regularmente. E sim, Steve, eu uso SÓ
caneta e papel para fazer minha matemática - qualquer matemática, embora discreta.
Caneta e papel me dá a sensação que eu acho que
falta em ler de um site ou ter minhas somas feitas por uma calculadora - permite-me ter
uma visão de nível básico das
coisas no trabalho (e acredite, é assim que a maioria das pessoas faz Math na Índia Ou
talvez seja assim, quando
eu estava na escola). Quando fazia parte do meu currículo, nunca dei muita atenção a
isso. Mas anos depois, quando
Eu sou um engenheiro de software, mexendo em Java, Oracle, Unix, PERL, acho que é
algo que eu sinto falta daqueles dias .--- Abhishek Ghose
19:06, 18 DE MARÇO DE 2006
Blasfêmia!
20:13, 18 DE MARÇO DE 2006
um idiota escreveu:
"Esta é a coisa mais estúpida que eu li em um longo tempo. Esse cara argumenta que ele
não usa vários tópicos que estão no currículo atual, portanto, eles não deveriam estar lá
Ele então defende seu próprio currículo, que é significativo apenas para os
programadores de computador ... "blá blá blá
Tente ler o título do artigo antes de saltar da selva de suas emoções para uma discussão
intelectual. Este cara está falando de matemática para * programadores *, então sim, ele
está recomendando um currículo de acordo, e eu acho isso muito bem pensado.
7H43 DE 19 DE MARÇO DE 2006
Combinatória é um campo muito escorregadio, não tão fácil quanto parece estar
implicando.
Matrizes têm sido tradicionalmente ensinadas no ensino médio. Eu os aprendi lá, assim
como combinações básicas e permutações, o triângulo de Pascal, expansões binomiais,
eliminação gaussiana, regra de Kramer, etc. em uma escola secundária de classe
trabalhadora em Richmond, CA. (Conhecida por sua baixa escolaridade.)
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 23/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Uma das razões pelas quais a ciência da computação progrediu no ritmo que tem é o uso
da abstração. Está em toda parte na ciência da computação. A abstração também está no
coração da aprendizagem da matemática. Você está se concentrando em aplicativos e
perdendo o ponto real: poder pensar. É isso que permite que você faça ótimos
aplicativos.
Você está fazendo a amplitude, mas ainda não chegou à profundidade, pelo menos não
neste artigo.
Continue trabalhando. Não importa o seu caminho para a matemática, vai pagar
generosamente no final, se você continuar.
Algumas das coisas que você está experimentando é prontidão matemática. Você está
pronto e você não estava mais cedo. Mas eu também mudaria o aprendizado da
matemática. Eu eliminaria calculadoras para que a experiência de "como as coisas vão"
esteja sendo aprendida o tempo todo. Os alunos que aprendem sem calculadoras
"entendem" de uma maneira que aqueles que os usam simplesmente não o fazem.
Eu enfatizaria a construção de coisas e geometria muito cedo. Faça isso tão importante
quanto a aritmética. Deve ser o mais físico possível.
Peça aos professores que amam matemática ensiná-lo! A maioria dos nossos professores
nem sabia matemática.
Mais uma coisa, a divisão longa é o primeiro algoritmo realmente interessante. Ele pára
e é fácil ver que isso acontece. O que lhe deu sua primeira compreensão de algoritmos?
Espero ver o que você tem a dizer em mais cinco anos, depois de ter feito isso por algum
tempo.
10H01, 19 DE MARÇO DE 2006
Eu tenho duas diferenças principais com o que você está dizendo com base no que eu
tento realizar como professor, e o que você quer de matemática como estudante e
profissional.
Primeiro, você está (você abertamente) olhando para ele do ponto de vista de um
programador. Eu vou reelaborar o que alguém postou. Cálculo (com trigonometria) é a
ferramenta matemática mais poderosa que existe, porque a maioria das situações é
modelada com funções que são contínuas. Assim, a matemática na escola pública é
unânime em sua abordagem para levar um aluno a um ponto em que ele possa suceder
em uma aula de cálculo. A única viagem lateral tradicionalmente feita é para Geometria.
Eu, pessoalmente, defendia tirar Geometry da lista da escola. A principal razão para essa
aula é ensinar um aluno a entender e ser capaz de produzir uma prova lógica. Uma
habilidade que a maioria dos alunos não precisa antes de dominar as habilidades básicas
da matemática, e estou incluindo o cálculo como uma "habilidade básica".
O segundo problema que tenho com a sua análise é que você, e a maioria de seus leitores,
está intelectualmente longe, muito acima da média do ensino médio e até do estudante
universitário. Você menciona que, por ser um programador, você sabe o que é uma
função e o que ela faz. Eu lhe direi que College Algebra é o primeiro curso de matemática
de nível universitário que um não-orientado a ciências (alguém que não tenha passado
pelo menos Álgebra II no ensino médio) terá. A Álgebra Universitária é
aproximadamente definida como o estudo de funções e seus gráficos. A maioria dos
meus alunos deixa minha aula de álgebra na faculdade, apesar dos meus melhores
esforços para falar continuamente sobre o conceito, sem realmente entender o conceito
de uma função contínua. Porque eles não são capazes de entender isso.
Concordarei que isso deixa o ensino médio e a faculdade com um problema. Houve um
dia não muito tempo atrás que qualquer um que recebesse um diploma universitário
tinha que ter pelo menos um semestre de cálculo, mesmo que fosse um curso de arte. A
noção de que você irá usar isso na vida real só se aplica ao Calculus, Trig, e novamente
incluirei Stats. Álgebra, por si só, é quase inútil. Os chamados "aplicativos" que
supostamente imitam situações da vida real são ridículos. O único propósito para
aprender Álgebra é poder fazer Cálculo. E embora seja verdade que até certo ponto os
conceitos em Cálculo não são tão difíceis de entender, a álgebra envolvida em navegar
com sucesso qualquer outra coisa além de polinômios é geralmente o que mais
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 24/40
18/05/2019 Blogues de Stevey: Matemática para programadores
inviabiliza os alunos de Cálculo. Meu ditado favorito nessa aula é "
Então começamos a tentar educar segmentos cada vez maiores da população. Pessoas
que nunca sonharam em obter um diploma há 30 anos estão agora dando uma chance.
Mas a maioria deles não é capaz de dominar o cálculo. Muitos deles não podem lutar
contra a álgebra básica. Eles não podem dominar as manipulações algébricas e / ou os
conceitos necessários para serem bem sucedidos. Mas, os educadores insistem que eles
se provam, pelo menos, um pouco dignos, forçando-os a ter alguma matemática.
Então, eu desisti de justificar a matemática além de afirmar que o que eles estão
realizando aqui é provar para alguém (as pessoas que administram o sistema
educacional) que eles podem executar procedimentos longos e tediosos sem cometer
erros pelo menos 70% do tempo. . É o melhor que você pode esperar em termos da
população em geral.
Eu sonhei com uma solução. Eu acho que o que deve ser feito é reestruturar a
matemática para que um aluno faça um curso de um semestre em álgebra polinomial,
onde eles dominam essas habilidades básicas. Sem raízes, sem expressões racionais
(expressões algébricas que parecem uma fração), apenas polinômios. Muitos mais
estudantes poderiam lidar com isso. Então eles pegariam "Polynomial Calculus". Os
polinômios lidam com a maioria das situações da vida real e você pode demonstrar o
poder do cálculo. As especializações em matemática e ciências precisariam, então, de
mais clases que as ensinassem a lidar com funções algébricas mais complicadas, e então
aplicariam os conceitos de Cálculo àquelas funções.
11:22, 19 DE MARÇO DE 2006
Um grande livro sobre lógica matemática, ou lógica simbólica moderna como a conheci,
é "Lógica: Técnicas de Raciocínio Formal" de Kalish, Montague e Mar. Gostei de seu
artigo, obrigado!
~ David.
12:32, 19 DE MARÇO DE 2006
Há muito neste blog com o qual eu concordo. Eu gosto da ideia de amplitude primeiro,
por exemplo. Mas há uma suposição subjacente sobre o papel da educação com que eu
discordo. A suposição é que a educação é principalmente sobre nos preparar para nossas
vocações.
Com freqüência, descobre-se que o que se aprende na escola tem aplicação direta na
vocação de alguém. E quando isso é verdade, a educação fornece valor econômico. A
prosperidade ecomômica desempenha um papel significativo na garantia da liberdade.
Mas mesmo que isso não fosse verdade, a educação ainda seria a primeira e a última
linha de defesa de uma democracia. (O argumento é muito longo para apresentar aqui;
leia Montesquieu.http: //www.constitution.org/cm/sol-02.htm)
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 25/40
18/05/2019 Blogues de Stevey: Matemática para programadores
que eu faria". Então, "como isso se parece com o sistema que eu projetei?" Acontece que
esse tipo de análise pode ser feito para a maioria dos serviços - o suporte técnico por
computador telefônico vem à mente primeiro - para muito benefício.
Então, na verdade, cada campo tem várias ferramentas e técnicas que podem ser
utilizadas em um problema. E cada solução é aprimorada quando o conjunto correto de
ferramentas é usado. Todo o propósito da amplitude é escapar do velho problema de que
"quando tudo o que você tem é um martelo, tudo parece um prego".
12:59 PM, 19 DE MARÇO DE 2006
Toda matemática - aqui é o ponto - escrita pela grande mente é boa, útil e ensina não
apenas como pensar, mas alguns grandes truques e a ética mais importante e fazer
diferença entre ciência e publicidade (a última se tornou um grande problema para TI, a
maioria das pessoas aqui prefiro esquecer que ele existe por causa do gênio da
matemática de von Neumann e que existem algumas promessas que o mundo digital
nunca mantém, então é melhor não dar a elas) .....
Outra experiência importante que eu penso é que é melhor começar com matemática
Você entende por mim que foi fácil entender o intuicionismo, forçando e não a análise
padrão do que dedekind corta diferente do couch (y / i?) reais se não o axioma da
escolha é válido ....
minha (incomparável) lista dos melhores Autores é:
Archimedes
Felix Klein
Hardy
von Neumann
Bourbaki
Abraham Robinson
Paul Cohen
Dana Scott, R. Karp, Rabin
e Feynman !!!! não exatamente uma matemática ... do ponto de vista da matemática, ler
por último ... vai ver como ele era bom. Comecei às 13 e foi o primeiro que li, então eu
tenho uma injustiça gigante vantagem depois ... e leia as palestras reais sobre física,
computação ... não QED
última palavra sobre lógica Kleene é um dos melhores e mais originais no campo, mas
bem sua visão é específica e ... eu prefiro ser Feynman escravo do que Kleene ... há bom
manual de edição lógica de Jon Barwise também
Tudo o que são livros antigos e cidadãos de lugares mais ricos do mundo pode e deve
tentar encontrar um caminho mais curto e melhor, mas isso faz parte do meu próprio
caminho há muito tempo e é o que você pode encontrar se você é um cidadão ex-
comunista ( em russo também) de qualquer forma todos esses autores são extremamente
bons e se não for pressionado muito para o tempo (se você pode encontrar para ler
Kleene você tem o suficiente ;-)
eu escrevo mal em Inglês, mas eu tento pensar em matemática (quando eu pensar em
tudo) e não é um problema muito grande para mim
15:48, 19 DE MARÇO DE 2006
Seria legal se você pudesse postar uma lista de livros que você está lendo / leu / leu
12H34, 20 DE MARÇO DE 2006
I appreciate what you are saying. I'm coming at this from the angle of, "how am I going
to teach my kids math?". My wife and I homeschool our kids, so we have the luxury of
teaching math in whatever manner we prefer. I've read some compelling arguments for
starting math relatively late, say 10 years old. Prior to 10, teach the "grammer" of math.
The vocabulary of it, if you will. This would be the "breadth" approach that you describe
so well. Then, when they are well versed in the "language" of math, teach the application
of a particular discipline.
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 26/40
18/05/2019 Blogues de Stevey: Matemática para programadores
It's sort of akin to the old analogy of filling buckets vs. lighting fires. Much of state run
education today has become a process of filling "buckets". Fill each kid with these facts at
this age and by this age they'll now this, this, and this. The lighting fires approach
teaches a wide variety of subjects, developing a love of learning and discovery that lasts a
lifetime.
Rote memorization may make you an efficient programmer, but it won't make you
especially creative. Creativity is the birthplace of great software, products, art, etc.
6:12 AM, MARCH 20, 2006
trr said...
Someone mentioned that the name Schonfinkel means "pretty bird". That's not quite
right. It means pretty finches. Schoenvogel would be "pretty bird".
I enjoy reading the math articles on wikipedia and mathworld.wolfram.com and I've
always liked reading books about math (not math textbooks), but I don't feel that I really
know the math having read them. I read the Hofstadter book many years ago, and it
really captivated me. What remains after all the years is the interestingness of self-
referential and recursive things. More recently I've read books about Erdos
(biographical) and the story behind proving the Riemann hypothesis. It talks about the
importance of prime numbers, as someone else mentioned, but getting to the proof
required a lot of non-discrete math.
I do agree with the assertion that a lot of people are put off by the notation of math, but
how to get around that? You can't do without it, can you?
10:51 AM, MARCH 20, 2006
trr said...
I should mention: Math in school was usually not fun for me, except Geometry class.
That had a lot to do with the teacher. Of course I did well enough at it, but it could have
been a better experience.
Science was more interesting than math, but as an engineer, both are necessary.
I didn't know John von Neumann was a chemical engineer until I read it on Steve's page
titled "Math Every Day". Cool!
Vicki said...
http://www.cs.utexas.edu/users/EWD/transcriptions/EWD13xx/EWD1308.html
"Looking back I cannot fail to observe my fear of formal mathematics at the time. In
1970 I had spent more than a decade hoping and then arguing that programming would
and should become a mathematical activity; I had (re)arranged the programming task so
as to make it better amenable to mathematical treatment, but carefully avoided creating
the required mathematics myself."
Anonymous said...
Steve, I've got a topic for you to write/rant/whatever on - how does one (e.g. @AMZN)
predict time for a project with great accuracy, so that 95% of the time you can actually
meet your deadlines? They're starting to treat programm{ing,ers} now as a factory
assembly worker/line rather than as art + science. What is all your knowledge of math
and what not worth, if you can't make your pointy haired boss look good by giving
something that can cut the mustard and nail the timeframe on the head every time? I
hope GOOG's treating you good (or better, I shud say, than where you were).
1:05 PM, MARCH 20, 2006
Anonymous said...
I think "The Art of Computer Programming" by Donald Knuth is a fine way to spend
some time. Most of programmers didn't read it, shame on them (I am such a
programmer ;-), I read only some small parts from it). The main worth of the multi-
volume book is its "interactiveness", it was written like a course with examples which are
like a bridge between theory and practice.
12:12 AM, MARCH 21, 2006
Anthony said...
the simple fact is that the number of programming jobs is rapidly outpacing the
demand for all other engineering roles.
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 27/40
18/05/2019 Blogues de Stevey: Matemática para programadores
No, no, it isn't. The number of actual programming jobs isn't very large, and has always,
even in the height of the bubble, been lower than the number of real engineers. Most IT
jobs are not programming, even if some of them do some incidental programming for
automating routine tasks.
So your advice about which sorts of math ought to be taught isn't terribly useful, even
though your advice about how to teach math may be.
(There's an interesting article by Joel Spolsky on what makes for a good CS education
here.)
7:45 AM, MARCH 21, 2006
raf. said...
I studied Computers in Spain, University of Oviedo. We used to joke about the discrete
maths, calling them discreet maths.We didn't have the slighest idea of what they were,
altough we had a subject on them.
Lead by the joke, once I realised what they were, and how the math teachers were fooling
us the students teaching us continuous maths. I have felt relief reading your article.
There has also been brain damage for us computer engineers and programmers here in
Spain.
Something needs to be done (globally!) to finish the tiranny of the continuous math
teachers over the discrete science.
9:28 AM, MARCH 21, 2006
Anonymous said...
A nice place to learn linear algebra is a set of free video lectures of Gilbert Strang's MIT
class at:
http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-
2005/VideoLectures/index.htm
It's a great resource for learning linear algebra, or for anyone who wants to learn how to
teach an abstract subject.
Anonymous said...
In my experience (20 years, plus) more time is spent fiddling with money and time, than
any other subject. Whether it is hours worked, or compound interest, outside of pure
engineering, money is a part of most calculations.
Converting a million dollars into Yen will definitely take double precision, and maybe
more. Even "simple" calculations can get fouled up if you fail to take precision into
account.
The reason money is so important, is that Most of the people hiring programmers are
trying to get (or keep) more of it, and spend less of it.
10:33 AM, MARCH 21, 2006
j. said...
If you want to learn mathematical logic, I recommend you the book "The incompleteness
phenomenon". It is an excellent (and broad) introduction to the subject. That's the place
I learned it from. It is well written and has lots of nice exercises.
12:10 PM, MARCH 21, 2006
Anonymous said...
In your post, you asked for a good book on logic for computer scientists. I highly
recommend Logic in Computer Science by Michael Huth and Mark Ryan. And you might
like some stuff on logic I write at Mathematics and Computation Blog. Andrej.
1:29 PM, MARCH 21, 2006
cincin21 said...
Hey Stevey!!
Awesome Blog!!
I am a retired High School Math teacher ... now a private Math tutor ... an espert in
Algebra I and II ... Geometry ... Trig/Pre-Cal and Calculus ...
I loved what you had to say and I will be reading Wikipedia 30 minutes every day
because I love to learn new things .... and it might help me understand the TV show
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 28/40
18/05/2019 Blogues de Stevey: Matemática para programadores
NUMB3RS better!
I have often used your "hostage" situation with my students whenever they asked me
"When will I ever need this?" my response ... "well ... you might be held hostage by
radical member of the Isoscelic group Al-Gebra ... and one of those memmbers might put
a gun to your head and say ... 'Solve this or die!!'" My students' responses were usually "I
choose death!"
But I taught the 3 time Geometry repeaters ... after they took Algebra I a couple of times
... and the ESL students ... and anyone else they could dump on me.
We are making kids hate Math ... and standardized testing is only making it worse (not
to mention severly watering down the math we do teach).
Anonymous said...
How about floating point ? Most non-engineers write very little floating point code, and
understand little about precision and round-off.
6:26 AM, MARCH 24, 2006
ilya said...
hi,
for example, numbers and figures are inherently connected so that you can study them
simultaneously - that's how mathematicians actually prove theorems about them (even
so "applied" as elliptic curves cryptography) - but unless for some reason you decided to
hide it you honestly have absolutely no idea what I mean. you just wasn't educated in
that (and you can't get that knowledge from the list of standard undergraduate subjects
of which your list is a subset)
the problem is they haven't taught neither you, nor all math majors in all except very few
departments what are mathematicians really doing about mathematics. those who are
really going to do math, of course, eventually figure by themselves (usually in grad
school)
if you'd like to do something about that, you can do a high-end mathematics web
meeting point, like web university or whatever.
7:48 AM, MARCH 28, 2006
Anonymous said...
If you want to practise math skills and programming skills at the same time, check out
Project Euler at MathsChallenge.net.
Kay said...
Steve,
I cannot refrain from commenting. While I find it commendable that you approach
math, this definitely isn't it.
Sorry to be blunt. Math isn't easy. No part about it. As we used to say in uni: "Math is an
asshole".
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 29/40
18/05/2019 Blogues de Stevey: Matemática para programadores
I cannot agree with the simplifications you, although I generally enjoy reading your blog.
Math in my opinion is about structure, not necessarily about content. That's why math is
important for all scientific/engineering trades.
It's not about to be able to calculate this or that probability, nor is it about evaluating an
integral or solving differential equations.
If you want to understand math, start with the number systems. The basic axioms
(Peano!) and go on from there. Learn the linear algebra involved (what is a group, what a
ring? How about a field? Does it have to be commutative? What happens if it isn't?) -
you'd be suprised how different linear algebra is from applying Gauss' algorithm...
I dare say that almost no programmer 'knows' what a function is.
Mathematical reasoning is a very important field to know. How could you prove
anything without it?
If you do not need pencil and paper you aren't doing math, you're doing calculations in
your head.
Regarding the allegedly bad math education: What's being taught isn't exactly math. It's
its application to the problem domain of children. You are exposed to math in AP
courses if you are lucky enough, but most are probably not.
Being able to recite Euler's formula to directly sum up the first n natural numbers is nice.
But how about a proof? Does it actually work? That's the thing that's changing your point
of view of problems. Is this solution I have in mind correct? Does it even exist? What are
the presumptions I am making?
All those nifty formulas I can look up, but the way of thinking about problems I cannot
find on wikipedia. But that's what mathematics is about.
Todas as coisas que você menciona são importantes, com certeza. Mas se você não tem o
conhecimento dos fundamentos (prova por indução, quais são meus números, que
propriedades básicas meus campos, anéis, grupos têm), você simplesmente não tem a
menor chance de ter a idéia do cálculo. Profundidade primeiro. Amplitude depois. Não
há nenhum atalho em torno disso. Pelo menos não se você é sério sobre matemática.
13:13, 17 DE ABRIL DE 2006
Alguns pontos:
você não precisa ter uma desculpa como ser um programador melhor ou escrever
programas ligeiramente diferentes para aprender matemática - a matemática é o alicerce
de toda a nossa compreensão do mundo físico, período - qualquer um que pondere a
onipresença da matemática em todas as tentativas entender a natureza do mundo físico
tem motivação suficiente para estudá-lo.
você fala sobre o jeito certo de aprender matemática - o caminho certo é certamente o
caminho que leva à compreensão real - (o que quer que seja - prepare-se para deslizar
pela ponta do iceberg) -
mas existe algo como modelagem matemática - identificando algo que você está
enfrentando como uma instância do BLAH, onde o BLAH é uma abordagem matemática
já feita para você por grandes mentes.
Se você não "conhece os nomes", como bem salienta, você não será capaz de categorizar
o problema que está enfrentando da maneira correta, e não terá esperança de encontrar
um indicador para a solução.
Há também o tipo de conhecimento de fundo que leva o mistério fora das escolhas de
design dentro de linguagens de programação dizer - ou pelo menos faz com que certas
coisas clique (cálculo lambda e lisp, teoria da categoria e Haskell etc)
assim, a matemática lhe dará algumas estruturas para trabalhar, mas se você se
perguntar - existem mais estruturas do que as que se falaram? Ou existem conexões
entre esses aparentemente diferentes grupos de estruturas? - então você está entrando
em pesquisa matemática em si - e isso parece um jogo de bola diferente - este é o próprio
iceberg
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 30/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Anônimo disse ...
I read through the blog a while back, and like you I've had a spotty maths career to date.
Recently, I've been looking into ways to improve this, and come to realise that discrete
maths is the bees-knees when it comes to relevance to computer science. Have a look, for
example, at the table of contents of Rosen's book (Discrete Maths and its Applications)
and try and find one chapter that doesn't sound relevant! Recursive functions, trees,
graphs, Boolean algebra - it's all good, honest, useful math. Somehow, when my teachers
tried to force-feed me calculus, I just never wanted to eat my vegetables. Now, older and
wiser, discrete maths looks positively delicious (and calculus still isn't very appetising).
Anyway, the main point of this post is to introduce you all to a FREE set of VIDEO
LECTURES in discrete mathematics I've recently come across. These lectures are
released under a Creative Commons license so download and go nuts! The lecturer is
*excellent*, and has spurred an interest in mathematics in me I never knew I had. The
course roughly follows the contents of Rosen's book I mentioned earlier. There are other
video lectures on computer science available too. It's a shame the ArsDigita University
that they came from didn't survive past it's first year. Here's a link to the main site. From
there you should be able to navigate to the various courses and download the lecture
video and slides.
http://www.aduni.org/
-- Robert
7:58 AM, APRIL 25, 2006
Flux said...
Excellent post, as mentioned by the 121 people before me.
I fancy myself as a fairly decent programmer. I graudated from DESIGN at UCLA and
have never touched a calculus class in my life, with the silly notion that I don't need math
to program.
Come one quater where I did a project with some physics simulation with springs. The
springs were exploding! I look up the cause. Ah. I need a Fourth Order Runge Kutta...
wtf..
I didn't even know what an --Integral-- is. And by looking it up, every definition I could
find is completely circular: they all defined these strange math words with more strange
math words! Sometimes, defined by the same word I'm looking up!
At this point I realize that I am seriously crippled in my math knowledge. Every single
formula I look up I demanded a programmatic or procedural approach to thinking
through the problem... and all I get is gibberish mathematical equations that might as
well be intercepted alien messages.
Want to draw a NURBS curve? Nope. Don't understand what the stupid symbols mean.
So yes. I will pick up a math book and must teach myself. Thank you for all the
recommendations.
There is hope!!!
3:41 AM, MAY 03, 2006
Amy said...
I love the way a friend of mine (double major, math & CS) said it: CS is math that does
stuff.
10:59 PM, JULY 30, 2006
Phil said...
You have some good points and some, in my humble opinion, not so good points. But
your opinion is skewed by the fact you're a programmer, just as my opinion is skewed by
the fact I'm a mathematician.
You're suggesting that Calculus and other maths in which the reals or complex numbers
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 31/40
18/05/2019 Blogues de Stevey: Matemática para programadores
are used should not be focused on in relation to Discrete or Finite Mathematics.
I disagree. And reason why is that in terms of how much certain subjects encompass, the
fact is that the theory of continuous sets of numbers is simply more general than the
discrete counterparts. Think about it. Everything from Statistics, (Linear) Algebra, DEs,
Calculus, and so on require an understanding of the real/complex numbers -- this
understanding is provided by Pre-Calc and later on by Calculus classes.
I'm not going to comment any further, but someone wrote this:
This is in addition to the fact that a theory concerning continuous spaces are much more
general than one for discrete systems. Take the well known fourier transform.
A student needs to learn about the continous fourier transform, before he or she starts
implementing discrete fourier transforms in computer programs.
But if your concern is how we should present the most essential mathematics in order to
reach the most students, then I don't think your arguments hold much water.
8:15 PM, AUGUST 07, 2006
Fine. Let's keep calculus and pre-calculus. But I would suggest replacing trigonometry
with discrete math. I just can't see anyone arguing persuasively that trig is more widely
useful than probability and combinatorics. And trig isn't a prerequisite for calculus; it's
completely orthogonal. Trig should be rolled into geometry at the high-school level, or
even dropped.
I'm not saying trig isn't useful; that'd be silly. But I was never introduced to discrete
math until my first year in the CS department. I could have used it a lot sooner than that.
Of course, I haven't been to high school in 25 years, so maybe they offer discrete math
now.
9:31 PM, AUGUST 07, 2006
Jim said...
Bravo!
After playing with decision trees and some neural net libraries, I realized I need to dig
back into the math. The path you advocate was exactly what I was beginning to do.. Go
forth and spread the gospel.
4:08 PM, SEPTEMBER 18, 2006
Maciek said...
Take a look at OpenCourseWare at MIT. Some of their lectures have video versions
(Linear Algebra for example). Great stuff.
11:06 AM, OCTOBER 16, 2006
Danny said...
re. Kleenex, I've got a pile of similarly opaque books. Most readable stuff I've found on
logic has been buried in AI books. John Sowa's got a neat reference page for his
Knowledge Representation material at http://www.jfsowa.com/logic/math.htm
critical said...
I have gotten good milage out of Mordechai Ben-Ari's book Mathematical Logic For
Computer Science
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 32/40
18/05/2019 Blogues de Stevey: Matemática para programadores
5:38 AM, NOVEMBER 06, 2006
Nick said...
Oi!
Eu gostaria de adicionar mais um autor
que escreveu livros muito bons sobre
como a matemática e o matematician funcionam:
George Polya
Experimente o "Mathematics and Plausible Reasoning" e "Mathematical Discovery".
Bom, eu queria ter lido quando tinha 13 ou 14 anos, tenho certeza que seria muito
melhor em matemática.
7:26, 6 DE NOVEMBRO DE 2006
Asimov escreveu uma história sobre um futuro em que a matemática era uma habilidade
perdida. Wikipedia me diz que era "uma
sensação de poder".
http://en.wikipedia.org/wiki/The_Feeling_of_Power
15H12, 6 DE NOVEMBRO DE 2006
O que eu quero dizer? Bem, em primeiro lugar, a notação matemática não está
facilmente disponível em páginas da web e e-mail. MathML é um bom começo, mas
ainda assim, é uma luta.
E isso faz a diferença. As formas funcionais típicas que as pessoas usam como o exemplo
fib () acima são apenas mais difíceis de ler do que a notação matemática padrão.
Isso leva ao segundo problema: ainda não há muitos softwares interessantes para
matemática, com algumas boas exceções. J vale a pena dar uma olhada. R é ótimo para
estatísticas. O GnuPlot e o Octave e pacotes de matrizes similares também são bons.
Mas não seria ótimo ter uma verdadeira notação matemática integrada na computação?
- Owen
Naive Set Theory por Paul Halmos é fantasticamente legível e uma excelente introdução
ao assunto.
Tanto quanto sei, não existe um livro excelente e legível sobre lógica matemática.
12H47, 11 DE NOVEMBRO DE 2006
Steve: Obrigado pelo post interessante. Um ótimo livro sobre lógica matemática é a
Teoria Prática da Programação de ECR Hehner (disponível gratuitamente na web em
PDF). Eu fiz o curso com ele na Universidade de Toronto em 2003; foi provavelmente o
curso mais interessante em todo o meu curso de graduação em CS.
02:26, 19 DE NOVEMBRO DE 2006
Primeiro, devo dizer que discordo totalmente da abordagem just in time de aprender
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 33/40
18/05/2019 Blogues de Stevey: Matemática para programadores
matemática navegando na wikipedia. É como aprender apenas linguagens de
programação observando código de exemplo e nunca lendo sobre estruturas de dados ou
boas práticas. Admito que eu acho uma lição muito ruim para aprender matemática, mas
as aulas de matemática, não as coisas estúpidas de computação para pessoas que não são
de matemática, são muito úteis se não por outra razão do que obter feedback e ter um
livro escolhido para você. Assim que você for além do material mais fácil, precisará de
notação consistente e problemas práticos (até aprender a fazer o seu próprio) e a
wikipedia não funciona muito bem, embora seja excelente para uma definição rápida ou
uma prova que você esqueceu. Também não estou convencido por suas escolhas entre os
campos da matemática.
Como muitas outras pessoas que conheço na faculdade de matemática, eu realmente não
gostava de todas as aulas de matemática que fiz antes da faculdade, exceto a geometria
que tinha algumas provas. Não há nada tão desagradável e não esclarecedor do que
aprender regras rotineiras para resolver equações, calcular integrais ou fazer
trigonometria. Eu estava tão irritado com a falta de explicação convincente na minha
aula de cálculo que eu saí e comprei um livro de matemática real que realmente
explicava as coisas e, eventualmente, isso me levou a desistir da física e mudar para a
matemática.
É claro que comecei como um estudante de pós-graduação que eu tinha idéias muito
fortes sobre o ensino como muitas pessoas que entram em matemática. Eu queria fazer
melhor do que todas as pessoas que me ensinaram na faculdade e realmente explicar o
que estava acontecendo nas minhas aulas. Eu ainda tento fazer um pouco disso, e
aproveito todas as oportunidades que posso para explicar as coisas quando um aluno que
quer entender me pergunta, mas eu aprendi que essa abordagem simplesmente não
funciona para a maioria dos alunos.
Para colocá-lo em termos que devem fazer sentido para um programador, isso se resume
à diferença entre programadores e inimigos de computador. Se você quisesse explicar
como trabalhar em algum programa em um computador ou como alterar algumas
configurações, você precisaria usar táticas completamente diferentes ao conversar com
um programador e um inimigo de computador. Você pode dizer ao programador a idéia
por trás do que ele deve fazer e ele tem o conhecimento e, mais importante, o desejo de
descobrir as coisas que lhe permitirão preencher os detalhes. Se a sua mãe que odeia
computadores fizer a mesma pergunta, você precisará dar a ela uma sequência rotineira
de etapas para aplicar a cada uma delas detalhes excruciantes.
Não é isso que você diz a alguém para fazer ou quais explicações você dá se
alguém não está interessado em entender que nunca vai aprender a fazer
mais do que os problemas que você lhes dá. Realmente aprender matemática é
sobre juntar as peças para ver porque as coisas realmente funcionam. Se você quer
apenas fazer sua lição de casa e não se importar com o motivo de as coisas funcionarem,
você nem tem as peças certas em sua mente para que uma explicação se encaixe. Assim
como a indústria de computadores desistiu de fazer o usuário realmente entender o que
está acontecendo e ao invés disso tenta projetar a interface para acomodar alguém que
não quer aprender o sistema de educação matemática, teve que fazer o mesmo. Alguns
professores de matemática ainda tentam ensinar a seus alunos de cálculo o que
realmente está acontecendo, fazendo-os fazer provas e, de outra forma, realmente
requerendo compreensão, mas toda vez que isso falha horrivelmente. Os alunos desistem
porque não vêem nenhuma conexão entre o que o professor está dizendo e o que eles
vêem como o ponto do curso, resolver os problemas, e mesmo quando eles percebem que
precisam aprender algo mais para resolver esses problemas, eles simplesmente não
conseguem descobrir o que é importante ou como ele se encaixa e simplesmente se
atrapalha horrivelmente. Pior ainda, uma vez que os alunos não estão realmente
interessados em entender os fatos, eles não se encaixam em nenhum modelo mental, o
que significa que eles não conseguem se lembrar de tudo. Também a confiança é
essencial para a matemática, você precisa tatear no escuro com soluções potenciais até
que funcione. O maior problema que os estudantes têm é estarem convencidos de que
eles não podem fazer o problema e não tentar, mas se você tentar fazer com que os
alunos matem com verdade, eles se rebelam e desistem deles (ou eles são tão simples que
inventam um algoritmo rotineiro que quase sempre funciona e você não chegou em
nenhum lugar ou eles estão e mesmo quando eles percebem que precisam aprender algo
mais para resolver esses problemas, eles simplesmente não conseguem descobrir o que é
importante ou como ele se encaixa e simplesmente tropeça horrivelmente. Pior ainda,
uma vez que os alunos não estão realmente interessados em entender os fatos, eles não
se encaixam em nenhum modelo mental, o que significa que eles não conseguem se
lembrar de tudo. Também a confiança é essencial para a matemática, você precisa tatear
no escuro com soluções potenciais até que funcione. O maior problema que os
estudantes têm é estarem convencidos de que eles não podem fazer o problema e não
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 34/40
18/05/2019 Blogues de Stevey: Matemática para programadores
tentar, mas se você tentar fazer com que os alunos matem com verdade, eles se rebelam e
desistem deles (ou eles são tão simples que inventam um algoritmo rotineiro que quase
sempre funciona e você não chegou em nenhum lugar ou eles estão e mesmo quando eles
percebem que precisam aprender algo mais para resolver esses problemas, eles
simplesmente não conseguem descobrir o que é importante ou como ele se encaixa e
simplesmente tropeça horrivelmente. Pior ainda, uma vez que os alunos não estão
realmente interessados em entender os fatos, eles não se encaixam em nenhum modelo
mental, o que significa que eles não conseguem se lembrar de tudo. Também a confiança
é essencial para a matemática, você precisa tatear no escuro com soluções potenciais até
que funcione. O maior problema que os estudantes têm é estarem convencidos de que
eles não podem fazer o problema e não tentar, mas se você tentar fazer com que os
alunos matem com verdade, eles se rebelam e desistem deles (ou eles são tão simples que
inventam um algoritmo rotineiro que quase sempre funciona e você não chegou em
nenhum lugar ou eles estão Descobrir o que é importante ou como se encaixa e apenas
tropeçar horrivelmente. Pior ainda, uma vez que os alunos não estão realmente
interessados em entender os fatos, eles não se encaixam em nenhum modelo mental, o
que significa que eles não conseguem se lembrar de tudo. Também a confiança é
essencial para a matemática, você precisa tatear no escuro com soluções potenciais até
que funcione. O maior problema que os estudantes têm é estarem convencidos de que
eles não podem fazer o problema e não tentar, mas se você tentar fazer com que os
alunos matem com verdade, eles se rebelam e desistem deles (ou eles são tão simples que
inventam um algoritmo rotineiro que quase sempre funciona e você não chegou em
nenhum lugar ou eles estão Descobrir o que é importante ou como se encaixa e apenas
tropeçar horrivelmente. Pior ainda, uma vez que os alunos não estão realmente
interessados em entender os fatos, eles não se encaixam em nenhum modelo mental, o
que significa que eles não conseguem se lembrar de tudo. Também a confiança é
essencial para a matemática, você precisa tatear no escuro com soluções potenciais até
que funcione. O maior problema que os estudantes têm é estarem convencidos de que
eles não podem fazer o problema e não tentar, mas se você tentar fazer com que os
alunos matem com verdade, eles se rebelam e desistem deles (ou eles são tão simples que
inventam um algoritmo rotineiro que quase sempre funciona e você não chegou em
nenhum lugar ou eles estão Se encaixa em qualquer modelo mental, o que significa que
eles não conseguem se lembrar de tudo isso. Também a confiança é essencial para a
matemática, você precisa tatear no escuro com soluções potenciais até que funcione. O
maior problema que os estudantes têm é estarem convencidos de que eles não podem
fazer o problema e não tentar, mas se você tentar fazer com que os alunos matem com
verdade, eles se rebelam e desistem deles (ou eles são tão simples que inventam um
algoritmo rotineiro que quase sempre funciona e você não chegou em nenhum lugar ou
eles estão Se encaixa em qualquer modelo mental, o que significa que eles não
conseguem se lembrar de tudo isso. Também a confiança é essencial para a matemática,
você precisa tatear no escuro com soluções potenciais até que funcione. O maior
problema que os estudantes têm é estarem convencidos de que eles não podem fazer o
problema e não tentar, mas se você tentar fazer com que os alunos matem com verdade,
eles se rebelam e desistem deles (ou eles são tão simples que inventam um algoritmo
rotineiro que quase sempre funciona e você não chegou em nenhum lugar ou eles estão
são suficientemente duros os alunos só se debatem).
Você pode pensar que deveria começar mais cedo e o problema é que, na faculdade, os
alunos já internalizaram a abordagem mecânica da matemática. Eu acho que pode haver
algo para isso, mas nós tentamos começar com a compreensão muito cedo e falhou
totalmente. Isto era o que a matemática nova era eo currículo era realmente muito bom
mas os professores realmente não entenderam isto (eles aprenderam por corrija) assim
eles não puderam implementar isto e pais e professores exigiram matemática de volta.
Mais amplamente, não está claro que todos são realmente capazes de entender
matemática. Diferentes pessoas têm diferentes habilidades e compreensão até mesmo a
matemática mais básica é realmente muito difícil para a maioria das pessoas.
De qualquer forma, o resultado disso é que você não pode ensinar matemática do jeito
que os tipos matemáticos e programadores gostariam, pois acabaria falhando com todos
os outros. Nós temos que ensinar a matemática do mesmo jeito que nós temos que
ensinar as pessoas procedimentos de rotina para usar palavra e excel porque eles
precisam usar as ferramentas. Eu apóio fortemente um sistema de rastreamento para
esse tipo de coisa, mas infelizmente, antes da faculdade, os professores não entendem a
matemática bem o suficiente para ensiná-la de qualquer maneira, a não ser do modo
rotineiro.
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 35/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Sarajevo06 disse ...
A matemática não é fácil pela simples razão de que ela foi criada principalmente por
pessoas que podem ser chamadas de geniouses.
Eu só queria saber se algum de vocês pode me ajudar a encontrar um site que ensina
como ler a notação matemática.
15H32, 29 DE JANEIRO DE 2007
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 36/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Eu poderia ter alguma vez entendido ou sido capaz de fazer os cálculos de back-of-the-
envelope sem muita matemática? Improvável.
Acho que preciso aprender mais matemática além do que aprendi? Sim - problemas de
programação de otimização significavam que eu precisava de mais. Entrando em
programação funcional eu precisava de mais. Etc etc.
Será que a matemática que aprendi foi ensinada melhor ou diferente? Sim, com
pouquíssimas exceções, da escola primária à pós-graduação. É por isso que eu sou para o
ensino em casa e acredito profundamente que o sistema escolar público dos EUA é
fatalmente falho apesar de ser de uma família de professores de escolas públicas.
Eu tive sorte de ter aprendido tudo que fiz? Sim. Pode ser que ele tenha passado por
cima dos retornos decrescentes para o território de retornos compostos. Eu sinto muito
por aqueles que nunca chegam tão longe. Eu acho que você nunca vai saber como é -
embora eu
8H37, 22 DE ABRIL DE 2007
"Para colocar isso em perspectiva, pense em divisão longa. Levante sua mão se você
pode fazer uma longa divisão no papel, agora mesmo. Mãos? Alguém? Eu não penso
assim."
Eu sugeriria
É um bom livro e bastante barato para os padrões de livros de matemática. Não espere
que o material seja imediatamente utilizável na programação (embora possa ser usado).
O esboço geral do livro é:
Muito obrigado por este post. Acontece que estou começando em uma nova empresa na
semana que vem e vou codificar seu sistema de recomendação. (Se você gosta de x
product, provavelmente vai gostar de y.) Bem, eu codifiquei algo rápido enquanto eu
tinha tempo para matar, mas era lento e lento.
Então, eu fiz um pouco de pesquisa e descobri que a álgebra linear está envolvida em
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 37/40
18/05/2019 Blogues de Stevey: Matemática para programadores
fazer isso "certo". Então, eu tenho debatido sobre a melhor maneira de aprender o que
preciso saber e se eu quero ou não me incomodar.
Então obrigado.
11:33, 22 DE ABRIL DE 2007
http://www.youtube.com/watch?v=Rr0fOGeS7DE
15:02, 22 DE ABRIL DE 2007
Claro, seu objetivo não foi desenhar o sorteio da Lista Perfeita, mas explicar como
abordar o assunto. E eu concordo totalmente com você. A matemática deve ser útil e
divertida, e suas origens no “mundo real” devem ficar claras.
Alguma matemática será relevante para o que você faz; parecerá fácil de aprender,
animado e útil. Se for irrelevante, você terá dificuldades em criar um modelo mental do
que está acontecendo, e parecerá apenas uma masturbação mental.
18:51, 22 DE ABRIL DE 2007
http://technocrat.net/d/2007/4/3/17225
Ensinar matemática (ou as dificuldades nela) tem sido uma paixão minha por um
enquanto. Aqui estão algumas coisas que eu percebi:
2) Por que as pessoas não gostam de matemática? É cumulativo. Se você perder uma
lição (digamos álgebra), então a geometria se torna difícil. Então trig trigêmeo fica difícil.
Então o cálculo se torna difícil. A maioria dos assuntos como história, inglês ou mesmo
ciência (bio, química, física) são um pouco ortogonais, onde você pode aprender um
assunto sem os outros.
3) Precisamos saber "por que", não apenas "como". Há tantas maneiras de entender um
conceito como o teorema de Pitágoras. Eu sofri com muitos professores que ensinaram
provas rotineiras, excessivamente formais, sem dar uma ideia do quadro geral.
Foi arriscado, já que a matemática não é um assunto que as pessoas gostam, mas na
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 38/40
18/05/2019 Blogues de Stevey: Matemática para programadores
verdade foi bem recebido! Eu falei sobre a história de Gauss, e há um post no blog
correspondente:
http://betterexplained.com/articles/techniques-for-adding-the-numbers-1-to-100/
tniykqEstou com você, Stevey. Aprender matemática é uma atividade para a vida toda, e
você pode começar a qualquer momento.
Minha coleção favorita de artigos de matemática, que é útil para obter a "amplitude" de
que você fala, é "World of Mathematics", mas James R. Newmann. A versão de
reimpressão da Microsoft Press de 1988 é a melhor, embora os originais possam ser
encontrados com mais facilidade.
A série abrange 4.500 anos de matemática e são 133 artigos dos matemáticos originais.
(É realmente divertido ler algo de Arquimedes (The Sand Reckoner) ou Galileo.) O
comentário de Newmann é o equivalente matemático das intros de Masterpiece Theatre
de Alistair Cooke, e coloca o artigo em perspectiva.) Quatro volumes leva cerca de 2 anos
de leitura suave para completar , mas vale a pena para o aluno casual. Advertência:
Originalmente publicado em 1954, ele perde os últimos 50 anos, mas faz um bom
trabalho com os primeiros 4.500!)
Além disso, eu tenho que expor minha Hipótese da Igualdade de Ignorância: Dado o
tamanho do corpo do conhecimento, nós são essencialmente igualmente ignorantes. O
mais aprendido entre nós tem apenas um pouquinho de conteúdo.
D disse ...
Dois livros úteis na lógica matemática, que pode ser largamente lidos simultaneamente,
são:
Artigo muito bom. Fala sobre todas as coisas certas ... E a maior parte é deja vu para
mim, como quando você fala sobre o somatório e o forloop. Eu aprendi a entender
somatório como para loop, da maneira mais difícil.
Eu tropecei em outros posts de seus blogs também algumas vezes. Você tem muita coisa
boa para compartilhar. É triste que você não esteja mais escrevendo.
Considere escrever novamente.
- smr
6H33 DE 28 DE ABRIL DE 2007
Obrigado por este blog, também entro no mergulho recursivo da wikipedia quando fico
preso a algum problema. Sobre o tema do blog, o meu favorito é "Probabilidade e
Estatística para Ciência da Computação"
[http://www.amazon.com/Probability-Statistics-Computer-Science-
Johnson/dp/0471326720] por James L. Johnson.
Animesh
http://computationalbiologynews.blogspot.com/
11H47 DE 10 DE JUNHO DE 2007
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 39/40
18/05/2019 Blogues de Stevey: Matemática para programadores
Steve - ótimo post. Eu também estou na mesma situação em que você estava quando
começou, querendo se aprofundar nos trabalhos de pesquisa, mas encobrindo as partes
mais difíceis de matemática.
Uma grande coisa que logo cai no esquecimento é a notação. A notação matemática é o
maior turn-off para pessoas de fora. Mesmo se você estiver familiarizado com
summações, integrais, polinômios, expoentes, etc., se você ver um ninho espesso deles,
sua inclinação é provavelmente pular sobre aquele sugador como uma operação atômica.
Eu me vejo fazendo isso o tempo todo. Talvez depois de pegar meu livro de matemática
para dar uma volta, eu possa mudar esse comportamento.
21:41, 27 DE JUNHO DE 2007
<< Home
steve-yegge.blogspot.com/2006/03/math-for-programmers.html 40/40