Escola quer ensinar códigos para 10k alunos do Vale do Silício de graça


O Vale do Silício já é conhecido por ser um importante polo tecnológico no mundo, mas é sempre bom manter a mão de obra especializada próxima das empresas. Por isso, o empresário francês Xavier Niels está com planos de criar uma universidade de codificação na região.

Diferente de outras instituições, a 42, como é chamada a escola, tem planos bem ambiciosos: educar 10 mil estudantes de graça dentro dos próximos 5 anos. Esta não é a primeira escola de codificação de Niels. Em 2013, foi aberta uma 42 em Paris e, desde então, 2.500 alunos já passaram por lá.

Para conseguir estudar na universidade, é preciso ter entre 18 e 30 anos. Após as inscrições onlines, os participantes passam por quatro semanas intensas de desafios de codificação, programação e lógica. Os melhores alunos ganham a oportunidade de estudar na escola.

Ao invés de salas de aulas e professores, a universidade conta com análises comparativas e projetos de codificação, estágios e gamificação. Os alunos devem aprender um conjunto de habilidades em um período de três a cinco anos.

Muitos executivos de empresas já elogiaram a escola, como Evan Spiegel, do Snapchat, e Jack Dorsey, do Twitter. A nova unidade está recebendo investimentos de US$ 100 milhões.

Via TechCrunch/Olhar Digital

Exercícios Java Interfaces

Em meu Github encontra-se o código referente aos exemplos de uso de Interfaces em Java. Exercícios de fixação sobre o assunto.

Clique aqui e acesso os arquivos.

Caixa de ferramentas do JavaScript [parte 3]

Este é o último post da série Ferramentas JavaScript para desenvolvimento web. Encerramos fazendo um apanhado geral das técnicas e ferramentas mais empregadas pelos desenvolvedores da linguagem mundo afora.

js-cover

Automatizando as coisas com Grunt

Apesar do nome, Grunt está longe de ser primitivo. É uma robusta ferramenta de construção através de linhas de comandos que executa as tarefas definidas pelo usuário. Através da especificação de um arquivo de configuração simples, podemos configurar o Grunt para compilar LESS ou SASS, construir e minimizar todos os arquivos JavaScript e CSS em pastas especificas, ou mesmo executar uma ferramenta de linting ou framework de testes. Também é possível configurar o Grunt para executar como parte de um script personalizado do Git (Git hook) – minimizando e construindo seu código somente se houver algo no repositório de controle do código.

Continue Lendo “Caixa de ferramentas do JavaScript [parte 3]”

Caixa de ferramentas do JavaScript [parte 2]

Continuando nossa série sobre Ferramentas JavaScript para desenvolvimento web, iremos falar sobre os ambientes de desenvolvimentos e IDEs propícias para a linguagem. O objetivo é citar as principais opções que os desenvolvedores web do mundo inteiro tem utilizado nos últimos tempos.

f7dff-ides-linux-header


Ambiente de desenvolvimento JavaScript

Uma importante parte do desenvolvimento eficiente é o uso de uma IDE. Uma IDE, ou Ambiente de Desenvolvimento Integrado, é uma aplicação que oferece um conjunto de ferramentas para o desenvolvedor. A parte mais importante dessas ferramentas normalmente é o rico editor de texto, que oferece destaque das sintaxes, auto completar e teclas de atalho que acelera os processos manuais.

Sublime Text

O Sublime Text não é de fato uma IDE. Ele é leve, um editor de texto para programação super rápida, que oferece o destaque da sintaxe e teclas de atalhos intuitivas. Sendo multi plataforma, é excelente para os desenvolvedores que querem usar no Mac ou PC. Virtualmente tudo no Sublime Text pode ser customizado. Também oferece múltiplos plugins que permitem recursos como de uma IDE, por exemplo, a integração com Git e análise de erros no código (linting). Ela é uma ótima escolha para os entusiastas e novos desenvolvedores JavaScript. O Sublime Text pode ser baixado e avaliado gratuitamente, sua licença custa $70.

Fonte: Sublime Text

WebStorm

O WebStorm foi criado pela equipe da JetBrains como uma pequena IDE focada em HTML, CSS e JavaScript. O custo da licença é $49 e é amplamente considerado de fato como padrão para profissionais JavaScript, e por uma boa razão. O construtor de complementação de código e inspeção de ferramentas são inigualáveis. O WebStorm também oferece um depurador de JavaScript rico e integrado testes de unidade com os frameworks populares, como: execução de testes Karma e JSDriver e até o Mocha do Node.js.

Uma das melhores funcionalidades do WebStorm é a funcionalidade de Edição ao Vivo. Instalando um plugin em ambos Chrome e WebStorm, um desenvolvedor pode fazer mudanças no código que são instantaneamente refletidos no navegador. Os desenvolvedores podem também configurar a Edição em Tempo Real para destacar as mudanças que são feitas na janela do navegador, permitindo depuração e alta produtividade durante a codificação.

No geral, o WebStorm é a IDE para escolher se usar JavaScript em tempo integral.

Fonte: JetBrains

Brackets

