O que não aprendi na UNIFEI - programação

Discalimer

É difícil fazer afirmações que não envolvam política e economia nesa palestra.

Discalimer

Todos podem discordar ou concordar do que será dito.

Apenas pedirei um favor: Dêem-me alguma credibilidade pelos próximos 60 minutos.

Comecei minha carreira aqui na UNIFEI, tal qual muitos de vocês.

Hi! @hannelita

  • Computer Engineer
  • Programming
  • Electronics
  • Math <3 <3
  • Physics
  • Lego
  • Meetups
  • Animals
  • Coffee
  • GIFs
  • Pokémon

Agenda

  • Possíveis áreas de atuação
  • UNIFEI - expectativa de matérias vs realidade
  • Conheça os jargões da área
  • Fight
  • Mais áreas de atuação
  • Grandes mentes da área de programação - 2016
  • Bônus - o mercado de software no exterior
  • Bônus - Dicas para aprender novas tecnologias

Gostaria de iniciar com uma afirmação:

"Nós somos tecnicamente muito bons. Mesmo."

Mas há muitas coisas que não aprendemos na Universidade

Uma das vantagens de um título de bacharel é que podemos ir da parte técnica à arquitetura

Possíveis áreas de atuação

Gerenciamento

Web

Mobile

UX/UI

Infra

Vendas

Negócios

Especificações

Hardware

Possíveis áreas de atuação

Gerenciamento

Web

Mobile

UX/UI

Infra

Vendas

Negócios

Especificações

Hardware

Você se sente preparado(a) para alguma delas?

Agenda

  • Possíveis áreas de atuação
  • UNIFEI - expectativa de matérias vs realidade
  • Conheça os jargões da área
  • Fight
  • Mais áreas de atuação
  • Grandes mentes da área de programação - 2016
  • Bônus - o mercado de software no exterior
  • Bônus - Dicas para aprender novas tecnologias

Expectativa

Realidade

Não se desmotive, há solução!

É importante entender como as principais empresas funcionam.

Set de ferramentas básicas - pequenas e médias empresas

Você no primeiro emprego

Como obtenho o código fonte para trabalhar?

Como obtenho o código fonte para trabalhar?

Git (mais comum) ou CVS ou SVN

O que preciso fazer?

O que preciso fazer?

Lista de tarefas - JIRA ou Pivotal Tracker

Como o projeto funciona?

Como o projeto funciona?

Wiki ou README.

Agenda

  • Possíveis áreas de atuação
  • UNIFEI - expectativa de matérias vs realidade
  • Conheça os jargões da área
  • Fight
  • Mais áreas de atuação
  • Grandes mentes da área de programação - 2016
  • Bônus - o mercado de software no exterior
  • Bônus - Dicas para aprender novas tecnologias

Web

Qual linguagem?

Backend ou Frontend?

Frameworks?

Quantos usuários acessam o sistema?

Qual(ais) bancos de dados?

Testes automatizados?

Continuous Integration (CI)?

Ambiente de produção?

Web - Conheça o Jargão - backend

PHP - Cake, Zend, Laravel, XAmpp, Joomla!

Ruby - Rails, bundler, Sinatra, gems famosas, vim, rspec, devise,

capybara, RVM, PhantomJS, Unicorn, Puma, JRuby, Heroku

Python - Django, Pypy, SciPy, pandas

Java - Spring, JSF, Hibernate, JMS, Wildfly, JVM, JBoss, Webshpere, Weblogic, Maven, Gradle, Ant, Eclipse, IntelliJIDea

Outras linguagens

Scala - Play Framework

Groovy - Gradle

C# - VisualStudio, Entity Framework, .NET

Web - Conheça o Jargão - frontend

CSS - Bootstrap, Foundation, Bourbon, Grid

Javascript - Angular, React, Backbone e muitas (muitas) bibliotecas

Outros conceitos

Responsividade, layout, wireframe, UX, UI, PaaS (Heroku, Azure), IaaS (Amazon), Jenkins, TravisCI

UX/UI

Quais ferramentas de Wireframe?

Quais ferramentas de layout?

Como exportar os assets?

Onde armazenar o layout?

Acessibilidade

UX/UI - Conheça o Jargão

Photoshop, Illustrator, Adobe, assets, testes de acessibilidade, a11y, responsividade, app nativo

Mobile

Quais plataformas?

Games?

Apps nativos

Ferramentas e IDEs?

Quais versões de SO?

Como publicar?

UX/UI - Conheça o Jargão

iOS - Apple, XCode, TestFlight, AppCode, CocoaPods, Swift, ObjectiveC

Android - Java, Eclipse, AndroidStudio

Outros conceitos

PhoneGap, Unity, Responsividade, WindowsPhone

Infra

