Zona de Conforto: Neymar, Evaristo Costa e eu

Neymar
Neymar

O que o Neymar, o Evaristo Costa e eu temos em comum? Decidimos sair da zona de conforto recentemente.

Calma, já explico.

O Neymar, que era titular absoluto do Barcelona, campeão da Champions League e a atenção de toda mídia esportiva possível, decidiu largar o Barça e ir para o PSG, um time “inferior”, sem títulos expressivos a nível internacional, para construir história e claro, ganhar mais também, embora eu acredite que dinheiro não tenha sido o principal fator pra ele, considerando o quanto já ganhava no time catalão.

Neymar queria sair da sombra de Messi e buscar o título de melhor jogador do mundo, algo que estava bem complicado junto ao Barcelona.

Evaristo Costa, que embora não seja tão famoso mundialmente quanto Neymar, é muito famoso por quem assiste o Jornal Hoje, um noticiário diário próximo da hora do almoço que ele apresentava com Sandra Annenberg há 14 anos. Pois é, o Evaristo também estava em uma posição super confortável, assim como o Neymar, ganhando muito bem como âncora do telejornal e decidiu sair da maior emissora do país para tocar outro projeto ligado a entretenimento em uma emissora concorrente (é o que estão dizendo por aí).

Sim, ele também vai ganhar mais lá, mas acredito que o principal fator foi a sua vontade de fazer algo novo e diferente, de ser desafiado ou pôr em prática seus sonhos e aspirações que o jornal não permitia.

Se o assunto for fama, eu nem deveria estar nessa lista, mas confesso que me identifiquei com as atitudes recentes do Neymar e do Evaristo pois eu mesmo estava chateado com a zona de conforto na qual estava há alguns meses.

Evaristo Costa
Evaristo Costa

Meu último desafio

Em 2015 eu estava encerrando as atividades com minha startup Busca Acelerada e apenas lecionava à noite quando topei aceitar o desafio de ser o Gerente de Projeto de uma startup chamada Route. O desafio era imenso pois a startup já rodava no vermelho, sem um único cliente, há 3 anos e um beta que parecia eterno pois o escopo do projeto nunca era definido.

Não precisei pensar muito para aceitar a oferta que era boa não apenas financeiramente, mas para o meu currículo. Ao que tudo indicava, minha experiência anterior como CEO de uma startup fracassada poderia evitar que esta fracassasse também.

Durante um ano e meio gerenciei o projeto, ajudei a fechar o escopo do produto, ajudei a fechar com algumas dezenas de clientes e até mesmo meti a mão no código para entender melhor como o produto funcionava, tendo sido responsável pelas integrações com diversas ferramentas do mercado que nos ajudaram a converter mais clientes.

A situação era preocupante pois queimávamos R$40 mil por mês e o faturamento era ridiculamente baixo. Tracei algumas estratégias que envolviam pivotar nosso produto para nichos mais específicos mas não consegui convencer o CEO, que também era nosso investidor, de que o projeto ainda tinha futuro e ele foi encerrado um ano e meio depois de eu entrar na equipe. Quatro anos e meio depois da startup ter sido fundada.

Foi a segunda vez que vi uma startup afundar comigo dentro, mas não fiquei nem um pouco triste pois o desafio foi muito interessante, aprendi muito no processo, fiz novos amigos, agregou no meu currículo e o salário não era ruim. 🙂

O problema veio após o Route ser encerrado.

Route
Route

Entrando na zona de conforto

O CEO do Route também é o CEO da Umbler, startup de cloud hosting que está crescendo rapidamente no mercado nacional e está em vias de expansão para outros países ainda este ano.

O Route foi encerrado não apenas por ser um projeto que estava dando prejuízo, mas porque o CEO teve de escolher um projeto para se focar, e ele fez a escolha mais óbvia (e correta): a Umbler. Com isso, o projeto do Route foi encerrado e toda equipe foi absorvida no time da Umbler.

Foi nos dada uma pergunta bem simples para ser respondida: o que vocês querem fazer na Umbler?

As respostas não podiam ser mais óbvias: quem era do marketing, quis ir para o time de marketing. Quem era designer, foi pro time de front-end. E assim por diante, escolhas “seguras”.

No entanto, a Umbler já tinha um Gerente de Projeto, posição que eu ocupava no Route e eu tinha uma sinuca de bico pela frente: ou eu voltava a ser desenvolvedor (ou seja, uns dois passos para trás na minha carreira) ou “inventava” alguma coisa para eu fazer lá dentro.

Claro, eu também podia recusar entrar pra Umbler e voltar pro mercado, mas como estava lecionando em Gravataí à noite, era muito cômodo que o emprego diurno também fosse em Gravataí.

Eu devia ter associado que optar pelo que fosse mais confortável me deixaria em uma zona de conforto rapidamente, mas na ocasião não me ocorreu isso.

Umbler
Umbler

Atuando em uma posição de conforto

Acabei optando por sugerir uma posição de evangelismo técnico dentro da Umbler pois era uma posição disponível e que eu me encaixava muito bem. Como eu já faço esse tipo de trabalho como autor de livros, escritor aqui no blog, palestrante há 7 anos e estou começando com videoaulas, achei que seria o melhor a fazer. Na verdade era uma das poucas opções que eu via para mim à época sem ter de competir com a galera que já estava estabelecida na Umbler e que são meus amigos. Detesto competir com amigos. 🙁

