Postagem em destaque

A incrível velocidade do Go

Imagem
Um dos motivos que gosto do Go (a linguagem de programação, não o jogo), é que ele é extremamente rápido. E não estou falando de utilizar goroutines pois aí é covardia. Estamos migrando um sistema de Coldfusion para Go e PHP e uma das rotinas insere um registro no banco de dados no início e outra no fim do processo. Pense como se fosse um log, mas um log específico para essa rotina. Dessa forma: 2023-05-18 17:45:03. 687     ... [processaImagem] Incorporando imagem 2023-05-18 17:45:03. 688     ... [processaImagem] Imagem incorporada Entre o inicio e o final do processamento levou 1ms. Até aí, tudo bem, se não fosse o fato dessa tabela ter o campo timestamp como parte da chave primária. Se reparar, o tempo é definido em milissegundos. Com o Coldfusion esse processo dura cerca de 20ms. Simplesmente migrando para Go, o tempo caiu muito, para menos de 1ms e assim, começou a dar erro de chave duplicada. A solução? Depende, sempre depende. No nosso contexto, a mais simples foi feita, pois nã

Como aprender a programar

Estava assistindo um vídeo do Fabio Akita, "A Dor de Aprender | Que Cursos/Livros" e em determinado momento, ele falou sobre os microcomputadores antigos, da década de 80, como o TK95. E logo depois ele pergunta: "Como pessoas como eu, quando criança, conseguimos aprender a programar num ambiente muito mais hostil do que hoje em dia?". Isso me fez lembrar do meu início como programador, em 1985, mesmo ano que comecei a surfar. Já explico o que o surfe tem a ver com isso.

Como ele mesmo diz, naquela época as máquinas eram extremamente limitadas. Perto de agora, a situação realmente não era fácil: não existia internet, poucos livros e cursos, e principalmente não existia o Github. No máximo, algumas revistas como Micro Hobby e Micro Sistemas. 


O meu primeiro computador foi um TK2000 e ele vinha com um manual que ensinava o básico do Basic (isso soou estranho). Meu pai também sabia um pouquinho: ele criou um programa que escolhia um número aleatório e você tentava adivinhar qual era o número, com base no retorno do programa, que informava se o número que você digitou era maior ou menor que o escolhido. 

E como eu consegui aprender? Basicamente não tive muita opção: tentativa e erro. Eu vejo aprender a programar como aprender a surfar. Sei disso porque aprendi as duas coisas na mesma idade e minha base, nas duas situações era a mesma: eu gostava mas não sabia nada antes de começar. Para aprender a surfar, não tem jeito, você vai cair. Faz parte do processo. Em programação é a mesma coisa. O fato de você ficar de pé na prancha, não quer dizer que você surfa. Em seguida novos desafios surgem e você começa a aprender algumas manobras, a dropar ondas maiores.

Com o tempo você passa a dominar a linguagem e começa a aprender outras. No meu caso, depois do Basic, passei para o Assembler 6502. Com isso consegui fazer alguns projetos bem interessantes, como o contador de voltas para meu autorama. Eu desmontei um joystick, e deixei o fio no meio da pista. Assim toda vez que o carrinho passava pelo local, contabiliza as voltas e dava a velocidade média. Isso fez muito sucesso entre meus amigos.

Programa Assembler para produzir som no TK 2000

Cansei de ver a pessoa que recém fez um curso de programação falar algo do gênero: "Agora vou pegar um projeto do zero que é mais fácil". Como você espera criar um projeto do zero se nem conhece a linguagem direito? Hoje em dia temos o Github com milhares de exemplos de bons códigos. Baixe, entenda, modifique, enfim: tente, quando errar, aprenda e tente de novo. Não tem jeito, não é fácil. No pain, no gain.

Mas depois que você aprende uma linguagem é muito mais fácil aprender outra: já programei ou programo em 17 linguagens. Diria que é ordens de grandeza mais fácil depois que você já programa. Mas atenção: eu disse aprender e não se tornar um especialista.

No meu caso, há uns 2 anos comecei a aprender Go porque um colega de trabalho comentou alguma coisa sobre concorrência em Go. Me interessei e resolvi me aprofundar no assunto por conta própria. Alguns meses depois, participei de uma reunião e soube que a empresa tinha interesse em migrar alguns sistemas (ou parte deles) para Go. Como eu já conhecia a linguagem, fui chamado para o projeto.

Se eu puder dar uma dica: programar é ser autodidata. Além disso, é preciso estar sempre se atualizando, comprando livros e estudando.

Saiba mais:

https://www.akitaonrails.com/2019/10/23/akitando-65-a-dor-de-aprender-que-cursos-livros

https://www.paradoxofinal.com.br/2017/06/faca-o-simples.html

https://www.paradoxofinal.com.br/2012/08/computador-na-sala-de-aula.html

https://www.paradoxofinal.com.br/2011/04/para-quem-nunca-viu-um.html

Comentários

Postagens mais visitadas deste blog

Netflix não mostra ícone de streaming

Google Hacking

FTP não funciona no PHP