;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Após estudar alemão, aluno de rede pública ganha intercâmbio e estágio

Cristiane Capuchinho

Do UOL, em São Paulo

19/09/2013 06h00

Aprender alemão mudou a vida de Leonardo Cardoso, 20. Estudante de escola pública, o interesse pelo idioma deu-lhe a chance de fazer um intercâmbio na Alemanha com tudo pago e de estagiar em uma multinacional. Em breve, terá também um diploma técnico internacional. 

Veja também

  • Rajesh Kumar Singh/AP Photo

    Aluna indiana de 13 anos começa mestrado em microbiologia

  • Leonardo Soares/UOL

    Universitário brasileiro 'padrão' é mulher e estuda na rede privada

  • Acervo pessoal

    Filha de agricultores, sergipana de 26 anos fará pós-doutorado na França

"Tive várias oportunidades por causa do alemão. Minha família não poderia pagar por elas", conta o estudante, prestes a concluir seu curso de logística em uma escola internacional de São Paulo. 

Morador de São Bernardo do Campo (região metropolitana de São Paulo), foi em uma escola da cidade que descobriu o programa de aulas de idiomas para a alunos da rede pública quando ainda estava na 8ª série. Dedicado, gastava entre trinta minutos e uma hora por dia no estudo do idioma.

O esforço foi recompensado: acertou todas as questões de um exame para certificar o conhecimento básico do idioma. O resultado chamou atenção do Instituto Goethe, que ofereceu uma bolsa de intercâmbio para a Alemanha. Foram três semanas vivendo em um internato em Turíngia, região central do país. “Tinha aulas com estudantes do mundo inteiro. Foi uma experiência incrível”, lembra.

Ao concluir o ensino médio e o técnico em logística na rede pública, Leonardo precisava de um emprego e queria dar continuidade ao estudo. "O curso que tinha feito na ETEC não tinha me dado conhecimento prático. Era difícil entrar em grandes empresas."

Soube, então, que poderia ter um diploma internacional gratuito e com garantia de emprego se asse em exames de alemão. Os pais asseguraram que ele pudesse se dedicar ao estudo para ar em uma prova que exigia uma redação em alemão. 

Com apoio da professora que dava aulas no curso estadual, exercícios pela internet e vídeos em alemão, Cardoso conseguiu uma vaga no curso de logística. O jovem consegue bancar todos os seus gastos com a bolsa que recebe de seu estágio em uma multinacional, inclusive o aluguel pago para morar em uma república próxima à escola, que fica em Interlagos. 

Curso

De modelo alemão, o curso técnico do IFPA (Instituto de Formação Profissional istrativa) divide o tempo do aluno entre aulas teóricas e a prática nas empresas. 

A empresa paga à escola pelo estudo de seus estagiários e os alunos recebem também uma bolsa-auxílio que gira em torno de R$ 700 mensais, explica Everton Augustin, diretor geral do Colégio Humboldt. No entanto, os alunos precisam ser aprovados em uma prova de línguas e na entrevista de emprego da empresa. 

A escola oferece curso técnico nas áreas de logística, secretariado, seguros, comércio exterior e istração.

A gratuidade do curso, a qualidade e o emprego atraem. Leonardo não é o único estudante de escola pública no curso bilíngue, há pelo menos sete alunos no técnico internacional. 

"O curso é muito prático e isso me ajuda a entender melhor a parte teórica. Trabalhando em uma multinacional, aprendo no cotidiano da empresa o que preciso", considera Yramaia Del Castilho, 21, aluna do curso técnico de istração.