Faculdade não é sobre escrever bons códigos
Tags: career, college, knowledge
Published: 2022-02-17 23:14:12

Quando falamos especificamente da carreira de uma pessoa que irá escrever códigos, é comum pensarmos que ao sairmos da faculdade iremos ter aprendido a escrever os melhores códigos possíveis e estaremos prontos para o mercado de trabalho, mas isso é falso. E isso não é culpa da faculdade.

Se fizermos uma pesquisa simples "_para que a faculdade serve_" no Google, iremos encontrar vários posts de faculdade em seus blogs dizendo basicamente que tem o objetivo de aumentar as oportunidades profissionais, seja possibilitando ser um diferencial no mercado de trabalho ou trazendo experiências enriquecedoras. É totalmente esperado em nossa área uma pessoa que ainda está na faculdade ou acabou de terminar ainda esteja apenas no começo de sua caminhada, afinal tem bastantes coisas que elas precisam aprender sobre o mundo "real" que provavelmente não foram ensinadas na faculdade, e que talvez nem deveriam ser.

Recentemente temos visto cada vez mais essa discussão de "_faculdade compensa?_" aparecer na bolha dos programadores. O problema está quando pessoas que são ouvidas por quem está começando na área diz simplesmente "não compensa" ou começa a colocar em cheque todos os ensinamentos das faculdades com questões que deveriam ser bem mais complexas.

## O código ruim da faculdade

Conforme a faculdade vai nos ensinando como programar, vamos tendo contato com vários trechos de códigos que podem fugir um pouco da realidade do mundo "real". Dificilmente veremos as melhores abordagens para aqueles ensinamentos.
Já em outra perspectiva, se pegarmos vários cursos disponíveis na internet (seja de graça no YouTube, ou na Udemy) para quem está começando, é bem provável que teremos um tópico só para boas práticas ou simplesmente ouviremos mais cedo termos como: SOLID, Clean Code, etc.
Essas duas perspectivas parecem demonstrar muito bem o mundo real, certo? Na verdade, as coisas são um pouco mais complexas que isso.

O primeiro ponto é que é possível sim ter contatos com esses termos na faculdade, mas provavelmente em momentos diferentes, e mesmo que não tenhamos, isso não deveria ser um ponto que desmerecesse a faculdade (falaremos disso melhor depois).

O segundo ponto é que muitas vezes quando pegamos esses códigos que seguiriam más práticas e tentamos comparar com o que seria o ideal, excluímos o contexto de onde aquele código foi usado.

Por exemplo, se formos apresentados a um código em Java que conecta no banco de dados, porém está suscetível à SQL Injection, e simplesmente compararmos com o que o mercado espera, com certeza podemos ser induzido a acreditar que aquele código não prepara o profissional para o mercado. Mas fazer isto é bastante desonesto, porque sem o contexto daquele código fica difícil saber onde foi utilizado, afinal ele pode ter sido utilizado para introduzir programação com banco de dados, ou em uma prova falando para não fazer desta maneira, ou como exemplo de más práticas.

Quando eu fazia faculdade eu já trabalhava na área, e isso me ocasionou um evento que me lembro até hoje que consegue exemplificar muito bem esta cultura do reduzimento da faculdade. Eu estava em uma aula de Banco de Dados e o professor estava ensinando a criar funções, durante um exercício eu usei a abordagem de _early return_, quando o professor viu aquilo ele me questionou dizendo que não era o ideal fazer desta maneira. Mesmo eu não concordando com seus argumentos até hoje, o ponto foi que eu lembro de me sentir superior por saber mais boas práticas que ele, e com isso eu questionava todos seus conhecimentos sobre isto, afinal se ele não sabia uma coisa tão simples assim, então provavelmente eu saiba mais que ele.

Agora pegando este professor como exemplo, por ele não saber essa boa prática, ele está ensinando errado? Não. Com toda certeza ele tem mais conhecimentos abrangentes na área do que eu. Ele sabe qual o caminho deve ser traçado para os alunos terem um conhecimento base para lidar com Banco de Dados. Várias pessoas aprenderam a criar funções naquele dia, mesmo sem o _early return_.

Simplesmente não faz sentido esperarmos que veremos sempre boas práticas (mesmo que de segurança) a todo momento, afinal o caminho do aprendizado é tão importante quanto a chegada. Existe uma estrada bem grande entre ensinar Java e conexão com banco de dados até a introdução à SQL Injection. E mesmo que a faculdade não te ensine que aquele código em Java é ruim (ou o que é _early return_), é bem provável que você esteja mais preparado a entender os problemas do que se tivesse pulado para o final (onde o código já segue todas essas abordagens).

