[AJUDA] Além do if else.

Galera, depois q a gente aprende os conceitos básicos de uma linguagem como: estrutura de repetição e decisão como IR ALÉM e ter um conhcimento bacana ali ao ponto de criar soluções.

Amigo, não é querendo te desanimar, mas, isso ai que você aprendeu é o básico de qualquer linguagem de programação, creio que com uma breve pesquisada no Google tu conseguirias resultados melhores do que perguntando aqui, mesmo assim vou te ajudar com o que recordo do que estudei.

Pratique o básico

Primeiro tu tem que entender que isso que você aprendeu existem em qualquer outra linguagem de programação, você precisa praticar muito para desenvolver uma lógica para resoluções de problemas, de tal forma que você olhe para o problema e já consiga imaginar como mais ou menos é resolvido.

Aprender algo a fundo é melhor do que aprender várias coisas que não te levam a lugar algum.

Foque em 1 linguagem e aprenda mais que a sintaxe básica, aprenda as funções prontas de uma linguagem, muitos esquecem que todas as linguagens de programação tem seu proposito, a final elas não foram criadas para nada. Foque em 1 e aprenda o máximo possível, cada linguagem de programação tem funções prontas para resolver vários tipos de problemas, aprenda e pratique bastante isso, tente entender como que aquilo funciona, e só aí vamos para a terceira etapa.

Estrutura de Dados E algoritmos

Aqui provavelmente é a parte em que você achara que é muito difícil, mas isso é muito importante, entender pelo menos como os algoritmos mais utilizados funcionam, como os algoritmos de:

  • Busca
    • Busca ordenada
    • Busca binária
  • Ordenação
    • Selection Sort (ordenação por seleção)
    • Bubble Sort.
    • Insertion Sort (ordenação por inserção)
    • Merge Sort (ordenação por intercalação)
    • Quick Sort (ordenação rápida)
    • Heap Sort.
  • Grafos
    • Aqui você ira aprender o máximo que puder, aprender grafos é um mundo de informação, várias faculdades tem uma matéria só sobre isso.

Complexidade de Algoritmo.

É fundamental para qualquer desenvolvedor, entender e conseguir aplicar os conceitos de Complexidade de algoritmos, só assim você consegue melhorar seu código, transformar seu código em algo mais eficiente, algo que custe menos do processador e da memória.

Contando um caso que aconteceu comigo, eu estava em um campeonato regional de programação competitiva, e nosso código resolvia o problema em si, mas não estava rodando dentro do intervalo de tempo pedido, que era de 1,5 segundos, e a gente começou a entrar em desespero, pois ninguém lembrava quase nada de complexidade de algoritmos, mesmo só lembrando o básico a gente conseguiu aprimorar o código e reduzimos o tempo em meio segundo e mesmo assim não foi aceito, no final conseguimos deixar o código rodando em 1,7 segundos e não foi aceito, perdemos a questão pois o tempo acabou, quando chegamos em casa a primeira coisa que a gente foi estudar foi complexidade.

Muitas empresas desejam melhorar seus softwares, e só uma pessoa que entende de complexidade de algoritmos consegue fazer isso.

Estilo de programação

Aprenda diferentes formas de programar, ou pelo menos entenda como funciona:

  • Programação Imperativa.
  • Programação Orientada a Objetos
  • Programação Funcional São as formas de programação mais comuns, pelo menos as que conheço, eu sou bastante adepto a programação Orientada a Objetos. Aqui também é um mundo de informações para quem está começando, aprenda as vantagens, desvantagens, escolha 1 e seja feliz.

Fim

Bom, creio que a partir daqui você vai ter conhecimento necessário para continuar só, não sei se você seguira esse passo a passo, existem muitas outras coisas, acho que o mais importante de tudo é saber pesquisar, saber como pesquisar. Isso é um divisor de águas kkk

