Buscar

Aprendendo a programar - modulo 1

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Aprendendo a programar.
Capítulo I
Introdução tecnológica ao desenvolvimento de aplicativos. 
Como funciona um computador?
O computador é um aparelho que talvez pareça mais complexo do que outros, mas depende das instruções para saber o que fazer. Por exemplo, quando você pressiona o botão de ligação, o computador mostra seu logo, depois carrega o Windows, depois de uns minutos aparece o ponteiro do mouse para poder começar a usá-lo, depois carrega a área de trabalho e assim por diante.
Parece que ele é inteligente, mas quase sempre faz a mesma coisa, na mesma ordem. Ele está cumprindo ordens.
A programação é simplesmente as ordens que o computador precisa para fazer alguma coisa, do mais simples até o mais complexo, mas todas elas são ordens. 
Como forneço essas ordens?
Ao longo do curso, vamos aprender como fornecer essas ordens e você vai encontrar muitos termos estranhos para denominar cada uma das formas de fornecer essas ordens.
Você vai começar a escutar termos como HTML, CSS, Javascript, C#, MVC, Java, SQL, Ruby, Python, C, C++, WPF, Android, IOS, Windows Phone, Windows 8 , Serviços REST, JSON, XML, AJAX, AJAJ.
Dominar a Matrix
Vamos começar por aqui. Você está lendo este curso, neste computador, devido a que alguém escreveu um programa que chamaram Sistema Operacional e a que outras pessoas escreveram o programa chamado Internet Explorer para navegar na Internet e chegar até aqui. Alguém também programou este site para que você encontre este documento. 
Dominar a Matrix (continuação)
Você usou o telefone hoje para uma mensagem ou para falar? Você pode se comunicar porque na companhia telefônica existem programas informáticos que verificam quem é você, se você tem saldo na conta para realizar a ligação, através do número que você marcou detecta para quem está ligando, localiza onde está essa pessoa, envia um sinal para que toque o telefone do destinatário e estabelece a ligação. 
Como funcionam as coisas?
Já dissemos que os aparelhos não são inteligentes, só sabem fazer uma tarefa repetidamente de forma muito eficiente.
Cada vez que vemos que uma tarefa é realizada sempre da mesma forma, ela é candidata para criar um programa para que seja feita automaticamente. 
Portanto, devemos compreender que programar é simplesmente dizer para o computador como é a sequência de passos para conseguir realizar uma tarefa. 
Exemplo com um jogo
Temos um jogo com uma personagem. Ao pressionar o botão do joystick, ele pula.
Se o botão é pressionado repetidamente, a personagem pula da mesma forma que a vez anterior.
Vamos pensar só na personagem pulando, sem considerar o que acontece no resto do jogo. 
Exemplo com um jogo (continuação)
A personagem pula porque alguém escreveu, com uma linguagem de programação, como deve se comportar a personagem. Os passos seriam:
Desenhar a personagem na tela
Ficar esperando que o usuário realize alguma coisa com o joystick
Receber um sinal do joystick, o usuário pressionou um botão
Qual botão pressionou? Se pressionou acima, continuar
Ler a posição atual da personagem na tela
Calcular a distância de pulo, 20 pixels, 30 pixels
Carregar a sequência de imagens com cada quadro de personagem pulando
Imprimir na tela cada uma das sequências, mudando a posição na tela
Voltar para o passo 2. 
Aliás, um jogo não é só uma personagem que pode pular. Há muitas coisas que acontecem ao mesmo tempo, mas elas são... mais linhas de código realizadas por um programador. 
Primeira regra do programador:
"Todo comportamento repetitivo e predizível pode ser programável." 
Um braço robótico
Se descrevemos a sequência de passos para dirigir um braço robótico, como no exemplo do jogo, há uma semelhança:
Ambos os dois estão executando uma série de passos lógicos, ordenados e sequenciais.
Diante da mesma ação, o mesmo resultado.
Isso é devido a uma codificação em um programa informático, na linguagem que for, mas há uma grande diferença:
Enquanto o braço robótico interage com o mundo físico, movendo parte de um lado para outro, o outro programa só interage com um mundo virtual, imprimindo imagens na tela. 
Um braço robótico (continuação)
Ambos os processos precisam de um programa informático que os controle e o programador é quem escreve essa série de passos.
A única diferença é a interação com o mundo exterior.
No caso da robótica, além de executar os passos, é necessário que o resultado da sequência de passos ative mecanismos físicos para mover cada uma das engrenagens do braço.
Entretanto, o sistema informático para consultar o álbum só teve que interagir com o mundo exterior, imprimindo o resultado na tela.
A chave para desenhar qualquer sistema é levar em conta como serão as interações com o mundo exterior. 
Nesse curso, vamos tratar dos processos virtuais, aqueles que não têm interação física além de ler valores de uma interface de usuário e processar essa interação para atingir um resultado. 
Aplicativos conectados ou desconectados
Na hora de realizar um aplicativo, é importante decidir se precisamos que o programa dependa de uma conexão a Internet ou que funcione mesmo quando não houver conexão.
O primeiro ponto para diferenciar é se os aplicativos são conectados ou desconectados.
Os aplicativos conectados são aqueles que para funcionar precisam uma conexão a Internet. Do contrário, eles não funcionam.
Um exemplo podem ser os jogos em rede. Sem conexão, eles não funcionam. 
Web sites
Então... um web site é um aplicativo?
Se o web site permite realizar alguma coisa, ele é um aplicativo conectado, já que só funciona com Internet. 
Quando um web site serve para realizar alguma coisa concreta, ele interage com o usuário, realiza alguma coisa com as informações e fornece um resultado, então ele é um aplicativo.
A diferença principal entre um web site e um aplicativo web é que no aplicativo web o usuário pode interagir e alterar o resultado conforme essa interação.
Os web sites que permitem realizar alguma coisa são aplicativos web conectados. 
Aplicativos conectados
O aplicativo desconectado deve ser instalado ou rodado de algum meio presente fisicamente para poder ser utilizado, enquanto o aplicativo conectado pode ser usado diretamente acessando a Internet. 
Exemplo: Microsoft Word, Visual Studio, etc.
O que preciso para aprender a programar?
Para saber programar você precisa saber duas ou três linguagens de programação e duas ou três tecnologias adicionais, e considerar 4 fatores principais:
Como vou interagir com o usuário?
Devo decidir como quero que o usuário se comunique com o aplicativo.
O usuário utiliza o smartphone, pressiona botões, usa a câmera. 
O usuário acessa um site para utilizar meu aplicativo.
O usuário utiliza sensores físicos, teclados especiais, joysticks ou telas tácteis. 
O que preciso para aprender a programar? (continuação)
Preciso lembrar informações?
Devo decidir se o aplicativo salva meus dados, se mantém estatísticas, escores, se salva informações que podem ser recuperadas em qualquer momento.
O usuário não salva nenhum tipo de informações. Cada vez que usa o aplicativo é como começar de novo.
O usuário salva informações e pode recuperá-las. 
O que preciso para aprender a programar? (continuação)
Preciso conexão permanente para funcionar?
Devo decidir se meu aplicativo precisa se comunicar com outros usuários para funcionar ou se depende da existência de conexão à Internet para ser executado.
O usuário interage com outros usuários, e vê informações deles ou se comunica com eles. 
O usuário não instala nada para executar o aplicativo, simplesmente acessa um site. 
O que preciso para aprender a programar? (continuação)
Se o aplicativo precisa se conectar com outros aplicativos 
O aplicativo utiliza mapas de Internet ou conexão com outros aplicativos para compartilhar informações.
O aplicativo acessa servidores com stats de usuários.
O aplicativo não precisa se conectar com ninguém. 
A tecnologia que usaremos dependerá do que precisarmos realizar.
Tecnologias
O usuário acessa
através de uma página web?
HTML + CSS + Javascript
Adobe Air + Java
O usuário acessa através de um aplicativo em um telefone celular?
PhoneGap + HTML + CSS + Javascript
	O telefone é Windows Phone?
