========================================= Capítulo 0: Porque aprender a programar? ========================================= A razão fundamental, que nos motivou a produzir este tutorial, é uma só: programar é divertido. É claro que nem todo mundo vai concordar com isso, assim como muita gente não acha graça nenhuma em jogar xadrez ou explorar cavernas. Ao contrário do xadrez e da espeleologia, a programação também é uma habilidade que tem forte demanda no mercado de trabalho. Mas a dura realidade é que somente com centenas ou milhares de horas de experiência programando é que você estará apta a incluir essa disciplina em seu currículo e se dar bem em uma entrevista de emprego como programadora. Portanto nosso objetivo aqui é bem mais modesto do que transformar você em uma programadora profissional. O que estamos te oferecendo é uma introdução suave a esse tópico fascinante. Ao final, esperamos que você descubra se tem a vocação e a motivação necessárias para criar softwares, como hobby ou profissão. Antes de começar, apenas um aviso: o prazer de construir um programa pode causar dependência psicológica. Não é só por dinheiro que tem gente ao redor do mundo varando noites escrevendo código. Material necessário ==================== Para acompanhar esse tutorial você precisará de um computador que tenha um interpretador da linguagem Python instalado. Em quase todas as versões modernas de Linux e MacOS X o interpretador Python já vem instalado (experimente abrir um terminal e digitar "python"). Nesse tutorial, vamos usar Python 3. Na página http://python.org.br você encontra links para baixar a versão mais recente do Python 3 para o seu computador. Você pode achar informações de como instalar no Windows: http://python.org.br/instalacao-windows e no Linux: http://python.org.br/instalacao-linux. Em novembro de 2016 a versão mais recente é Python 3.5, mas qualquer versão da série 3.x deverá funcionar para você. Porquê Python ============== Toda programação de computadores é feita através de linguagens de programação, portanto para aprender a programar é preciso aprender uma dessas linguagens. Nossa meta não é mostrar como se programa em uma linguagem específica, mas sim como se programa de uma forma geral. Ou seja, a linguagem para nós será um veículo, e não o destino. Mesmo assim, pensamos bastante antes de escolher uma linguagem para este tutorial, e optamos por Python. Centenas de linguagens foram criadas desde que o computador eletrônico foi inventado nos anos 40. Algumas já são línguas mortas. Outras, como C++ e Java, são peças fundamentais no desenvolvimento da economia digital. No entanto, a complexidade dessas duas linguagens nos motivou a descartá-las, e focalizar o universo das chamadas linguagens de "''scripting''", que são mais simples e se prestam a um estilo de programação exploratória, mais sintonizado com a ideia de tornar a programação acessível. As três linguagens de ''scripting'' mais populares atualmente são !JavaScript, !PHP e !Python. As duas primeiras são utilizadas na construção de ''web-sites'' dinâmicos, mas praticamente não têm aplicação fora desse domínio. Escolhemos Python porque é uma linguagem muito versátil, usada não só no desenvolvimento Web mas em muitos outros tipos de aplicação. Python roda nos servidores de mega-sites como Google e Facebook, nos clusters de computação gráfica da Industrial Light & Magic, em laboratórios da NASA e da farmacêutica AstraZeneca, e em jogos com milhares de jogadores como EVE-Online. O nome "Python" é uma homenagem ao grupo humorístico inglês Monty Python, adorado por ''geeks'' de todo o mundo. Mas pela pequena amostra de usuários citados, percebe-se que não é uma linguagem de brinquedo. Apesar de sua sintaxe simples e clara, Python oferece os seguintes recursos disponíveis também em linguagens mais complicadas como Java e C++: * programação orientada a objetos -- o mais importante paradigma de programação atualmente * exceções, um moderno mecanismo para o tratamento de erros * módulos, uma forma inteligente de acessar e organizar código a ser reutilizado * coleta de lixo automática, sistema que elimina os erros causados pelo acúmulo de dados inúteis na memória do computador (característica presente também em Java, mas não em C++) * recursos avançados de manipulação de textos, listas e outras estruturas de dados * possibilidade de executar o mesmo programa sem modificações em várias plataformas de ''hardware'' e sistemas operacionais Em resumo, Python nos oferece uma sintaxe mais simples que PHP ou JavaScript, mas é mais versátil do que elas. E permite explorar vários recursos avançados de Java e C++ de uma forma mais acessível. Por esses motivos acreditamos que seja a melhor escolha para quem quer começar a programar hoje.