Pra quem não sabe, cabe ao evangelista técnico levar ao mercado as inovações tecnológicas e tecnologias utilizadas e criadas pela empresa que ele representa. Como evangelista técnico de uma empresa de cloud hosting, cabia à mim educar nosso mercado sobre desenvolvimento web, ajudando a tornar a Umbler referência no assunto.

E foi muito legal, durante meio ano.

Não me entenda mal, amo ir a eventos, conversar com outros desenvolvedores, palestrar, ministrar workshops, escrever artigos e fazer videoaulas. Sério.

Mas não curti nem um pouco fazer “só” isso. Além disso, estar distante de projetos de software de verdade durante 6 meses me deixou muito preocupado. Para não enferrujar, eu “entrei” pra dentro de artigos técnicos, criei muitos projetos aleatórios e estudei muita coisa que não tinha lá muita coesão, mas que me pareceu importante saber caso eu precisasse voltar a programar “de verdade”.

Sempre critiquei os evangelistas técnicos que só enchiam linguiça, que não sabiam programar de verdade e que não conseguiam responder pergunta alguma mais avançada que o conteúdo da sua palestra. Certamente você já deve ter ido em alguma palestra assim, e é horrível. Um bom palestrante técnico é um profissional técnico, não um marketeiro. Sempre me considerei um bom professor e palestrante justamente por ter larga experiência de mercado como desenvolvedor, analista e até mesmo gerente de projetos (embora tenha bem menos experiência nessa função), resumindo: eu falo a mesma língua da minha audiência e sei as “dores” deles.

Eu estava com muito medo de me tornar um “programador de palco”. E se eu ficasse um ano ou dois como evangelista, será que conseguiria voltar a ser gerente ou analista caso necessário? Ou até mesmo um programador?

Fui aí que me deparei com uma dúvida ainda pior: eu estou crescendo como profissional? E a minha resposta foi rapidamente um não.

Zona de conforto = zero crescimento

Ler muitos artigos técnicos, fazer diversos projetos de exemplos e falar com muitas pessoas sobre o que você estuda e escreve não o faz um bom profissional. Isso é a “cereja do bolo”. Um bom profissional na área de TI, na minha opinião, é o que aplica corretamente o que estuda, caso contrário, é apenas um teórico.

Além disso, estar estagnado na área de TI é algo excepcionalmente pior do que muitas outras áreas, pois você não fica “estacionado”, mas é considerado “atrasado” rapidamente, ou seja, é muito mais nocivo do que parece à primeira vista.

Outra coisa que logo reparei e que me deixou muito apreensivo é que minha função primordial era ensinar. Mas o que eu estava aprendendo no processo? Com quem eu estava aprendendo alguma coisa?

Eu tenho 29 anos anos e 11 de TI, mas não sou nenhum “deus da programação” como alguns brincam por aí, tenho muito a aprender ainda, muito o que crescer. Estou muito longe de atingir todo o meu potencial e cada dia que passa que não aprendo algo novo é um dia perdido para mim. E caso você não saiba, aprender é muito diferente de estudar. E eu estava apenas estudando para criar os materiais necessários da minha função.

Note que, em nenhum momento, estou culpando a Umbler ou o CEO dela por isso. Foi uma decisão minha me tornar evangelista técnico em tempo integral. Fui eu que me meti nessa.

Fui aí que me surgiu a pior dúvida nos últimos anos: será que ainda sou “empregável”?

Alerta vermelho: zona de conforto!

Há 11 anos que trabalho com TI e em todo esse período fiquei desempregado durante apenas 3 dias. Sempre tive uma alta taxa de empregabilidade, sempre recebi ofertas mesmo sem estar procurando e isso em grande parte pois sempre me esforcei em ser um profissional diferenciado.

Quando pintou a desconfiança de que eu poderia estar perdendo essa característica que tanto me orgulho (sem falsa modéstia, por favor), eu surtei.

A posição de evangelista técnico não é lá muito comum e se eu continuasse me focando nela nos próximos anos ficaria extremamente dependente da empresa atual e das demais empresas que possuem essa posição disponível (que não são muitas aliás). Além disso, cada vez mais me distanciaria de tocar projetos de desenvolvimento que inclui as habilidades que demorei uma década para refinar: análise, desenvolvimento, gerenciamento, etc.

Ou seja, eu estava em uma posição confortável no presente, mas como toda zona de conforto, com um futuro incerto.

Eu não sou do tipo que fica procurando vagas de emprego, nunca fui (exceto quando estava tentando entrar no mercado de trabalho). Na verdade eu costumo olhar as vagas em busca de oportunidades para meus alunos. Se você me segue nas redes sociais já deve ter visto eu postando vagas, especialmente para iniciantes.

Em uma dessas buscas para ajudar o próximo me deparei com uma vaga que me chamou a atenção: coordenador técnico mobile, em uma banco de Porto Alegre, o Agiplan.

Agiplan
Agiplan

Descobrindo uma nova oportunidade

