ok, boas práticas são necessárias haha mas é só pra ser um título chamativo :p no código da solução do instrutor, ele colocou dentro de cada função (tanto da desenhaQuadrado quanto da desenhaTexto) a declaração das variáveis tela e pincel
var tela = document.querySelector('canvas');
var pincel = tela.getContext('2d');
antes de ver a solução eu tinha declarado estas variáveis antes das funções (fora delas) e então criado as funções.. minha dúvida é se devo sempre declarar dentro da função e nunca deixar nada no script antes das funções ou se é uma questão de preferência. num primeiro momento me parece retrabalho, porque são duas linhas de código que estarão repetidas em dois momentos distintos, mas eu bem sei que nada sei hahaha logo, posso estar errado e pode ser que o instrutor faça assim para evitar problemas futuros com os quais ainda não me deparei.