Eu não percebo nada de matemática , posso me tornar um bom programador?

Como dizia um grande sábio, podes ser um bom programador em 10 anos ou um bom programador em 2 anos se tirares uma cadeira de algoritmos.
 
Convém distinguir o não perceber e o não gostar.
Não gostar de matemática é meio caminho andado para não a perceber, mas não quer dizer que não haja capacidade para tal. Há gente que mete na cabeça que não gosta de matemática e por isso diz que não percebe, mas nem sequer tenta gostar...
Se forem a ver quase toda a gente que percebe de matemática, gosta de matemática e não acredito que uma pessoa que perceba não goste (mas isso é um esterótipo meu :D)
Mas também há gente que não gosta de matemática porque não percebe (a.k.a preguiçosos).
Não podemos olvidar (palvra bonita :-D)que há limitações, e há pessoas que não percebem por razões biológicas/genéticas mas ainda assim um coxo pode andar...
Mas isto sou eu a divagar...

P.S: E que tal as notas dos exames, as notas saem/sairam hoje, eu safei-me a matemática :D

Eu gosto mas gostava de perceber mais :lol:
Epá concordo completamente com o teu post. Eu sou um bocado preguiçoso e como nao gostava nada da stra não percebia quase nada nas aulas e achava aquilo uma seca, mas quando ia aprender a matéria uns dias antes do teste (porque era forçado a isso :P ), começava a perceber bem aquilo e até havia certas coisas que me deixavam fascinado, havia certas matérias que ficava mesmo a gostar daquilo e ficava a pensar "Epá se tivesse estado mais atento nas aulas se calhar nao era tao seca porque a materia afinal até é gira".

Matemática é como a cerveja, aprende-se a gostar :P

E lá consegui tirar um 16 no exame :)
 
Eu gosto mas gostava de perceber mais :lol:
Epá concordo completamente com o teu post. Eu sou um bocado preguiçoso e como nao gostava nada da stra não percebia quase nada nas aulas e achava aquilo uma seca, mas quando ia aprender a matéria uns dias antes do teste (porque era forçado a isso :P ), começava a perceber bem aquilo e até havia certas coisas que me deixavam fascinado, havia certas matérias que ficava mesmo a gostar daquilo e ficava a pensar "Epá se tivesse estado mais atento nas aulas se calhar nao era tao seca porque a materia afinal até é gira".

E lá consegui tirar um 16 no exame :)

É o que acontece à maioria - preguiçite - isso ou arranjarem uma namorada:-D
Eu próprio esforçei-me um pouco mais para o exame e isso viu-se no resultado (mas também o exame era fácil, apesar de ter visto quatros e cincos na pauta).
Na programação deve ser a mesma coisa, só que neste caso eu ainda não gosto muito de programar porque ainda não percebo, mas quanto mais aprendo mais gosto um pouco uma matemática:D

Matemática é como a cerveja, aprende-se a gostar :P

Aprende-se a gostar de cerveja???? Fixe,tou salvo:D
 
É só para dizer que fiquei com 19 a MATCP (matemática computacional), foi a melhor nota do meu curso e o único 19! Estou tão contente que decidi partilhar com vocês. :D
 
É só para dizer que fiquei com 19 a MATCP (matemática computacional), foi a melhor nota do meu curso e o único 19! Estou tão contente que decidi partilhar com vocês. :D

EH LÁ eu também fiquei com 19 a matemática de 12º, mas essa tem mais classe:D.
Mas agora vais ser boa pessoa e dizer que foi fácil e que os outros é que são fraquinhos:-D
Só pa dar esperança...:D
 
Isso do raciocinio , pois tás a falar de lógica?

Epá que eu saiba lógica não é matemática, e olha lá isto que eu li algures:

First, though, let me eliminate a myth: some people think that math skills are important, but I've seen great mathematicians who are mediocre programmers, and lots of great programmers who are certainly not mathematicians (and probably never expected to be).