Windows Mobile WPF + Window Phone + C# .NET
	O telefone é Android?
Android Development Kit + Java
O telefone é IPhone?
IOS SDK + Objective C 
Tecnologias
O usuário acessa através de um tablet?
PhoneGap + HTML + CSS + Javascript
	O tablet tem Windows 8?
Windows WPF + Window 8 + C# .NET
	O tablet tem Android?
Android Development Kit + Java
	O tablet é IPad?
IOS SDK + Objective C
O usuário utiliza o GPS, câmera, acelerômetro? 
IOS SDK, Android Development Kit 
Tecnologias
O usuário utiliza intensivamente componentes externos como joystick, sensor de movimento, gráficos 3D ou áudio? 
O aplicativo é um jogo?
C# .NET ou C++ ou Java
Preciso realizar gráficos complexos.
Unity, Adobe Air
Não preciso realizar gráficos complexos.
LimeJS, CSS
O aplicativo não é um jogo?
C++ ou C# .NET ou Java
O aplicativo é para Windows?
WPF + C#.NET	
Ele é para Mac?
Java, C++, etc
Tecnologias
Preciso armazenar e recuperar informações?
SQL, SQL Server Express ou My SQL
Não tenho muita certeza ainda sobre quais dados preciso armazenar?
Banco de dados documentais 
Aplicativo conectado ou desconectado
Preciso de conexão com outros? 
O aplicativo precisa de conexão permanente para ser executado?
Javascript, C#.NET, Java, WCF, Servidor Web
	O aplicativo só funciona através de uma página web?
	O aplicativo precisa da rede, mas deve ser instalado ?
Serviços Rest, JSON, WCF
O aplicativo não precisa se conectar e funciona na área de trabalho?
C#.NET ou Java 
Tecnologias
O aplicativo precisa interagir com outros aplicativos?
Java, C#.NET, WCF, Serviços REST
O aplicativo trabalha com componentes eletrônicos ou robóticos?
Arduino 
O que usamos?
O que escolhem os programadores?
HTML, CSS, Javascript, Adobe Air, Java, C++, C#.NET, WPF, WCF, Serviços Rest, Windows Phone SDK, IOS SDK, Android SDK, Unity, SQL, PHP
O que vamos ensinar nesse curso?
HTML, CSS, Javascript, jQuery, C#, SQL, LINQ, Serviços Rest
Não é necessário aprender todas as linguagens de programação que existem ao mesmo tempo. É suficiente entender para que servem e usar a mais conveniente.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando