Usando números aleatórios com Corona SDK

rantble

A biblioteca math.* do Corona permite que você facilmente gere números aleatórios para uso em seus apps. De embaralhar as cartas de um baralho até determinar o quanto dano seu herói elfo levou do sopro de fogo do dragão, números aleatórios podem ser uma parte crítica do desenvolvimento do seu jogo.

Dito isso, números aleatórios gerados pela maioria dos sistemas computacionais não são verdadeiramente aleatórios. Ao invés disso, eles são pseudo-aleatórios – quer dizer, eles são gerados por um algoritmo matemático que dá resultados razoavelmente aleatórios, mas com o passar do tempo, os números começarão a se repetir. Números verdadeiramente aleatórios, como aqueles do random.org, são gerados a partir da leitura de sinais de rádio do ruído atmosférico o que sempre terá um resultado diferente, e o site oferece uma API RESTful para retorná-los se seu projeto realmente precisar disso.

Em geral, números aleatórios gerados pelo Corona são “aleatórios o bastante” para a maioria dos casos. Existem duas funções envolvidas na geração dos mesmos:
math.randomseed()
math.random()

math.randomseed()

Em praticamente qualquer projeto que use números aleatórios, você deve incluir esta linha no topo do main.lua:

Isto irá garantir que seus números serão tão aleatórios quanto possível. Como? Bem, a função que na verdade gera os números aleatórios discutida abaixo, precisa de um valor inicial ou “seed” a partir do qual vai iniciar a cadeia de números aleatórios que será gerada. Usando valor de os.time(), o que nos dará o número de segundos desde 01/01/1970, o que lhe dará um seed diferente a cada vez que o ap for iniciado e portanto uma sequência diferente de números aleatórios.

Note que você somente precisa alimentar o gerador uma vez. Alguns desenvolvedores chamam math.randomseed() toda vez que vão chamar math.random() mas isto simplesmente não é necessário. Então você deve estar se perguntando “Porque o sistema já não inicializa a seed automaticamente?”. Bem, existem ocasiões onde você pode querer inicializar com um valor constante definido por você ao invés de os.time(). Se você o fizer, receberá sempre a mesma sequência de números aleatórios, o que pode ser útil dependendo do seu caso. Uma vez trabalhei em um jogo espacial onde eu precisava aleatoriamente gerar cada planeta, mas eu não podia manter as informações de todos planetas em memória todo o tempo. Passando um número específico para cada mundo ao math.randomseed(), eu obtinha a mesma sequência exata de números aleatórios que me permitia colocar as mesmas cidades nos mesmos lugares com as mesmas populações a cada execução.

math.random()

A função math.random() é o que você irá chamar para gerar um número aleatório. Dependendo dos parâmetros que você passar, o resultado irá variar.

Gerando um valor entre 0 e 1

Ao chamar math.random() sem nenhum parâmetro irá lhe retornar um valor com ponto flutuante entre 0 e 1, por exemplo 0.22, 0.98, ou 0.56. Em Corona, isto pode ser útil para gerar valores de cores aleatórias, uma vez que os parâmetros RGB esperam valores entre 0 e 1. Por exemplo:

Gerando um valor entre 1 e um número máximo

Se você quer computar um intervalo de números inteiros, por exemplo o resultado de rolar dados de 6 lados, você pode fazer:

O resultado de math.floor( math.random()*6 ) gera um número entre 0 e 5, e adicionando 1 ao final obtém o seu intervalo desejado de 1-6.

Alternativamente, a função math.random() fornece muitos métodos utilitários que podem evitar que você tenha de computar seus números. Este código irá fazer exatamente a mesma coisa do anterior:

Gerando um valor entre um número inicial e um número final

Esta variante irá gerar um intervalo de números, neste exemplo entre -2 e 2 (incluindo o mesmo). Um grande exemplo desta variante é embaralhar uma table de dados fixos, como um baralho de cartas, onde você precisa usar todos os valores em uma ordem aleatória. Para mais exemplos, leia este tutorial de embaralhar tables (em Inglês).

Conclusão

Como pôde ver, gerar números aleatórios em Corona é simples. Com este conhecimento, você está armado com a habilidade de dar ao seu app alguns elementos realmente aleatórios.

Traduzido do original Tutorial: Understanding random numbers in Corona

* OBS: curtiu o post? Então dá uma olhada no meu livro de Corona SDK clicando no banner abaixo pra aprender a criar outros tantos apps incríveis!

Livro Corona SDK
Livro Corona SDK