Nunca pensei em trabalhar em um banco antes, sempre me pareceu algo burocrático, chato, engessado e pouco inovador. No entanto a vaga era bem enfática em afirmar que o banco Agiplan estava justamente buscando mudar essa visão que todos desenvolvedores possuem dos bancos. Que estavam investindo pesado para mudar essas cultura, desde o ambiente até as posições. Claro que eu não acreditei nisso de primeira.

Fui investigar o site da Agiplan. Procurei funcionários no LinkedIn. Encontrei amigos em comum. Fiz todo o dever de casa que alguém que não quer entrar em uma roubada deve fazer.

Conversando com pessoas próximas que possuem vínculo com a Agiplan descobri que a financeira com 18 anos de existência havia se tornado banco há pouco mais de um ano, o que era bom, pois ainda não possuíam os vícios dos demais bancos. Descobri que o banco é de apenas um dono, o que é excelente, pois agiliza e muito a tomada de decisão. Descobri que eles estavam “roubando” talentos de diversas outras empresas ligadas à dinheiro, como pessoas importantes da Elo, da Caixa, PagSeguro, Santander, etc. E que eles pagavam bem e tinham PPR, o que não faz mal a ninguém, não é mesmo?!

Mas daí me surgiu a dúvida: será que eu conseguiria entrar como coordenador técnico mobile?

Atualizei meu currículo (que tem apenas uma página e sempre terá) e apliquei para a vaga que exigia pós-graduação e muita experiência na área. Conversei com algumas pessoas influentes lá dentro para que meu CV chegasse nas mãos certas e fiquei no aguardo. Depois de alguns dias sem resposta é fácil perder as esperanças, mas logo veio um desafio técnico que eu prontamente fiz da melhor maneira que pude com o tempo que me foi dado.

Depois vieram as entrevistas. Muitas delas. Eu estava de férias da Umbler e durante vários dias tive de interromper meu descanso para ir à sede da empresa que fica em um bairro nobre de Porto Alegre para conversar com diferentes gestores. Não é todo dia que se tem a oportunidade de ajudar na criação de um novo banco e eu não queria perder essa oportunidade, estava muito interessado na posição.

Finalmente fui aprovado no processo seletivo e me foi dada uma oferta bem generosa para sair da minha zona de conforto. Melhor do que passar na seleção foi o sentimento de saber que ainda estou no controle da minha carreira.

Mas quem pensa que tudo são flores, está redondamente enganado, e essa é a melhor parte.

Novos desafios. Enormes desafios.

Mario Sérgio Cortella diz que “mudar é complicado, mas acomodar é perecer” e é exatamente isso.

Eu estava em uma zona de conforto enorme: ganhava razoavelmente bem, morava a 15 minutos do serviço, trabalhava apenas com amigos (incluindo o CEO da Umbler) e em um cargo extremamente fácil para mim, que pouco me desafiava. Meus alunos da faculdade diziam que eu tinha o emprego dos sonhos, hehehe.

Saio da Umbler para trabalhar em outra cidade, com uma equipe completamente nova em uma empresa extremamente competitiva em um mercado dos mais competitivos: o bancário. Não há certeza alguma de que trabalhar no Agiplan é tão legal quanto dizem e que conseguirei coordenar a equipe do jeito ágil que gosto de fazer. A única certeza é o desafio.

E é o desafio enorme que se abre à minha frente que me motivou a aceitar a oferta, muito mais do que o dinheiro que me foi oferecido para trocar de empresa. Porque se eu conseguir transpor esses desafios crescerei como profissional, e muito.

Aliás, ao que tudo indica eu não trabalharei na posição a qual submeti, de coordenador técnico mobile, mas sim em algo ainda mais abrangente chamado Especialista de Sistemas, posição responsável não apenas por coordenar o desenvolvimento dos apps, mas pelo Internet Banking deles também.

Se isso não é desafio o bastante para não entrar em uma nova zona de conforto por um bom tempo, não sei dizer o que é!

Sem arrependimentos, apenas alegrias

Tenho o orgulho de dizer que sempre coube a mim direcionar a minha carreira para onde eu quisesse. Para isso, claro, já tive de abrir mão de salários maiores, recusar propostas ou mesmo me demitir algumas vezes. Tudo para não sair do caminho que decidi trilhar há 11 anos atrás.

Obviamente nem sempre acerto e esses últimos 6 meses, que eu chamo agora de “etapa de transição”, foi um período importante de auto-conhecimento, reflexão e reafirmação de valores em cima de um período que estava meio “perdido”. Isso pode acontecer com qualquer um e se você está em uma situação confortável demais, atenção, faça alguma coisa antes que seja tarde.

Em épocas de crise como essa que vivemos no país, vejo muitos profissionais com anos de experiência desempregados. Eles não entendem que não basta apenas ter anos de experiência, você tem de ter anos de “crescimento” no currículo. Se eu aperto o mesmo botão há 10 anos, isso não me faz mais capaz do que quando eu tinha 1 ano de experiência apertando aquele botão e posso ser facilmente substituído por alguém que aperta o botão mais rápido ou dois botões ao mesmo tempo. Ou por um software, mas essa é uma história ainda mais triste. 🙂

