Oportunidades acadêmicas para estudantes de tecnologia do Espírito Santo

Todos jovens estão em busca de oportunidades, aliás, boas oportunidades. A Microsoft oferece uma série dessas oportunidades para quem é estudante de tecnologia. Eu tenho levado informações como esta para as universidades de todo o Brasil desde que eu era um Student Ambassador da Microsoft e o universo acadêmico era a minha maior atuação.

Temos desde Office de graça, a cursos de graça, incentivo para a primeira empresa (startup) e outras coisas. Eu costumo dizer que só precisa de duas coisas antes disso tudo: tempo e vontade.

img_0311-2

Fui convidado pela MultiVix para falar de oportunidades acadêmicas e aproveitei e também de desenvolvimento de software para estudantes da cidade de Cachoeiro do Itapemirim, interior do estado do Espírito Santo. Uma oportunidade bacana para levar um pouco disso tudo, falar de carreira de tecnologia, do direcionamento, atitudes e objetivos.

Fiquei bastante feliz de ouvir o feedback que falaram no final.
Sai de lá com o sentimento que fiz por valer.

É isso. Até!

10 Coisas que todo desenvolvedor .NET deveria saber

Algumas pessoas sempre me perguntam o que é preciso saber para ser um desenvolvedor .NET. Confesso que não gosto de falar aquela resposta padrão: “basta ter lógica de programação”, mas também acabo não respondendo com exatidão e então resolvi criar um artigo para que toda vez que me perguntarem eu direcionar para este post.

A lista abaixo é simples e básica. Mas são perguntas que geralmente são feitas em entrevistas de emprego e que nem sempre são respondidas como devem ser.

Para alinharmos, levantei alguns tópicos que são essenciais. Assim como um jogador de futebol tem que chutar e cabecear para ser um jogador, um desenvolvedor .NET* precisa saber no mínimo os dez itens abaixo (* estou abstraindo o skill de software developer, que está contido aqui, mas é um pouco maior). Vamos lá:

#1 Conceitos de Orientação a Objetos (OOP)

Sim. Os conceitos. O desenvolvedor .NET deve pelo menos ser capaz de explicar os principais conceitos de OOP em uma maneira muito simples. Estas são habilidades básicas e se tiver alguma dificuldade é bom parar por aqui, reforçar e consolidar esta fase. No site da MSDN tem um conteúdo legal.

#2 Princípios SOLID

Os princípios do SOLID, criado pelo Robert Martin (Uncle Bob), são diretrizes que podem ser aplicadas ao codificar para evitar ou refatorar o que o Martin Fowler chama de code smell. Ou seja, algo que indica que tem um problema ou não está legal no código.

SOLID exige que você seja bem resolvido com o #1 que acabamos de falar.

O Shivprasad Koirala, MVP da Índia, escreveu o artigo SOLID architecture principles using simple C# que deixa explica bem cada letra do acrônimo SOLID utilizando C#.

#3 JavaScript, jQuery, C# e ASP.NET

Estes quatro itens estão no eixo principal do conhecimento do desenvolvedor .NET (exceto em algumas exceções (neste ponto) onde o ASP.NET não está incluso, como no desenvolvimento de aplicações Windows Client, Phone Apps, Games, Serviços entre outros)

Os desenvolvedores não podem saber apenas C# e SQL. Só isto já não mais basta. Hoje é exigido bem mais, como trivial HTML e CSS e outras linguagens e frameworks como AngularJS, RequiredJs, NodeJs, KnockoutJS, etc. E para javaScript, em questão, é preciso saber basicamente a escrever o código JS que os patterns como Module e Closure vão te ajudar demais.

#4 Garbage Collector e IDisposable

Uma das melhores características de desenvolvimento .NET é a falta de esforço e preocupação para destruir instâncias de objetos, cancelar assinatura de eventos, fechar fluxos, etc. Geralmente você deixa isto para o Garbage Collector, que “tudo fica bem”. Muitos developers não se preocupam, ou nunca analisaram o 1º,2º ou 3º ciclo de coleta do gen. Atitudes como podem gerar catastrofes no seu código como o conhecido Memory leaks. Parece que a preocupação com o controle de memória praticamente não há com desenvolvedor atual. É importante saber como funciona.

Uma maneira útil de garantir que os recursos gerenciados estão corretamente limpo em tempo hábil é implementar a interface IDisposable em seus objetos. Entenda mais e veja como controlar isto nos links abaixo:

#5 Box e UnBoxing

Ainda falando sobre memória e performance, este é um problema tratado deste o .NET 2.0 e que até hoje vários desenvolvedores não entendem box e unboxing e acabam afetando o desempenho e uso de memória do software.

#6 Tipo por referência e tipos por valor

Quando um recrutador lhe pede para explicar este problema de box/unboxing, eles também podem te pedir para explicar a diferença entre os reference types e os value types. O tipo de valor pode ser considerado como o valor real de um objeto, enquanto um tipo de referência, tipicamente, contém o endereço do valor real, ou nulo.

#7 Diferença entre MVC e WebForms

Também é um passo base. É importante saber a diferença, benefícios e contras que cada um possui mesmo que o resultado possa ser “semelhante” a princípio. O que na verdade não é!

