Tendo vindo do mercado, o que gostaria de ter entendido antes de entrar em um mestrado/doutorado em computação

Este texto foi originalmente publicado em http://brunocartaxo.com/blog/

De uma conversa que tive no meu podcast, com um convidado que é um engenheiro de software excepcional (+20 anos de experiência), surgiu a centelha que me fez pensar sobre o porquê de tantos profissionais do mercado (mesmo os muito bem sucedidos como é o caso dele) tem dificuldade ou se frustram ao entrar no meio de pesquisa acadêmica.

Primeiramente, é bom deixar claro que ninguém é obrigado a fazer mestrado ou doutorado para ser bem sucedido na carreira. Portanto, não há nenhum demérito em profissionais que optam por não ter essa experiência. Dito isso, acredito que profissionais do mercado que desenvolvem competências acadêmicas e de pesquisa, sem sombra de dúvida, ampliam e muito sua visão e capacidade de ação. A recíproca também é verdadeira. Pesquisadores acadêmicos que tiverem uma experiência de mercado minimamente razoável certamente tem uma perspectiva diferenciada.

Voltando à conversa com o meu convidado… Ele chegou a começar um mestrado mas acabou abandonando.

Alguns dos motivos para o abandono foi que ele não queria fazer um mestrado “só por fazer”, “só pra ter o título”. Ele gostaria de fazer um trabalho que tivesse orgulho; que as pessoas usassem; que inspirasse pesquisas futuras; ou que produtos viessem a ser feitos usando a pesquisa dele.

EM RESUMO, ele queria que o mestrado tivesse impacto. Quando ele viu que isso não ia se concretizar, acabou se frustrando e abandonando. Apesar de terem havido outras questões pessoais também.

Esse tipo de relato é algo que vejo se repetir tanto que acho que a gente pode descolar totalmente do meu convidado. Eu inclusive passei por isso. Tenho mestrado e doutorado concluídos e atualmente sou professor/pesquisador. Mas antes de entrar no mundo acadêmico eu vim do mercado. Atuei como desenvolvedor, líder técnico e gerente de projetos por quase oito anos em empresas de software.

Sendo assim, vou esmiuçar alguns pontos que considero importantes para entender esse tipo de frustração e espero ajudar profissionais do mercado que decidirem se aventurar no meio da pesquisa acadêmica.

Escalar a torre de Marfim nunca foi fácil, mas alinhando expectativas a coisa fica mais possível.

Para um desenvolvedor de software, duas coisas são importantes: o produto final e a forma como se constrói o software. Se eu crio um novo produto amplamente utilizado… Eu obtive êxito no mercado. Se eu, como desenvolvedor, aprendo muito aplicando as mais avançadas técnicas de desenvolvimento de software ao construir esse novo produto… Eu obtive êxito no mercado. Claro que cada um pode ter seus próprio critérios do que é sucesso na carreira, mas vou tentar simplificar as coisas aqui.

Nenhum desses critérios são relevantes no meio de pesquisa acadêmica.

Uma pesquisa está preocupada em evoluir o conhecimento atual sobre algum tópico de interesse. Um produto desenvolvido e as técnicas utilizadas para desenvolvê-lo não preenchem esse requisito. Você pode até ficar bilionário como empreendedor, ou virar um engenheiro de software respeitado. Mas isso não constitui contribuição relevante para o corpo de conhecimento de pesquisa.

Para o mundo da ciência, faço algo relevante quando crio algum conceito, método, ou técnica nova que melhora algum aspecto do desenvolvimento de software. Ou quando consigo explicar a dinâmica de algum fenômeno que antes era pouco compreendido.

Imagina que desenvolvi uma técnica que reduz a quantidade de erros introduzidos ao fazer merge de código. Se eu consigo descrever essa técnica formalmente e avaliar se ela de fato entrega a melhora prometida utilizando métodos científicos válidos, então tenho uma pesquisa.

Agora imagina que consegui criar um modelo que descreve de maneira bem estruturada o fenômeno da dificuldade que desenvolvedores enfrentam ao tentar se inserir em projetos open-source. Para criar esse modelo utilizei diversos métodos científicos rigorosos que permitem checar as minhas conclusões. Aqui, também tenho uma pesquisa.

