Programador 101: Ensine-se a Códigos

>9770

Você sempre quis aprender a construir software por si mesmo – ou apenas criar um script ocasional – mas nunca soube por onde começar. Felizmente, a web está cheia de recursos livres que podem transformar você em um programador em pouco tempo.

VideoRecent

Este navegador não suporta o elemento video.

Desde a invenção da internet, os programadores têm-no usado para discutir técnicas de desenvolvimento de software, publicar tutoriais, e partilhar amostras de código para outros aprenderem e usarem online. Se você está curioso sobre como se tornar um programador, você pode começar a correr usando toneladas de grandes tutoriais e recursos gratuitos baseados na web.

Primeiras Coisas Primeiro: Don’t Get Hung Up on Choosing a Language

G/O Media may get a commission

Advertisement

Uma armadilha comum para iniciantes é ficar preso a descobrir qual linguagem de programação é a melhor para aprender primeiro. Há muitas opiniões por aí, mas não há uma linguagem “melhor”. O problema é o seguinte: no final, a linguagem não importa tanto assim. Entender dados, estruturas de controle e padrões de design é muito importante. Cada linguagem – mesmo uma linguagem de script simples – terá elementos que você usará em outras línguas também e o ajudará a aprender. Nas aulas que fiz para obter minha graduação em Ciência da Computação, eu programei em Pascal, Assembly e C-línguas que eu nunca fui pago para programar profissionalmente. Eu mesmo ensinei todas as línguas que usei em minha carreira, reutilizando conceitos que já conhecia, e me referindo a documentação e livros para aprender sua sintaxe. Por isso, não se preocupe com o idioma a aprender primeiro. Escolha o tipo de desenvolvimento que você quer fazer, e apenas comece a usar um que funcione.

Existem vários tipos diferentes de desenvolvimento de software que você pode fazer para várias plataformas, desde a web ao seu desktop, ao seu smartphone, até uma linha de comando. Neste artigo, vamos delinear alguns de nossos tutoriais iniciais favoritos e recursos para você mesmo ensinar como programar para cada plataforma principal. Vamos supor que você é um usuário experiente, mas um novato quando se trata de disputar trechos de código, então vamos manter as coisas no nível de iniciante. Mesmo apenas seguindo um tutorial de programação para iniciantes, você ficará feliz em ver até onde pode chegar.

Advertisement

Desktop Scripting

A maneira mais fácil de tentar programar para o seu desktop Windows ou Mac é começar com um programa de script ou macro como AutoHotkey (para Windows) ou Automator (para Mac). Neste momento os programadores hardcore de todo o público leitor de Lifehacker estão a gritar com os seus monitores, dizendo que AHK ou AppleScript não são programação “real”. Isso pode ser verdade – tecnicamente estes tipos de ferramentas apenas fazem scripting de alto nível. Mas para aqueles novatos em programação que só querem molhar os pés, automatizando ações em seu desktop, essas ferramentas gratuitas são uma forma fantástica de começar – e você ficaria surpreso com o quanto você pode fazer com elas.

Advertisement

Por exemplo, Adam desenvolveu o aplicativo autônomo para Windows que todos conhecemos e adoramos, Texter, usando AutoHotkey, então esta linguagem de scripting é capaz de muito mais do que apenas projetos de automação em pequena escala. Para começar com AutoHotkey, veja o tutorial de Adam sobre como transformar qualquer ação em um atalho de teclado usando AutoHotkey. (Então, confira o código fonte do Texter para ver as entranhas de uma aplicação Windows baseada em AHK.)

Advertisement

Desenvolvimento Web

Em vez de estar vinculado a linguagens de programação específicas e ao visual e sensação de um sistema operacional em particular, você pode colocar sua aplicação killer no navegador e executá-la na nuvem, como um webapp. Bem-vindo ao maravilhoso mundo do desenvolvimento web.

Advertisement

HTML e CSS: A primeira coisa que você precisa saber para construir qualquer site é HTML (a marcação de página que compõe as páginas web) e CSS (a informação de estilo que faz essa marcação parecer bonita). HTML e CSS não são verdadeiras linguagens de programação – são apenas a estrutura da página e informações de estilo. No entanto, você deve ser capaz de criar HTML e CSS simples à mão antes de começar a construir aplicações web, porque uma página web é o frontend de cada webapp. Este tutorial HTML é um bom lugar para começar.

