Posts Profissionais

Como aprender a programar

Acontece sempre comigo; pessoas que querem aprender a programar me perguntando “onde estudar online”, “qual linguagem escolher”, “por qual linguagem começar”… e por ai vai. Apresentei a palestra “Como aprender a programar” em alguns eventos, incluindo na Campus Party, e compartilho com vocês aqui parte do conteúdo.

Ha! Veja também minhas dicas e links em Aprender programação online, sozinho e do zero.

Apresentação


Vale a pena saber programar?

Programar é sofrer! Mas também é criar coisas que nunca existiram, bolar novas soluções para problemas, organizar informações e sempre aprender coisas novas.

Hoje em dia ser da área de Tecnologia da Informação, é ser um profissional desejado. Se você tem bom conhecimento e sabe realmente resolver problemas, terá sempre ótimas oportunidades, além de se divertir um bocado programando.

O que faz um programador?

Faz códigos. “Código” não tem nada a ver com “senha“. Quando se escreve um programa, se escreve código, ou seja, linhas e mais linhas de instrução que fazem o computador entender o que você deseja. Claro que um desenvolvedor faz outras coisas… muitas vezes faz a análise do problema, desenha modelos, mas no final sempre precisa transcrever tudo em código.

Muita gente nunca viu um código, não sabe como é. Separei algumas imagens aleatórias de pequenos trechos de códigos meus pra você olhar. O importante aqui é você pensar se quando vê, acha “feio” e não te chama a atenção, ou se te deixa curioso, se te atrai a entender mais o que é, o que faz e para que serve.


Screen Shot 2015-07-28 at 19.47.23 Screen Shot 2015-07-28 at 19.48.37

Screen Shot 2015-07-28 at 19.54.57
Screen Shot 2015-07-28 at 19.56.27

 

Mercado de trabalho para desenvolvedores

O que você acha? Conhece desenvolvedores desempregados? Já ouviu falar de crise na área de tecnologia?

É uma área em franco crescimento e a quantidade de profissionais no mercado é bem menor que a de vagas. Trouxe aqui alguns números, para os que gostam de números:

“Segundo o IDC, o Brasil já é o 4º maior centro de TI do mundo, ficando atrás apenas de Estados Unidos, China e Japão. É o segmento brasileiro que mais cresce.”

“Estudo realizado pela consultoria IDC, encomendado pela Cisco, aponta que a demanda por profissionais de tecnologia da informação e comunicação (TIC) no Brasil excederá a oferta em 32% no ano de 2015, chegando a uma lacuna de 117.200 trabalhadores especializados em redes e conectividade. O déficit de pessoal na área de Tecnologia da Informação (TI) é de cerca de 40 mil profissionais de acordo com a Associação Brasileira de Empresas de Tecnologia da Informação e Comunicação (Brasscom).”

“Os cargos que apresentam a maior demanda são: Analista de Sistemas, de Programação, de Suporte Técnico, de Processos, Técnico de Telecomunicações, Analista de Rede, Gerente de Projetos, Administrador de Redes, Webmaster e Técnico de Hardware.”

 

[form_lead form=hangout]

 

O desafio e a recompensa

Porque sofrer tanto programando? Estudar, aprender, ter que ler inglês, ficar tanto tempo pensando criando soluções para problemas… é um grande desafio!

Mas, qual a recompensa?

É ter o usuário utilizando seu software e sentindo que é a melhor coisa que existe! É ver que ele resolveu um problema, e que as pessoas realmente gostam da maneira como você fez. Pra mim é isso.

Ambientes: desktop, mobile, web, cloud…

Observe os quatro ambientes da esquerda (A,B,C e D). Agora imagine o que se usa em cada ambiente (1,2,3 e 4).

 

Screen Shot 2015-07-31 at 15.00.39

 

Quando falamos em desenvolvimento de software, podemos desenvolver para uma grama muito grande de ambientes, que vão desde smartphones (iOS, Android, Windows Phone), desktops (Windows, Linux, Mac OS), web, até aparelhos como SmarTVs, carros, equipamentos de telecomunicação e satélites.

Portanto, é importante entender que cada linguagem atende um ou mais ambientes. Com base no ambiente para o qual você deseja produzir seu software, irá buscar as linguagens adequadas.