Sonho Grande – Resenha

Sonho Grande é um livro de Cristiane Corrêa que li tem algum tempo mas que só agora decidi escrever uma resenha. Apesar do nome que lembra livro de auto-ajuda do Augusto Cury, ele fala sobre a história de um trio bastante conhecido no cenário empreendedor brasileiro: Jorge Paulo Lehmann, Marcel Telles e Beto Sicupira. O quê? Você não sabe quem são eles? Então dá uma lida urgente na resenha abaixo e depois vai atrás do livro na Amazon.

Sonho Grande não é apenas a história de 3 empreendedores de sucesso, ou a história de um empreendedor que colocou o Brasil no cenário corporativo mundial. Ou a história de como jovens banqueiros investiram pesado para comprar grandes multinacionais e torná-las máquinas de geração de dinheiro. Não apenas sobre isso. É sobre isso e muito mais. É sobre sonhar grande.

Desde jovem, Jorge Paulo Lehmann queria ser grande. Inicialmente grande tenista, mas vendo que não conseguiria se tornar referência mundial, mesmo ganhando diversos títulos cariocas, decidiu que investiria em sua carreira empresarial, se tornando dono do Banco Garantia, um banco de investimentos jovem e bastante audacioso que gerou muitos milionários entre sua equipe inicial. Mais tarde, o livro narra a criação da GP Investimentos, famoso fundo de investimento em startups da era ‘.com’ viva no final do século passado e início desse século, tendo conseguido fazer grandes quantias de dinheiro mesmo durante o estouro da bolha da Internet (época narrada em outro excelente livro que fiz resenha no passado).

Mas Lehmann e seus fiéis escudeiros sempre quiseram mais. O livro fala inclusive de como se conheceram e como dividiam a administração dos negócios. Como quando compraram as Lojas Americanas e tornaram a potência que é hoje no varejo, inclusive criando as famosas gôndolas suspensas de ovos de Páscoa que hoje são padrão nacional. Também fala, e muito, da famosa criação da Ambev, mais tarde Inbev e por último AB Inbev com a fusão da cervejaria americana da Budweiser (o livro é mais antigo, então não trata da mais recente aquisição da SAB Muller). Lehmann sempre objetivou criar a maior cervejaria do mundo, desde que comprou a primeira, praticamente falida, sem processos e muito inchada de pessoal.

Aliás, esse é o perfil de empresa que a autora do livro mostra como o ideal para as aquisições de Lehmann e cia. Empresas que tem uma estrutura de custos muito alta devido à má governança, na qual eles podem rapidamente “cortar na carne”, trocando fornecedores, cortando regalias e diminuindo pessoal, para só então passar a trabalhar no aumento de faturamento. A frugalidade é a marca registrada do trio que detesta esbanjar dinheiro em suas empresas, porém adora recompensar muito bem os melhores funcionários que adquirem opções de ações para mantê-los na empresa e com foco em desempenho.

Não vou falar mais para não estragar, mas o livro fala da aquisição do Burger King, fala da Fundação Lehmann (que envia jovens para estudar no exterior com tudo pago, com a promessa de voltarem e fazerem algo de bom pelo país) e termina antes da aquisição da Heinz. Também termina explicando os planos de Lehmann para o futuro, junto a seu amigo e também investidor Warren Buffet, maior acionista individual da Coca-Cola.

Vale a leitura!

Como aprender a programar

Recentemente eu escrevi um post sobre como se tornar um programador e outro como se tornar um ainda melhor. Na verdade o post não fala exatamente como se tornar um, mas conta a minha experiência pessoal de como me tornei um ao longo de 1 ano e meio trabalhando na área de suporte até conseguir a primeira oportunidade. Obviamente eu não teria conseguido, caso não soubesse programar.

Mas como aprender a programar antes de se tornar um programador, para então se tornar um programador e aprender a programar de verdade?

Pode soar confuso, como o enigma do ‘ovo e da galinha’, mas vou tentar desmitificar aqui e bater um papo com você, novamente levando em consideração a minha experiência pessoal.

Comece com o Básico

As pessoas tendem a subestimar o básico em todos os sentidos.

Elas querem perder peso, mas não querem cortar a sobremesa depois do almoço.

Querem comprar algo novo, mas não querem economizar para isso.

Note que nestes dois exemplos, e poderia citar muito mais, é óbvio o que é necessário para alcançar os objetivos, mas poucos conseguem porque tem de fazer concessões, abrir mão de coisas que não são tão fáceis assim.

Aprender programação não é diferente.