Site: http://cprogramming.com/whatdoesittake.html

Portanto lógica não tem que uma pessoa perceba de matemática, e que a podes ter um raciocinio lógico e não gostares de matemática.


Sou a prova viva de que sei programar, em artes 2D, 3D, multimedia, e outras e tiro 12 a matematica :)
 
The Hedgehog, quando falo de computação gráfica..., não falo de drag'n drop. Não me leves a mal, mas dúvido muito que saibas trabalhar com matrizes, saibas cálculos mais avançados de matemática e afins.

Este semestre frequentei uma cadeira (que ainda nem sei a nota) de Computação Gráfica, e acredita, para coisas simples tive de aplicar bastante matemática, a titulo de exemplo, as simples projecções ainda levam matemática.

Claro está que basta ir à wikipedia e procurar as fórmulas..., e depois é só copiar. Mas para fazer coisas a sério, coisas que envolvem mais empenho..., não é com matemática de secundário certamente.

HecKel
 
Peço desculpa já desde o início pois não li a thread toda. Não sei se já postaram isto, ou algo do género, mas no meu 1º ano de universidade li este texto e gostei bastante.

Fica aqui para quem estiver interessado.

Viewpoint - Keith Devlin

The Real Reason Why Software Engineers Need Math

Software engineers often proclaim they never use any of the mathematics they learned in college. Come to that, they say they don’t use much of the computer science they learned either. Having been a mathematician for just over 30 years, I’ll leave the CS part to others. But as far as the use of mathematics is concerned, let me admit up front the software engineers are dead right: they don’t use their college mathematics.
They are also dead wrong. They make use of their college mathematics education every day. There’s no paradox here. It comes down to what is meant by the word “use.” One meaning is the one those software engineers once encountered in their math classes. Having learned the rule for integration by parts in their calculus class, for example, they were then given exercises
and exam questions requiring them to use that rule. This is the most familiar meaning attached to the word “use,” and it’s the one the engineers implicitly assume when they say they never use
their college math. But it’s a meaning built on what I call the “filling a vessel” view of the way humans learn.
According to the “filling a vessel” view, education consists largely of pouring facts into our brains; using what we have learned consists of pouring it back out. This is, dare I say it, a highly simplistic—and erroneous—view of education.
But it’s one the education establishment (which I’m in) fosters every time it offers a course and then measures the results by setting a largely regurgitative, three-hour, written exam. In contrast, all the evidence from several decades of research both into the way the brain works and into the learning process—and there are masses of such evidence—says the acquisition of facts and algorithmic procedures are merely surface manifestations of what goes on when people
learn. (We know they are surface phenomena since we generally forget them soon after the last
exam is over.)
The real value of education is something else. Our brains are perhaps the world’s best examples of an adaptive system. When we subject the human brain to an extended educational experience, it undergoes permanent changes. In physical terms, those changes are the growth and strengthening of certain neural pathways. In functional and experiential terms, we acquire new knowledge and skills.
The more repetitive the learning process, the stronger and longer lasting are those changes. The effect of repetitive learning is nowhere more dramatic than in mathematics. Formal mathematics is at most 5,000 years or so old. That’s a mere blink of an eye in evolutionary time, and certainly not long enough for our brains to undergo any but the most minor changes. Thus, the mental processes we use to do mathematics must have been acquired and in use long before the Sumerians introduced abstract numbers some time between 8,000 and 5,000 years ago.
The new twist required in order to do mathematics was to bring those capacities together and use them to reason not about the physical and social world for which they initially developed through natural selection, but rather a purely abstract world of the mind’s own creation.
The human brain finds it extremely difficult to cope with a new level of abstraction. This is why
it was well into the 18th century before mathematicians became comfortable dealing with zero
and with negative numbers, and why even today many people cannot accept the square root of
minus-one as a genuine number.
But software engineering is all about abstraction. Every single concept, construct, and method
is entirely abstract. Of course, it doesn’t feel this way to most software engineers. But that’s my
point. The main benefit they got from the mathematics they learned in academia was the experience of rigorous reasoning with purely abstract objects and structures.
Moreover, mathematics was the only subject that gave them that experience. It’s not what was
taught in the mathematics class that was important; it’s the fact that it was mathematical. In
everyday life, familiarity breeds contempt. But when it comes to learning how to work in a
highly abstract realm, familiarity breeds a sense of, well, familiarity—meaning that what once seemed abstract starts to feel concrete, and thus more manageable.
Though the payoff from learning (any) mathematics is greater for the computer professional than most other people, in today’s society the benefits affect everyone. For instance, a study carried
out by the U.S. Department of Education in 1997 (the Reilly Report) showed students who
complete a rigorous high school course in algebra or geometry do much better in terms of gaining
entry to a college or university, and perform much better once they are there, whatever they choose to study. In other words, completion of a rigorous course in mathematics—it is not even
necessary the student does well in such a course— appears to be an excellent means of sharpening the mind and developing mental skills that are of general benefit.
(In my book, The Math Gene: How Mathematical Thinking Evolved and Why Numbers Are Like
Gossip (Basic Books, 2000), I examine these ideas more carefully, and identify the survival dvantages that led to the mental capacities required to do mathematics.)
As I have indicated in this short piece, the benefits for the software engineer are far greater.
Indeed, they are an essential prerequisite. That’s not usually given as the official reason for the obligatory math requirements for engineering students. But it is the main reason why they are beneficial.