Não tenho arrependimentos e vivi muitas coisas fantásticas como evangelista de software nestes meses na função. Viajei por lugares incríveis e conheci pessoas mais incríveis ainda. Tive a liberdade de explorar tecnologias que tenho a esperança de poder usar na prática ainda e pude me manter lecionando mesmo após deixar meu cargo de professor na FAQI no semestre passado (esta por questão de agenda mesmo).

Para os próximos meses, devo me dedicar absurdamente à esta oportunidade que me foi dada e talvez até tenha que sacrificar um pouco a periodicidade das postagens aqui no blog (que é até um pouco insana se comparado à minha disponibilidade para escrever).

Mas tudo isso por uma boa causa: sair da zona de conforto!

Novidades de junho e julho de 2017

Que ano corrido! Quem me acompanha nas redes sociais como no Facebook já deve estar à par disso, mas jamais teve um ano em que participei de tantos eventos, dei tantos workshops, etc quanto este ano. E olha que entre 2010-2012 eu fiz uma maratona em 37 instituições de ensino hein!

Workshop no JSExperience

No dia 22/06 eu peguei um avião para São Paulo para participar do evento JS Experience, promovido pelo iMasters. O evento que é focado em JavaScript e que reúne mais de 1.000 entusiastas desta tecnologia e seus frameworks e plataformas derivadas (Node.js, React, Angular, etc) aconteceu durante alguns dias e teve a Umbler como patrocinadora.

Palestrando no JS Experience
Palestrando no JS Experience

Minha contribuição para o evento foi um workshop lotado (deviam ter umas 70 pessoas na sala pelas fotos) sobre como criar mecanismos de busca usando Node.js + MongoDB, homônimo a um post meu aqui do blog. Foi super bacana, recebi bons feedbacks e críticas construtivas após a apresentação e em breve devo escrever mais por aqui sobre este assunto.

Foi um bate-volta em São Paulo bem rápido, pois à noite eu tinha de dar aula na faculdade, mas foi bem bacana.

KeyNote e Host no JSDay em Feira de Santana

Já no dia 15/07 eu tive uma oportunidade única de estar pela primeira vez no nordeste brasileiro. Jamais tinha saído do eixo sul-sudeste a trabalho e foi uma experiência muito gratificante conhecer uma cultura nova, novas pessoas, uma nova comunidade de desenvolvedores, etc.

Minha estada foi em Feira de Santana na Bahia, mais especificamente no evento JSDay, na faculdade FTC (Faculdade de Tecnologia e Ciências). Aqui a experiência foi completamente diferente do que estou acostumado, primeiro porque a minha palestra sobre porque Stanford trocou Java por JavaScript foi a palestra de abertura (keynote) do evento.

JS Day em Feira de Santana
JS Day em Feira de Santana

Como se abrir este evento que contou com 250 participantes não fosse o bastante, eu fui convidado a ser o host do evento! Houve muita interação com os palestrantes, com o público, muita troca de experiências, conteúdos bacanas e, é claro, comida temperada!

‘Taí uma experiência diferente na minha carreira!

Saída da FAQI

No dia 19/07 eu deixei de ser membro do corpo docente da QI Escolas e Faculdades após quase 4 anos trabalhando no ensino superior de maneira regular com eles. Devido a conflitos de agenda e de objetivos a curto e médio prazo, tive de me desligar da instituição que foi a primeira a me abrir portas como instrutor lá em 2010-2011, quando comecei a dar cursos de extensão logo no final da minha graduação.

ADS na FAQI
ADS na FAQI

Tenho quase certeza de que é apenas um até logo e não um adeus e fica aqui o meu agradecimento pela oportunidade, pelos ensinamentos, pela troca de experiências com os colegas de profissão e alunos. Agora com esse tempo livre poderei estar mais presente em outros projetos igualmente importantes como meus cursos, meus livros e na educação do meu filho, é claro.

The Developers Conference – São Paulo

Que eu sou “rato de evento” todo mundo aqui já sabe, mas um especial eu não costumo perder: o TDC. Já participei das edições gaúcha e catarinense, e agora pela primeira vez estive maior delas, a edição paulista.

Foi quase uma semana de evento como mais de uma centena de palestrantes, com dezenas de trilhas, mais de uma dezena de expositores e milhares de participantes. Eu não participei de todo o evento, mas mais especificamente dos dois últimos dias, sexta e sábado.

Workshop Node+Mongo no TDC
Workshop Node+Mongo no TDC

No dia 21/07 eu fui instrutor de um workshop de desenvolvimento usando Node.js e MongoDB para um grupo de aproximadamente 15 pessoas. O grupo pequeno foi perfeito para uma imersão focada e extensa dos conceitos básicos do Node, do Mongo e do uso dos dois em conjunto. Nada muito avançado, mas enriquecedor que permitiu que em apenas 3h todos saíssem da sala com uma aplicação CRUD completa rodando em suas máquinas e com a oportunidade de fazerem deploy facilmente na Umbler depois.

Já o dia 22/07 foi mais intenso, pois tive de me dividir entre duas trilhas. Pela manhã eu estive assistindo palestras e interagindo com os participantes da trilha de .NET. Aqui eu apresente meus conhecimentos de mecanismos de busca em uma palestra sobre como criar um usando ASP.NET Core e MongoDB.