Cloud?

Banco?

Rede?

Virtualização?

Container?

SO?

Infra - Conheça o Jargão

Docker, Mesos, PaaS, Heroku, AWS, Azure, UniKernel, Kubernetes

Bancos: Relacional - Postgres, Oracle, MySQL, SQLServer; Não relacional: Redis, MongoDB, Cassandra, Neo4j, HBase

SOs: Administração de Linux / Windows, desenvolvimento de drivers

Hardware

IoT

Plataforma

Limitações

Expansão

Hardware - Conheça o Jargão

Arduino, RaspberryPi, ARM, REST, MQTT

Você não precisa saber tudo isso.

Quais desses nomes vocês viram em aula?

Quanto mais você souber sobre os itens anteriores, melhores serão suas condições de atuar como arquiteto(a) de software

Por favor, esqueça Waterfall. O modelo de fábrica de software está em decadência.

Especificações (Arquitetura)

Qual o tamanho estimado do time?

Restrições de Business

Escalabilidade

Mantendo-se no budget

Tecnologias de ponta 

Cases de Sucesso

Arquitetura - Conheça o Jargão

Microservices, containers, REST, PubSub, Event Stream, Assíncrono, Mensageria, Design Patterns, SOA, Protocolos

 

Agenda

  • Possíveis áreas de atuação
  • UNIFEI - expectativa de matérias vs realidade
  • Conheça os jargões da área
  • Fight
  • Mais áreas de atuação
  • Grandes mentes da área de programação - 2016
  • Bônus - o mercado de software no exterior
  • Bônus - Dicas para aprender novas tecnologias

Startups vs Multinacionais

Produto vs Consultoria

PJ vs CLT

Não há mais nenhuma área para se atuar?

Agenda

  • Possíveis áreas de atuação
  • UNIFEI - expectativa de matérias vs realidade
  • Conheça os jargões da área
  • Fight
  • Mais áreas de atuação
  • Grandes mentes da área de programação - 2016
  • Bônus - o mercado de software no exterior
  • Bônus - Dicas para aprender novas tecnologias

Mais áreas de atuação

Gerenciamento

Web

Mobile

UX/UI

Infra

Vendas

Negócios

Especificações

Hardware

Mais áreas de atuação

Gerenciamento

Web

Mobile

UX/UI

Infra

Vendas

Negócios

Especificações

Hardware

Games

Dados

Games

Unity, Unreal, Game Engines, Modelagem (Maya, Blender, ZBrush), Animação 3D

Dados

"Big Data", Spark, Hadoop, HBase, Pig, Hive, Cassandra, NoSQL, Redis, MapReduce, Mahout, Machine Learning

Experiência é compreender qual a tecnologia mais adequada para um cenário

O que a UNIFEI tentou me ensinar?

  •  Desafios de programação (maratona)
  • Robôs (Uai!rrior)
  • Alguns frameworks (Hibernate)
  • Básico de C, C++ e Java
  • Debug

Tópicos que aprendi na UNIFEI

Mais áreas de atuação

Gerenciamento

Web

Mobile

UX/UI

Infra

Vendas

Negócios

Especificações

Hardware

Games

Dados

Otimização e Algoritmos

Professor

O que os programadores mais experientes do mundo estão fazendo?

Agenda

  • Possíveis áreas de atuação
  • UNIFEI - expectativa de matérias vs realidade
  • Conheça os jargões da área
  • Fight
  • Mais áreas de atuação
  • Grandes mentes da área de programação - 2016
  • Bônus - o mercado de software no exterior
  • Bônus - Dicas para aprender novas tecnologias

OpenSource: Criação de ferramentas para outros desenvolvedores

Projetos com arquiteturas totalmente novas

Ponte entre academia e indústria

Teoria dos grafos, Teoria dos Tipos, unificando matemática e computação, otimização de problemas

O mercado para essas vagas é mais escasso.

Mas todos podem contribuir com Open Source.

E isso pode ser decisivo em sua carreira

Bônus: O mercado de software no exterior

Bônus: Dicas para aprender novas tecnologias

Eventos

Github

Coursera / edx

Redes sociais (Twitter, LinkedIn)

Há muito para se falar sobre esse tema

A principal skill que o mercado me cobra é:

Aprender rápido

E as provas da UNIFEI nos ensinam muito bem esse tópico

become@codeminer42.com

Ruby - Rails, bundler, Sinatra, gems famosas, vim, rspec, devise,

capybara, RVM, PhantomJS, Unicorn, Puma, JRuby, Heroku

CSS - Bootstrap, Foundation, Bourbon, Grid

Javascript - Angular, React, Backbone e muitas (muitas) bibliotecas

Obrigada :)

Perguntas?

 

hannelita@gmail.com

@hannelita