5 coisas que aprendi com programação

Com o final da minha faculdade resolvi criar uma série de textos relativos a educação e TI. Trabalho com informática a 10 anos, e como fiz a faculdade tardiamente acho que consegui ver a graduação com outros olhos, e não só ela, áreas de TI que eram totalmente uma incognita para mim ganharam novos ares, novas abordagens, uma delas programação.
Não é que passei a gostar de programar, só respeito mais e percebi que me engrandeceu profissionalmente, consigo ver a aplicação da minha área de maneira mais ampla, dimensionando melhor e ajudando mais no processo no geral.

Assim listo os 5 pontos mais relevantes:

1 – Esse sistema precisa de tudo isso de infraestrutura?
Muitas vezes pela dificuldade de saber o que o cliente precisa o programador enche seu código de coisas que não usará. Quando um sistema é standalone o problema fica menos perceptivel, mas como tudo é feito pra rede isso acarreta em tráfego desnecessário. Sabendo um pouco de programação (e banco de dados) algumas bizarrices podem ser evitadas. Economia de banda, afinal provavelmente não será a única a utilizar a infra.

2 – Não deixar programadores colocarem problemas no seu colo:
Com as coisas teoricamente funcionando não é rara as vezes que problemas são associados a infra, não que não existam problemas de infra, mas a grande maioria dos problemas quando existe uma infra enxuta, no padrão, são dos sistemas. Sabendo o básico se tem mais argumentos e pode-se ajudar os programadores a acharem os problemas.

3 – Integração entre sistemas e equipamentos
Muitas vezes é necessário ter aplicações para gerenciar equipamentos, digo servidores radius, appliances, wireless switchs, etc. e sabendo programar pode-se saber pedir esse tipo de sistema e assim ter algo mais eficaz.

4 – Automatizar pequenas coisas
Rotinas de backup simples, coleta de informações em roteadores, as possibilidades são muitas. Aí linguagens script como perl e bash se mostram eficazes e nem precisam de um conhecimento aprofundado de programação.

5 – Projetar sistemas:
Não necessáriamente programar, mas desenhar a arquitetura, casos de uso, a infra, com uma visão mais abrangente.

Meu Plutônio

Numa dessas longas conversas escatológicas – e complexas – que tenho com meu caríssimo amigo Victor, defequei a expressão “ahh se não fosse essa pedrinha de plutônio que mantenho em minha cabeça grande“.
Saíu naturalmente quando eu discorria sobre certos intempéries da vida. E dessa fonte inesgotável de energia que mantém minhas atividades mentais a pleno vapor e força de vencer idem.
Não é de hoje que tenho comigo o pensamento da necessidade de autoconhecimento. De saber ressaltar seus valores e reconhecer suas deficiências. Noutro momento, refletindo sobre os caminhos que trilhamos na vida, cheguei à conclusão que a vida é uma senóide, feita de altos e baixos (máximos e mínimos) e que também vivemos de ciclos (isso não é meu – vide ciclo da vida :D) – mas na realidade não falo ciclos numa visão tão ampla e sim numa perspectiva de projetos de vida como o curso de uma graduação, um intenso projeto profissional em si, entre outras experiências. Neste contexto, idealizo que a cada final de ciclo, se faça uma análise criticando os fatores que o levaram ao sucesso e/ou os que o levaram ao fracasso. Elencar esses últimos para identificar deficiências e então desenvolver meios para seu aperfeiçoamento é imprescindível!. Com efeito, neste modelo em espira, pouco-a-pouco cria-se uma base de autoconhecimento imparcial, racional.
Diria que não estou num ponto tão favorável da senóide – ponto de inflexão, certamente, ao menos – por outro lado, vivo o fim de um ciclo bastante importante – último mês de faculdade. O alívio é imenso. E já fiz minhas críticas. A lista para aperfeiçoamentos é considerável e plenamente justificável. No entanto, indubitavelmente enriqueci bastante meu Plutônio neste ínterim, adquirindo uma boa base de conhecimentos técnicos, musicais, políticos, relacionamentos, contatos profissionais, rígidas relações de amizade e a confecção de um novo ousado e ambicioso projeto de vida.
É estranho, mas este post se trata de valores próprios, a importância do reconhecimento deles e o contínuo aperfeiçoamento das atividades que os envolvem.
-Onde estão os posts de cunho técnico, Tiago?
-Calma, eu chego lá… 🙂
-Cadê?!?!?!
-Calma, calma. Tenho meus rascunhos sobre minha experiência com banda larga móvel após minha migração da fixa MMDS, sobre o Spatial Data do SQLServer2008, Spark com MVC, my head in the Cloud (o pior de tudo é que eu tenho um rascunho de post nesta linha e me vem o editor da MSDN e escreve justamente sobre isso no mês passado). técnicas de fotografia ao volante do carro, batidas de derbake,…

Bom. Por ora, meu medo são os robots da CIA fazendo cruzamentos na net e achando um blog com as expressões “and boom”, “enriqueci plutônio” e assim por diante… Até explicar que focinho de porco não é tomada, eu já fui a Guantânamo 3 vezes… Se bem que o Obama… enfim 🙂

É isso ae pessoal, enriqueça seu plutônio para o bem 😉

Desabafo: Problemas no ensino da Informática.

Apesar de ser jovem no ramo, durante os últimos dois anos de trabalho, tenho percebido uma interessante tendência nos jovens programadores: A aversão à teoria, e mais fundamentalmente, à matemática.
Hoje estava discutindo um algoritmo com colegas de trabalho e um deles propôs uma solução da qual discordei: “Vai ficar lento!”
No qual ele replicou: “Nãaaoooo eu ACHO que fica rápido”.

A palavra “Achar” é complicado quando se trata de algoritmos num sistema de missão crítica, mesmo que a tarefa em questão não fosse tão importante. Eu propus calcularmos a complexidade do algoritmo em questão, a qual ele fez cara de nojo e aversão e disse “Ahhh. Nãaoo..é um Core 2 Duo, deve rodar”.

Pare tudo. Por que raios se fica 5 anos em uma faculdade de engenharia, moendo o cérebro em aulas de cálculo, para nunca utilizar nada do que aprendeu, e ficar dependendo de “achismos” no ambiente de trabalho  ?

O problema em minha opinião é o método utilizado paro o ensino, em todas as faculdades do brasil.  Me parece que a teoria de computação não é aliada à prática de desenvolvimento de sistemas. É dado muita ênfase em programinhas simples, e não em projetos com começo-meio-fim, aonde o aluno deve preocupar-se com questões arquiteturais que impactam no funcionamento do projeto. Ao invés disso, temos uma série de “exerciciozinhos”  que resolvem problemas específicos (“implemente o algoritmo X”).

Confesso. Não sou um gênio. Alias, ao longo dos anos, fui muito desmotivado a aprender matemática e   computação teórica em geral, por maus professores e faculdades desmotivantes, porém através de livros bem selecionados estou tendando remediar os furos na minha educação. (O post sobre livros fica para mais tarde).

E vocês, quais são suas experiencias com a educação de sistemas ? O que estão fazendo para tentar remediar a situação ?