PHP e MongoDB no TDC
PHP e MongoDB no TDC

Já na tarde do dia 22/07 eu fiquei na trilha de PHP aprendendo mais sobre esta linguagem que eu definitivamente não domino, mas que arranho um pouco. Minha contribuição foi com uma palestra de criação de mecanismos de busca em PHP com MongoDB, a mesma que eu já havia feito há meses atrás durante meetup do PHP RS e que culminou em um post no site do PHP RS e outro no site do iMasters.

Para agosto já tenho alguns eventos agendados e muita novidades do ponto de vista de cursos e ebooks, que devem ter um foco maior na minha agenda agora. Fique ligado!

Por que Stanford trocou Java por JavaScript?

Antes que você comece a ler este artigo, eu gostaria de dizer que este é um artigo de perguntas, não de respostas. Que este é um artigo sobre educação, não sobre por que a linguagem X é melhor que a Y. Sei que talvez você queira desistir de ler ele agora, afinal, não estamos acostumados a nos preocupar com educação neste país, e nossa geração não deseja perguntas complicadas, mas sim respostas prontas.

Sem julgamentos. Pode ir.

Não estou escrevendo este artigo para ganhar cliques ou vender meus livros. Estou escrevendo o mesmo por algo muito maior do que interesses financeiros, pelo futuro que estamos construindo hoje. Lendo você vai entender o que quero dizer.

Palestrando no JS Experience
Palestrando no JS Experience

Eu + Tecnologia + Educação

Trabalho com TI desde 2006, quase sempre como desenvolvedor de software em linguagens de programação bem tradicionais e “corporativas” como Java e C#. Tenho graduação e pós-graduação na área e tive a oportunidade de trabalhar em várias empresas e dezenas de projetos de todos tamanhos e plataformas, sempre com Java e C#.

Em 2010 passei a lecionar cursos livres e mais tarde disciplinas de graduação em faculdades da Grande Porto Alegre. Oficialmente, com carteira assinada, sou professor do ensino superior há quatro anos em uma grande rede de educação do RS, a QI. Como a maioria das faculdades, ensinamos a linguagem Java aos nossos alunos e, ocasionalmente, a linguagem C# a pedido deles.

Posso dizer tranquilamente que estas duas tecnologias, Java e C#, moldaram toda minha carreira até hoje, sendo que durante muito tempo foquei todos os meus esforços em ser o melhor desenvolvedor possível nelas. Não ao mesmo tempo, mas em momentos distintos da minha vida profissional.

Então por que venho falar hoje de JavaScript ao invés de Java? E por que cito Stanford no título deste artigo?

Uma coisa de cada vez. Primeiro vamos começar por Stanford.

Stanford
Stanford

Stanford University

Certamente você já deve ter ouvido falar de Stanford, mas vou frisar alguns pontos aqui antes de continuarmos.

Segundo a Wikipedia, Stanford é uma das instituições de ensino mais prestigiadas do mundo, com a maior seletividade de graduação e a posição de primeira colocada em várias pesquisas e medições nos Estados Unidos. Mesmo que você não acredite na veracidade de alguma dessas pesquisas, em TODAS elas Stanford se encontra entre as Top 5 dos EUA.

Ela foi fundada em 1891 e fica em Palo Alto, na Califórnia, na região conhecida como Vale do Silício, um dos maiores pólos de empreendedorismo e inovação tecnológica mundialmente falando. Na verdade sessenta anos antes de surgir o Vale do Silício já existia Stanford então certamente ela teve uma importância muito grande na região, principalmente considerando que grandes nomes como Google, HP, Yahoo!, Sun e Nike nasceram dentro das dependências dessa faculdade. Estima-se que, somando, essas empresas tenham mais de U$2.7 trilhões de faturamento hoje.

Anualmente mais de 19.000 estudantes se inscrevem para o processo seletivo mas apenas 12% conseguem entrar, sendo que destes 12% apenas 5% são estrangeiros, ou 0.6% do total.

Mas por que estou falando de Stanford? E que relação ela tem com JavaScript?

Calma, já vou chegar lá!

Stanford e o JavaScript

O estopim deste artigo foi uma notícia que li em abril desse ano em um site britânico que dizia em seu título (em tradução livre): “A disciplina de Introdução à Ciência da Computação da Universidade Stanford adota JavaScript, ao invés de Java”. O artigo original pode ser lido neste link, para que você tire suas próprias conclusões.

Eu fiz faculdade de Ciência da Computação e em um primeiro momento fiquei ultrajado com a notícia. Fui atrás de mais informações pra confirmar isso. E era verdade, como confirma este artigo do jornal estudantil Stanford Daily e no próprio portal que permite a matrícula nas disciplinas.

Como a “fase de negação” demora a terminar quando somos pegos de surpresa por uma informação que nos tira da zona de conforto, eu queria saber quem que autorizou isso. Eu jurava que era algum professor novato que havia entrado “ontem” em Stanford e estava querendo bagunçar tudo. Mas não era.

PhD Eric Roberts
PhD Eric Roberts

