Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma...

40
Tudo o que Você Sempre Quis Saber Sobre Linguagens de Programação* (*Mas Tinha Medo de Perguntar) Diego Padilha Rubert FACOM

Transcript of Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma...

Tudo o que Você Sempre Quis Saber Sobre Linguagens de Programação* (*Mas Tinha Medo de Perguntar)

Diego Padilha RubertFACOM

Diego Rubert Linguagens de Programação 2/40

Por quê?

● O aprendizado em Algoritmos e Programação visa lógica de programação e estruturas de dados

● No mercado de TI diversas linguagens são utilizadas

● Conhecendo uma linguagem, é fácil aprender outras

● Algumas você pode aprender na FACOM

Diego Rubert Linguagens de Programação 3/40

Antes de começar...

Qual a melhor linguagem de programação?

Diego Rubert Linguagens de Programação 4/40

Antes de começar...

Diferentes linguagens para diferentes propósitos

Diego Rubert Linguagens de Programação 5/40

Antes de começar...

● Veremos linguagens:

– Compiladas

– Compiladas para uma VM

– Interpretadas

Diego Rubert Linguagens de Programação 6/40

C

● Popular em sistemas operacionais e aplicações embarcadas

● Muito utilizada em “programação científica”

● Boa base para programação

● Disciplinas: Algoritmos de Programação I e II *

Diego Rubert Linguagens de Programação 7/40

C++

● Comum em muitos aplicativos do Linux (Firefox) e Jogos

● Não inclui bibliotecas como rede e interface gráfica

● Também é utilizada em “programação científica”

● Como C, porém orientada a objetos e mais flexível

● Disciplina: Estruturas de Dados e Programação *

● Referência: cppreference.com

Diego Rubert Linguagens de Programação 8/40

Java

● Linguagem OO multiplataforma (JVM)

● Sintaxe semelhante ao C/C++

● Inclui bibliotecas para interface, rede, banco de dados...

● Utilizada em aplicações desktop, web (jsf) e móveis!

Diego Rubert Linguagens de Programação 9/40

Java

● Possui frameworks para web (VRaptor), persistência (Hibernate), testes (JUnit), ...

● Disciplinas: Linguagem de Programação OO Estruturas de Dados e Programação OO

Programação para a Web Algoritmos e Programação I e II *

Diego Rubert Linguagens de Programação 10/40

C#

● Utilizada em aplicativos para Windows e Web (.NET)

● Sintaxe muito semelhante ao Java

● Framework com ferramentas muito poderosas e grande quantidade de bibliotecas nativas

● Principal ferramenta de desenvolvimento (Visual Studio) pode ser obtida pelos estudantes da FACOM através do convênio com a Microsoft (DreamSpark)

Diego Rubert Linguagens de Programação 11/40

C#

● Por onde começar: - MSDN - Rede do desenvolvedor da Microsoft: fóruns, tutoriais, etc. - C# à partir do Java

Diego Rubert Linguagens de Programação 12/40

Objective-C

● Linguagem OO de propósito geral para OS X e iOS

● Superconjunto da linguagem C, orientada à objetos

Diego Rubert Linguagens de Programação 13/40

Objective-C

● Por onde começar:

– Necessita um Mac com Xcode, ambiente completo para código, interface, testes...

– Centro de desenvolvedores Apple (em inglês) developer.apple.com

Diego Rubert Linguagens de Programação 14/40

PHP

● Muito popular entre desenvolvedores web

● Para desenvolvimento de sistemas e geração de páginas dinâmicas (é executada no servidor web)

● Sintaxe semelhanteao C/C++

● Tipagem dinâmica

Diego Rubert Linguagens de Programação 15/40

PHP

● Pode ser utilizado com orientação à objetos

● Possui frameworks robustos: Zend, CakePHP, Symfony

● Utilizado pelo Wordpress, Facebook e 200 milhões+ de sites

● Disciplina: Programação para a Web

● Por onde começar:

– Instale um servidor web apache com php

– http://php.net/manual/pt_BR/getting-started.php

Diego Rubert Linguagens de Programação 16/40

JavaScript

● Não tem relação com Java, exceto pela sintaxe

● Linguagem de scripts para navegadores *

● Suporta orientação à objetos

● Tipagem dinâmica

● Páginas dinâmicas semrecarregar e AJAX (jQuery)

Diego Rubert Linguagens de Programação 17/40

JavaScript

● Disciplina: Programação para a Web

● Por onde começar:

– developer.mozilla.org/pt-BR/learn/javascript(também HTML e CSS)