Então qual seria ‘o básico’ para aprender a programar?

Estudar.

E não estou falando de se matricular em algum curso, seja técnico, superior ou mesmo profissionalizante (os famosos cursinhos de informática, será que ainda existem?). Estou falando de ESTUDAR DE VERDADE. Talvez algo que você jamais tenha feito, vai saber…

Vou ilustrar uma maneira de como fazer isso por conta própria e você vê se é um modelo que você conseguiria repetir, ok? Futuramente pretendo falar de outras possibilidades, se não tiver muita inclinação ao autodidatismo. Gostaria que comentasse o que funciona ou funcionou para você nos comentários, assim quem sabe não me ajuda a ajudar outras pessoas?

Mas voltando ao básico, estudar é algo óbvio, certo?! Mas por que não funciona para todos?

Porque independente de como você escolher fazer isso, terá de abrir mão de seu tempo. Existe um lema na musculação chamado ‘No pain, no gain’ ou ‘Sem dor, sem ganhos’, é mais ou menos o que temos aqui. O básico para você aprender a programar será dedicar parte do seu tempo livre para estudar programação. Ponto. E ignore o fato de já estar estudando programação em algum curso que esteja fazendo, simplesmente NÃO É O BASTANTE.

Façamos as contas: dou aula de programação para 20 alunos todas as terças e quintas na faculdade em que trabalho. São 3h de programação às segundas, mais 3h de teoria às quartas (um mal necessário, diga-se de passagem). Isso dá um total de 24-27h de estudo de programação por mês. Isso considerando que neste período você estivesse 100% focado, não tivesse de esperar pelos colegas mais lerdos, e por aí vai.

Alguém que já esteja no mercado de trabalho bate essa mesma marca trabalhando 3-4 dias do mês, e com muito mais qualidade, uma vez que no serviço tendemos a estar mais focados que a maioria dos alunos de faculdade. Ou seja, apenas o tempo que programamos na faculdade não é o bastante, você sempre vai estar muito atrás da galera que “saiu na frente”, mas com pequenos ajustes em nossa rotina, podemos mudar isso.

Novos cálculos: se um aluno meu pegar um turno (3h) do sábado ou do domingo para estudar programação, uma vez por mês, já estará 10% mais avançado que a turma, apenas “sacrificando” (eu prefiro dizer INVESTINDO) um turno de um final de semana do mês. Se ele fizer isso todo final de semana, são no mínimo 12h a mais de programação no final do mês, ou 50% a mais que a média dos alunos que só programam durante as aulas.

Quem você acha que está mais perto de se tornar um jogador de futebol: aquele que só bate bola no domingo ou aquele que além de ir para a escolinha ainda bate bola todo domingo?

Como arranjar tempo?

Então o primeiro passo é arranjar mais tempo, certo?

Errado.

O primeiro passo é REALOCAR TEMPO.

Sim, porque o dia sempre vai ter as mesmas 24h, e a menos que você hoje não faça nada da sua vida, provavelmente já terá suas horas acordado alocadas. O grande segredo aqui é cortar os desperdícios, o supérfluo e aproveitar o seu dia, semana e mês mais eficientemente. E isso eu sempre soube fazer muito bem, modéstia à parte.

O autor e empreendedor Tim Ferriss tem um método conhecido como DEAL, cuja letra ‘E’ do acrônimo é traduzida como Eliminação, ou seja, cortar fora da sua agenda tudo o que toma o seu tempo mas que agrega pouco, ou pior, não agrega nada. Esse método é usado por ele para ensinar atletas esportivos a serem mais eficientes em seus treinos e dietas, e empreendedores a trabalhar menos e ganhar mais com seus negócios.

Tentador, não? Ele detalha isso em seu livro famoso “Trabalhe 4h por Semana“, mas não vou falar dele neste post, pois já falei em outro.

O grande segredo de eliminar coisas que tomam seu tempo não é para ficar vagabundeando sem fazer nada, é para ter mais tempo disponível para fazer o que realmente importa pra gente, ou que ao menos PRECISAMOS fazer, como é o caso neste momento: aprender programação.

Na era do Netflix, vejo a maioria dos meus alunos gastarem todas as horas de um final de semana assistindo toda uma temporada de sua série favorita. Ou séries, no plural.

Não estou dizendo que você não deva mais assistir suas séries, mas que tal deixar para assistir a temporada completa ao longo dos meses que antecedem o lançamento da nova?