O doutor Eric Roberts (que recebeu seu PhD em 1980, quando eu nem era nascido ainda) é um professor emérito de Stanford que atua na universidade desde 1990, foi ele quem tomou esta decisão. E não, ele nunca foi um fã de JavaScript (assim como eu não sou), tendo inclusive publicado livros sobre C, C++ e Java ao longo de suas décadas lecionando, muitos dos quais são usados como referência nas disciplinas de Ciência da Computação de Stanford.

Como que um professor de Ciência da Computação aprovaria a troca de Java como linguagem de introdução por JavaScript? Uma linguagem de altíssimo nível que abstrai boa parte da complexidade inerente de estudar programação? JavaScript nem mesmo é Orientado à Objetos!!! Note que esses foram exatamente os meus pensamentos à ocasião, mas como ser pensante que sou, decidi investigar quais seriam os motivos por trás dessa escolha para entender.

Afinal, universidades centenárias não trocam de currículo da noite para o dia ou por causa de alguma “modinha”.

E, de fato, depois de estudar mas a fundo, não está parecendo que esse boom do JavaScript é uma “modinha”.

O fenômeno JavaScript

Tentando entender a escolha do dr. Roberts, fui refletir sobre o JavaScript na minha carreira e no mercado como um todo.

Eu programo um pouco de JavaScript desde 2007, quando comecei a mexer com tecnologias web. Mas só um pouco. Quase nada, apenas coisas auxiliares no front-end, que era praticamente todo renderizado e manipulado no back-end.

Ali por 2010 eu comecei a mexer mais a fundo quando descobri o poder e a praticidade do JQuery. Comecei a adicionar cada vez mais JavaScript aos meus projetos ao ponto de começar a escrever front-ends completamente em JavaScript, que consumiam micro-serviços escritos em uma linguagem de back-end por volta de 2012.

No entanto, ainda considerava JavaScript uma linguagem de “segunda-classe”, inferior se comparada a Java e C#, minhas favoritas. Mas isso começou a mudar em 2016 para mim.

Segundo o StackOverflow (2017), 62.5% da audiência deles programa em JavaScript, em algum grau. Ou dois a cada 3 programadores, aproximadamente.

Segundo o GitHub (2013), 21% dos repositórios criados na plataforma são de projetos escritos em JavaScript como principal tecnologia. Ou um em cada cinco projetos, a linguagem mais popular dentre todas na plataforma.

Nos últimos cinco anos aproximadamente, a linguagem JavaScript tem se tornado a escolha obrigatória para construção de front-ends fluidos, performáticos, dinâmicos, etc e, em muitas ocasiões graças ao Node.js, a escolha para o back-end também, criando o termo “full-stack JS”.

A programação back-end mundial, até poucos anos dominada pelo Java, aos poucos vem mostrando sinais de cansaço e JavaScript vem ganhando, aos poucos, cada vez mais força, enquanto o Java decai em todas os rankings possíveis (incluindo o Tiobe), como mostra a tendência de buscas por estas tecnologias no Google Trends:

Java vs JavaScript
Java vs JavaScript

Claro, boa parte da popularidade do JavaScript é como todos sabem: no front-end, como mostra a crescente (e recente) popularidade de frameworks como React e Angular nas pesquisas, mas também com a adoção em larga escala de Node.js (a plataforma de back-end que mais utilizo atualmente):

Angular, React e Node
Angular, React e Node

E se você acha que o volume de pesquisas do Google não nos permite tirar conclusões alguma, dê uma olhada na timeline de linguagens de programação utilizadas por Stanford na cadeira introdutória de Ciência da Computação desde 1990, quando o dr. Roberts entrou na instituição:

Programação em Stanford
Programação em Stanford

Agora compare com o Google Trends de 2004 para cá, buscando pelas mesmas linguagens (infelizmente o Google não disponibiliza dados antes de 2004, o que impossibilita de entender o quão populares eram C e Pascal na década de 90):

Linguagens ao longo do tempo
Linguagens ao longo do tempo

Note que Pascal já não é nada popular desde o início dos anos 2000, que C estagnou em popularidade ali por 2009 e que a diferença de popularidade entre Java e JavaScript nunca foi tão pequena quanto nos anos recentes.

As mudanças de linguagens geralmente acompanham tendências de ensino e de mercado/indústria e até mesmo feedbacks dos alunos e professores. E não são feitas da noite para o dia: em 1995 com o boom do Java, já cogitava-se usar a linguagem em Stanford, que começou a preparar terreno para fazer a troca, que só ocorreu em 2002, sete anos depois. No caso de JavaScript, faz cinco anos que estão reescrevendo todos os materiais das disciplinas e estudando a melhor forma de fazer essa transição, embora atualmente os alunos estão podendo optar entre Java e JavaScript (disciplinas CS106A e CS106J, respectivamente).

E quando falo de feedbacks, números como os abaixo preocupam as faculdades de computação no mundo inteiro (dados da faculdade onde trabalho, que pude confirmar com coordenadores de outras instituições gaúchas):

  • aproximadamente 40% dos calouros desistem do curso de computação após a primeira disciplina de programação da faculdade (geralmente chamada de Algoritmos e geralmente com essa taxa de reprovação também);
  • no semestre seguinte, na próxima cadeira de programação (Algoritmos II, Linguagens e Técnicas de Programação, etc), cerca de 25% desistem;
  • somente a partir do semestre seguinte (no segundo ano de faculdade) que as turmas costumam estabilizar e as perdas de alunos são reduzidas a níveis aceitáveis como 10%;