Então, não passe daqui se definir um ambiente para o qual deseja programa…. Já definiu?

Linguagens de programação atuais

Existem dezenas de linguagens de programação. Algumas ultrapassadas, outras antigas mas que nunca morrerão e outras modernas e focadas em alto desempenho e performance. Apresento aqui uma imagem para você ver os “nomes” das linguagens mais populares em 2015. Ignore por agora como foi medida a “popularidade”.

codeeval2015.001

Mas, qual linguagem escolher para aprender afinal?

 

Como escolher a linguagem??

Traduzi o infográfico abaixo que irá lhe conduzir às melhores possibilidades. “Qual linguagem de programação aprender primeiro?“, confira!

 

Qual linguagem de programação escolher - Infográfico
Qual linguagem de programação escolher – Infográfico – Clique para ampliar

 

E então? Achou sua linguagem??? Qual é? Comente ai!

Cursos e certificações

Na área de Tecnologia da Informação, certificações podem ser mais importantes que a própria graduação. A Certificação é a maneira da empresa que cria uma tecnologia atestar que você tem conhecimentos suficientes para trabalhar com ela. Poucos profissionais são certificados se comparando com a quantidade de graduados e pós-graduados.

Quando você se certifica, consegue uma “aprovação” de capacidade que poucos desenvolvedores possuem, ou se dedicam a possuir.

Praticamente para todas tecnologias atuais existem alguma forma de certificação. Os valores podem partir de R$100,00 até R$1.000,00 para fazer a prova. Se não passou, não é certificado. Se passou, ganha o direito de dizer que é certificado e claro, recebe um certificado “impresso”.

Mas, acima de tudo isso, mais importante que graduação, pós-graduação e certificação, é saber inglês. Do you think you can read english well? Se não lê bem ainda, foque toda sua atenção nisso.

Como aprender online?

A melhor forma de aprender programação por conta própria atualmente, é online. Existem vários sites bem bacanas, que te guiam no aprendizado de forma a parecer quase um game. Não é preciso fazer leituras longas e você já começa praticando, com atividades simples e rápidas que lhe darão a visão necessária para avançar.

Escrevi um post recentemente com todas as dicas e links pra Aprender programação online, sozinho e do zero! Confira!

Aprender programação em 20 horas

Em 2016 dediquei um bom tempo elaborando essa metodologia, onde o objetivo é ensinar programação para um leigo, começando do zero, em apenas 20 horas. Criei uma turma “beta” que está cursando agora e estão conseguindo realmente aprender. Está sendo eficiente e eficaz.

Parto do principio que aprender programação deve ser divertido, que a matemática não deve ser obrigatória, e que não dá pra falar em termos técnicos com alguém que ainda está aprendendo a técnica. Então o formato é informal e com muita explicação por analogia.

Se quiser saber mais vá até Aprender Programação em 20 horas.

Agora é com você!

Chega de conversa! Compre um livro, veja uns videos, leia na internet, prepare seu ambiente de desenvolvimento e meta mão na massa! Não deixe para depois e também não desista tão rápido. Começar não é fácil, mas sinta-se a vontade para me perguntar e comente aqui sua evolução.

Tiago Gouvêa

Full-stack Developer, fazendo códigos desde o século passado. Criador da metodologia "Aprender programação em 20 horas" e diretor da startup App Masters, voltada para o desenvolvimento de aplicativos. Apaixonado por tecnologia e viciado em café.

Conteúdo relacionado

Respostas (54)

