Ja recomendei aqui o Periodic Table of Videos, um canal do YouTube sobre quimica. O projeto comecou a se expandir, abrangendo novas areas, como a fisica, como canal Syxty Symbols, e a matematica, com o Numberphile. Este ultimo acabou gerando mais um canal interessantissimo, o Computherfile, voltado para a computacao.Com mais de 150 videos, abrangendo areas como computacao grafica, matematica, programacao e seguranca, e uma excelente fonte de conhecimento tanto para pessoas da area, como para aquelas apenas interessadas no assunto. Para quem viu o filme O Jogo da Imitacao, que mostra um pouco sobre a vida de Alan Turing, o canal tem uma serie de videos para voce poder entender um pouco mais do assunto, tanto da Enigma como da maquina de Turing.Turing & The Halting ProblemTuring Machines ExplainedBusy Beaver Turing MachinesTuring Machine PrimerTuring Meets Paradoxes (History of Undecidability Part 3)Turing's Enigma Problem (Part 1)Tackling Enigma (Turing's Enigma Problem Part 2)Enigma, TypeX and DadThe Turing TestInfelizmente, nao ha legendas em portugues. Mas, voce pode ver os videos e aproveitar para praticar seu ingles, essencial para a area de computacao. Este semestre terminei o TCC do tecnologo em Sistemas para Internet, que estou cursando no IBGEN. O assunto do TCC e desenvolvimento de software, em especifico boas praticas para o desenvolvimento de software.O trabalho consiste numa selecao de boas praticas de software mencionadas na literatura da area de engenharia de software, seguido de uma pesquisa com desenvolvedores iniciantes e avancados para entender seu grau de concordancia com as boas praticas abordadas no trabalho e com o uso de boas praticas no geral. Tambem se analisou se o uso de boas praticas torna o codigo mais legivel para desenvolvedores iniciantes. A influencia de fatores da empresa no desenvolvedor e na sua motivacao estava nos objetivos do trabalho, mas devido a um perfil pouco diversificado dos participantes, nao pode ser concluida, ficando em aberto para pesquisas futuras.Praticas abordadas no trabalhoAo todo foram abordadas seis praticas:Nomenclatura significativaAo inves de comentar, tente melhorar a qualidade do codigo primeiroFuncoes/metodos devem ter poucos argumentosEm linguagens orientadas a objetos, evite retornar uma referencia nula de um metodo e evitar passar uma referencia nula para um metodoVerifique a validade dos parametros recebidos em funcoes e metodosMinimize o escopo das variaveis locaisReferencias utilizadasDentre toda a literatura utilizada, vale destacar alguns dos livros que foram consultados para realizar este trabalho. Todos sao de autores consagrados na area de engenharia de software, sendo uma leitura muito recomendada para qualquer desenvolvedor de software.Implementation Patterns - Kent BeckEffective Java -Joshua Bloch>Refactoring: Improving the Design of Existing Code - Martin FowlerThe Elements of Programming Style - Brian Kernighan e P. J. PlaugerThe Pragmatic Programmer: From Journeyman to Master - Andy Hunt e Dave ThomasClean Code: A Handbook of Agile Software Craftsmanship - Robert Cecil MartinCode Complete - Steve McConnellArtigo na integraAbaixo voce encontra o artigo na integra. Implementacao de arvore binaria em JavaProcurando por implementacoes de arvore binaria na internet, me deparei com muitas implementacoes em Java que feriam varios principios da orientacao a objetos. Isso me motivou ao desafio de implementar essa estrutura de dados