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

[DEBATE] Java e C# Absorve Iniciantes?

Quero deixar bem claro que isto é um debate. Não é nada do tipo "Java ou C# qual o melhor?" ou "Qual é melhor para iniciantes?".

O intuito deste post é trazer um debate sobre este tema e até ajudar quem esta escolhendo uma das duas para estudar, mas encontra na internet algumas pessoas com essas crenças de que Java ou C# não absorve iniciantes, que elas tem que ir aprender Javascript, PHP ou Python se quiser entrar no mercado mais fácil, etc.

A minha opinião sobre o tema é a seguinte: Eu acredito que sim. Tanto Java quanto Csharp absorve iniciantes para o mercado, o que não absorve são devs que não é qualificado o suficiente ou que querem entrar no mercado de forma "rápida" e sempre busca o caminho mais fácil. Tanto Java quanto C# ensina para quem está iniciando conceitos primordias como POO, tipos e até seguir uma certa estrutura logo de inicio.

Eu também acredio que, desde que a linguagem tenha mercado, ela absorve sim profissionais qualificados. Uns mais rápidos, outros podem ser demorados, mas uma hora entra. E mercado Java e Csharp tem!

Outro ponto também é que ambas as linguagens tem +20 anos. Se não absorver iniciantes como os profissionas destas linguagens irão se renovar? Ninguém é eterno e irá trabalhar para sempre. O mercado tem que ir se renovando também!

Carregando publicação patrocinada...
5

Claro que sim, toda linguagem precisa de inciantes.

Java ou C# são um pouco mais exigentes. Quem não tem base, tem dificuldade de entender certas coisas, está acostumado a treinar o erro, prefere algo que facilita entregar o resultado mais facilmente, tem mais receitas de bolo prontas, vai preferir linguagem de script. Essas duas são enterprise. Mas o fato das pessoas preferirem é diferente de não ter demanda.

É claro que se as linguagens de script atraem pessoas menos qualificadas no geral faz ter vagas que pagam menos. E podendo pagar menos acaba tendo mais vagas, até porque o grosso do trabalho, ao contrário da crença popular, não é corporativo, é em cima de pequenas empresas, que não podem pagar bem e aceitam menos qualidade do resultado ou tem necessidade tão simples que algumas coisas ruins pouco importam.

É claro que linguagens de script podem pagar bem para profissionais de primeira linha, mas não é a normalidade. E é claro que linguagens enterprise e até de sistemas podem não pagar tão bem assim, especialmente para os programadores menos qualificados.

Se quer saber se Java e C# costuma exigir um programador melhor em boa parte da vagas (não sei nem se é maioria), então sim, é um pouco mais difícil, mas longe de ser muito mais difícil conseguir uma vaga com elas se a pessoa não está bem preparada.

Mas isso tem uma vatagem, ela se prepara melhor para evoluir e alcançar melhores vagas e salários.

Eu discordo um pouco da ideia que linguagens de script atuais não podem ensinar OOP e até tipagem (até porque dados possuem tipos em todas as linguagens), tem outras coisas que elas não ensinam, mas até Java segura um pouco as coisas. Mas concordo que elas são mais exigentes com isso. Ao mesmo tempo tem coisas que elas não ensinam. O dinamismo é uma parte da computação importante (C# pode ter isso também).

Essas duas tdem ser usados em projetos maiores, por isso pode ser mais exigente também. Pode ser que tenha um bom profissional avaliando a contratação em vez de linguagens mais simples que muitas vezes a pessoa vai trabalhar sozinha ou com alguém fraco ou inexperiente, o que prejudica a evolução de todos.

Se constrói carreiras melhores com Java ou C#, mesmo que tenha uma ligeira barreira de entrada. Pelo menos é a tendência, para tudo tem exceções. Assim como acontece mais ainda com linguagens de sistemas como C, C++, Rust, Zig, etc., que são mais exigentes e tem menos vagas, portanto a bareeira é maior.

Não há dúvidas que essas duas filtram mais e isso causa a impressão de não gostarem de iniciantes, especialmente os que acham isso, porque quem treinou ter percepções ruins tende programar pior. Por isso que eu falo que "de pequenino que se torce o pepino". è mais ou menos parecido com alguns lugares como o Stack Overflow, a pessoa faz tudo errado, até sem ser programação, aí a culpa é dos outros. Essas atitudes não é só de iniciante, é de iniciante que não vai evoluir, aí as portas se fecham. Algumas pessoas você vê 3 postagens na internet e sabe que não deve contratar. Em vagas de C#/Java tende acontecer mais essa verificação que em scripts, segundo minha observação.

Faz sentido para você?

Espero ter ajudado.


Farei algo que muitos pedem para aprender a 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).

2

Compartilho o mesmo pensamento. O problema de alguns iniciantes (eu já fui assim) é que querem ser bons logo de inicio. O Java e C# tem uma curva de aprendizado um pouco maior e a tendencia é demorar mais para aprender alguns conceitos.