De longe posso perceber enquanto professor que programação é o assunto que mais assusta em cursos de computação e o que mais impede dos estudantes de avançarem no curso, como o feedbacks abaixo (do jornal de Stanford) demonstra (traduzido livremente):

“Essa cadeira destrói a sua vida. Mas você aprende muito com essa destruição.”

Já uma professora de Stanford diz que:

“Os estudantes acreditam que essa cadeira tem o intuito de ‘limpar’ a faculdade, mas isso não é verdade.”

Acredito que estes comentários estão associados à complexidade da disciplina introdutória para quem vem “cru” do ensino médio (ou high school americano) aliado à complexidade das linguagens usadas pelas faculdades para introduzir algoritmos para os alunos, como C e Java sendo as escolhas mais populares aqui no Brasil e no exterior.

Fazendo uma comparação bem boba, mas reveladora, você sabe como é um “olá mundo”, a primeira instrução que se aprende em qualquer linguagem, em Java?

E em C?

Agora compare com um Hello World em JavaScript, que faz exatamente a mesma coisa e me diga qual você acha que é mais fácil para um calouro iniciar no mundo da programação?

E não é apenas Stanford, o famoso MIT usa Python nas disciplinas introdutórias, uma linguagem tão simples e tão poderosa quanto JS (ou talvez até mais!).

Mas por que eu deveria me preocupar com isso?

Afinal, azar é de quem não consegue avançar no curso de computação, não é mesmo?

Mais ou menos. E já vou explicar o porquê.

Por que se preocupar?

Você consegue adivinhar o que é a foto abaixo?

Fila de...
Fila de…

Uma fila de pessoas desempregadas. Em tempos de crise não são nenhuma novidade não é?

Mas você sabe em que país foi tirada essa foto?

Não, não foi no Brasil. Foi na Espanha.

Segundo a Wikipedia, o índice de desemprego na Espanha está pior que que aqui no Brasil: 17% dos espanhóis estão sem emprego contra 14% dos brasileiros. Na Grécia o índice é ainda pior: 23%. E esse problema é crônico em quase toda Europa com Itália (12%), França (10%) e Portugal (10%) figurando no topo dessa lista também.

Ou seja: não são apenas países ferrados e subdesenvolvidos da América Latina como nós que estão com grandes problemas nessa área.

Ah, mas isso é culpa da crise global, logo, logo, tudo vai melhorar…

Só que não.

Uma pesquisa da Universidade Oxford em 2013 constatou que até 2038, 47% dos empregos americanos deixarão de existir por causa da “computadorização” ou substituição do trabalhador humano por computadores.

47% dos empregos vão sumir
47% dos empregos vão sumir

E não precisa ser nenhum gênio para entender que estamos rumo ao mesmo futuro, talvez não na mesma velocidade, mas vai acontecer por aqui também. E em um mundo computadorizado, quem é que vai sempre ter emprego garantido?

Os programadores? (Viva pra nós!)

Quase. Já explico.

Uma outra pesquisa, dessa vez da OCDE em 2016, diz que 65% das crianças de hoje vão trabalhar em carreiras que ainda não existem.

O que isso quer dizer?

Eu não sei. Mas tenho algumas ideias.

Em um mundo “computadorizado”, o artista plástico não vai criar esculturas com a mão, mas programando uma impressora 3D. O motorista (se ele ainda existir) vai programar a sua rota no caminhão e estará na boleia apenas para emergências e situações não previstas, provavelmente analisando relatórios de suas viagens e cargas. O médico vai programar braços robóticos da melhor maneira para aquela cirurgia em questão, sem a necessidade dele ficar 100% do tempo na sala de cirurgia.

Sei lá, estou viajando aqui, é possível que você tenha as suas próprias ideias de profissões do futuro.

Você já ouviu falar na frase “Programe ou seja programado?”. Ela é de 2010, do professor e autor Douglas Rushkoff e dá pra ser entendida pelo vídeo abaixo:

Rushkoff entendeu que quando uma ferramenta é tão poderosa a ponto de mudar o mundo, como os computadores são, ou você aprende a programá-los para participar da criação dessa nova realidade, ou viverá na realidade criada por outras pessoas.

E isso pode ser considerado a marginalização do futuro. Viver sem saber operar um computador (não da forma como conhecemos hoje, mas de maneira ubíqua e onipresente como está se transformando) de maneira eficiente pode não ser apenas uma questão de escolher trabalhar como um programador, mas de escolher trabalhar como qualquer coisa que tenha sido “computadorizada”.

Camila Achutti, uma mestra em computação, defende inclusive que deveríamos ensinar programação nas escolas, como sendo o analfabeto digital aquele que não sabe criar programas de computador, apenas usa, em analogia a quem não sabe ler e compreender um livro, apenas olha as figuras. Você pode entender mais do trabalho de Camila no vídeo abaixo de 2016:

Como era a vida das pessoas antes de saber ler e escrever se tornar algo comum? Quem dominava tais habilidades tinha uma vantagem enorme frente aos iletrados. O mesmo acontece nos dias de hoje e acontecerá ainda mais no futuro.