Muito obrigado pelas dicas ! A maioria das coisas q vc mencionou eu já vi na faculdade como estrutura de dados (filas, pilhas, árvores e grafos), no ultimo semestre paguei a cadeira de complexidade de algo e vi quão importante é vc saber otimizar seu codígo. a única parte q eu eu peco é nos projetos, pq fiz poucos. Ah tbm sei SQL. Adoro linguagens de paradgma declarativo kkkk
Cara, então você está meio caminho andado, creio que a maiorida das pessoas tem como maior dificuldade, pensar e desenvolver um projeto, a falta de "Criatividade", essa é um dos meus pontos fracos também. Mas recomendo tu pensar em algo que te estigue, algo que você tenha vontade de fazer, já escutei várias pessoas que tem MUITO dinheiro falando: > "Primeiro tenho que tentar ajudar quem está proximo a mim, pois se eu não conseguir ajudar quem está proximo, como que eu vou ajudar o mundo." Bom o que eu entendi é que as vezes que a gente foca muito em criar coisas super massa, que vai ser "mirabolantes" que vai mudar o mundo, mas esquecemos de ajudar o "Seu zé" ali da padaria que precisa de um sistema básico para controle de estoque. A dica que eu te dou se você tem essa base já, é estudar sobre "Engenharia de Software" geralmente nas faculdades de TI tem de 1 a 3 matérias dedicadas a Engenharia de Software, que pega dês do levantamento de requisitos, analise, modelagem de software, até o desenvolvimento de prototios, e a finalização do software. Eu particularmente achei um saco essa parte de modelagem, levantamento de requisitos e etc... e hoje é a parte que eu tenho mais dificuldade e é a que eu mais preciso.

Amigo, tente ir fazendo projetos mais básicos para ir aprofundando, sem usar banco de dados, bibliotecas ou frameworks. Exemplo, crie um cadastro, salve os dados em um array, crie uma função para buscar e retornar todos os nomes que começam com um determinado termo. Tente editar um registro no array, busque a primeira e a ultima posição do array. Veja como manipular arquivos, datas na linguagem. Envolva algum calculo no projeto. Exemplo de um sistema que você pode fazer, que vai abordar várias questões: Sistema de estacionamento, envolve vagas, ver se a vaga está ocupada, registrar o carro, calcular quantas horas o carro ficou e gerar o recibo de pagamento, e por ai vai. Espero ter ajudado.

Vlw pela dica ! E tenho um projeto parecido com esse em java no qual o user insere dados num banco (banco dev) que eu criei e ali ele pode fazer depositos, saques, transferencia, e ver o extrato.
Eu creio que ele não está nesse nível ainda, nada impede ele de criar esse tipo de coida, mas creio que se focar nos conceitos de programação, como estrutura de dados por exemplo seria melhor, mas concordo em partes com o que você falou, é importante ir utilizando a criatividade para desenvolver as coisas do jeito que sabe atuamente, para que no futuro ele possa entender que o código dele poderia ser melhorado de X formas possíveis.
Eu já faço soluções assim, como falei ali já fiz um banco q tem as msm funções de um banco físico. Estou no 6 perído de ciência da computação. Quero fazer soluções mais avançadas, sabe ? como tirar fundo de imagem, fazer um game de yugioh ou trunfo

A melhor maneira ainda continua sendo a prática, entre em alguns sites de desafios, implemente suas soluções, e tente entende as soluções de outras pessoas, se ver algo que vc nunca vio na sua lang, estudo sobre, e sempre que emplementar algo pense no desempenho, depois na estética do códico. Exemplos

const validName = function(name) {
    if (name.length <= 0 ) {
       return "nome vazio"
    }else if (name.length > 30{
       return "nome longo"
    }else {
       return "nome válido"
    }
}

códico refatorado

const validName = function(name) {
    let name_len = name.length;
    let status = ["nome vazio","nome longo","nome valido"]
    
    return ( name_len == 0 ) ? status[0] : ( name_len >= 30 ) ? status[1] : status[2]
}

Eu tenho pouca experiência com programação, mas uma coisa que vejo em códicos que estudo no github, nas soluções do stackoverflow, é que saber manipular strings, vetores e objetos, é algo muito importante. Então, estude mais sobre essas funções também.

Ótimas dicas, porém no último trecho do código, pode ser que a legibilidade se afete por conta da uso de dois operadores ternários, algo mais legível, creio eu que seria assim: ```js const validName = function(name) { let name_len = name.length; let status = ["nome vazio","nome longo","nome valido"] if (name_len === 0) { return status[0]; } if (name_len >= 30) { return status[1]; } return status[2]; } ``` O código fica mais longo, porém fica mais fácil de entender e até refatorar.