Continue Lendo “Caixa de ferramentas do JavaScript [parte 2]”

Caixa de ferramentas do JavaScript [parte 1]

Programar em JavaScript tornou-se algo fundamental na web 3.0. Se você quiser criar um site ou um sistema web com funções aprimoradas de forma prática, é essencial buscar ferramentas JS e incluir em seu projeto. Irei postar aqui uma série de 3 posts relativos a essa linguagem e citando as principais opções que desenvolvedores web do mundo inteiro devem ter em sua caixinha de ferramentas.

A plataforma Web percorreu um longo caminho desde que o HTML5 se tornou popular e as pessoas começaram a olhar o JavaScript como uma linguagem que é capaz de construir aplicações complexas. Para atender novas demandas muitas APIs surgiram e existe conteúdo abundante sobre como os navegadores podem tratar todas elas.

Esta serie especifica de artigos irá um passo além e se concentra em como essas tecnologias podem ser usadas na prática, não somente para construir demonstrações ou protótipos, mas como os profissionais tem usado elas em produção. Nessa serie de artigos pós HTML5, vamos além do modismo e mostraremos detalhes práticos dos especialistas sobre o que realmente funcionou com eles. Também abordaremos tecnologias (como AngularJS) que vão um passo além e definem o futuro de como os padrões e desenvolvimento web irão evoluir.

Essa serie de artigos é original do site InfoQ, chamado de “Próxima geração do HTML5 e JavaScript“. Se quiser. você pode assinar para receber notificações via RSS.


O JavaScript é uma linguagem de script desenhada inicialmente para tratar páginas web, mas agora é usada em quase todas as formas imaginavéis. Avanços foram feitos para permitir que o JavaScript execute no lado servidor bem como compilado em código de aplicações nativas para telefones. Hoje o desenvolvedor JavaScript faz parte de um rico ecossistema formado por centenas de IDEs, ferramentas e frameworks. Com muitas opções e recursos, alguns desenvolvedores podem encontrar dificuldade de saber como começar. Nesse artigo será discutido sobre o perfil do moderno desenvolvedor JavaScript, iniciando com uma breve história do JavaScript e apresentado os mais populares frameworks, ferramentas e IDEs.

Uma breve excursão através da história

Vamos voltar para 1995 quando o Netscape Navigator e o Internet Explorer 1.0 eram as escolhas disponíveis de navegadores. Os sites web tinham apenas textos e muitos GIFs. Um site completo de conteúdo rico demorava 2 minutos para carregar em uma conexão discada (dial-up). Ao longo do caminho, uma linguagem web nasceu permitindo que esses sites web antigos pudessem executar código no lado cliente. Esse foi o ano que nasceu o JavaScript.

Os sites web de 20 anos atrás não usavam muito JavaScript e certamente não usavam seu potencial total. Ocasionalmente havia um alerta popup para informar algo, a rolagem de um texto em uma caixa com notícias ou um cookie que armazenava seu nome e apresentava novamente quando retornasse alguns meses depois. Certamente não havia empregos nos quais o JavaScript era a linguagem primaria, salvo aqueles poucos sortudos que tinham o trabalho de criar o JavaScript. Em resumo, era um truque para os sites web enfeitarem os seus DOM.

Hoje, o JavaScript pode ser encontrado virtualmente em todos os locais. Do AJAX, ao Bootstrap, ReactJS, Angular, o ubíquo jQuery e mesmo o Node.js no lado servidor, o JavaScript se tornou uma das mais importantes e populares linguagens da web.

Frameworks

Continue Lendo “Caixa de ferramentas do JavaScript [parte 1]”

Google traz o Material Design Lite com CSS, HTML e JavaScript

O Material Design Lite (MDL) do Google permite adicionar o look and feel do Material Design em websites. O Material Design é a linguagem visual padrão para Android e que, agora, o Google propõe como multiplataforma.

De acordo com o Google, o MDL têm os requisitos para que seja caracterizado como “lite”:

  • Tem poucas dependências de forma que é fácil de instalar e usar;
  • Não depende de frameworks, permitindo que os desenvolvedores façam sua integração com qualquer cadeia disponível de ferramentas para front-end;
  • Sua base de código é relativamente pequena;
  • Têm foco restrito, implementando as boas práticas do material design e não é um framework abrangente.

O MDL não é a primeira implementação de HTML/CSS/JS do material design e existem alternativas como o Materialize e Material Bootstrap. A principal vantagem que o MDL trás em relação a estas opções desenvolvidas pela comunidade, de acordo com o Google, é que o MDL foi desenvolvido “com a colaboração das equipes de Material Design e Chrome UX e é constantemente revisado buscando aderência às especificações do material design”.

Antes do MDL, o Polymer era a implementação canônica de material design para CSS/JS. Porém, comparado ao MDL, o Polymer tem escopo maior e vai além do domínio visual, incluindo componentes para comunicação de dados e componentes não especificados pelo material design.

Até o presente momento, o MDL não é otimizado nem suporta o uso de componentes individuais, por exemplo, um botão. Ainda sim, para desenvolvedores que querem usar apenas uma parte dos componentes MDL, é possível criar uma distribuição MDL customizada comentando componentes indesejados do material-design-lite.css e scripts inadequados do Gulpfile. Feito isso, basta executar gulp.

