Na manhã de ontem (29/10), tive a oportunidade de participar de mais uma etapa do que a Microsoft chamou de Microsoft Insights Week. O Insights Week foi um evento maior que agrupou uma série de eventos, dentre eles o TechEd (evento do qual falamos em outro post recentemente) e o encontro de estudantes, influenciadores e alguns outros profissionais com o CEO da empresa, Satya Nadella na Universidade Anhembi Morumbi, em SP.
Figura 1. Satya no palco da Anhembi Morumbi
Além da presença super aguardada do CEO, foi muito bacana ver a Microsoft falando sobre como estudantes podem iniciar seus estudos e carreiras como desenvolvedores de software utilizando sua plataforma. Nesse contexto, várias iniciativas foram apresentadas e, junto com alguns outros fatos que pude perceber ao longo dos anos, acabaram inspirando a escrita deste post. Não pretendo mostrar apenas “por onde começar com tecnologias Microsoft” mas principalmente, discutir também o “por que começar por aqui”.
Cenário atual
Se você acompanha este site, deve saber que um bom período de minha vida profissional foi dedicado a área acadêmica como docente de cursos de graduação.
Após concluir meu curso de graduação integral em Ciência da Computação, resolvi emendar em um programa de mestrado da Universidade de São Paulo (USP). O incentivo para enveredar por este caminho foram os 3 trabalhos de iniciação científica (IC) que tive a oportunidade de desenvolver e que me encorajaram a produzir minhas três primeiras publicações oficiais (em revistas técnicas especializadas da IEEE). Paralelamente ao mestrado, iniciei minhas atividades como docente em duas universidades. Sempre trabalhando com disciplinas de desenvolvimento de software em cursos de tecnologia.
Mencionei um pouco da minha história pra contextualizar a argumentação a seguir. Como aluno de graduação (note, momento em que eu estava sendo moldado para o mercado) nunca fui apresentado à tecnologias Microsoft. Invariavelmente, quando uma nova atividade de desenvolvimento era proposta (trabalho, IC, etc.) em uma disciplina específica ou de forma geral, as tecnologias escolhidas eram sempre: Java, PHP, C/C++, Delphi/Kylix (acreditem se quiser), MySQL, etc. Tudo sempre rodando sobre Linux.
Depois, como professor, por conta de políticas das universidades nas quais trabalhei, era forçado a ensinar Orientação a Objetos, por exemplo, utilizando Java como linguagem de apoio. Era obrigado a ensinar conceitos de Bancos de Dados utilizando MySQL ou Postgree como ambientes relacionais de dados de apoio. Na disciplina de Sistemas Operacionais, era obrigado a cobrar trabalhos em C/C++ e assim por diante. Sempre usando Linux.
Depois, no mestrado, toda a pesquisa desenvolvida era novamente materializada sobre Java, C/C++, PHP e MySQL, mesmo que estas não fossem as ideais para certos tipos de experimentos.
O mais interessante é notar que este cenário é a realidade para pelo menos 90% das instituições de ensino superior no país. Aí a pergunta que fica é: por que? Por que escolas técnicas e universidades simplesmente ignoram todo o ferramental (muito bom é importante que se diga) exclusivo para instituições de ensino e disponibilizado gratuitamente pela Microsoft? E o que mais me intriga ainda hoje é pensar no por que estas instituições fazem dessa maneira sabendo que o mercado “pede” por profissionais especializados em tecnologias Microsoft (assim como também pede Java). Por que não colocar as plataformas lado a lado durante todo o curso e deixar que o aluno vá para o lado que melhor lhe convier?
Empiricamente cheguei a algumas conclusões. Estas são convicções minhas e de maneira alguma pretendem se tornar uma verdade absoluta ok? We are just thinking about. Vou colocar os argumentos que tenho costumeiramente ouvido de professores e instituições e na sequência, minhas convicções em relação aos mesmos.
1. O custo do licenciamento de produtos Microsoft inviabiliza o uso na instituição.
No passado isso pode ter sido verdade mas hoje, já não é. Felizmente a Microsoft entende hoje que instituições de ensino (IE) precisam de um modelo diferenciado de licenciamento, haja vista a alta rotatividade de alunos/profissionais e o elevado número de dispositivos que as mesmas podem possuir. Atualmente existem programas de gratuidade para IE’s que queiram utilizar software Microsoft. É o caso do Office 365 para educação, por exemplo. A Microsoft “doa” utilização de O365 com todos os seus recursos para IE’s. As IE’s só precisam querer.
Além disso, existem os planos especiais de licenciamento para IE’s. O link abaixo fornece mais informações de acordo o tamanho e tipo da IE.
Falando especificamente para o aluno, existem diversas formas através das quais ele pode ser iniciado no universo de desenvolvimento de aplicações com ferramentas Microsoft. Vou citar algumas aqui.
- Banco de dados: Se o aluno quer/precisa ser iniciado com banco de dados, por exemplo, ele pode baixar e utilizar gratuitamente o SQL Server Express Edition (que suporta bancos com até 10 GB de tamanho e disponibiliza todos os recursos básicos fundamentais de um banco de dados). Uma excelente porta de entrada para que este futuro profissional possa trabalhar em ambientes de dados mais complexos baseados em SQL Server mais adiante em sua carreira.
- Desenvolvimento desktop, mobile ou outro: há alguns meses a Microsoft disponibilizava versões “Express” de sua principal IDE de desenvolvimento – o Visual Studio. Se você quisesse desenvolver por exemplo, uma aplicação web, você precisaria baixar o Visual Studio Web Express e lá vinha empacotado todos os recursos para este fim. Agora, a Microsoft unificou todas as experiências de desenvolvimento, colocou em um ambiente único e gratuito chamado Visual Studio Community Edition. É o mesmo que o antigo Visual Studio Professional (que era pago) agora de graça para times de até 5 pessoas. Acabou a desculpa.
- Desenvolvimento web: se você gosta e quer continuar trabalhando com PHP, Ruby, etc., a Microsoft entrega gratuitamente uma ferramenta chamada Webmatrix. Com ela você poderá dar manutenção em sites baseados em WordPress (qualquer outra engine de PHP), Ruby, etc. Vale a pena dar uma olhada.
- Dream Spark: toda a suíte de softwares da Microsoft (incluindo versões do Windows e do Office) disponíveis gratuitamente.
Resumindo: ao meu ver, essa história de que era muito caro ter produtos Microsoft e por isso não se iniciava com eles pode até ter colado no passado mas hoje, não cola mais.
2. O professor não sabe mexer com Microsoft então, vai o que ele sabe mesmo…
Isso realmente acontece. Nem todos os professores de instituições de ensino superior (IES’s) dominam tecnologias Microsoft. Isso não necessariamente é culpa do professor. Por certo, dele nunca foi exigido nada nesse sentido e ele preferiu se especializar naquilo que ele já conhecida tão bem.
Meu ponto aqui é: se eu tenho a consciência de que mercado pede X e Y e que portanto, eu preciso preparar meus alunos para X e Y, como posso permitir que em meu quadro de colaboradores existam apenas aqueles que entregam X e não Y? Não faz sentido. O quero dizer é que da mesma forma que professores de Java, PHP, etc. são requeridos em termos de mercado nas IE’s, professores que entendam e dominem .NET, ASP.NET, etc. também o são. Simples assim.
Existem dois caminhos que podem ser adotados pelas IE’s aqui: exigir que os mesmos docentes que entregam X também entreguem Y; Reduzir a carga de quem entrega X e trazer docentes que entregam Y. Os alunos irão agradecer e mercado de trabalho também.
3. Essa grade está montada já há tempos usando Linux, Java etc. e funciona bem. Não tem porque mudar.
O próprio argumento se contradiz. Estamos falando de cursos de tecnologia, que preparam (ou pelo menos deveriam preparar) profissionais para um mercado extremamente rápido, voraz e em que tudo se torna legado com uma velocidade impressionante. Ora, se este é o caso, o que faz uma IES pensar que uma grade de 5, 10 anos (as vezes até mais) ainda funciona?
Cursos de tecnologia deveriam ter suas grades revistas pelo menos a cada 2 anos (o ideal seria um período até menos, mas entendo que a burocracia para efetuar estas mudanças inviabiliza isso). Vemos mudanças radicais em plataformas, novos recursos sendo adicionados, novas versões de produtos e tecnologias saindo do forno o tempo todo. Vemos o mercado consumindo isso e ficamos presos na mesma grade curricular de 10 anos atrás.
Um exemplo prático dessa constatação é a ausência de disciplina(s) que trate(m) o tema “Computação em Nuvem” na maioria das grades dos cursos de tecnologia no Brasil. É inacreditável porém, real.
Pessoal, se a grade está defasada, precisamos mexer. O que não dá é pra ficar ensinando Delphi, Postgree, etc. enquanto o mercado pede Node.js, C#, MongoDB, Azure, AWS, Java, Objective-C, etc.
4. Usar Linux, Java, PHP, etc. obriga o aluno a fazer as coisas de forma mais manual. Isso é bom pra que ele aprenda.
Então, isso é uma meia verdade. Note, o problema aí não está nas tecnologias da Microsoft mas sim, na forma como os temas são passados aos alunos, certo? Por exemplo, existem várias maneiras diferentes no .NET através das quais podemos conectar uma aplicação a um banco de dados. Podemos criar uma aplicação ASP.NET webforms e dentro dela, uma estrutura correta de conexão (uma classe com métodos específicos para isso dentro de uma camada de acesso a dados desacoplada através de injeção de dependência) ou podemos usar os helpers visuais do componente “Webgrid” para conectar no banco de dados e exibir os dados desejados sem escrever uma linha de código sequer.
O ponto é: o que o professor vai ensinar? Qual o critério que ele vai usar para escolher uma das duas abordagens acima (ou outra abordagem)? Vai ensinar de acordo com o que ele sabe? De acordo com as boas práticas de desenvolvimento? Aí é que está o ponto que realmente importa.
Hoje é possível escrever código C# e executar via console (assim como fazemos com C/C++) não apenas no Windows com Visual Studio, mas também no Mac e no Linux. Será que o professor sabe como fazer isso?
Definitivamente, o problema não é a tecnologia da Microsoft ao meu ver.
5. Java é a linguagem mais usada no mundo.
É verdade. Segundo o ranking mais recente da TIOBE, Java é a linguagem mais utilizada no mundo e isso se deve em grande parte a três grandes fatores:
- Java é bem mais antigo que C# e tornou o conceito de orientação a objetos popular;
- É amplamente utilizada para cenários de IoT;
- É a linguagem base do Android, principal plataforma mobile do mercado;