JavaScript: Agora que você pode criar uma página web estática com HTML e CSS, as coisas ficam divertidas – porque está na hora de aprender JavaScript. O JavaScript é a linguagem de programação do navegador web, a magia que faz com que os efeitos dinâmicos da página se tornem dinâmicos. JavaScript também é o material dos bookmarklets, Greasemonkey scripts de usuário, e Ajax, por isso é a chave para fazer todo o tipo de coisas boas da web. Comece a aprender JavaScript aqui.

Advertisement

Server-side scripting: Uma vez que você é bom em fazer as coisas acontecerem dentro de uma página web, você vai precisar colocar alguma ação dinâmica de servidor por trás dela – e para isso, você vai precisar se mover para uma linguagem de script do lado do servidor, como PHP, Python, Perl, ou Ruby. Por exemplo, para fazer um formulário de contato baseado na web que envie um e-mail para algum lugar baseado no que um usuário digitou, um script do lado do servidor é necessário. Linguagens de scripting como o PHP também podem falar com uma base de dados no seu servidor web, então se você quiser fazer um site onde os usuários possam entrar e armazenar informações, esse é o caminho a seguir. O excelente site de desenvolvimento web Webmonkey está cheio de tutoriais para várias linguagens de programação web. Veja o seu Tutorial PHP para Iniciantes. Quando estiver pronto, confira como usar PHP para falar com um banco de dados no tutorial PHP e MySQL do WebMonkey. A documentação online do PHP e referência de funções é a melhor na web. Cada entrada (como esta na função strlen) inclui comentários do usuário na parte inferior, que muitas vezes são tão úteis quanto a própria documentação. (Acontece que eu sou parcial do PHP, mas existem muitas outras linguagens de scripting do lado do servidor que você pode decidir usar.)

Advertisement

Web frameworks: Ao longo dos anos, os desenvolvedores web tiveram que resolver e reescrever os mesmos problemas e reescrever códigos similares para construir sites dinâmicos. Para evitar que todos reinventem a roda para cada novo projeto de desenvolvimento web, alguns programadores criaram frameworks de desenvolvimento que fazem algum trabalho repetitivo para você. O popular framework Ruby on Rails, por exemplo, toma a linguagem de programação Ruby e oferece uma estrutura específica para a web para realizar tarefas comuns de aplicações web. Na verdade, Adam usou Rails para construir sua primeira aplicação web séria (e impressionante!), MixTape.me. Aqui está a sua visão de como construir um site do zero, sem experiência. Outros frameworks de desenvolvimento web populares incluem CakePHP (para programadores PHP), Django (para programadores Python), e jQuery (para JavaScript).

Advertisement

Web APIs: Uma API (Application programming interface) é uma forma programática para que diferentes peças de software falem umas com as outras. Por exemplo, se você quiser colocar um mapa dinâmico no seu site, você quer usar um Google Map em vez de construir seu próprio mapa personalizado. A API do Google Maps facilita a inclusão programática de um mapa em uma página com JavaScript. Quase todos os serviços web modernos que você conhece e adora têm uma API que permite incluir dados e widgets dele em sua aplicação, como Twitter, Facebook, Google Docs, Google Maps, e a lista continua. Integrar outros webapps na sua aplicação web via API’s é a fronteira final do desenvolvimento web rico. Todas as boas e principais APIs de serviços web oferecem documentação completa e algum tipo de guia de início rápido para experimentá-la (aqui estão as do Twitter, por exemplo). Go crazy.

Advertisement

Command Line Scripting

Se você quiser escrever um programa que pega texto ou arquivo de entrada e sai algo útil, a linha de comando é o lugar certo para fazer isso. Enquanto a linha de comando não é tão sexy ou bonita como uma aplicação webapp ou desktop, para o rápido desenvolvimento de scripts rápidos que automatizam processos, você não pode vencer.

Advertisement

Linguagens de script que funcionam em um servidor web baseado em Linux também funcionam na linha de comando, como Perl, Python, e PHP – então aprender um desses baddies o torna conversador em dois contextos. Meu caminho nunca me levou muito longe no caminho do Perl, mas eu me ensinei Python usando o excelente e gratuito livro online, Dive into Python.

Advertisement

Se tornar-se um ninja do Unix é um dos seus objetivos de programador, você deve absolutamente ser bom em shell scripting com bash. Bash é a linguagem de script de linha de comando de um ambiente *nix, e ele pode fazer de tudo, desde ajudar você a configurar backups automatizados da sua base de dados e arquivos até construir uma aplicação completa com interação do usuário. Sem qualquer experiência escrevendo scripts bash além de uma dúzia de linhas, acabei desenvolvendo um gerenciador de lista de tarefas completo no bash, Todo.txt CLI.

