Eu encontrei um site dizendo que cálculo e álgebra linear são necessários para a programação do sistema.
A programação do sistema, tanto quanto eu sei, é sobre osdev, drivers, utilitários e assim por diante. Eu simplesmente não consigo descobrir como o cálculo e a álgebra linear podem ser úteis nisso. Sei que o cálculo tem várias aplicações na ciência, mas neste campo específico da programação não consigo imaginar como o cálculo pode ser tão importante.
As informações estavam neste site: http://www.wikihow.com/Become-a-Programmer
Edit: Algumas respostas aqui estão explicando sobre a complexidade e a otimização do algoritmo. Quando fiz essa pergunta, estava tentando ser mais específico sobre a área de Programação de Sistemas. A complexidade e a otimização do algoritmo podem ser aplicadas a qualquer área da programação, não apenas à Programação do Sistema. Talvez seja por isso que eu não tenha conseguido pensar nisso no momento da pergunta.
fonte
Respostas:
Eu imagino que isso não é muito importante se você estiver escrevendo utilitários que não são da GUI em cima de um sistema operacional moderno sem trabalhar em seus componentes internos. Provavelmente é uma história diferente se você estiver trabalhando para alterar um sistema operacional moderno ou desenvolver um novo.
Se você estiver trabalhando com hardware de vídeo ou um sistema de janelas com metal nu, precisará de conhecimentos de álgebra linear para atualizar eficientemente os gráficos. Eu não me procurei, mas aposto que você pode encontrar exemplos no código fonte do X, KDE e Gnome.
Se você estiver trabalhando com hardware relacionado ao processamento de sinal digital, o cálculo será muito importante. Eu imagino que existem alguns dispositivos que realizam seu trabalho pesado com a CPU do sistema, em vez de um microprocessador local, e estes geralmente fazem interface com sistemas elétricos analógicos.
Além disso, o cálculo desempenha um papel importante na análise de desempenho, além de apenas álgebra linear ao tentar ajustar a curva aos dados.
fonte
O comentário de SomeKittens está certo: você precisa de cálculo e álgebra linear porque esses cursos mudam a maneira como você pensa e a maneira como entende o mundo. Álgebra linear é tudo sobre o mapeamento de um domínio para outro; o cálculo cobre o modo como as funções se comportam. Eles mesmos são ferramentas poderosas, mas as técnicas que você aprende ao estudar esses campos também se tornam parte de sua imagem mental do mundo.
Você também precisa desses cursos, porque as pessoas esperam que você seja capaz de pensar nesses termos. Não costumo ver meus colegas tirando a derivada de um polinômio em seus quadros brancos, mas frequentemente vejo esboços de funções com a tangente desenhada em algum ponto interessante, ou a área sob a curva sombreada. Não nos importamos o suficiente com os valores reais para incomodá-los em calculá-los, mas entender como os valores mudam é essencial e faz parte das conversas diárias.
Qualquer graduação em ciência da computação exigirá cálculo, álgebra linear, estatística, lógica e outros cursos de matemática, não porque os programadores precisem aplicar as técnicas diretamente regularmente (embora possam, dependendo do que fazem), mas porque você precisa disso. conhecimento para entender o material que vem depois.
fonte
Vou seguir em frente e dizer que não acho que cálculo ou álgebra linear sejam importantes para a programação de sistemas.
Eu certamente acho que cálculo e álgebra linear valem a pena aprender em geral - eu sou um cara de matemática! E, como outras respostas apontam, há alguma relevância indireta, pois a análise de desempenho e o design de algoritmos podem usar matemática avançada. No entanto, não acho que a programação de sistemas seja mais dependente desses tipos de matemática do que a maioria dos outros campos que geralmente não são considerados matemáticos.
fonte
Eu suspeito que é verdade nas bordas. Os programadores de sistemas precisam estar muito mais preocupados com desempenho e confiabilidade, de modo que a análise de algoritmos pode ser importante, e às vezes é necessário cálculo para provas da análise Big-Oh. Assuntos como teoria das filas e otimização discreta (otimização matemática, não otimização de código) também podem desempenhar um papel. No entanto, acho que isso se aplicaria principalmente às pessoas que trabalham no limite dos sistemas operacionais e protocolos de rede, e não tanto à pessoa que trabalha no driver USB 3.0.
fonte
Sua definição de programação de sistemas está muito bem alinhada com a resposta na Wikipedia.
Se você pensa sobre o que está fornecendo - ie. como uma interface de software para hardware, começa a fazer sentido por que cálculo e álgebra linear são habilidades úteis.
Abstrair essa interface de baixo nível requer que você entenda como o dispositivo opera. Os dispositivos eletrônicos ainda estão sujeitos às leis da física. O cálculo e a álgebra linear fornecem um meio para modelar o comportamento do dispositivo. A modelagem do dispositivo permite fornecer um serviço em sua funcionalidade.
Dito isto, esses dois campos não são o ponto final para a Programação de Sistemas. Conheço alguns EE que não se saíram tão bem com cálculo e álgebra linear, mas ainda podem explicar o que o dispositivo está fazendo de maneira bastante sucinta.
fonte
Aplicações gerais da Web e / ou programação administrativa não envolvem muita aplicação de álgebra linear ou cálculo, mas muitos campos especializados o fazem. Se você lida com geometria, certamente encontrará álgebra linear. A maioria dos programas de física também lida com álgebra e cálculo. Assim como qualquer outra coisa relacionada à manipulação de formas de onda, como programação de som e rádio. Em geral, é mais importante entender matemática discreta que, entre outras coisas, lida com teoria dos conjuntos, teoria dos grafos e lógica formal (booleana), que é útil em muitas aplicações como gerenciamento de informações, bancos de dados e outros locais onde dados e / ou lógica combinam . No caso da programação de sistemas, não vejo muitas aplicações.
fonte
Como outros já mencionaram, qualquer curso de matemática na universidade pode aprimorar suas habilidades de resolução de problemas e raciocínio dedutivo. Estes são importantes para quase qualquer um.
Às vezes, porém, conhecer alguma álgebra linear pode ser útil, principalmente para algumas boas idéias de negócios .
fonte
Com o cálculo, é muito fácil, assim que se olha mais de perto o conteúdo do curso . Está intimamente relacionado à complexidade do algoritmo, à notação Big-O - coisas assim, bastante fundamentais na programação.
Equações são o que você obtém ao estimar a complexidade do algoritmo. Os loops aninhados em três níveis de
0
aN
são N 3 , os loops aninhados em dois níveis são N 2 , um é N. A avaliação que você pode obter pode ser (N 3 + 2 * N 2 + N) - essa é uma equação.Agora, se você quiser entender melhor a rapidez com que o tempo de execução aumentará quando N aumentar, isso está intimamente relacionado a derivadas / diferenciação. Outras partes do cálculo que você pode achar úteis são os limites e a análise assintótica - isso o levará a entender a notação Big-O, a uma melhor pontuação nas entrevistas de programação e, possivelmente, a uma melhor programação de sistemas.
Quanto à Álgebra Linear , aqui os aplicativos de programação atiram em você desde a primeira imagem.
Se você precisar lidar com gráficos raster (por exemplo, em drivers de vídeo), as imagens acima aparecerão nos seus piores pesadelos.
fonte