Escreva uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

  1. Ricardo

    Tiago, parabéns pela excelente iniciativa! Seu artigo está muito bem explicado. Sou formado em Técnico em Informática pelo IFBA. Lá, pude ver um pouco de Java e C#, e saí do curso decidido a trabalhar com programação. Porém, a falta de oportunidades de estágio e emprego na área, me fizeram desistir. Agora, lendo seus artigos, me veio uma vontade de tentar novamente e criar as oportunidades através da dedicação, mesmo sem experiência. Vou retomar os estudos e pôr a mão na massa. Obrigado, cara. Sucesso!

  2. Julian Marques

    Muito bom! eu sempre queria ser um programador desde de pequeno que eu admiro códigos e coisa do tipo, to indo pro 4º Semestre de Análises e Desenvolvimentos de Sistemas.
    Estou focando no Java, acho que me conectei mais com ele do que com os programas até porque depois que você prática e aprende códigos e mais códigos eles simplesmente ficam na cabeça, pra sempre. Assim como meu tutor diz: “A Prática leva a perfeição”.
    É isso que eu estou fazendo agora, focando, melhorando, aprimorando meus conhecimentos e botando a mão na massa.

    5 horas da manhã, passei a madrugada no java s2

  3. Os 5 principais requisitos para ser um bom programador - Tiago Gouvêa Tiago Gouvêa

    […] programação online, sozinho e do zero Como aprender a programar Áreas de tecnologia e serviços sinalizam profissões do futuro O programador, segundo a […]

  4. Alan Azevedo

    Parabéns pela sua publicação.
    Tenho 23 anos, sou da área de TI a mais ou menos 4 anos. Sempre foi minha paixão, desde pequeno. Conheço “bastante” da parte fisica, troubleshooting, Helpdesk e seus afins, porém o que eu sempre quis foi programar. Eu tive/tenho uma barreira mental quanto a isso, mas quero começar. E seu post está ajudando a me motivar. Ainda não escolhi o ambiente nem nada do tipo, talvez Front-End… enfim, acho que vou começar com Javascript ou Python, pela abrangência e a forma de interagir com os códigos. Atualmente eu estou no 3º período de Analise e Desenvolvimento de Sistemas e tenho ensino médio Tecnico em Informática Industrial, mas sinto que desde sempre eu meio que ignorei a parte de desenvolvimento (sabe aquele velho conceito de “estudar para passar”?). Quero quebrar essa barreira, e nada melhor para isso do que realmente começar e por a mão na massa. Só quero agradecer pelas suas palavras e a atenção dada na hora de criar esse material que eu tenho certeza que está ajudando não só eu, como muitas outras pessoas. Obrigado!

  5. Giselle

    Muito bom o post, estou cursando o segundo ano do curso superior de Analise e desenvolvimento de sistemas à distancia, estudo ate 12 horas por dia … mas nem sinto o tempo passar coisa de doido.. simplesmente estou amando… não vejo a hora de conseguir um emprego no setor para aprender mais… gratidão pelo post e pelas dicas!!!

    1. Thiago

      Muito bom mesmo !

  6. Dinis Salatiel

    goste das lições

  7. Yumi

    Toop o seu fluxo!!!
    By the way, sou analista de processos em Bpo e gostaria de migrar para a Ti com a programação…. Seguindo seu fluxo, deu Java. One question, consigo aliar o conhecimento de processos com programação? Se sim, como?
    Tks

    1. Tiago Gouvêa

      Ótimo Yumi!
      Seus conhecimentos de processos te ajudarão a entender a programação, porque tudo acontece dentro de um algoritmo, que nada mais é que um processo. Vai te ajudar BEM a entender. Muitas pessoas não entendem tão rapidamente o que é um fluxo, um caminho, uma instância de algo que está acontecendo.. e você já é ninja nisso!
      Manda bala!

  8. Pat

    Ola Thiago, tenho 38 anos e nunca programei, sempre trabalhei em outra area que não tem absolutamente nada haver com IT.
    Gostaria de saber qual a linguagem vc indicaria no meu caso para iniciar? Minha intenção é mudar totalmente minha area de trabalho, mas tb nao gostaria de ficar mais 10 anos para entrar nessa nova area. Obrigada!!

    1. Tiago Gouvêa

      Olá amigo! Siga as linhas da imagem do post e irá encontrar a resposta!
      Se for pra falar algo rápido, eu diria JavaScript ou python! 😀

  9. "Asert"

    Que bom que exitem pessoas como você que partilham conhecimento!!!
    Muito bos suas dicas!!!

  10. Johnny

    Otimo post….cara queria uma ajuda com dicas para iniciar realmente do zero,quero mudar de area,sou tecnico em eletronica e quero trabalhar em uma nova area,a programação sempre me deixou fascinado e ultimamente tenho pesquisado muito sobre o assunto afim de me tornar um otimo profissional,aqui tive uma otima ideia do que me espera e estou ai da mais interessado.se puder me indicar como e por onde é melhor começar, ficarei muito grato.

  11. É difícil aprender a programar? - Tiago Gouvêa Tiago Gouvêa

    […] meu post “Como aprender a programar” que irá te ajudar a escolher uma […]

  12. Roger

    Muito bom tudo que você falou aqui sobre ser programador!!!!!! Muito bom mesmo!!!!

    Eu já vi que um curso tecnico ou faculdade é só a ponta do iceberg….

    Eu mesmo com meus 32 anos, sou um total ignorante quanto a programação….
    Mas uma coisa que já aprendi na vida foi que,

    Ninguém nasce sabendo;
    Se você realmente quiser, vai atrás ate consegui.
    Ou seja, se um burro que nem eu quiser um dia ser programador, pode? Pode. É só estudar, estudar, estudar…. e estudar!
    Eu já trabalhei em funções que antes eu diria, que não conseguia aprender aquilo, eu estudei, insisti e persisti e consegui.
    Programador sera bem mais difícil, começar do zero aos 32 anos…. Pois iniciar o aprendizado aos 15 anos de idade é ate mais fácil do que começar já aos 32 anos….
    Isso inclui fazer um curso de inglês também….

    Mas eu disse que apenas DIFÍCIL… Ou muito difícil…. MAS NÃO É IMPOSSÍVEL! 😉👍👍👍

    MUITO instrutivo o que você falou Tiago Gouvêa…. Vou ate salvar a página para poder ler mais e estudar mais sobre o assunto👍👍👍👍👍👍

  13. DAMARES AMARO

    Olá Tiago, muito obrigada por fornecer as informações precisas sobre esse mundo da tecnologia que tanto amo.
    Tenho 18 anos, estou finalizando o curso técnico em Meio Ambiente, porém, a minha paixão é a tecnologia. E o que eu pretendo é começar por algo básico até o complexo, ser programadora é uma das minhas metas. Por mais que demore, é o que eu quero seguir.
    Pode me dizer alguns locais que fornecem provas para pegar o certificado?
    Obrigada mais uma vez.
    Abraços.

    1. Tiago Gouvêa

      Oi Damares,
      Então.. “o certificado”..
      Você quer aprender a programar ou pegar o certificado?

      1. Thiago

        Aprender a programar, estou voltando depois de uns 2 anos , dei uma parada por alguns motivos, mas estou voltando , não encontrei você no Facebook. Muito boa as dicas

  14. Eduardo

    Tenho 27 anos, sempre fui apaixonado por tecnologia mas trabalhei mais tempo na area comercial do que com informática. (informatica sempre fui pro lado do hardware).

    Hoje tenho vontade de entrar no mundo da programação.
    Você acha que Desenvolvedor IOS é uma boa area pra quem quer começar do zero?
    Quais pré requisitos antes de entrar num curso pra essa área específica?

    Abraco!!

    1. Tiago Gouvêa

      Olá Eduardo!
      Programar pra iOS é uma ótima área! É preciso estudar muito (como todas as outras), e, neste caso específico é preciso ter muitos “kilometros rodados” pra conseguir um emprego. Você terá que publicar algo (mesmo que seu, mesmo que simples) pra provar que sabe mesmo fazer um app pra iPhone.
      Não existem requisitos para entrar. O que recomendo é ter disposição, porque não é brincadeira! 😀

      Boa sorte e comenta aqui depois o que decidiu!

  15. andre orsuli

    Adorei estou me sentindo muito mais confiante e com muito mais vontade de aprender,obrigado vou seguir as dicas agora Foco,Força e Fé!!!

  16. JR Neto

    Olá!

    Muito interessante o post. Parabéns!

    Sou engenheiro elétrico, trabalho com telecomunicações há décadas (nada IP infelizmente, apenas SDH) e já passei dos 40. Estou decidido a aprender programação, pois nas empresas que trabalhei/trabalho sempre aparece a necessidade de um programinha aqui ou ali para atender demandas pontuais das áreas. Percebi então que programar pode ser uma oportunidade de se diferenciar dentro do ambiente de trabalho.
    Será que ainda dá tempo para um coroa como eu aprender programação e ganhar alguma sobrevida curricular no mercado de trabalho?
    Para sair do zero…seria Python mesmo ou vale a pena investir em Java?

    Abs

    1. Tiago Gouvêa

      Hehehe… Olá Jr!
      Respondo essa pergunta aqui : Idade para começar a programar – 40 anos?
      Pra sair do zero, te recomendo Python!
      Comente aqui depois no que deu! Abraços!

  17. Bruno Fernando

    Tiago estou fazendo curso de Html e Css no code cademy, queria saber aonde posso praticar? e qual curso iniciar depois para aperfeiçoar?

    1. Tiago Gouvêa

      Amigo, praticar é contigo! Pegue alguns projetos e comece a fazer! Vou produzir um video sobre isso, te envio aqui o link quando estiver pronto.

  18. Gilmar Rozendo

    Uma imagem vale mais que mil palavras!! Parabéns pelo Infográfico.
    Agora “os caminhos ficaram claros” rs.
    Valeu!

  19. jefferson

    Da para conciliar o estudo de inglês e programação na internet?
    Ou é melhor estudar um e depois o outro?

    1. Tiago Gouvêa

      Dá pra conciliar sim! Claro!
      Eu sempre penso em me dedicar mais no inglês, mas não consigo… vou estudando inglês por “osmose”.
      Mas o importante é ir decorando as palavras, tentando entender tudo que aparece.. traduzir sempre o que não entendeu e tentar aprender algo com isso.

  20. Guilherme

    Obrigado.
    O texto ajudou muito.
    Sou iniciante e estava perdido em tantas áreas.

    Agradeço pela ajuda.

  21. Cíntia

    Bom dia,

    O curso tecnólogo me dá certificação para ser contratada EUA? Ou se faz necessário a graduação?

    1. Tiago Gouvêa

      Olá Cintia. Não sei te dizer bem como é o mercado lá e o que pedem… te recomendo o canal do Rodrigo Souza. Ele é meio radical em algumas coisas, mas de dará toda informação que precisa acerca de trabalhar nos states.

  22. Giovanni

    Obrigado por me mostrar que no meu caso é Java na cabeça!!

  23. Os 5 principais requisitos para ser um bom programador | WCF Assistência Tecnológica

    […] sempre me perguntaram sobre ser um programador; “onde aprender”, “o que estudar”, “como aprender a programar” ou “o que é preciso fazer” para ser um […]

  24. Diego Mayta

    Eae Tiago,

    Muito bom o post, gostei bastante.
    só queria umas dicas sobre por quais livros seriam bons para aprender C# e Java.

    é também gostaria de saber por qual linguagem de programação seria bom começar a aprender?

  25. LAYNNARA MARINA DA COSTA SOUSA

    Olá, post muito interessante. Sou uma garota no universo dos marmanjos..rsrs.. e me apaixono cada vez mais por minha área. Sou acadêmica de Ciência da Computação e tenho só 19 anos. Se eu pudesse incentivaria mais garotas a entrarem na área de TI.

    1. Keven

      Pode me Ajudar?

  26. É fácil aprender a programar para android? - Tiago Gouvêa Tiago Gouvêa

    […] ler o tópico “Como aprender online“em “Como aprender a […]

  27. Helder Tosta

    Thiago vi que naquele infográfico a linguagem mais versátil da atualidade parece ser Python e php não está tão na onda. Você vê realmente essa chegada do Python forte juntamente com o JS e o declínio do PHP ou foi uma impressão errada minha? Pergunto isso pois ultimamente tenho me dedicado muito ao aprendizado de PHP mas estou muito curioso a respeito do Python.
    Parabéns pelo post, foi muito enriquecedor!!

    1. Tiago Gouvêa

      Olá Helder, sou certificado em PHP e trabalho nele algumas horas por dia… mas, para quem está começando hoje, não será fácil recomendar PHP. Tem coisas mais atuais, como Ruby e Python, que darão conta do recado bem melhor que o PHP. Já o JS é a linguagem do futuro, já dá pra fazer praticamente tudo com JavaScript, servidor (node), aplicativo mobile NATIVO (react native), desktop… e por ai vai. Se você está curioso com o Python, curse no CodeAcademy ele sem compromisso.. pra você aprender mesmo a sintaxe e tal, dai, depois você decide se vale a pena usar em algo. Depois você me diz o que decidiu. Ok?

  28. Os 5 principais requisitos para ser um bom programador - Tiago Gouvêa Tiago Gouvêa

    […] pessoas sempre me perguntaram sobre ser um programador; “onde aprender“, “o que estudar” ou “o que é preciso fazer” para ser um […]

  29. Todo mundo precisa aprender a programar? - Tiago Gouvêa Tiago Gouvêa

    […] a influência prevista que os computadores terão no nosso futuro como espécie, é evidente que aprender a programar, seja de maneira especializada ou num nível básico, se tornará uma ferramenta cada vez mais […]

  30. Eliel Barone

    E se eu te disser que se você pegar a lista dos mais jovens milionários da atualidade, você vai perceber que a maioria está ligada a programação? simplesmente por quê um programa é livre do tempo e do espaço, é como se você pudesse se multiplicar. 🙂

  31. João Victor

    Nossa, gostei muito do conteúdo!! E meus parabéns, porque fiquei ainda mais interessado por programação e pretendo crescer cada vez mais e me tornar um grande Cientista da computação, um programador de sucesso. Eu ainda só tenho 16 anos, mas já penso lá na frente a minha carreira profissional neste mercado de trabalho… Não e nem pelo mercado, é mais pela paixão!

  32. Judy Pirangi

    Vou começar tudo agora, com 17 anos… olhar para aqueles que programam desde os 12 é bem duro, mas é a vida.
    Ainda não tenho certeza da faculdade, mas estou pensando em ciência da computação ou TI. Só sei que eu preciso de um emprego que eu possa exercer de outro país. Espero que não demore para que eu consiga. Vou começar por esses sites que você recomendou. Obrigada!!!

    1. Tiago Gouvêa

      Manda bala!
      Quando aos 17 (ou 12 anos), conheço programadores incríveis que começaram aos 30.
      Siga firme, tenha paciência e boa sorte!

      1. Thiago Alves

        Que bom saber disso, estou começando com 31 anos e agora sabendo disso me sinto mais motivado para começar essa grande jornada. Obrigado!

    2. Samuel

      Poxa cara, passo pelo mesmo dilema, rs, tenho 18 anos e estou começando agora, mas ainda assim não me deixo desanimar, vamos que vamos!

  33. Danyele Santiago

    Olá Tiago.
    Bem, desde que me entendo por gente que sou fã da tecnologia, mas confesso que não pretendia levar isso como uma profissão, mas, hoje não me vejo sem a tecnologia, seu poste me deixou bastante motivada. Desde já acompanhando o blog 🙂

  34. Nelson Saraiva

    Olá Tiago, parabens pela iniciativa. Peço que me ajudes a encontrar um curso de jQuery com php pela net.
    Um forte abraço.

    1. Tiago Gouvêa

      Alô Nelson! Recomendo fortemente este curso: https://www.codecademy.com/learn/jquery
      Faça até o final, ok? Ai você me diz aqui se ficou profissional no jquery!

  35. Anselmo Diogo

    Bom dia prezado,
    Sou angolano e quero receber formação por tua parte quanto aos livros e dicas. De salientar que sou novo na matéria. Existe alguma maneira de contacta-lo por telemóvel?

    1. Tiago Gouvêa

      Olá Anselmo,
      Estou preparando um post só com sugestão de livros, te aviso quando postar ok?
      Vou te enviar meu celular por email pra gente trocar um whatsapp.
      Abraços!

  36. Pedro Henrique Silva Goyano

    Fala Tiago, boa tarde!

    Entrei em contato com você á uns dois anos atrás, pois precisava de algumas dicas sobre programação e qual linguagem escolher; na época estava começando a graduação em Sistemas de Informação. Hoje, já tenho uma noção melhor sobre o assunto (nem tanto ainda hehehe), cursando o 6º período do curso, faltando apenas um ano para terminar a graduação. Estou com algumas dúvidas referente ao TCC (Trabalho de Conclusão de Curso). Gostaria se possível de algumas ideias sobre as tendências em questão de aplicações.

    Agradeço desde já. Estou acompanhando o seu blog.

    Valeu!

    1. Tiago Gouvêa

      Legal Pedro!
      Eu diria que a tendência é mobile, certo? Aplicações que funcionam em dispositivos móveis, sejam celulares, tablets ou qualquer coisa que não seja um desktop.
      Quanto ao tipo de aplicação, não creio que exista uma tendência. Está em alta sustentabilidade, compartilhamento, colaboração… veja o Ubber por exemplo, é um sucesso.
      Ajudei em algo? 🙂