Digo, um episódio por semana, que nem as pessoas normais faziam antes do advento do Netflix. Pode parecer estranho hoje, mas há uns 10 anos víamos um episódio de nosso seriado favorito por semana apenas, e teve gente que ficou 6 anos assistindo Lost assim ou 10 assistindo Smallville (como eu…).

Outra ideia é o tempo jogando videogame.

Eu mesmo, se não me “cuido” jogo 3-4 temporadas de Master League no Xbox durante o final de semana, consumindo horas preciosas que eu poderia estar fazendo coisas mais interessantes, seja estudar uma tecnologia nova, escrever pro meu blog ou passear com minha família. Não precisa abandonar o videogame, mas defina um horário para terminar sua jogatina e dar atenção aos estudos de programação. Que tal unir o útil ao agradável e aprender a programar jogos? Eu posso te ajudar com isso nesse livro aqui!

Outro ponto: ônibus.

Se você consegue ler enquanto o ônibus chacoalha (eu leio de boas há uns 20 anos sem problemas de visão até o momento), esta é uma boa hora para colocar a parte teórica do aprendizado de programação em dia, deixando para praticar assim que chegar em casa ou no curso. Também já ouvi falar de excelentes aplicativos que você pode usar no celular para aprender o básico de programação (bem básico mesmo). Quem sabe eu não faço uma lista deles em um post futuro?

A questão é: você vai ter de sacrificar algumas coisas.

O que eu fiz?

Descobri, só pra citar um exemplo, que ir para a casa da minha namorada na sexta à noite e só sair de lá na segunda de manhã fazia eu perder muito tempo, na verdade todo o tempo que eu tinha disponível, uma vez que eu trabalhava e estudava no resto da semana. E isso era um grande problema.

Sério. Ninguém fica tanto tempo assim fazendo coisas realmente legais com a namorada, você sempre acaba vendo novela junto com ela em algum momento, esperando ela tomar banho e/ou se arrumar pra sair, aguentaconversa com parentes dela e por aí vai.

Reduza este tempo como eu fiz: passei a ir pra casa dela no sábado de tarde, isso me deu a noite de sexta e a manhã de sábado para estudar mais programação. E mesmo quando estava na casa dela eu levava o notebook junto para programar nos momentos em que eu e ela não estaríamos fazendo nada de interessante.

E a quem possa interessar, estamos há 11 anos juntos, somos casados e temos um lindo filho de 2 anos. Ou seja, não foi o fim do mundo, muito pelo contrário! Foi algo que eu combinei com ela que faria durante 6 meses, o prazo que eu havia dado a mim mesmo para conseguir uma vaga com programação (acabei conseguindo no quinto mês).

Aprendendo sozinho

Sempre tive facilidade de aprender coisas sozinho. E sempre preferi aprender sozinho também. Do ponto de vista do aprendizado em si, sempre foi melhor para mim. Os cursos me ajudam de outras formas, como networking, resolução de dúvidas pessoais e muitas vezes me obrigar a estudar aquilo (afinal, estou pagando, tenho de ir nas aulas 🙂 ). E hoje em dia está ainda mais fácil aprender a programar sozinho, com a infinidade de videoaulas em sites como Youtube, Udemy e muitos outros.

Como eu fiz para aprender sozinho?

Bom, eu vi o básico de programação para máquinas quando fiz Técnico em Eletrônica no SENAI, mas nunca tinha praticado em projetos reais. Quando entrei para a faculdade, começamos a ver C. Mas não parávamos nunca de ver C e isso me incomodava, pois não gostava dos pseudo-sistemas que fazíamos em DOS com aqueles códigos em C, eu queria interface gráfica, banco de dados, etc. Então ouvi falar de Java, que é uma das linguagens de programação mais usadas no mundo, e que em 2006 estava em seu auge (hoje nem tanto). Meu professor de Introdução à Computação sempre falava bem da linguagem, das oportunidades do mercado e como era bem pago um programador Java.

Pensei: tenho de aprender a programar Java!

Ele não ajudou muito (o professor) no começo, pois me deu o link do site da Sun (antiga dona do Java), onde tu faz download do Java e onde tem toda a documentação oficial. Qualquer um que já tentou aprender alguma coisa usando a documentação oficial sabe que não é exatamente a melhor fonte para um iniciante ‘beber’.

Mas nada que o Google não resolva, certo?

No início eu não tinha Internet em casa (nem mesmo um computador, eu só usava no serviço e faculdade), então eu descobri um site chamado Apostilando.com, que era a maior referência em apostilas de informática na época. Fui na categoria Java e baixei todas as apostilas que lá existiam.