Referência é importante para se ter qualidade. Um código que segue boas práticas só existe porque sabemos quais são às más práticas.

## Não é só código

Até o momento só falamos especificamente sobre código e boas práticas. Mesmo explicando que até neste pilar, as coisas podem ser mais complexas, existem outros pontos esquecidos quando criamos estas comparações.

A grade curricular de uma faculdade geralmente abrange muitos outros tópicos que os cursos não cobrem, como: Algoritmos, Estrutura de Dados, Matemática Discreta, Cálculo, entre outros. Obviamente conseguimos encontrar cursos onlines sobre esses mesmos assuntos, entretanto essa decisão do que é necessário estudar é muito mais difícil para quem está começando na área e na maioria das vezes a pessoa só se dá conta que precisa aprender algo assim depois de uma boa caminhada.

Sempre vão existir pontos contra esses assuntos, como utilizar linguagens mais acessíveis para se ensinar estrutura de dados, ou o que poderíamos fazer preparar melhor o profissional, e para todas elas eu não tenho uma resposta, o que eu tenho apenas é a demonstração que o cenário é muito maior do que simplesmente pegar uma experiência sem contexto e utilizá-la para influenciar pessoas ou gerar tretas.
Isso comparando em um cenário onde estas duas situações são possíveis, entretanto muitas vezes nem todos tem a oportunidade ou o tempo livre para estudar por conta própria, pois isso pode necessitar de uma internet de qualidade, conhecimento prévio do que é necessário, ou meramente de um notebook.

Outro pilar importante é o do mercado de trabalho. Como já entendemos muito bem, às vezes a faculdade não nos prepara 100% para o mundo corporativo, porém podem existir situações onde a mesma pode ser um fator decisivo entre uma vaga. É bem provável que em uma concorrência entre pessoas da mesma qualidade técnica a faculdade possa ser um diferencial para um.

## O preço é diferente

Ao começarmos a percorrer nossa caminhada nesta área de desenvolvimento de software, é regular esquecermos dos caminhos já percorridos. Podemos concluir que certas abordagens em nossa área são ruins porque conseguimos compará-las com experiências passadas. Conseguimos entender melhor certas situações devido a referências passadas. Porém, é muito difícil conseguir visualizar este caminho de referências, e muitas vezes não conseguiremos, mas considero um exercício muito importante para quem está no processo de mentorar pessoas.

É preciso ter cuidado para não aceitar conselhos de quem não vai pagar o mesmo preço que você.

Cada decisão tem um peso diferente para cada pessoa, para algumas pessoas não fazer ou não uma faculdade não faz diferença, para outras pode ser um desejo pessoal ou da família (como é o meu caso), então decidir ou não uma coisa desta tem muito mais a ver com você, afinal o preço a pagar de suas decisões não são o mesmo de quem aconselha.

## Então eu devo fazer?

Se você chegou até aqui decidido a fazer faculdade devido aos pontos levantados aqui e acredita que os cursos são ruins, então creio que não consegui explicar muito bem a minha ideia.

Primeiramente, os cursos são muito importante, pois na maioria das vezes, complementam aquilo que não é ensinado na faculdade e podem ser uma maneira muito rápida de se aprender algo de maneira correta. Além disso, em certas situações o investimento para se realizar vários cursos é bem menor que o de terminar uma faculdade.

Também existem cursos para quem realmente está dando os primeiros passos e não sabe por onde começar e podem entregar um resultado muito mais rápido, este resultado pode ser um emprego, um conhecimento necessário para o que você realiza hoje, entre outras coisas.

Fazer ou não fazer faculdade é algo que envolve muitas variáveis.

Pode ser que ter uma faculdade concluída para você seja uma realização pessoal muito importante. Ou pode ser que você não consiga investir o tempo e dinheiro necessário para isto. Você também pode estar precisando de um emprego muito rápido e talvez os cursos consigam te entregar este resultado mais rápido.

E qual seria o meu conselho? Se você puder, faça tudo. É sempre bom ouvir conselhos e ter mentorias com pessoas mais experientes, mas saiba que a **única verdade** que temos nessa área é que não existe bala de prata (nem para seus estudos, nem para suas escolhas de carreiras, nem para as tecnologias que você deve trabalhar).

Espero que isso te ajude de alguma forma.

--------

**Twitter**: https://twitter.com/omarkdev
**Github**: https://github.com/omarkdev