Mas tem uma frase que eu levo pra vida, que é "bom voce se torna". Ninguém inicia especialista no que esta estudando, mas com dedicação a gente chega lá.

Essa semana mesmo, desde segunda feira que eu estudo sobre interfaces no Csharp pq tive dificuldades em entender. Por mais que eu tenha aquela ansiedade de querer construir algo, eu não vou pular um conceito fundamental da linguagem e seguir em frente. Sei que cobrir essa lacuna é importante para mim.

As pessoas não deviam subestimar o poder da constancia e do longo prazo.

5

Não sei se querem ser bons, querem ver resultados, então partem para o ^C^V, pegar receitas de bolo, e isso não é programar. A pessoa pula etapas, treina o erro, e compromete sua carreira. Todo mundo quere a pípula mágica que entrega resultados sem esforço. E é o esforço que te permite ser bom.

Eu tenho haters, mas tenho muito mais lovers, e estes últimos querem saber como eu cheguei no ponto que estou, mesmo tendo dificuldades cognitivas, e é o esforço, é ir um passo de cada vez, pegando toda informação, mesmo que parece inútil, até o que eu não vou trabalhar, mas que dá um visão completa.

2

Verdade. A maioria que vem assim geralmente cairam na conversa de dev em 6 meses. O mal do brasileiro é ser imediatista. É por isso que casas de apostas fazem tanto sucesso aqui.

Relaxa, a maioria são lovers! Eu sou deles haha. Eu gosto de me inspirar em quem já chegou lá e aprender com a experiencia dessas pessoas!

1

Cara vou lhe responder em primeira mão!

Escolhi c# pois EU achei mais bonito que Java e escolhi uma linguagem com orientação a Obj mais interessante!

acho que vai de gosto, até agora onde eu estudei C# me cativou bastante e assimilei melhor com o pseudo código Portugol do que em outras linguagens (Mesmo Java que é tão parecido com C#)

em suma, acho que isso de nao recomendar C# ou Java para um iniciante (assim como eu) é assumir que o aluno "Iria querer ir pelo caminho mais fácil" acho que não tem muito isso de curva de aprendizagem, a única curva de aprendizagem é o quanto você quer aprender algo novo !

1

Eu escolhi C# também! Os motivos foram basicamente os mesmo. Dedicação é algo que faz a diferença e faz a gente aprender qualquer coisa mesmo!

Amanhã tem black friday na plataforma do Balta. To pensando seriamente em investir. Da pesquisa que fiz, praticamente todos indicaram ele.

1

Meu humilde relato sobre dois lugares que já trabalhei, ambas empresas no Brasil e de porte pequeno/médio. Raramente contratavam desenvolvedor Jr. ainda mais Jrs. que nunca tiveram experiência de trabalho ou Freelancer. Toda a demanda por profissionais iniciantes nessas linguagens era suprida por uma nova leva de estagiários, todos os anos eles contratam entre 12 a 20 estagiários, treinam eles em alguma dessas linguagens Java ou C# e após 1 ano e alguns meses promovem eles para Jr. e colocam dentro de alguma equipe da empresa.
De requisitos que elas têm para o estágio, estar matriculado em alguma faculdade/tecnólogo da área de TI e ser maior de 18 anos.
Acho uma abordagem bem interessante, tanto para a empresa que vai selecionar e capacitar alguém da forma que eles querem, quanto para o estudante, que vai ter uma oportunidade para se desenvolver.

1

É exatamente isso que busco para minha carreira!! Sinceramento, eu quero começar como estagiario e ir subindo gradualmente.

Atualmente eu estou estudando Angular e Csharp. Em fevereiro começo Engenharia de Software e em meados de junho de 2024 vou começar a buscar vagas de estágio.

Até la to criando projetos um pouco mais complexos para meu github. Estou criando um em Angular já e buscando projetos open-source. Quando tiver bom em .NET faço um também. Quero deixar 2 a 3 projetos mais complexos no meu GitHub e ir aplicando o que aprendo neles.

Sem pressa e sem pausa eu sei que uma hora minha vez chega!

Muito obrigado pelo seu relato sobre a realidade das empresas, me deu até uma motivação a mais! Deus te abençoe e sucesso na carreira!

1

Fico feliz em poder contribuir e, se puder, gostaria de dar uma dica: saber se comunicar em inglês é tão importante quanto dominar qualquer tecnologia.

1

Eu tenho que aprimorar meu inglês mesmo. No momento eu consigo ler um pouco, tipo uma criança quando ta em fase de alfabetização, mas só isso já faz muito a diferença na questão de consumir contéudos e ler documentação!

Obrigado pelas dicas mano! TabNews realmente é um espaço muito massa!

1

Na minha rede de contantos dentro de Tecnologia (Basicamente todo mundo estagiario/Junior), quem trabalha como Desenvolvedor de software Utiliza uma das duas linguagens. Na minha sala tem cerca de 50 pessoas dessas acredito que metade trabalha com dados portanto usa python. umas 15 pessoas devem trabalhar com desenvolvimento Backend/fullstack e todas elas utilizam ou java ou C#.