Keith Devlin ([email protected]) is the executive director of Stanford University’s Center for the Study of Language and Information (CSLI).
 
A matemática não são só calculos futeis sem sentido nenhum, sem darmos conta disso desenvolve o nosso raciocinio lógico. Dai que considero que boas bases matemáticas permitem chegar a solucoes com algoritmos mais rapidos/eficientes nos programas. Mas nada impede que um gajo que seja um zerinho à esquerda a matematica seja um excelente programador e que chegue as mesmas solucoes, ate porque com a pratica vai ter tambem essa mesma capacidade de raciocinio.
 
Sinceramente, não fica muito diferente. Tens coisas pré-construidas, é quase como fazer um McDonalds na rua, numa tarde está feito.

Também podes fazer coisas altamente com VRML, apenas dá jeito teres uma ideia de Grafos de Cena ou usar a bela da programação à tentativa e pouco precisas de saber de programação. Salvo erro até o código em OpenGL é criado.

Hoje em dia existem várias ferramentas que facilitam o trabalho dos programadores, mas de inovador pouco fazem, usam coisas pré-definidas.

Quando falo em programação gráfica, falo em coisas a sério, coisas feitas por ti de raiz e originais.

Para teres ideia, um professor meu está a fazer como tese de doutoramento uma aplicação que simula os efeitos de um tecido, o movimento do mesmo, as sombas e afins. Não sei se tens ideia do que é isto, mas o movimento de um tecido é bastante irregular, imagina teres um pano preso por duas pontas e soltares uma delas, simula isso.

Existe mesmo muita matemática nestas coisas. Com VRML e com ferramentas como a que tu usaste, até ambientes de jogos consegues fazer ;) Mas isso és tu que fazes ou apenas mandas fazer?

HecKel
 
Sinceramente, não fica muito diferente. Tens coisas pré-construidas, é quase como fazer um McDonalds na rua, numa tarde está feito.

Também podes fazer coisas altamente com VRML, apenas dá jeito teres uma ideia de Grafos de Cena ou usar a bela da programação à tentativa e pouco precisas de saber de programação. Salvo erro até o código em OpenGL é criado.

Hoje em dia existem várias ferramentas que facilitam o trabalho dos programadores, mas de inovador pouco fazem, usam coisas pré-definidas.