Só vim a entender a diferença entre esses dois mundos quebrando a cara. Ta aí uma das portas na cara que tomei…

No começo do meu mestrado desenvolvi uma ferramenta de software para facilitar uma atividade repetitiva que alguns pesquisadores do meu grupo faziam. Eu acabava de vir do mercado, já tinha alguns bons anos de experiência. Projetei a ferramenta com uma arquitetura escalável e extensível, utilizei vários padrões de projeto, apliquei diversas boas práticas de programação, utilizei trocentos frameworks da moda e implementei até testes unitários e testes de carga. No final a ferramenta ficou realmente robusta, com uma qualidade inclusive muito acima do que normalmente se vê em ferramentas desenvolvidas por acadêmicos.

Escrevi um artigo, submeti para um veículo de divulgação científica descrevendo todas essas fantásticas decisões de projeto e toda aquela apresentação de encher o olho de qualquer desenvolvedor.

ARTIGO REJEITADO. Motivo?

TLDR; “Não vimos nenhuma contribuição relevante”

Decido então apresentar a ferramenta num encontro interno do departamento da universidade que fazia mestrado. Depois de fazer minha apresentação de desenvolvedor orgulhoso vem a primeira pergunta de um dos grandes professores…

QUAL A CONTRIBUIÇÃO? Isso é só um trabalho de engenharia. CADÊ A PESQUISA?

Não quero entrar no mérito aqui sobre pesquisadores/acadêmicos que têm dificuldade de entender a importância de se conectar com o “mundo real”. Por dois motivos. Primeiro, porque isso é outra discussão, que já cheguei a escrever sobre. Segundo, porque hoje vejo que esse pesquisador estava certo em sua crítica e me salvou de passar por uma fogueira.

Agora vamos para outra situação que vejo muito acontecer, ainda relacionado à falta de compreensão do que é relevante para o mundo da pesquisa. Alguém do mercado que está querendo fazer um mestrado/doutorado vai conversar com um possível orientador dizendo algo como “quero que minha pesquisa tenha programação”.

EU TAMBÉM FIZ ISSO… CAÍ EM TODAS

Antes de mais nada, SIM, é possível programar durante um mestrado/doutorado em computação. Mas não será do jeito que se programa no mercado. A programação é um mero instrumento para realizar alguma atividade da sua pesquisa. Ninguém está nem aí se o código está organizado, se o sistema é escalável, se tem muito bug ou não. Provavelmente você inclusive vai programar sozinho. Ninguém liga se você usa controle de versão (apesar de, nesse caso, acho ser prudente usar). A atividade de desenvolver software é totalmente secundária.

Se você quer evoluir suas habilidades como desenvolvedor de software, esse não é um bom lugar. Claro que sempre é possível aprender algo útil, mas não é esse o intuito. Mais uma vez, seu foco é a contribuição científica. Não um produto de software acabado.

Quando você entende que o que importa para academia/pesquisa é diferente do que importa para o mercado, o próximo passo é fazer a seguinte pergunta…

Quem não tem vivência de pesquisa, muitas vezes imagina que o doutorado é o fim da trajetória acadêmica. Mas quem está inserido no ambiente acadêmico sabe que na realidade é exatamente o oposto. A conclusão do doutorado é o começo da carreira acadêmica.

O doutorado, assim como a faixa preta, é só o começo da trajetória.

Situação semelhante ocorre no mundo das artes marciais. Quem está de fora acha que ao tirar a faixa preta chega-se ao topo, quando na realidade é só o começo. Se você olhar atentamente verá que todos os grandes campeões de artes marciais só ficaram famosos depois que já tinham tirado a faixa preta. Em competições, ninguém liga muito para as lutas das faixas mais baixas. No máximo serve para observar quem tem potencial de virar um grande campeão depois de tirar a faixa preta no futuro.

Ou seja, não é bom criar muitas expectativas enquanto estiver fazendo seu mestrado/doutorado.

Pela sua própria falta de maturidade como pesquisador, melhor enxergar o mestrado/doutorado como um treinamento para virar um pesquisador. Depois que você “tira” o seu doutorado, aí sim vai começar produzir pesquisas de mais alto impacto.