Portanto acredito que sim são mercado que absorvem iniciantes. Acho que vale deixar claro que trabalham em Instituições bancarias e bolsa de valores, onde existe bastante coisa legada dessas linguagens então não sei como fica a proporção para um mercado de startups por exemplo

1

Startup realmente é uma curiosidade saber o uso do C# haha

E sobre legado, eu acredito que para essas duas linguagens dificilmente a pessoa cai em projetos com as versões mais recentes. Por se tratarem de grandes sistemas na maioria das vezes.

As empresas deveriam fazer atualizações de pelo menos 3 em 3 anos nos sistemas para a versão mais atual da linguagem que usam, mas com certeza deve haver um bom motivo para não fazerem isso. Seja financeiro ou de tempo.

1

com certeza deve haver um bom motivo para não fazerem isso. Seja financeiro ou de tempo.

Geralmente é um pouco dos dois (afinal, "tempo é dinheiro" não é um clichê à toa).

Um cenário bem comum: o sistema atual está em constante uso e evolução, com novas funcionalidades sendo adicionadas, bugs sendo corrigidos, etc.

Para atualizar a versão, seja da linguagem, framework, o que for, vai precisar parar alguém pra testar, e se for o caso, adaptar o código. Afinal, nem sempre a versão nova é retro-compatível. Ou então tem alguma novidade que precisa mudar o código pra valer a pena a mudança. São raros os casos em que vc só troca a versão e tudo funciona magicamente (a não ser em projetos muito simples).

Enquanto alguém trabalha nesta adaptação para a nova versão, em paralelo o sistema continua existindo, com atualizações, correções, etc (que também precisarão ser adaptadas para a nova versão, o que toma mais tempo, e nesse tempo mais coisas vão sendo alteradas na versão atual, que precisarão ser atualizadas, etc).


Na prática, ou decidem que não vale a pena atualizar a versão, ou fazem algo gradual, migrando somente partes do sistema, aos poucos, até que um dia quem sabe tudo esteja atualizado (ou então convivem com o "híbrido"). Dependendo do tamanho do sistema e das condições da empresa, não tem como fazer isso "de 3 em 3 anos".

Se o sistema for pequeno, pode até valer a pena reescrever. Mas pra sistemas grandes, é inviável. Afinal, sistemas bem grandes só ficam deste tamanho após anos, então refazer tudo não é trabalho de algumas semanas ou meses. Sem contar que reescrever um sistema - qualquer sistema - não é nada trivial.

Não é incomum as empresas só decidirem mudar de versão quando a atual perde o suporte, ou se torna tão obsoleta e ruim que não vale mais a pena manter (em outras palavras, quando começa a dar prejuízo, olha aí o fator financeiro de novo). Ou quando os ganhos da nova versão são tão grandes e superiores que vale o transtorno da fase de transição - e muitas vezes é uma análise subjetiva. São raros os casos em que a empresa "para tudo" pra focar o time todo na migração.

E também tem casos em que tudo está ótimo na versão atual, mesmo que haja uma mais nova. Nem tudo precisa estar na tecnologia do ano. Eu, por exemplo, atualmente tenho projetos que estavam no Java 8 e recentemente resolveram atualizar para o 11 :-) Cada caso é um caso, e analisar o contexto é mais importante do que se deixar levar pelo hype.

0

Eu apesar de gostar muito de Java e ser minha linguagem preferida, eu acho melhor começar por Python.
O Java já te empurra para a orientação a objetos, e vai ficar uma meleca tentar programar estruturado em Java, em geral dá ruim, aí o iniciante sai xingando a linguagem.

2

Sim!! Esse é um ponto que fazem muitas pessoas odiarem Java. Geralmente são pessoas que começam a faculdade sem ter contato com a programação antes e pega um Java logo de cara ai assusta mesmo.

Por isso é importante fazer uma boa base. Eu recomendo pra qualquer pessoa que começa a estudar fazer o curso CS50 de Harvard antes de escolher qual linguagem quer se especializar.

Mas eu também acredito que é mais fácil alguém que sabe Java aprender Python do que ao contrario. Lógico que não é impossível, mas é um pouco mais dificil

1

Também dá para começar com PHP, usá-lo bem estruturado, depois usar o PHP de forma orientado a objetos, acredito ser a linguagem ideal para se fazer uma transição, mas devido ao mercado , promoção extrema, etc. eu particularmente iria de Python.

1

PHP tem essa fama mesmo, de dar muita oportunidade a iniciantes. Mas particularmente, o PHP cai de uso a cada ano e por mais que esteja em 80% da web como dizem, a maior parte disso é por conta de plataformas como o WordPress.

Obviamente que tem muito sistema para dar manutenção em PHP e acredito que é dai que vem tantas oportunidades.