Programação: uma habilidade essencial para o engenheiro

Os profissionais da tecnologia e principalmente da engenharia tem uma boa parte do tempo de trabalho tomado pela execução de cálculos e até gráficos. Apesar disso, muitos engenheiros deixam a faculdade com uma completa aversão à tudo que envolva programação e análise computacional. Mas como um profissional altamente habilitado, principalmente em matemática, vê pouca ou nenhuma utilidade para uma ferramenta criada por matemáticos e engenheiros capaz de resolver não apenas problemas de engenharia, como estatística e simulação? Como estudantes e profissionais que lidam tanto com lógica se tornam verdadeiros “programófobos”?

O início do problema

Durante a graduação, na maioria das universidades, os estudantes de engenharia tem contato com disciplinas de computação que ensinam como programar de maneiras que estão muito longe da realidade do engenheiro: algumas ensinam a programar em C, C++ e até mesmo Fortran (!). C e C++ são muito úteis em certos tipos de aplicação (principalmente para engenheiros de automação e computação), mas não são muito fáceis de se lidar e Fortran já teve muito importância no meio acadêmico (por falta de opções e forte influência da IBM), mas só para vocês terem uma ideia do que é Fortran, um dos maiores cientistas da computação do século XX, Edsger Dijkstra, disse que Fortran era uma “desordem infantil”.

Cartões perfurados eram utilizados para executar programas nos computadores antigos.
Cartões perfurados eram utilizados para executar programas nos computadores antigos.

Mas porque o engenheiro civil (ou mecânico, ou de produção, etc), por exemplo, aprende essas linguagens que não tem muita conexão com sua realidade profissional? Geralmente os professores destas disciplinas se formaram há muito tempo, e eles ensinam o que também aprenderam na faculdade. Recentemente comprei um livro de hidráulica publicado há 3 anos onde o autor exemplificava a resolução dos exercícios com programas escritos em Fortran. É como diz o velho ditado “em time que está ganhando não se mexe”, mas as universidades deveriam atualizar a grade curricular. Python é uma linguagem muito fácil de se aprender e muito poderosa, mas as disciplinas de computação não a ensinam para os futuros engenheiros. Já os alunos mais avançados em matemática e cálculo que já conhecem o conceito de cálculo lambda veriam como a linguagem de programação Haskell facilitaria sua vida (apesar de ser considerada uma linguagem difícil de aprender, como toda linguagem de programação da família LISP). O pior é que sequer aprendemos a usar as funções mais avançadas do Excel, um software que utilizamos praticamente todos os dias!

Mas aprender programação é mesmo importante?

Pela minha própria experiência no trabalho, eu afirmo categoricamente: sim. Frequentemente, na empresa, lanço mão dos meu conhecimentos em programação para desenvolver soluções que facilitem o meu trabalho e dos meus colegas, principalmente no Excel. Por isso que criei o \LaTeX para Word enquanto estava documentando procedimentos de cálculo no Word. Usar o editor de equações disponível no Word é muito trabalhoso e não podia dispor do Writer, do LibreOffice, que possui um plugin para integração nativa com \LaTeX. Pesquisando na Internet, descobri como o Word entende a escrita de equações e pude criar \LaTeX para Word. E não pense que perdi dias de trabalho desenvolvendo o \LaTeX para Word – desde a análise inicial do problema até sua solução, gastei pouco mais de 15 minutos.

Imagem: XKCD
Imagem: XKCD

Perceba que, se eu não me interessasse e entendesse a importância da programação para a vida profissional do engenheiro, eu teria levado muito mais tempo para terminar essa documentação.

Quero aprender mais sobre programação, por onde começar?

Se você sabe falar inglês, uma ótima introdução à ciência da computação, com exemplos em Python é o curso Computer Science for all do departamento de Ciência da Comptação da Harvey Mudd College. O curso dá uma ótima introdução ao assunto. Também existe o Programaê, uma iniciativa conjunta da Fundação Lehmann e da Fundação Telefônica para ensinar os conceitos básicos de programação para iniciantes. Se você quiser aprender Python diretamente, o site oficial fornece a documentação completa. Também recomendo este guia. Já para Haskell, o livro online Learn You a Haskell e o site Try Haskell fornecem uma ótima introdução (também não deixe de acessar o site oficial https://www.haskell.org/). E se você quer aprender mais sobre Excel e VBA, o site oficial da Microsoft oferece a documentação completa para cada função disponível.

Deixe sua opinião nos comentários.

Deixe uma resposta

2 comentários em “Programação: uma habilidade essencial para o engenheiro

  1. Eu acabei de me formar em Engenharia de Produção Mecânica. Estou com 24 anos e programo desde os 14, já tendo passado por 2 fábricas de software e estagiei numa multinacional na área do meu curso.

    O que aprendi nisso tudo foi: 90% dos casos, você vai usar no máximo um VBA no Excel ou Access pra realizar suas tarefas. E o fato de você ter conhecimento avançado em programação e softwares te prejudica extremamente no trabalho. De um engenheiro que deveria resolver problemas de processos, industriais, análise de qualidade… você acaba se tornando o nerd que vai criar KPIs e fazer simulação. (E muitas vezes tem que socorrer os dinossauros, ops, digo… os experientes supervisores)
    Fora a área de TI da fábrica que não te dá liberdade pra desenvolver quase nada. Mesmo usando um software free como é o caso do Visual Studio para .NET (VB e C#)… não davam permissão para desenvolver nada. O principal recurso numa área de gestão de processo que é criação de banco de dados compartilhados e realizar consultas com relação entre tabelas… a empresa geralmente não deixa, com medo de alguém “invadir” o servidor. Mesmo que o SQL Server tenha nível de usuário ReadOnly…

    Recomendo que, você engenheiro, aprenda programação. Vai te desenvolver intelectualmente, ajuda a ter um senso pra simulação de processos mais apurado e você pode usar pra criar macros e facilitar sua vida… Mas é algo que o mercado exige para estagiário… e mesmo assim, é aquele nível “tabela dinâmica”… e olhe lá…

    Eu achava que programação era importante pra engenharia também… Hoje já não tenho certeza.
    Inclusive, devo colocar meu diploma na gaveta e voltar para a área de desenvolvimento de software… Porque depois do estágio, não estou conseguindo achar mais nada na área…

    Seja como for, o texto está bem escrito… e acredito que em partes, você tem razão sobre a facilidade que a programação pode trazer para rotinas diárias… Mas pelo que vejo nas minhas tentativas frustradas de conseguir pelo menos um estágio, programar em C++,C, VB.NET, C#, JAVA, PHP, ASP.NET … não está ajudando absolutamente nada. Inclusive, estou tendo que excluir do currículo pra não parecer que estou tentando uma vaga de programador ao invés de Analista (Porque engenheiro eu já desisti…)

  2. No meu curso de engenharia tive Java. Quebrei muito a cabeça e não fui muito longe. Depois, recentemente, comecei um curso de Python no Coursera e na primeira semana já estava escrevendo códigos para automatizar tarefas no meu trabalho. Recomento a linguagem. Simples e muito poderosa.