Quando falo em programação gráfica, falo em coisas a sério, coisas feitas por ti de raiz e originais.

Para teres ideia, um professor meu está a fazer como tese de doutoramento uma aplicação que simula os efeitos de um tecido, o movimento do mesmo, as sombas e afins. Não sei se tens ideia do que é isto, mas o movimento de um tecido é bastante irregular, imagina teres um pano preso por duas pontas e soltares uma delas, simula isso.

Existe mesmo muita matemática nestas coisas. Com VRML e com ferramentas como a que tu usaste, até ambientes de jogos consegues fazer ;) Mas isso és tu que fazes ou apenas mandas fazer?

HecKel


Ferramentas graficas que uso são semelhantes ao Cinema 4D e Valve Hammer.

O resto dou comportamento a esses objectos usando C-Script e HLSL (High Level Shader Language, a qual pouco domino ainda).

O HLSL pode simular mesmo esses comportamentos de tecido, liquidos, stencil/soft shadows, Bumps e speculars, etc...

Sou eu que faço isso tudo. Passo 60% do meu tempo a frente do PC quando tou em casa. E perdi a vontade de jogar jogos já faz alguns anos. Por isso dedico-me a programação.

Neste momento sei fazer varias coisas.

Posso ser Webmaster, Designer 3D ou 2D, sei fazer aplicações 2D de gestão, usando bases de dados em Access ou SQL, sei fazer objectos 3D e juntar com filmes, por exemplo os bonecos feitos a computador que depois são colocados junto aos actores de um filme, usando color/chrome keys, sei fazer efeitos especiais com videos usando o after effects, sei manipular audio, sei trabalhar com imagens graficas (photoshops, illustrators e afins..), sei fazer paginas web usando HTML/PHP/SQL/CSS/XML/SWF, entenda-se por SWF animações flash controladas por ActionScript no contexto, hei-de aprender XNA brevemente.

As minhas areas preferidas são a multimedia no que consiste em criação de jogos. É das coisas que mais me atrai na informatica, sempre gostei da ideia de trazer à vida as minhas ideias e fazer as pessoas vive-las, usando assim os jogos como meio para tal.
Vou entrar este ano pra faculdade (tenho 17 anos), mal posso esperar para tirar o maestrado na area de jogos e multimedia! :D


Ps. Nunca tirei nenhum curso, e tudo o que sei é por merito proprio.
 
Última edição:
O HLSL pode simular mesmo esses comportamentos de tecido, liquidos, stencil/soft shadows, Bumps e speculars, etc...

Acabaste de chegar onde queria, é o HLSL que faz isso, é o HLSL que simula esses comportamentos, e não tu à lá mano.

O que falo é fazer isso mesmo de raiz, PERCEBER como acontecem as coisas e COMO elas são feitas.

Ya, podes dizer que é estúpido e que para conduzires não precisas de saber montar um carro, ya, dou-te razão. Mas quando se trata de fazer coisas ligeiramente diferentes do que essas ferramentas te dão já precisas de alguns conhecimentos, e por essas ferramentas não os vais adquirir pois aí já precisas e bem de matemática, precisas de conhecer os comportamentos físicos dos mesmos.

Provavelmente quando queres simular a projecção de um objecto apenas tens de dar dois valores, ângulo de projecção e intensidade, a ferramenta faz o resto. E sem essa ferramenta, como fazes?

O problema das ferramentas é que não te dão qualquer capacidade de inovação, estás limitado às capacidades da mesma e não às tuas próprias capacidades. É certo que com uma ferramenta consegues obter resultados mais rapidamente, mas se te pedirem alterações que a ferramenta não tenha capacidade simplesmente ficas parado a olhar, não dá para mais.

Voltando ao exemplo de um carro, se o queres quitar das duas uma, ou sabes o que estás a fazer ou vais ter com alguém que saiba fazer isso, não é com o livro de código que vais conseguir alterar essas coisas no carro.

