Executando verificação de segurança...
1

Pato ou Especialista?

Na sua opinião, sem moralismo nem pressão pra uma resposta inteligente e embasada, dentro da área de programação, mais vale:

  1. Alguém que conhece a área como um todo, teve experiência com tecnologias e linguagens diferentes e consegue se adaptar facilmente a um desafio que foge da zona de conforto porque já experimentou de tudo.

  2. Alguém que sempre focou em um escopo bem definido, adquire muita experiência naquilo e tem uma opinião bem sólida de como fazer as coisas da maneira mais eficiente e com as tecnologias que ele domina.

Sim, o "profissional em T" é uma escolha segura, mas ela não vale aqui. Apenas dizer "depende" sem explicar os cenários específicos também não é uma opção.

Carregando publicação patrocinada...
2

Cara tudo depende de muitas coisas, por exemplo quando você começa um projeto solo, pequeno e tudo mais você se vira nos 30 pra fazer tudo, front end, back end, mobile etc e pra um primeiro momento isso serve. mas a medida que o projeto for crescendo o custo cresce, pois ai você vai precisar de um especialista no back end pra melhorar sue back, vai precisar de um especialista em front pra cuidar do front, vai precisar de um ou dois especialista mobile pra cuidar da area de mobile, vai precisar de um especilista em cybersegurança para cuidar da segurança, etc. Então tudo depende de como o projeto começa. Se começa pequeno um "Pato" pode servir, mas a medida que o projeto cresce vai precisando de especialistas.

Visto isso na minha opnião: Quem é Jr. ou está começando na área deve ter um conhecimento em um pouco de tudo pois nunca se sabe de onde vem a primeira oportunidade. Agora quando você decide um caminho fixo e ja tem experiência na área, é uma boa começar a se especializar pois os especialista em tese ganham mais que generalista . Obviamente que você deve ter um conhecimento mínimo das outras áreas mas nada que te faça ir tão a fundo quanto você vai naquilo em que se especializa

2

No cenário hipotético que serve para confundir mais que ajudar, o que também me fez decidir responder sem embasamento real, portanto é um exercício sem muito valor, não vou de "depende" ou de "carreira em T", vou pegar as migalhas que sobram.

Sempre será melhor o profissional de amplitude.

É muito raro alguém ser bom de verdade em algo muito específico e falhar em todo o resto. Ele pode ter falhas pontuais, mas ele precisa conhecer o todo da sua profissão para tomar decisões corretas.

Os únicos profissionais muito especializados que não vão cometer muitos erros são os que seguem receitas bolos muito testadas em cenários bem específicos que elas se encaixam bem. Elas são limitadas.

Mesmo que a pessoa ache que ela é muito boa, ela não é. Ela vai se esconder das falhas falando sobre cada vírgula de uma tecnologia específica, algo que provavelmente uma pessoa não tão especializada não consegue tão facilmente. E geralmente isso tem pouco valor. Mas em alguns casos até nisso essa pessoa vai perder por não ter o todo. Ela é das mais prováveis que sofra de enorme DK.

A tal ponto que muitas pessoas sequer sabem o que é ser ser generalista. Por exemplo full stack não é ser generalista, é ser especializado em duas áresa cda computação. Duas com distância grande demais para ela ser boa nas dias. Aí como o problema de ser pato. Algumas pessoas conseguem fazer isso bem, a maioria não, cai no mesmo problema já citado. As pessoas são full stack e continuam ignorando oque mais importa para tomar boas decisões.

Um dos grandes males do momento que vivemos na profissão é justamente as pessoas quererem aprender superficialmente só para dar o resultado, sem entender o que acontece.

As boas decisões são tomadas quando a pessoa tem base sólida em tudo, quando ela experimenta tudo para ter "mão cheia". E justamente por fazer isso ela sabe que em alguns pontos ela precisa de maior especialização, mas aqui vamos achar alguém que não usará essa experiência toda para fortalecer uma área, só para cumprir o critério da pergunta.

Mas tem caso sim que o especializado competente tem seu valor, sem falar depende. Não é fácil achar.

Amplitude sempre tem limite, ninguém é bom em tudo. Então não tem dicotomia.

"Opinião bem sólida" pode ser chamada de teimosia quando a pessoa não tem base sólida ampla. E aí vem a desculpa que a pessoa usará para não buscar amplitude.

Farei algo que muitos pedem para aprender programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).

Merece like aqui? Aproveita que é de graça! E faça mais perguntas específicas, tentarei responder.

1

Show de resposta! Conseguiu explicar muito bem o ponto de vista sem ser generalista e ainda mostrou como o profissional em T se encaixa na questão sem partir dele. Muito obrigado pelo repo também!

1

Tem uma frase que diz "quem faz tudo não faz nada". Não que eu concorde 100% com essa filosofia, mas como nosso amigo já disse, para um projeto grande, escalável, você vai precisar de especialistas, e não de um bando de generalista.

E até dá pra ser "bom de verdade" em "todas as áreas" de programação, mas isso vai levar bastante tempo para acontecer. Se acontecer..

1

Acredito que isso vá depender principalmente do tamanho da empresa e do projeto. Início de projetos e empresas pequenas tendem a requerir mais generalistas, projetos e empresas maiores tendem a ter maior necessidade de especialistas;

1

Para ser sincero não existem "especialistas" dentro da área de programação. Só existem programadores normais e programadores que têm preguiça de estudar e se declaram "especialistas" por isso.

Todo "programador especialista" que eu já vi tinha conhecimento medíocre na tecnologia que ele era "especializado". A base de computação é universal, não existe especialização na base. Se tu tem base de computação tu tem base para programar com qualquer linguagem, usar qualquer ferramenta e trabalhar em qualquer área (incluindo segurança da informação).

Thread é thread em qualquer linguagem, socket é socket em qualquer linguagem etc.

O tal do "programador especialista" nada mais é que um programador que trabalha com uma linguagem específica, ele não tem mais conhecimento técnico do que o "programamador generalista", embora ele goste de fingir que tem.


Então respondendo a pergunta: nenhum dos dois. Falar de especialização só faz sentido se estivermos falando de áreas e não tecnologias específicas. Exemplo:

  1. Especialista em programação (CORRETO)
  2. Especialista em redes (CORRETO)
  3. Especialista em segurança da informação (CORRETO)
  4. Especialista em PHP (ERRADO!)

Esse último não faz sentido. A pessoa se dizer especialista em programação faz sentido, se dizer especialista em uma linguagem ou framework não...