Também não ajuda enxergar o mestrado/doutorado como continuidade da graduação. São dois mundos muito diferentes, apesar de coexistirem dentro do mesmo ambiente, a universidade. A graduação em computação te prepara para ter as bases do que é a computação e eventualmente começar a atuar com desenvolvimento de software. Já o mestrado/doutorado te prepara para ser um pesquisador.

Quando olho os projetos de software que fiz nas disciplinas da minha graduação tenho um misto de orgulho e vergonha. Orgulho porque sei o sangue que dei e como corria atrás de fazer da melhor forma possível. Vergonha porque depois de ter uma razoável experiência no mercado fica visível como o código (e todo o resto) que eu fazia era tosco. Nada mais natural.

Com o mestrado/doutorado é igual. Quando leio minha tese de doutorado, e principalmente minha dissertação de mestrado, vejo quão tosco era como pesquisador. Mesmo me esforçado tanto pra fazer tudo da melhor forma possível.

Sendo assim, DEIXA EU TE CONTAR UM SEGREDO.Salvo alguma exceção muito fora da curva, ninguém liga muito pra o que você faz no seu mestrado/doutorado. Não há como esperar algo excepcional, você só está aprendendo a ser um pesquisador. Agora posso inclusive falar isso da perspectiva de quem não só fez um mestrado e um doutorado, mas também orienta e orientou alunos de mestrado e doutorado.

COM ISSO NÃO QUERO, DE FORMA ALGUMA, DIZER QUE MESTRADO/DOUTORADO É BRINCADEIRA.

É coisa séria e exige MUITO de qualquer um. Se você não aprende a ser um pesquisador nesse período, dificilmente aprenderá depois. Vale lembrar que as competições das faixas abaixo da preta servem para saber quem está apto a ser um faixa preta e mais ainda, quem tem potencial de virar um BOM FAIXA PRETA. Assim como durante a graduação é possível saber quem tem potencial de ser um bom profissional.

Pra fechar, acho que se colocar na posição de aprendiz e MANTER A MENTE DE PRINCIPIANTE, como prega Shunryu Suzuki no livro Zen Mind, Beginner’s Mind, ajuda muito, mas não é fácil. Principalmente depois de já ter se estabelecido como desenvolvedor experiente. Entrar na academia é como virar estagiário novamente. Imagina só, eu que já estive a frente de até 3 ou 4 equipes de software simultaneamente, que liderei times com mais de uma dezena de desenvolvedores, que era referência nesses projetos e nas empresas que trabalhei, me ver na posição de estagiário da ciência. Nas conferências e no meio de pesquisa minha voz não tinha nenhuma relevância. Nada fácil.

Daí lembro que abri esse post mostrando que normalmente os profissionais do mercado entram em um mestrado/doutorado achando que vão revolucionar mundo com sua pesquisa. Ou seja, ou realinha-se as expectativas, ou temos uma fórmula para a frustração. E isso tudo que falei não é pra desencorajar ninguém. Muito pelo contrário. É pra mostrar que são mundos com algumas interseções, mas diferentes. Até porque se fossem iguais, qual o sentido em fazer um mestrado ou doutorado? Se fosse uma mera continuidade do que você já faz no mercado.

Depois de tudo isso, dá pra ver que o esforço de fazer um mestrado ou doutorado é bem grande. Enão, você pode se perguntar se vale a pena. Por isso escrevi um texto pra responder a seguinte pergunta…

O que ganha um profissional do mercado ao fazer um mestrado/doutorado em computação?

Caso esse texto tenha sido útil, seria legal se você pudesse dar alguns “claps” para ajudar a divulgar na comunidade.

No twitter (@brunocartaxo) estou sempre conversando e postando sobre a vida de quem faz mestrado e doutorado, inclusive focando em pessoas que atuam no mercado. Se tiver interesse, me segue lá.

--

--

Engenheiro de Software, Consultor, Pesquisador, Professor e Doutor em Ciência da Computação. http://brunocartaxo.com

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Bruno Cartaxo

Engenheiro de Software, Consultor, Pesquisador, Professor e Doutor em Ciência da Computação. http://brunocartaxo.com