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

Java como primeira linguagem

Olá pessoal, sou novo no mundo da programação e gostaria de saber a opniao de vocês sobre aprender java como primeira linguagem. Estou querendo investir num curso full stack java, mas tenho receio de ser muito complicado para iniciantes.

Carregando publicação patrocinada...
3

Como vc pode ver pelos outros comentários, não há consenso. Uns acham que é uma boa, outros acham que não.

Já eu acho que tanto faz, desde que o foco inicial seja nos princípios básicos de programação (algoritmos/lógica, estruturas de dados, etc). Nesta etapa, a linguagem é secundário, apenas - e não mais do que - uma ferramenta para aprender os fundamentos (aquele monte de "teoria chata" que é importantíssimo, e quem domina consegue aprender facilmente qualquer linguagem).

Claro que algumas linguagens parecem mais palatáveis para iniciantes, por terem menos cerimônia: menos conceitos que precisam ser ingorados no início pra não ficar confuso. Por exemplo, em Java, um HelloWorld é assim:

public class HelloWorld {
    public static void main(String args[]) {
        System.out.println("Hello, World");
    }
}

Mas aí nas primeiras aulas tem que dizer: "por enquanto ignore a classe e toda a linha do void main". Porque explicar tudo isso de primeira só serviria pra confundir.

Como já disseram, a partir do Java 21 será possível ter apenas void main() { código }, que diminui bastante mas ainda sim tem um pouco de "ignore por enquanto".

A princípio isso não é um grande problema, toda linguagem tem um certo grau de boilerplate: coisas obrigatórias pela "burocracia" imposta por ela.

Talvez por isso algumas pessoas sugiram JavaScript ou Python, que possuem menos cerimônia. Por outro lado, algumas dessas podem ter "mágicas" que abstraem certas complexidades e escondem o que acontece por debaixo dos panos. Pro aprendizado inicial eu acho ruim omitir tais detalhes, pois é importante, pelo menos até certo nível, entender o que acontece. Mas isso não impede que surjam trocentos cursos por aí que ensinam tais linguagens para iniciantes.

E só pra terminar com um caso anedótico, na faculdade eu comecei com Pascal, que nunca mais usei na vida. Mas tudo bem, ela foi só uma ferramenta para aprender os princípios básicos - como já disse, foi um detalhe secundário.

Depois aprendi outras linguagens, e a maioria também não usei mais (Lisp, Scheme, SASL, etc). Assim como Pascal, elas serviram como ferramentas para entender conceitos que depois podem ser aplicados a qualquer linguagem. Lisp, por exemplo, foi crucial para eu finalmente entender de verdade o que é recursão.

Ou seja, se ainda está aprendendo a programar, concentre-se primeiro em aprender os fundamentos, e não gaste tanto tempo escolhendo a linguagem. Como vc viu aqui, se perguntar pra 10 pessoas, virão 15 respostas diferentes. Depois que dominar o básico, vc aprende rapidamente qualquer linguagem (lembrando que aprender é rápido, mas pra dominar não tem jeito, leva tempo).

2

Concordo plenamente com o seu ponto de vista. A linguagem não deve ser foco no momento inicial, apenas a lógica.
Também nunca mais usei a primeira linguagem que aprendi - que no caso foi C - mas ela me possibilitou aprender e ENTENDER coisas mais "básicas" como memória, tamanho de variáveis, ponteiros e coisas assim que, com Python por exemplo, provavelmente teriam passado batidas já que ele abstrai muitas informações que, na grande maioria das vezes, não é necessário saber para fazer um script/programa/site.

Não importa a linguagem que vai ser utilizada, o que importa é aprender os conceitos de lógica que no futuro vão possibilitar que você aprenda muito, MUITO mais facilmente qualquer linguagem de programação.

Não DECORE linguagem, mas sim APRENDA e EXERCITE a lógica.
O foco na linguagem é só mais pra frente na sua carreira.

2

