Tinha Medo de Perguntar

Propaganda
Tudo o que Você Sempre Quis Saber Sobre Linguagens
de Programação* (*Mas Tinha Medo de Perguntar)
Diego Padilha Rubert
FACOM
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
2/40
Antes de começar...
Qual a melhor linguagem de
programação?
Diego Rubert
Linguagens de Programação
3/40
Antes de começar...
Diferentes linguagens para diferentes propósitos
Diego Rubert
Linguagens de Programação
4/40
Antes de começar...
●
Veremos linguagens:
–
Compiladas
–
Compiladas para uma VM
–
Interpretadas
Diego Rubert
Linguagens de Programação
5/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
6/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
7/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
8/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
9/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
10/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
11/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
12/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
13/40
PHP
●
●
●
●
Muito popular entre desenvolvedores web
Para desenvolvimento de sistemas e geração de
páginas dinâmicas (é executada no servidor web)
Sintaxe semelhante
ao C/C++
Tipagem dinâmica
Diego Rubert
Linguagens de Programação
14/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
15/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 sem
recarregar e AJAX (jQuery)
Diego Rubert
Linguagens de Programação
16/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
17/40
JavaScript
Diego Rubert
Linguagens de Programação
18/40
JavaScript
Diego Rubert
Linguagens de Programação
19/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
20/40
Assembly
●
●
●
Análise de binários (engenharia reversa) e
vulnerabilidades
Diversas outras
situações específicas
Disciplina: Linguagem
de Montagem
Diego Rubert
Linguagens de Programação
21/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
22/40
Python
Diego Rubert
Linguagens de Programação
23/40
Python
●
●
Framework web Django (Instagram, Mozilla, OpenStack)
Plone CMS (governo federal,
caixa, science.nasa.gov,
fbi.gov, ...)
Diego Rubert
Linguagens de Programação
24/40
Python
●
●
Aplicações:
–
Blender 3D
–
OpenStack
Scripts
Diego Rubert
Linguagens de Programação
25/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
26/40
Python
●
Por onde começar:
–
pythontutor.com
Diego Rubert
Linguagens de Programação
27/40
Python
●
Por onde começar:
–
Luiz Eduardo Borges: Python para desenvolvedores
ark4n.wordpress.com/python
–
PET-Tele/Univ. Fed. Fluminense → Apostila de Python
www.telecom.uff.br/pet/petws/?pagina=downloads/apostilas
Diego Rubert
Linguagens de Programação
28/40
Ruby
●
●
●
●
Linguagem amigável para iniciantes
Bastante utilizada em scripts
e sites (Ruby on Rails)
Tipagem dinâmica
Orientada a objetos
(TUDO é um objeto,
como em Python)
Diego Rubert
Linguagens de Programação
29/40
Ruby
Diego Rubert
Linguagens de Programação
30/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
31/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
32/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
33/40
Bash
Diego Rubert
Linguagens de Programação
34/40
Bash
Diego Rubert
Linguagens de Programação
35/40
Bash
●
Dialog, GDialog, Kdialog, Zenity, …
kdialog --title "Meu script" --msgbox
"Essa é uma mensagem de teste, ok?"
Diego Rubert
Linguagens de Programação
36/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
37/40
Sites interessantes
●
codecademy.com/learn
Diego Rubert
Linguagens de Programação
38/40
Sites interessantes
●
pythontutor.com
Diego Rubert
Linguagens de Programação
39/40
Fim
Perguntas?
Diego Rubert
Linguagens de Programação
40/40
Download