Sim, TODAS.

Na verdade não eram muitas, apenas umas duas dezenas. Baixei todas pro PC para poder ler mesmo sem Internet e carregava comigo as que cabiam em um disquete. Sim, disquete. Pendrives eram muito caros à época, 1GB custava R$150 em uma época que isso era 25% do meu salário de estagiário de suporte…

O meu modus operandi era bem simples: eu lia a apostila e ia fazendo os exercícios da primeira página à última. Depois pegava a próximo apostila e fazia o mesmo. Ad infinitum.

Obviamente lá pela terceira ou quarta apostila eu já estava ficando craque no básico de programação Java e tive a sorte de encontrar uma que era excelente, do prof. Peter Jandl Jr, da Universidade Federal do Paraná. Ele meio que me ensinou Java diretamente, pois a apostila dele foi a melhor que encontrei à época e influenciou bastante a didática que utilizei no meu próprio livro de Java, que hoje recomendo para quem deseja aprender essa linguagem.

Mas estamos falando de como eu fiz para aprender Java sozinho em 2006, hoje em dia existem outras técnicas que você pode experimentar, como videoaulas. Encontre a mídia que lhe agrada mais: livros físicos, digitais, videoaulas, etc e vá em frente.

Praticando sozinho

Todos sabemos que teoria sem prática não leva a lugar algum, então mesmo estudando sozinho uma hora você terá de praticar, certo?

E não estou falando dos exercícios dos livros e das videoaulas, estou falando de praticar no mundo real, com problemas reais.

Parece impossível?

Não MESMO, e vou mostrar como!

Costumo dizer que estudantes de computação espertos sempre arranjam um jeito de ganhar dinheiro. Isso porque sempre tem alguém que precisar arrumar seu PC, configurar uma impressora, precisa de um site pro comércio da família ou mesmo um um “sisteminha”.

E é desses “sisteminhas” que estou falando!

Fato: todo mundo conhece alguém que precisa de um sistema para resolver alguma coisa. Nas disciplinas que dou de programação na faculdade sempre incentivo meus alunos a buscarem problemas reais para resolverem com “sisteminhas”. Coisas simples como telas de cadastro e listagem, já fazem muita diferença no cotidiano de quem antes lidava com caderninhos ou tinha de lembrar coisas de cabeça.

Um aluno certa vez fez um sistema de controle de caixa para o brechó da prima dele, achei demais, pois ele começou a disciplina sabendo o básico de algoritmos e terminou com um sistema completo funcionando em produção! Me senti muito orgulhoso…

Outro aluno, que fazia websites e banners para clientes, fez um sisteminha de cadastro para colocar quem devia pra ele e quanto. Muito simples e funcional, e rodava direto do pendrive! Demais!

Mas o que EU fazia na época da faculdade?

Sempre tive muitos livros e filmes, então fiz um sisteminha tipo de biblioteca/locadora onde eu listava minha coleção e para quem eu havia emprestado algum livro ou DVD, para evitar esquecer e poder cobrar a devolução depois.

Meu padrinho usava um caderno para controlar a entrada, saída e gastos dos hóspedes de seu pequeno hotel em Porto Alegre, então fiz um sisteminha para ele cuidar disso.

No meu estágio como técnico de suporte nós atendíamos chamados de diversos postinhos de saúde de Gravataí e depois não tínhamos como “prestar contas” do que fazíamos. Eu e meu colega fizemos um sisteminha de cadastrar os chamados que depois imprimia um relatório por período, para mostrar aos chefes.

Mas se isso não parece legal pra você, eu também fazia joguinhos para ajudar a melhorar minha lógica e conhecer mais dos pormenores do Java (tipo os que ensino aqui). Eu criei um joguinho de tênis, igual àqueles de SNES, mas com direito à sprites do Guga e gritos à cada raquetada bem sucedida. Pena que programei mal a IA do oponente (ou bem demais) e não havia como ganhar…

Também criei um joguinho de PIF também, com gráficos no estilo daqueles de Pôker do SNES. Eu criava muita coisa nas horas vagas do serviço e mesmo durante as aulas chatas da faculdade. 😛

O ponto aqui é que depois de um certo tempo lendo e praticando com exercícios, você terá de arranjar algo real para programar. Seja um jogo, sistema, não importa, você tem de encarar o quanto antes o mundo real, olhar nos olhos de um cliente e resolver um problema dele. Mesmo que esse problema seja a falta de um joguinho para se divertir.