Eu não gosto muito da ideia. Java é uma linguagem enterprise, e isso significa que ela é boa para fazer aplicações complexas, mas não para fazer pequenos códigos. E isso tem uma grande implicação no aprendizado já que terá que usar muita coisa que parecerá mágica no começo.

Nem vou entrar no mérito que Java esconde muita coisa dando abstrações que prejudicam o aprendizado, porque se não for de Java ainda escolherá uma linguagem que faça o mesmo. Poucas pessoas de fato querem aprender desta forma.

Eu recomendaria C, mas eu admito que não é para qualquer um. C é simples e fácil de aprender (não de usar). Não é para aprender a linguagem, é só para aprender a programar. Depois poderia ir para Java para trabalhar efetivamente. Ou pensar em outra linguagem. Mas dependendo do objetivo da pessoa C não é indicada. Uma pena. Aprender os fundamentos costuma ser mais importante do que a linguagem que usa. C serve bem para isso. De qualquer forma tem que aprender do jeito certo, não é automático, pode aprender errado e adiantar nada.

Eu nem sou dos maiores fãs da linguagem, mas para muita gente JavaScript é mais indicada.

Mas não acho a ideia terrível. Se quer mesmo, Java não é uma opção tão ruim assim.

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

Como o @maniero disse, é legal começar com uma linguagem menos complexa e menos burocrática para começar na programação. Eu fiz tudo errado, comecei no Delphi em 2014, fui para Visual Basic .NET em 2015 (que aliás é ótima para aprendizes) e então C# em 2017. Depois comecei com PHP em 2019 (era Laravel, aprendi da pior forma possível), e me aprofundei na stack web (HTML/CSS/JS) em 2020.

Não faça isso.

Eu recomendo Visual Basic .NET. É orientado à objetos, com uma sintaxe simples, legível e elegante. Você pode fazer coisas simples e coisas grandes com ela. É uma linguagem subestimada, mas com um grande potencial, e o melhor: é simples de aprender.

Não caia na besteira de aprender em Javascript ou PHP. São linguagens ruins, com problemas de coesão. Vai confundir você que tá começando.

C é simples. C++ é um pouco mais verboso.

E outro detalhe: pagar curso é bobeira. Tem muita gente que ensina de graça. No Stack Overflow em Português tem um acervo gigantesco para você aprender programação. Fiz minha conta em 2015 lá, foi onde ganhei a maioria do meu conhecimento atual.

1

E outro detalhe: pagar curso é bobeira

Eu respeitosamente discordo.
É denecessário para muitos. Mas não é taxativamente "bobeira".
Faz sentido para muita gente ter um curso estruturado, mastigado por alguém e que dá um ritmo mais bem definido do que sair juntando vários conteúdos ou mesmo ir pulando de uma coisa para outra de forma meio desgovernada.

Para vc, não vale a pena um curso. Para mim também não vale para conteúdos mais baixo nível (Já para Cloud, Arquitetura e DevOps por exemplo, eu iria de curso mesmo). E para muitos, um curso vai dar um norte e fazer com que a pessoa não se sinta perdida com um certo cheio de informações jogadas e sem saber o que pegar dele primeiro.

1

Não disse que não vale a pena curso.

Não dispenso cursos, eles são realmente bons, mas tem muitos cursos gratuítos com uma qualidade superior que cursos caros.

É difícil achar um curso bom, sem ser de um professor/vendedor picareta. Digo isso para gratuitos ou pagos. Eu não consigo recomendar um além do ensino que tive na faculdade, o que foi parcial porque eu nem completei o curso.

2