O webforms tem uma maneira bem direta e simples no desenvolvimento, mas é bem difícil controlar a interface como é possível obter usando MVC utilizando JavaScript e o CSS. E isto é fundamental quando está desenvolvendo aplicações ricas e inteligentes.

Rolou uma discussão boa desse assunto no Programmers Stack Exchange e você pode acompanhar um pouco lá.

Vale também entender o ASP.NET SPA no meio disso tudo também.

#8 Banco de Dados SQL, Oracle e No-SQL

SQL Server e Oracle são essenciais, mas não são os “fazem tudo” de qualquer cenário. É hora de acordar e observar que vários outros cenários podem ser atendidos com bancos No-SQL.

Os bancos de dados No-SQL estão ganhando força enorme por causa de sua velocidade geral, facilidade de uso e benefícios de escalabilidade. Existem vários. Mas os mais conhecidos são:

#9 Visual Studio IDE

Atalhos, Plugins de terceiros, NuGet, etc. Conhecer as teclas de atalho faz toda diferença, pois você imageganha velocidade na execução das tarefas. Trabalhar com plugins certos como o PowerTools, TestDriven, Web Essentials, entre outros.

imageHá vários apaixonados pelo ReSharper, tanto que se desinstalar da máquina já não consegue fazer mais nada. Por isto eu recomendo instalar este plugin apenas depois que estiver bem seguro ou familiarizado com o desenvolvimento C#.

#10 Reference Source – O código fonte do .NET Framework

Bom, o reference source é o código fonte do .NET Framework disponível para consulta. Dai você pode falar: “mas pra que eu preciso do código fonte?”.

A resposta é que você pode aprender muito mais do .NET vendo como o código foi escrito, como ele funciona e como ele se comporta. Esta curiosidade de ver o código precisa ser uma constante.

Pode ser acessado pelo endereço http://referencesource.microsoft.com


O Scott Hanselman escreveu uma lista em 2005 (claro que está obsoleta), mas tem algumas coisas relevantes que não citei como por exemplo Reflection, diferença entre Orientação a Interface x Orientação a Objetos x Orientação a Aspectos. Atualizando, poderia citar muitas outras coisas como o próprio LINQ, Delegates, Generics, usar o Nuget, fazer deploy em nuvem. entre outras coisas de base.

Particularmente, eu posso dizer que se você se sentiu pouco seguro em alguns dos tópicos acima reserve um tempo na sua agenda e corra atrás para estudar, tirar dúvidas e treinar. Principalmente se você pretende trabalhar em boas empresas ou nos USA onde os processos seletivos exigem bem esta base sólida.

Para encerrarmos por aqui, deixo uma boa dica de leitura para complementar o conteúdo: The 4 Most Important Skills for a Software Developer.

Quer completar? Ficou algo de fora?
Vamos lá.. Nos ajude a completar…

Abraço!

Finalizado mais um treinamento de C# 4.0

Fui convidado pela LG Sistemas, para ministrar o treinamento de C# para a turma do LG Formando Talentos. É uma nobre iniciativa da empresa dentro do mercado, onde já se formaram mais de 220 alunos deste 2005. O Programa LG Formando Talentos é uma iniciativa da LG Sistemas, que visa oferecer um curso de qualificação para formar pessoas da comunidade de software. Além de receberem essa formação, os alunos têm a oportunidade de fazer parte do quadro de colaboradores da LG.

fototurma_02_a

Aprovados para o próximo módulo

Neste módulo foram 40 horas de treinamento, contando com avaliações através de exercícios, trabalho final e prova.
Não teve moleza.. E essa turma se saiu muito bem!

Fico feliz de poder fazer parte do programa Formando Talentos da LG e ao mesmo tempo contribuir com a evolução na carreira de cada um.

Uma honra.

Palestra para empresas parceiras Microsoft

A convite da Alessandra Tavares da Microsoft, apresentei uma palestra de carreiras e certificações em tecnologia Microsoft para as empresas Partner em GO. Eu falei do lado dos desenvolvedores e o Álvaro Rezende apresentou o lado dos profissionais de Infraestrutura.

168614_10150092804318919_354177868918_6211162_1374898_n  180238_10150092804438919_354177868918_6211165_4778220_n
179246_10150092807653919_354177868918_6211218_6875099_n
  164818_10150092803443919_354177868918_6211157_5174543_n

Abaixo o slide que usei na apresentação gentilmente cedido pea Sara Silva da comunidade netponto de Lisboa.

Circuito de Palestras Acadêmica–Carreira Microsoft

Realizamos uma ação em três faculdades em Goiânia para levar aos alunos um pouco da visão do mercado e da comunidades Microsoft.

Eu, o Álvaro Rezende e a Sara Basbosa, estivemos na faculdade SENAC-GO, UNIFAN, UNIP e UNIVERSO. O tema foi: Carreiras e oportunidades Microsoft para o futuro profissional.

Na sequência de palestras a Sara apresentou os programas acadêmicos, comunidades, grupos de usuários, TechNet e MSDN em seguida Álvaro falou sobre certificações para ITPro’s e eu falei sobre carreira para desenvolvedores .NET.

DSC07310 DSC07320 DSC07290

A apresentação usada você pode vê-la aqui:

Se você é aluno de TI em Goiás e deseja levar os eventos da Microsoft para sua faculdade me siga no twitter e fale comigo ou entre em contato comigo.

Abraço!