Tenha o equipamento certo

O equipamento certo é algo subjetivo.

Tenha em mente que você tem que ter o hardware necessário para aprender a programar. Na maioria dos casos, um notebook com 2 núcleos de processamento e 1GB a mais de RAM do que o SO usa, já é o suficiente. Se for programar algo muito pesado, que exija uma IDE como Visual Studio ou NetBeans, 1GB não será o suficiente, então pense em 2GB sobrando na máquina.

Ter um notebook é de longe o melhor investimento que alguém que está querendo aprender a programar pode fazer. Eu senti isso na pele.

Custei a ter um computador, fazia 1 ano e meio que estava na faculdade quando fui comprar meu primeiro computador para então descobrir que eu nunca usava ele, pois nunca estava em casa, a não ser para dormir. Vendi o PC e comprei um notebook. Aí sim minha produtividade decolou.

Com o notebook eu tinha os meus códigos-fontes, livros digitais e programas de exemplo onde quer que eu fosse. Desde o serviço, minha casa, casa da namorada e faculdade. Não perdia mais os trabalhos transportando em disquetes, podia sempre continuar meus sistemas de onde parei e principalmente: aproveitava cada hora disponível para programar um pouco mais.

Caso você não tenha grana para um note, um bom pendrive resolve a questão de transportar seus estudos sempre com você. Carregue seus PDFs, videos, programas de exemplo e códigos-fontes consigo, mesmo que tenha conta no Google Drive ou DropBox, pois nunca se sabe quando podemos ficar sem Internet e consequentemente sem acesso aos estudos.

Pode parecer paranóico, mas se você quer realmente aprender a programar o quanto antes, não pode se dar ao luxo de perder 1h ocioso porque não tem Internet para baixar seus arquivos.

Inglês ajuda muito

Se o notebook lhe permite aumentar a produtividade, o Inglês lhe ajudará a aumentar o leque de opções nos seus estudos, o que deve acelerar seus resultados exponencialmente. Sério.

Primeiro ponto: as linguagens de programação são em Inglês. Só o fato de conseguir ler o básico de Inglês já vai lhe ajudar a entender o que é um ‘IF’ ou um ‘WHILE’.

Segundo ponto: os melhores sites de dúvidas são em Inglês. Sim, Stack Overflow por exemplo, que é de longe a fonte mais usada por programadores para acessar suas dúvidas (são 4.5 milhões de programadores ao redor do mundo perguntando e respondendo questões de programação) é completamente em Inglês. Sem contar os inúmeros fóruns, blogs e claro, as documentações oficiais que são boas para tirar dúvidas pontuais como qual o tamanho máximo de um inteiro ou quantas casas decimais tem um float.

Terceiro ponto: os livros mais recentes, que devem demorar anos para chegar ao Brasil, são em Inglês. O mesmo para as videoaulas. Ok, este último é mais complicado, mas note como apenas saber ler Inglês já lhe dará acesso a muito mais material de qualidade do que você tem hoje, e consequentemente vantagem sobre os demais brasileiros que estão querendo aprender programação também.

Quarto Ponto: as melhores vagas de emprego são em Inglês. Pelo simples fato de os melhores salários e condições de emprego serem oferecidas por multinacionais como Google, Microsoft, Dell, etc. Ou seja, adiar o aprendizado do Inglês vai adiar também as melhores oportunidades de emprego.

E caso ainda não esteja convencido, saiba que empresas como SAP e Dell contratam jovens inexperientes para suporte e programação, mesmo sem saberem programar ou prestar suporte, se eles tiverem Inglês avançado. Sim, isso mesmo. Isso porque é mais fácil para eles ensinar alguém a programar ou responder chamados do que falar um segundo idioma.

Curioso, não?!

Não tenho foco algum neste artigo em dar dicas de como aprender Inglês sozinho (embora o Felipe Neto dê uma excelente dica neste vídeo), mas acho que você entendeu a ideia. Eu mesmo aprendi o básico sozinho e depois fui atrás de cursos online e presenciais. E ainda continuo aprendendo!

Conclusão

Eu sei que o post foi extenso, mas é como disse, não é fácil se tornar um programador, principalmente sozinho. Precisando de dicas, feedback ou apenas querendo deixar seu depoimento ou experiências, use o espaço para comentários aí embaixo ou entre em contato!

Se mais especificamente o seu desejo é virar um programador de apps, recomendo este livro. Programador Java? Este livro aqui é bem bacana também.

Curso Node.js e MongoDB
Curso Node.js e MongoDB