diego padilha rubert facomdiego/arquivos/linguagens de programação.pdf · conhecendo uma...
TRANSCRIPT
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 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 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 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 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 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