Olá Thiago, espero que esteja bem.
Por você ser iniciante, acredito que você não deve participar de nenhum desenvolvimento real e por isso deve dispor de algum tempo até aparecer algo realmente importante para programar.
Sendo assim sugiro que faça um bom curso de java, com base no sistema padrão (SDK).
Isso irá te dar todas as bases para qualquer outra linguagem de programação que você venha a precisar no futuro.
O Java tem mais de 28 anos de maturidade, construído sobre bases muito sólidas, onde muitos conceitos foram introduzidos no início da linguagem de forma muito séria e responsável, ou seja, foi utilizado o método "faça certo da primeira vez".
Digo isso por que se observa muita coisa mal pensada e mal implementada nas outras linguagens e mesmo nas linguagens como C, falta o aprimoramento em aspectos importantes como por exemplo compilação multiplataforma e gestão dinâmica de memória.
Então ao invés de aprender conceitos mal pensados ou incompletos, faça Java SDK e adquira um conhecimento profundo sobre desenvolvimento e gestão de software que será válido por muitas décadas.
Tem um vídeo muito bom sobre a relevância do Java em 2023 no canal "Código Fonte TV", fica a dica.

Nessa fase inicial de aprendizado, tome muito cuidado com opiniões baseadas na comodidade do programador, pois agora é melhor você aprender direito, do que aprender fácil, mesmo porque existem muitas ferramentas que fazem a parte mais trabalhosa como IDE's (Eclipse, VS Code, IntelliJ) e até o ChatGPT que você pede para codificar em java ou qualquer outra linguagem e a inteligência artificial faz por você, agora para saber se está certo ou não é bom aprender os fundamentos da melhor maneira, certo.

Fique em paz, espero ter ajudado.

1

Boa tarde, trabalho com Java e é uma linguagem aonde praticamente tudo é POO, o que a torna um pouco mais verbosa, mas é uma excelente maneira de praticar esses conceitos, desde que você já os conheça pelo menos na teoria.
Quando eu estava na faculdade, nossa primeira linguagem foi C/C++, e foi uma excelente maneira para vermos na prática o que estudávamos na teoria. Depois disso, linguagem de programação são somente ferramentas, e tendo uma boa teoria e entendimentos dos conceitos é possível trocar de linguagens com certa facilidade.
Então, antes de cair em qualquer linguagem que seja, entenda bem algoritmos e estrutura de dados, entendendo esses conceitos qualquer linguagem fica mais simples de ser entendida.
Mas sim, se você conhecer bem as teorias que falei, considero Java uma boa porta de entrada sim!

1

Eu não vejo porque não!

É comum as pessoas terem o seu primeiro contato com programação na faculdade, inclusive com C, que ao meu ver é uma linguagem muito mais "hostil" a um iniciante, e depois Java para o primeiro contato com programação orientada a objetos.

Eu acho melhor, por diversos motivos, aprender C e Java antes de aprender JavaScript ou Python, por exemplo.

Vai demandar mais esforço de quem está iniciando, mas na minha opinião a pessoa terá uma base mais sólida e depois poderá ter contato com linguagens mais "flexíveis e permissivas" com um senso crítico mais apurado.

1

Vai sem medo e beba direto da fonte:
Oficial - Oracle
Notícias e recursos mais recentes para desenvolvedores Java.
https://dev.java/

Galera está engessada na versão 8 do Java.
Java já está na versão 20.

Infelizmente ficou vários mitos e lendas de como é programar em Java.
Como pensam que programamos

...
    private String nome; // Propriedade (atributo)

    // Getter para obter o valor da propriedade "nome"
    public String getNome() {
        return nome;
    }

    // Setter para definir o valor da propriedade "nome"
    public void setNome(String novoNome) {
        nome = novoNome;
    }
...

Usando Lombok. Como realmente programamos

...
import Lombok.*;
...
    private @Getter @Setter String nome;
...

Usando a IDE. Seleciona a propriedade e clica na opção Genarate Getter e Setter. O código do início vai magicamente aparecer.

...
    private String nome;
...

Como pensam que programamos

System.out.println("Bem-vindo ao exemplo do println!");

Usando a IDE (Netbeans), apenas digite: sout [tab] magicamente irá aparecer a linha abaixo, bastando digitar sua string dentro das aspas

System.out.println("");

Main na versão velha

    public static void main(String[] args) {
        System.out.println("Olá, mundo!");
    }

Main na versão nova

void main(){
}