Add-ons

Agora, os modernos webapps e navegadores são extensíveis com bits de software que se fixam neles e adicionam funcionalidades. O desenvolvimento de add-ons está ganhando popularidade à medida que mais desenvolvedores olham para softwares existentes, como Firefox ou WordPress, e pensam “Mas se ele pudesse fazer ISTO…”

Advertisement

Você pode fazer muito em qualquer navegador web com apenas um domínio de HTML, JavaScript e CSS. Bookmarklets, Greasemonkey scripts de usuário e Stylish estilos de usuário são criados com os mesmos bits de código que fazem páginas web regulares, então vale a pena aprender mesmo que você só queira ajustar um site existente com um pequeno trecho de código.

Outros add-ons avançados de navegador, como extensões Firefox, permitem que você faça mais. Desenvolver extensões Firefox, por exemplo, requer que você esteja familiarizado com JavaScript e XML (marcação que é similar ao HTML, mas muito mais rigorosa no formato). Em 2007 eu pesquisei como construir uma extensão Firefox, uma habilidade que eu aprendi depois de encontrar um tutorial grátis.

Advertisement

Muitas aplicações web gratuitas e bem amadas também oferecem um framework de extensão, como WordPress e MediaWiki. Ambas as aplicações são escritas em PHP, por isso o conforto com PHP é um pré-requisito para se começar. Aqui está como escrever um plug-in para WordPress. Desenvolvedores que querem andar na vanguarda do Google Wave podem começar a escrever gadgets e bots em HTML, JavaScript, Java, e Python. Eu escrevi meu primeiro bot Wave seguindo este tutorial de início rápido em uma tarde.

Advertisement

Desenvolvimento Web para o Desktop

A melhor parte de começar a programar em um contexto é quando você pode pegar essas habilidades e aplicá-las em outro lugar. Aprender desenvolvimento web primeiro é uma ótima maneira de começar porque agora existem maneiras de colocar essas habilidades para trabalhar em aplicações desktop, também. Por exemplo, o Adobe AIR é um ambiente de tempo de execução multiplataforma que permite que você crie sua aplicação uma vez e a libere para ser executada no desktop para cada sistema operacional no qual o AIR é executado. Os aplicativos AIR são escritos em HTML, Flash ou Flex, então ele permite que você aplique suas habilidades de desenvolvimento web em um contexto desktop. AIR é uma ótima opção para implantar aplicativos de desktop como um dos nossos 10 aplicativos top 10 que vale a pena instalar o Adobe AIR for.

Advertisement

Desenvolvimento de aplicativos móveis

Aplicativos móveis como os que você executa no seu iPhone ou smartphone Android são toda a raiva agora, então você pode ter sonhos de surpreendê-lo rico na App Store do iTunes com o próximo aplicativo assassino. No entanto, para o novo codificador, mergulhar de cabeça no desenvolvimento móvel pode ser uma curva de aprendizagem difícil, já que requer conforto com linguagens de programação avançadas como Java e Objective C. No entanto, vale a pena conferir como é o desenvolvimento do iPhone e Android. Confira este exemplo simples de desenvolvimento de aplicativos para iPhone para ter uma idéia do que os desenvolvedores de iPhone fazem. Os aplicativos Android são escritos em Java, e aqui está um vídeo tutorial amigável de como é construir um fluxo de trabalho de aplicativos “Olá Android”.

Advertisement

Paciência, Graxa de Cotovelo, Teste e Erro

Bom codificadores são uma raça especial de persistentes solucionadores de problemas que são viciados nas pequenas vitórias que vêm ao longo de um longo caminho de tentativa e erro. Aprender a programar é muito gratificante, mas também pode ser uma experiência frustrante e solitária. Se você puder, peça a um amigo para trabalhar com você ao longo do caminho. Ficar realmente bom em programação, como qualquer outra coisa, é uma questão de ficar com ele, experimentar as coisas e obter experiência à medida que você vai.

Advertisement

Este artigo é apenas uma recomendação autodidata do programador para iniciantes. Programadores experientes: O que é que eu perdi? Não importa seu nível de habilidade, adicione seus pensamentos e recomendações para iniciantes aos comentários.

Gina Trapani, editora fundadora do Lifehacker, acha que os melhores programadores são autodidatas. Seu recurso semanal, Smarterware, aparece todas as quartas-feiras no Lifehacker. Assine o feed da tag Smarterware para obter novas parcelas no seu leitor de notícias.

Advertisement

Deixe um comentário