O MDL segue a convenção BEM de forma que os nomes para cada classe css são consistentes, isolados e expressivos. O Google detalha quais boas práticas eles seguiram ao aplicar BEM no desenvolvimento do MDL. Por outro lado, o BEM pode levar a explosão no comprimento dos nomes de classes e, de acordo com o feedback inicial, o MDL parece ser sensível a esse problema, por exemplo, ao necessitar de dezessete nomes de classe diferente para um simples card que é um conceito básico do material design.

O Google afirma que o MDL funciona em todos os navegadores modernos (Chrome, Firefox, Opera, Microsoft Edge e Safari) com degradação suave em navegadores como o IE9. Também sugerem referenciar a CDN para incluir o MDL no website, mas também é possível baixar ou importá-lo via npm ou Bower.

Fonte: InfoQ Brasil

WebAssembly: um formato universal para binário e texto

A Mozilla, a Google, a Microsoft e a Apple decidiram desenvolver um formato binário para a web. Chamado de WebAssembly, este formato pode ser o resultado compilado de qualquer outra linguagem, assim permitindo que aplicações executem no navegador ou em qualquer outro agente.

Alguns anos atrás, foi discutido no InfoQ.com quais as vantagens de haver um bytecode universal para a web (Veja o Debate: Precisamos de um Bytecode Universal para a Web?), exaltando as dificuldades em criar uma. O principal problema mencionado era o desentendimento entre os principais fornecedores de navegadores: A Mozilla empurrava asm.js, a Google estava atrás do PNaCl, a Apple estava trabalhando em FLTJIT, enquanto a Microsoft não mostrou interesse em qualquer um deles. Mas isso mudou, todos os quatro principais fornecedores de navegadores chegaram a um acordo sobre a criação do WebAssembly ou WASM/wasm, um formato binário para a web. Alguns chamam isso de bytecode, mas wasm não é um bytecode no sentido tradicional, como Brendan Eich observou:

“WebAssembly é de fato uma codificação AST após um processo de compressão, não uma pilha bytecode, mas pode ainda chamar de bytecode se preferir”.

O projeto estava em modo cauteloso até o momento, mas agora foi tornado público com presença no GitHub e um grupo na comunidade W3C. WebAssembly permite que os programas escritos em outras linguagens (e não somente JavaScript) possam executar no navegador ou em qualquer outro agente de JS, como no servidor, em dispositivo móvel ou loT. Este formato irá eventualmente substituir o asm.js e PNaCl. De acordo com o documento de projeto, que ainda não é definitivo, o WASM usa um binário porque “proporciona eficência: e reduz o tamanho do download e acelera a decodificação, permitindo até mesmo grandes bases de código tenham tempo de inicialização rápida”. O WASM tem um formato de texto que o acompanha que pode ser utilizado por depuradores e outas ferramentas do desenvolvedor. As Ferramentas devem ser capaz de traduzir a partir de um formato para o outro, sem qualquer perda de informação.

Um primeiro passo temporário na implementação do WebAssembly foi feito: traduzindo o formato em código correspondente asm.js, por isso já pode ser executado em navegadores que suportam: Firefox, Edge e Chrome. Já existe também um polyfill prototype criado para esta finalidade, e os resultados iniciais mostram que o formato binário gzipped é 20-30% menor do que o correspondente gzipped asm.js, e que decodificação wasm é 23 vezes mais rápida do que a análise do código fonte correspondente no asm.js. O WASM será posteriormente suportado pelas VMs dos navegadores.

WebAssembly vai trazer primeiro programas C/C++ para a web, no entanto, mais tarde pode ser aprimorado para suportar qualquer outra linguagem. Um backend em LLVM e um port do clang são planejados. O WASM executará no “mesmo universo semântico como JavaScript”, apoiará chamadas assíncronas para/de JavaScript, permitindo acessar toda as APIs do navegador e obedecer a mesma política de segurança que estão sujeitos os programas atuais implementados em JavaScript. Uma aplicação de cliente pode ser escrito completamente em WASM ou poderia ter o código de negócios no WASM e a UI em HTML/CSS/JavaScript.

Anunciado no aniversário de 20 anos do JavaScript e no mesmo dia que a Ecma anuncionou a versão finalES6, o WebAssembly não é boa notícia para JavaScript: o WASM fará com que seja possível codificar para a web em qualquer linguagem que irá compilar. JavaScript irá competir diretamente com outras linguagens. Devemos esperar para ver Java ou C# compilado para WASM?

WebAssembly se beneficiará de lições aprendidas em desenvolvimento asm.js e PNaCl, uma vez que as respectivas equipes de Mozilla e Google estão envolvidos na sua criação. Tendo a Microsoft e Apple apoiando é muito promissor para o projeto. O único problema é o tempo: geralmente projetos desenvolvidos por várias grandes corporações consome muito tempo. O processo de padronização é lento na maioria do casos.

Post original por InfoQ Brasil