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