Camila defende inclusive que, no pior dos casos, entender como os programas funcionam, lhe dará mais domínio de como você os usa. Um exemplo muito simples é entender a diferença entre um site com HTTP e com HTTPS por exemplo. É entender a política de privacidade de uma rede social e o que acontece quando você compartilha uma postagem.

O caso é: quanto mais fechamos a programação em uma caixa-preta blindada e inacessível para os “não iniciados”, mais o mundo inteiro perde. Quanto mais exclusivos os programadores forem, pode-se até pensar em ganho pessoal a curto prazo, mas no longo prazo, só há o caos.

Eu como o pai de um menino de 2 anos, não posso deixar que isso aconteça, ao menos não na vida dele.

O que podemos fazer?

O movimento recente de Stanford é um sinal de que não devemos apenas manter os currículos dos nossos cursos atualizados, mas sim melhores.

Se eu acho que JavaScript melhor que Java? Depende do projeto. Depende do contexto.

Para introduzir a programação para crianças e adolescentes, ou até mesmo para qualquer pessoa que está tendo seu primeiro contato com programação em toda sua vida?

Possivelmente um JavaScript ou um Python podem ser melhores mesmo.

Note que Stanford não abandonou as demais linguagens de programação que são vistas ao longo do curso de Ciência da Computação (ao longo de cinco anos eu devo ter visto mais de cinco linguagens diferentes). Ela apenas trocou Java por JavaScript na cadeira introdutória, para fazer com que mais pessoas consigam pegar o “gosto pela coisa”, que algoritmos seja algo mais “digerível” para pessoas normais.

O objetivo aqui não é formar programadores mais “fracos” e jogá-los no mercado de trabalho, até porque o intuito de nenhum bacharelado é formar programadores, mas sim cientistas.

Outra prestigiada faculdade, que eu já mencionei nesse artigo, o MIT, tem um projeto muito interessante também chamado Scratch, que já possui mais de uma década de vida. É uma ferramenta visual que lhe permite criar algoritmos usando blocos, incluindo jogos completos e interessantes de maneira muito fácil. Esta ferramenta inclusive tem sido usada em escolas ao redor do mundo nos eventos chamados Hora do Código.

Outro projeto, novamente do MIT (eu já mencionei como admiro eles?) é o APP Inventor, uma ferramenta na nuvem para construção de apps de maneira muito simples e visual!

Mas e eu? E você? O que podemos fazer?

Eu só conheço uma forma de realmente mudar a vida das pessoas: ensinando-as.

Só a educação te dá o poder para mudar a tua própria vida.

Eu sei que muitos não querem virar professores para ensinar programação, e que muitos não querem virar programadores também. Minha sugestão não é essa.

A minha sugestão é que você, nós, que somos não apenas adeptos de tecnologia, mas entendedores da mesma, ajudemos o próximo. Ajude aquela sua tia que quer um site, a criar o próprio site dela no Wix. Ajude aquele seu primo que só sabe fazer site no Wix, a criar sites usando WordPress, que é mais poderoso. Explique para sua mãe porque ela não pode publicar dados pessoais em sites sem HTTPS. Mostre para o seu pai o risco de colocar a foto da placa do carro dele na Internet, cruzando essa informação com as do Detran e tendo acesso a todos os dados pessoais dele como CPF e endereço. Mostre pro pessoal do seu escritório como as tarefas repetitivas podem ser eliminadas, e até otimizadas, usando o Zapier.

Ajude as pessoas que você se importa a não serem meros usuários, mas que entendam o que estão fazendo. Caçoe menos das “tosquices” deles e ajude mais.

Agora, se a pessoa tiver um mínimo de inclinação para algoritmos, ajude-a mostrando uma plataforma como Node.js (que usa JavaScript) ou Python e as maravilhas que são possíveis de fazer com elas. Ensine-a como usar o Google para encontrar mais informações das mesmas, como organizar seus projetos usando um Trello, como ganhar dinheiro com isso fazendo freelas.

Não guarde esses conhecimentos só pra si. Não finja que os “outros não saberem não é problema seu”. Lembra o tio Ben do Peter Parker? Ele dizia que com “grandes poderes vem grandes responsabilidades”. Ele foi assassinado por alguém que o homem-aranha não quis deter com seus poderes.

Ok, é uma história em quadrinhos e talvez agora você comece a duvidar da minha sanidade, mas não é difícil traçar um paralelo com a vida real e todas as pessoas marginalizadas que entram para o crime pois não tiveram oportunidades. Não, eu não estou defendendo bandidos aqui, estou querendo evitar que novos surjam, simples assim.

Continuando e encerrando, o dr. Werner Vogels (CTO da Amazon) tem uma célebre frase que diz: “A tecnologia é inútil se não for para o bem maior de servir os clientes.”. Eu vou mais longe e digo que “a inteligência é inútil se não for para o bem maior de ajudar as pessoas.”.

Ou você acha que guardar todo o conhecimento que você tem, apenas para si, vai lhe trazer algum outro benefício exceto ser o cadáver mais inteligente do cemitério?

Curso Node.js e MongoDB
Curso Node.js e MongoDB