– w3schools.com (também HTML, CSS, PHP, SQL e Jquery)

– Jquery:codecademy.com/pt-BR/courses/web-beginner-pt-BR-h1pzb(também HTML, Ruby e Python)

Diego Rubert Linguagens de Programação 18/40

JavaScript

Diego Rubert Linguagens de Programação 19/40

JavaScript

Diego Rubert Linguagens de Programação 20/40

Assembly

● Linguagem de baixo nível, determina diretamente as instruções de máquina

● Situações onde é preciso um binário enxuto, mas não estão disponíveis bibliotecas compartilhadas

● Boot de sistemas operacionais

● Firmwares e sensores

● Drivers de dispositivos

Diego Rubert Linguagens de Programação 21/40

Assembly

● Análise de binários (engenharia reversa) e vulnerabilidades

● Diversas outrassituações específicas

● Disciplina: Linguagemde Montagem

Diego Rubert Linguagens de Programação 22/40

Python

● Linguagem fácil para iniciantes:

– Legibilidade

– Sintaxe compacta● Tipagem dinâmica

● Conjunto extenso de bibliotecas padrão

● Para scripts, aplicações dektop, web, móveis

● Utilizado por: Instagram, Google, Yahoo!, NASA...

Diego Rubert Linguagens de Programação 23/40

Python

Diego Rubert Linguagens de Programação 24/40

Python

● Framework web Django (Instagram, Mozilla, OpenStack)

● Plone CMS (governo federal,caixa, science.nasa.gov,fbi.gov, ...)

Diego Rubert Linguagens de Programação 25/40

Python

● Aplicações:

– Blender 3D

– OpenStack● Scripts

Diego Rubert Linguagens de Programação 26/40

Python

● Por onde começar:

– Instale o python com console:python.org/download

– Experimente no console

– codecademy.com/pt-BR/tracks/python

– codecademy.com/pt-BR/courses/lang/python

Diego Rubert Linguagens de Programação 27/40

Python

● Por onde começar:

– pythontutor.com

Diego Rubert Linguagens de Programação 28/40

Python

● Por onde começar:

– Luiz Eduardo Borges: Python para desenvolvedoresark4n.wordpress.com/python

– PET-Tele/Univ. Fed. Fluminense → Apostila de Pythonwww.telecom.uff.br/pet/petws/?pagina=downloads/apostilas

Diego Rubert Linguagens de Programação 29/40

Ruby

● Linguagem amigável para iniciantes

● Bastante utilizada em scriptse sites (Ruby on Rails)

● Tipagem dinâmica

● Orientada a objetos(TUDO é um objeto,como em Python)

Diego Rubert Linguagens de Programação 30/40

Ruby

Diego Rubert Linguagens de Programação 31/40

Ruby

● Ruby on Rails:

– Framework para aplicações web

– Twitter, Scribd, GitHub, Portal Educação, …● Por onde começar:

– Baixe em rubyinstaller.org (e experimente no irb)

– codecademy.com/pt-BR/tracks/ruby

– codecademy.com/pt-BR/courses/lang/ruby

Diego Rubert Linguagens de Programação 32/40

Bash

● Um dos dialetos do shell (sh)

● Muito utilizada em estações/servidores Linux

● Linguagem de scripts (sistemas UNIX):

– Backup

– Simplificar comandos

– Automatização de tarefas em geral

Diego Rubert Linguagens de Programação 33/40

Bash

● Possui:

– Estruturas condicionais (if, elif, else, case)

– Estruturas de repetição (for, while, until)

– Funções

– Vetores

– Operações aritméticas

– Substituição em strings

Diego Rubert Linguagens de Programação 34/40

Bash

Diego Rubert Linguagens de Programação 35/40

Bash

Diego Rubert Linguagens de Programação 36/40

Bash

● Dialog, GDialog, Kdialog, Zenity, …

kdialog --title "Meu script" --msgbox "Essa é uma mensagem de teste, ok?"

Diego Rubert Linguagens de Programação 37/40

Bash

● Por onde começar:

– Aprender a utilizar comandos desejados

– Introdução ao Shell Script (Aurélio Marinho Jargas)

– aurelio.net/shell

– Livro “Shell Script Profissional”● Referências úteis:

– Canivete Suíço do Shell (Bash)

Diego Rubert Linguagens de Programação 38/40

Sites interessantes

● codecademy.com/learn

Diego Rubert Linguagens de Programação 39/40

Sites interessantes

● pythontutor.com

Diego Rubert Linguagens de Programação 40/40

Fim

Perguntas?