Figura 2. Ranking das linguagens mais utilizadas segundo a TIOBE
É inegável que Java é uma excepcional linguagem e que deve sim ser ensinada nos cursos de tecnologia. O problema aqui é a unilateralidade do argumento. Se o argumento é “ensinamos Java porque é a linguagem mais usada no mundo”, deveria se ensinar com Windows, uma vez que Windows é o SO mais usado no mundo.
Além disso, o fato de ser a mais usada nem de longe quer dizer que é a melhor ou mais adequada. C# já é a quarta linguagem mais usada no mundo e evolui num ritmo extremamente mais acelerado que o próprio Java. Basta comparar as evoluções de uma versão pra outra em cada uma das plataformas. Além disso, a maioria esmagadora dos sistemas de gestão e web são hoje baseados em C# (com ASP.NET no caso web). Ou seja, ensinem Java, mas ensinem C# também pessoal.
Minha conclusão
Estes cinco tópicos listados resumem a argumentação que tenho ouvido sempre que abordo o assunto nas faculdades e universidades pelas quais tenho passado.
Me parece que o fato principal que leva universidades a sempre tenderem para a utilização de software livre no processo de ensino/aprendizagem, é um velho mindset que diz: “tudo o que vem da Microsoft não presta ou é muito caro”. O que não reflete a realidade (pelo menos não mais).
Assim, com os tópicos a seguir, apresento um caminho alternativo para você que gostaria de conhecer o modelo de desenvolvimento de aplicações proposto pela Microsoft de forma independente de sua faculdade/universidade (claro, se ela não contempla tais aspectos).
1. Programas e ferramentas
Já mencionamos anteriormente que a Microsoft disponibiliza uma série de programas e ferramentas para quem quer, por conta própria, iniciar sua jornada de estudos para desenvolver aplicações utilizando .NET, SQL Server, Universal Apps e mais. Se você está interessado nisso, siga o caminho das pedras apresentado abaixo.
Dream Spark
O Dream Spark é um programa que faz “doação” de softwares da Microsoft para que estudantes possa se desenvolver como profissionais utilizando a suíte de ferramentas da empresa.
Figura 3. Print da página oficial do Dream Spark
No último ano, somente no Brasil, foram registrados mais de 600 mil downloads gratuitos de softwares para desenvolvimento, design e infraestrutura de TI, dentro do programa Microsoft DreamSpark. A iniciativa é voltada para instituições de ensino superior nas áreas de ciências da computação, tecnologia, engenharia e matemática, e ainda escolas do ensino médio técnico em TI e usuários de Office 365 para Educação.
Dentro deste programa, você poderá baixar ferramentas de desenvolvimento, dentre elas: Visual Studio, SQL Server, Office, etc. e além disso, ter acesso gratuito a recursos de computação em nuvem do Microsoft Azure. Imperdível!
Para saber se sua instituição encontra-se habilitada no programa Dream Spark ou ainda como se cadastrar e para obter outras informações, por favor, clique no link a seguir.
Visual Studio Community e Visual Studio Code
Se você está interessado apenas na IDE de desenvolvimento, você pode partir diretamente para o download do Visual Studio Community Edition. Esta versão possui todos os recursos do Visual Studio Professional e você ou sua startup poderá utilizar de forma gratuita enquanto o time de desenvolvimento for menor ou igual a 5 pessoas. Legal, não?
Existe ainda a opção para que você possa trabalhar com o Visual Studio no Linux ou no Mac, através do Visual Studio Code. em ambos os casos, você poderá fazer o download através do link a seguir.
Baixar Visual Studio Community ou Visual Studio Code
SQL Server Express Edition
Se o seu interesse está focado em uma plataforma de banco de dados, esta recomendação é pra você. Aqui você poderá baixar a versão gratuita do SQL Server, que dá suporte a todos os principais recursos da engine de banco de dados relacional e suporta bancos de até 10 GB de tamanho.
Baixar SQL Server Express Edition
Computação em Nuvem com Azure
Se o seu interesse está direcionado apenas para o universo de computação em nuvem, a Microsoft permite que você teste a plataforma (todos os recursos disponíveis) com um limite de até R$ 560 reais durante um período de trinta dias. É importante frisar que o objetivo aqui é apenas testar o ambiente para fins de estudo e não colocar sua plataforma pra rodar de maneira efetiva. Para isso, você deverá recorrer ao Dream Spark, que oferece um número de horas de forma recorrente.
2. Capacitação
A Microsoft entende que ferramentas de nada adiantam sem bons programas de capacitação que habilitem os estudantes a utilizarem as ferramentas e tecnologias de forma efetiva e portanto, entrega alguns recursos bem interessantes para este fim. Vou destacar aqui três caminhos bem legais e gratuitos para que você possa se capacitar.
Programa Student to Business (S2B)
O programa S2B (Students to Business) é uma iniciativa da Microsoft e das principais universidades do país, que tem como principal objetivo capacitar estudantes nas áreas de TI e oferecer oportunidades de emprego.
Os estudantes inscritos no programa poderão receber treinamentos nas seguintes áreas de TI: Desenvolvimento de Sistemas e de Infraestrutura de TI* e algumas localidades terão a oportunidade de oferecer outros temas, de acordo com a demanda local.
O programa já capacitou, até o momento, mais de 100 mil estudantes em todo o Brasil, dos quais mais de 10.000 profissionais foram incorporados imediatamente no mercado de trabalho.
As inscrições para o ano de 2016 estão abertas e clicando no link abaixo você poderá inscrever-se gratuitamente.
Microsoft Virtual Academy (MVA)
O MVA é uma plataforma online de treinamentos (no modelo e-Learning) focado em tecnologias específicas. Os cursos são divididos em módulos e ao final de cada um deles, o participante realiza um prova. Ao atingir a nota mínima exigida, o usuário será habilitado a seguir para o próximo módulo do treinamento. Ao final do curso, o aluno recebe um certificado online, disponível através da própria plataforma.
Conhecer o Microsoft Virtual Academy
Channel 9
O Channel 9 é uma plataforma de vídeos técnicos, que apresenta conteúdos de todas tecnologias, sempre relacionado a Microsoft. Lá estão disponíveis conteúdos de todas as áreas e estes conteúdos são entregues por profissionais de mercado (como MVP’s, MTAC’s, MSP’s, dentre outros) e funcionários da Microsoft. É outra ótima fonte de conteúdos para estudo.
Enfim, é isso. Espero que esse post possa ajudá-lo de alguma se sua escolha for aprender a trabalhar com tecnologias Microsoft.
Um forte abraço e até a próxima.
Pingback: Links ! – ShareRocks o/