Infelizmente apareceu um monte de maluco se dizendo guru do Java, mas que não sabe nem o básico da IDE que está usando.
Tem coisa básica com banco de dados o cara saí da IDE, sendo que nem precisa ela própria faz um montão de coisa com o banco de dados sem nem precisar sair e abrir cliente de banco de dados.

2

Complementando, a versão curta do void main só estará disponível a partir do Java 21, que será lançado mês que vem.

Além disso, segundo a descrição, ainda será em caráter experimental, pois é o que chamam de "preview language feature". Isso quer dizer que por enquanto virá desabilitado, sendo necessário habilitar explicitamente com a opção --enable-preview.

O interessante é que a mesma descrição cita que o motivador para esta funcionalidade é de fato permitir que estudantes escrevam seus primeiros programas sem precisar entender os mecanismos usados em programas maiores (no caso, classes e métodos), facilitando o aprendizado da linguagem.

1
1

Faaaaala Thiago, tudo bem?

Bom, vou deixar aqui minha opinião como um desenvolvedor que trabalha a anos com Java.

Em primeiro lugar, é ótimo saber que você está interessado em entrar no mundo da programação. A escolha de aprender Java como sua primeira linguagem é uma decisão muito sólida e promissora. Java é amplamente reconhecida por sua versatilidade, ampla utilização na indústria e pela vasta quantidade de recursos educacionais disponíveis.

Embora possa parecer um pouco intimidante no início, especialmente se você é novo na programação, o Java oferece uma curva de aprendizado gradual. Sua sintaxe é legível e estruturada, o que torna mais fácil entender os conceitos básicos de programação. Além disso, a linguagem foi projetada para enfatizar a orientação a objetos, um conceito central na programação moderna.

Optar por um curso full stack Java é uma excelente ideia. Isso permitirá que você não apenas aprenda a linguagem em si, mas também explore o desenvolvimento de aplicativos completos, desde o back-end até o front-end. À medida que avança no curso, você notará que muitos conceitos se encaixam e começarão a fazer sentido de maneira gradual.

Lembre-se de que a jornada de aprendizado é única para cada indivíduo. Todos os programadores passaram pela fase de início e enfrentaram desafios semelhantes. A chave está na prática constante, na resolução de problemas e na exploração de projetos pequenos e gradualmente mais complexos.

Não tenha medo de pedir ajuda quando encontrar obstáculos. Comunidades online e fóruns de programação estão cheios de pessoas dispostas a ajudar. E lembre-se de que, à medida que você supera os desafios, a sensação de realização será extremamente gratificante.

Então, vá em frente e mergulhe no mundo do Java! Esteja aberto para aprender, pratique regularmente e, antes que perceba, estará construindo suas próprias aplicações incríveis. A jornada pode ser desafiadora, mas os resultados valem cada esforço investido. Boa sorte!

1

Fala Thiago, beleza?

Cara, eu tenho uma experiência muito bacana, onde eu ensinei meus alunos do primeiro período do curso de sistemas de informação a programarem do extremo zero, o básico sobre algoritmos e estruturas de dados usando Java.
Eu basicamente peguei alunos que nunca tiveram contato com logica de programação e passei desde o mais básico, como tipos de dados, vaiáveis, constantes, programação sequencial, estruturas condicionais, estruturas de repetição, vetores e matrizes.

Veja, tudo isso que eles aprenderam, pode ser aprendido com outras linguagens, como JavaScript, Python, C e por ai vai.

E é por isso que eu recomendo que você busque cobrir os topicos que falei anteriormente com uma linguagem só, mesmo porque no início, qualquer linguagem vai parecer algo de outro planeta.

Programação é uma profissão que exige paciência, dedicação de muitas e muitas horas escrevendo e copiando códigos no início, até que você vai destravar na sua mente aos poucos, cada conceito que você estudar.

Então te provoco a cair de cabeça nesse mundo e se precisar ajuda, conte comigo.

Segue meu Github para mantermos contato:
https://github.com/cezarmezzalira

Boa jornada!