Não tenho intuito de dizer que fazes mal em usar essas ferramentas, mas o que está em questão é programar, não usar ferramentas. É algo que me faz alguma confusão é que algumas pessoas só sabem programar graças a ferramentas e IDEs, sem isto não fazem nada.

HecKel
 
Acabaste de chegar onde queria, é o HLSL que faz isso, é o HLSL que simula esses comportamentos, e não tu à lá mano.

O que falo é fazer isso mesmo de raiz, PERCEBER como acontecem as coisas e COMO elas são feitas.

Ya, podes dizer que é estúpido e que para conduzires não precisas de saber montar um carro, ya, dou-te razão. Mas quando se trata de fazer coisas ligeiramente diferentes do que essas ferramentas te dão já precisas de alguns conhecimentos, e por essas ferramentas não os vais adquirir pois aí já precisas e bem de matemática, precisas de conhecer os comportamentos físicos dos mesmos.

Provavelmente quando queres simular a projecção de um objecto apenas tens de dar dois valores, ângulo de projecção e intensidade, a ferramenta faz o resto. E sem essa ferramenta, como fazes?

O problema das ferramentas é que não te dão qualquer capacidade de inovação, estás limitado às capacidades da mesma e não às tuas próprias capacidades. É certo que com uma ferramenta consegues obter resultados mais rapidamente, mas se te pedirem alterações que a ferramenta não tenha capacidade simplesmente ficas parado a olhar, não dá para mais.

Voltando ao exemplo de um carro, se o queres quitar das duas uma, ou sabes o que estás a fazer ou vais ter com alguém que saiba fazer isso, não é com o livro de código que vais conseguir alterar essas coisas no carro.

Não tenho intuito de dizer que fazes mal em usar essas ferramentas, mas o que está em questão é programar, não usar ferramentas. É algo que me faz alguma confusão é que algumas pessoas só sabem programar graças a ferramentas e IDEs, sem isto não fazem nada.

HecKel


Compreendo perfeitamente o que dizes, e realmente é essa sensação de limitação que ja senti inumeras vezes, o que tu dizes está comprovado mesmo.
Mas infelizmente penso que não tenho meios de aprender a fazer isso, eu por gosto proprio curtia aprender a montar um computador peça a peça, e programa-lo até obter um resultado satizfatorio.
Adorava saber Assembly, sei que sabendo Assembly é-se "dono" da maquina. Mas nunca tive condições para aprender Assembly. Eu tenho uma megadrive/genesis e ja tentei abrir os ROMs dela, no entanto o resultado é Assembly, sinto-me limitado.
Por vezes dá a entender que quanto mais se aprende menos se sabe, é praticamente impossivel saber tudo acerca dos computadores e semelhantes, visto que o conhecimento nesta area não é estatico e está sempre em constante mudança.


Sim68K.GIF




No fundo reside a velha curiosidade de 'como é que o computador entende um cubo?', na realidade o computador não nos mostra um cubo mas sim um conjunto de pixeis luminosos no monitor que nos dão a percepção do cubo, mas para ele nos dar essa percepção de um cubo, ele tem de "saber" o que é um cubo, como se percepciona um cubo, etc...

Agora, desde raíz como é que dizemos a um objecto (o computador), um objecto sem qualquer conhecimento de nada, o que é um simples cubo?

Antes de colocarmos a matematica no computador ainda vem a dimensão electronica da máquina. Como é que a electricidade deve ser manipulada de modo a dar ao computador este comportamento tão complexo?
Como é que se pode aprender isso?

Já viste o poder que nos tinhamos se soubessemos montar uma maquina peça a peça e depois programar o seu software base e daí desenvolve-la? (electronica/hardware + software).

Nunca compreendi muito bem, mas Assembly é a chave de tudo isto certo?


Edit: Se bem me lembro a megadrive usa 68000 Assembly.
 
