Linguagem não é ferramenta. Framework sim!
O equívoco sobre profundidade técnica nas entrevistas de tecnologia
Nos últimos anos, uma frase vem se repetindo em posts e discussões de tecnologia:
“Profundidade técnica não é dominar sintaxe, é entender fundamentos.”
Essa afirmação soa bonita, mas esconde um equívoco grave: tratar linguagem de programação como se fosse uma ferramenta descartável, quando na verdade ela é o núcleo que conecta fundamentos de computação ao hardware.
Frameworks mudam o tempo todo. Linguagens, não.
Linguagem: um núcleo estável
Linguagens de programação existem há décadas com mudanças incrementais, mas mantendo um núcleo estável:
- C (anos 70) continua sendo a base de sistemas operacionais e compiladores.
- Java (1995) segue firme em aplicações corporativas, com quase 30 anos de evolução.
- JavaScript (1995) ainda move a web, apesar de todos os frameworks que nasceram e morreram ao seu redor.
- Ruby (1995) ainda está na base de milhares de sistemas críticos, mesmo após ondas de “novas modas”.
Elas não são “ferramentas de moda”. São o idioma universal no qual construímos software.
É nelas que os fundamentos de computação — estruturas de dados, concorrência, compilação, alocação de memória — ganham forma concreta.
Mas as pessoas esquecem que por trás de um sistema, existe um hardware que precisa manter um padrão de comunicação com a linguagem.
Framework: uma ferramenta descartável
Frameworks, sim, são ferramentas que mudam constantemente:
- Rails já foi dominante, depois perdeu espaço.
- Angular já teve duas reescritas quase completas.
- React (2013) hoje é onipresente, mas pode ser substituído amanhã.
- Spring Boot, Next.js, NestJS… todos seguem a mesma lógica: ferramentas úteis, mas efêmeras.
Frameworks são como andaimes numa obra: ajudam a construir mais rápido, mas não fazem parte da estrutura final.
O idealismo perigoso
Quando alguém diz que “profundidade técnica” é apenas fundamentos (algoritmos, estruturas de dados, teoria), está caindo em duas armadilhas:
-
Confundir teoria com prática.
- É como um engenheiro que entende cálculo estrutural, mas nunca foi até a obra.
- No papel, tudo parece perfeito. Mas no terreno existe um córrego escondido ou uma estrutura vizinha que compromete o empreendimento.
- Só quem domina a prática da linguagem vai perceber e saber adaptar.
-
Desprezar a linguagem.
- Achar que basta conhecer fundamentos e que “qualquer linguagem serve” é ignorar que cada linguagem tem particularidades que impactam arquitetura, performance e até segurança.
- Garbage collection do Java, ponteiros do C, tipagem dinâmica do Ruby, event loop do JavaScript… são detalhes críticos que nenhum framework resolve.
O que realmente deve ser avaliado em entrevistas?
O erro não está em cobrar conhecimento técnico. O erro está em cobrar o que não importa.
- Avaliar frameworks → mede decoreba.
- Avaliar só fundamentos genéricos → mede abstração sem prática.
- Avaliar linguagem + fundamentos → mede profundidade técnica real.
Quem domina a linguagem consegue:
- Criar frameworks.
- Criar novas linguagens.
- Adaptar-se a ferramentas novas.
- Aplicar fundamentos de computação no mundo real.
Conclusão
Linguagem não é ferramenta. Framework sim.
Frameworks vêm e vão, mas linguagens permanecem como a base que conecta software e hardware.
Profundidade técnica não é teoria sem prática, nem decoreba de frameworks.
É fundamentos + domínio da linguagem aplicados em problemas reais.
E na prática, isso faz toda a diferença:
- O engenheiro que nunca foi ao canteiro de obras projeta uma ponte perfeita no papel, mas que desaba ao encontrar o terreno.
- O programador que só decora teoria projeta soluções bonitas, mas que travam na primeira limitação real da linguagem.
Daí vem o dilema de muitos novos desenvolvedores que querem que o mundo se adapte a sua preguiça de entender o core de uma linguagem.
Entender os fundamentos da computação sempre foi essencial para qualquer desenvolvedor desde o início da internet, mas isso não significa que deva ser a única coisa cobrada em entrevistas técnicas, isso é o básico e mínimo do mínimo.
Ah... mas existe IA hoje em dia, ninguém precisa saber de linguagem; - Errado!
Se você não sabe o que uma linguagem possui em seu core, como vai saber se o que a IA está te entregando é o melhor para aquele contexto de projeto?
Empresas buscam especialistas em uma linguagem justamente pelo conhecimento profundo nela e em seu ecossistema, isso garante não só performance da equipe (que não ficará perguntando pra que serve um .sort() para IA), mas também reduz o gargalo de treinamento que engenheiros seniores terão que explicar porque quadrado não cabe na bolinha e evitará problemas de segurança que alguém que não conhece a linguagem irá construir com gambiarras que a linguagem já tem um caso de uso específico para aquilo.
Fundamentos são em maioria para pessoas que querem passar em matérias de faculdade e entrar em startup fundada por alguém sem conhecimento técnico, que não enxerga os débitos técnicos futuros.
Nessa onda hypada de lançarem inúmeros SaaS com IA, a galera confunde que isso não passa de uma bolha e que não irá se manter por muito tempo.
O salário tem despencado por essa onda, mas em breve, apenas especialistas serão procurados para tratar problemas ocasionados por pessoas que estão hipnotizadas dentro dessa bolha.
- O programador que só decora teoria projeta soluções bonitas, mas que travam na primeira limitação real da linguagem, são os mesmos que defendem nas redes sociais essa abordagem de que basta saber fundamentos da computação e não conseguem ficar sequer 3 meses em uma empresa por ter passado apenas decorando palavras bonitas e não saber lidar com a pressão de resolver um bug em produção às 03:00 am de um feriado.
Profundidade técnica de verdade é saber a teoria, a linguagem e a prática.
O resto é idealismo.