Última edição:
É pá..., a chave disto tudo é o código Binário :P

Um cubo não passa de um simples grupo de coordenadas, 8 vértices. Depois só tens de traçar as linhas a unir o cubo.

Claro que isto não é assim tão trivial se formos ao fundo do poço como tu queres, tens o GPU para isso mesmo :P Para tratar as primitivas e interpretá-las de forma a serem devidamente apresentadas no monitor.

HecKel
 
Na minha opiniao assembly deve ser aprendido so depois de teres bases de arquitectura de computadores, coisa que no secundario nao tens.

cada microprocessador tem as suas operacoes possiveis de realizar dependendo da sua arquitectura.

se tiveres alguma curiosidade e paciencia vai lendo estes acetatos ( na minha opiniao sao maus e pouco detalhados ) mas dá para teres uma ideia de como um microprocessador é constituido e qual o seu funcionamento:
http://comp.ist.utl.pt/ec-im/teo.htm

E este foi o manual de assembly do simulador que usei nos laboratorios:
http://comp.ist.utl.pt/ec-im/manual.pdf

se vires que isso te despertou o interesse, porque nao dar uma olhadinha num livro mais a sério.

de qualquer maneira essas linhas de codigo que meteste ai sao apenas operacoes entre registos do cpu, tal como qualquer instrucao de assembly.

por exemplo:

Código:
MOV R1, 10  ; Move valor 10 para o registo R1 do CPU
CMP R1, R2 ; Compara R1 com R2, se R1 < R2, acende flag NEGATIVE e por ai adiante

Quando dei isto na faculdade achei isto uma linguagem bastante "engraçada" por sentirmos que estamos mesmo a mexer com o processador, eh a linguagem de mais baixo nivel possivel
 
Última edição:
|[Kaos]|;1791038 disse:
Na minha opiniao assembly deve ser aprendido so depois de teres bases de arquitectura de computadores, coisa que no secundario nao tens.

cada microprocessador tem as suas operacoes possiveis de realizar dependendo da sua arquitectura.

se tiveres alguma curiosidade e paciencia vai lendo estes acetatos ( na minha opiniao sao maus e pouco detalhados ) mas dá para teres uma ideia de como um microprocessador é constituido e qual o seu funcionamento:
http://comp.ist.utl.pt/ec-im/teo.htm

E este foi o manual de assembly do simulador que usei nos laboratorios:
http://comp.ist.utl.pt/ec-im/manual.pdf

se vires que isso te despertou o interesse, porque nao dar uma olhadinha num livro mais a sério.

de qualquer maneira essas linhas de codigo que meteste ai sao apenas operacoes entre registos do cpu, tal como qualquer instrucao de assembly.

por exemplo:

Código:
MOV R1, 10  ; Move valor 10 para o registo R1 do CPU
CMP R1, R2 ; Compara R1 com R2, se R1 < R2, acende flag NEGATIVE e por ai adiante

Quando dei isto na faculdade achei isto uma linguagem bastante "engraçada" por sentirmos que estamos mesmo a mexer com o processador, eh a linguagem de mais baixo nivel possivel

Fixe, obrigado plos tutoriais.

As linhas que coloquei pertencem a este jogo da MegaDrive da Sega:

Sonic_3_&_Knuckles_GEN_ScreenShot1.jpg
 
Eu estou a ler, e a estudar programacao («algebra e programaçao», C e C++) e aquilo nunca mais acaba ta cheio de problemas de matematica algo complicados para mim que ando no 9º ano passei para o 10º( HIUPI) e pelo que vejo e que e melhor aplicar-me se quero ir para a univ. O conselho que me deram foi «estuda que o que dizes ser dificil passa a ser facil», e aconselho e toda a gente a estudar ate disciplinas que poderam nao estar relacionadas directamente com programaçao mas que sao um exercicio de desenvolvimento para a mente!!
 
Back
Topo