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

😞 - Cansado de algoritmos bobos...

Fala galera, boa tarde, tudo bem com vocês? Tenho 17 anos, comecei a estudar com mais "afinco" programação no ano de 2023. Aprendi lógica através do VisualG (pir favor não me julguem pythonzeros) e ja sei os conceitos de arrays, estruturas condicionais e de decisão, funções e procedimentos etc. Acho que estou aprendendo programação do jeito errado porque, honestamente, já nao tenho sentido prazer nela. Estou pensando em realizar um projeto pessoal para me animar um pouco. Algum de vocês ja passou por isso?

4

Eu não posso te ajudar muito. Eu comecei com 13 anos, lá se vão 40 anos. Em um computador de 2KB (agradeço por isso). Eu não pensei, eu fiz projetos pessoais nele. Logo em seguida profissionais.

Você me desculpe, mas é o que eu posso ajudar, mesmo que pareça que não. Em muitos casos assim, não é a programação que está aprendendo errado, é o jeito de lidar com a vida. Em muitos casos precisa de ajuda profissional para resolver isso antes que o estrago fique maior. É o "mal do século". Eu queria que mais pessoas tomassem consciência.

Não sei o quanto a internet influencia nisso, mas sei que ela mostra com clareza. Na minha época tinha vários problemas, mas as pessoas se viravam. Hoje todas as pessoas precisam desabafar com pessoas aleatórias na internet, pedir para darem soluções para a sua vida. Isso vai destruir a pessoa para sempre. E algumas pessoas que se dizem do bem só ficam assistindo. Eu não posso fazer muita coisa da mesma forma que elas, mas eu prefiro avisar sempre que posso, para a pessoa tentar enxergar isso e procurar solução, ajuda.

Eu falo isso para todos. Queria que isso fosse visto por milhares de pessoas e se enxergasse nesse cenário e comece a mudá-lo.

Não dá para programar quando a pessoa sequer consegue pensar em um projeto, o que fazer. Programar é a parte difícil.

Eu não posso ajudar muito porque meu problema era achar informação (naquela época era muito difícil) e ter tudo o que precisava para fazer as coisas complexas que eu queria fazer em computadores muito simples. Hoje com esse problema resolvido eu estaria muito animado. Acho que todo mundo deveria. me parece que hoje o problema é falta de (in)formação geral, ou falta de resiliência. Não tem nada na programação que vai ajudar isso.

Quem não está, talvez não goste de programação, mesmo que ache que sim. Quem gosta de verdade tem isso pulsando nas veias.

Até para fazer CRUD dá para se excitar, especialmente no começo. Estou falando porque um comentario fala disso (pode nem existir quando você ler tudo aqui).

Achei curioso porque respondi em outra plataforma sobre CRUD, fui amplamente negativado. Os muito positivados falavam que tudo é CRUD (até mesmo que toda a computação é CRUD). Ou seja, fuja de plataformas assim, eles valorizam o erro. O Tabnews tem se mostrado muito melhor, assim como o Stack Overflow era. Uma informação extra para as pessoas refletirem. Lá eu falei como dá pra fazer CRUDs complexos e que tudo que pode estar atrelado ao CRUD não é CRUD, e que um dos meus maiores desafios e orgulho foi criar mecanismos para nunca mais fazer CRUD (continua precisando modelar tudo e fazer todo o entorno).

Hoje muita vaga só existe porque ficam fazendo CRUD manualmente, e até de forma pouco produtiva porque aplicação DDD, Clean Architecture, e afins (que pode ser bom, mas sem o jeito certo que eu nunca vi fazerem, é muito improdutivo). Quando aprenderem a se alimentar da própria comida, vai sumir mais vaga que o ChatGPT é capaz (a tendência é não sumir porque vão usar o GePeTo para automatizar no risco e sem a mesma qualidade). Espero que isso ajude um pouco em termos práticos.

Hoje é meio normal porque as receitas de bolo ensinam assim, mas nos anos 80 eu fiz uma estrutura de código que faz as 4 letras como uma só (praticando DRY), ninguém fazia isso, fazia cada um separado, repetindo muito código. O programador só pode usar esse título com orgulho quando enxerga padrões e consegue criar soluções melhores para isso.

Faz sentido para você?

Espero ter ajudado. Em geral estou à disposição na plataforma (sem abusos :D)


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

Meu Nobre você não está aprendendo programação do jeito errado, na verdade este é o caminho correto. Começar por lógica de programação e algoritmos principalmente usando uma linguagem mais proxima da nossa como o visualG é o didaticamente mais acertado rsrs. O que acontece agora é a necessidade de evolução dos estudos.
Com esses conhecimentos iniciais consolidados saia do VisualG e escolha uma linguagem server side onde você consiga estudar um Paradigma de programação ,existem outros mas, recomendo estudar POO (Programação Orientada a Objetos) para só depois você ir fazer um projeto pessoal.
As linguagens que eu recomendaria são:

  • Java
  • C# (c-sharp)
  • PHP
  • Python

Essas são linguagens que suportam POO possuem certa empregabilidade no mercado além de frameworks que o ajudarão a construir aplicações robustas e escalaveis. Se eu pudesse escolher por você eu escolheria o Java (Culpado sou Javeiro rsrs) aprenderia a linguagem com POO e depois investiria em aprender o ecossistema do Spring (Pelo menos Spring Boot e o Spring Data JPA).

O C# também é uma boa pois dá para usar o .NET o PHP tem o Laravel e o Python tem o Django mas eu acho que o Python tem mais empregabilidade em ciencias de dados e IA mas é uma linguagem que quero me aprofundar no futuro. Eu pensei em recomendar Ruby que tenho muita curiosidade e parece ser interessante mas nunca tive contato com ela, também poderia recomendar o JavaScript que possui o Node.JS mas sinceramente nunca mexi rsrs.

Tem mais uma coisa. Você precisa de um banco de dados para salvar e persistir seus dados. Então lá vamos nós estudar Modelagem de dados e escolher um banco de dados para usar, também existem uma gama de opções muito boas, mas eu recomendo o MySQL.

Agora sim! Ao mesmo tempo em que você inicia estes estudos e aprende o básico e já sentindo confiança creio que podemos iniciar algum projetinho criando uma API Restfull de respeito ;)

É muita coisa... é!

Mas programação não é fácil como alguns vendedores de cursos que prometem milagres falam. Mas se a gente ficar estudando uma coisa só durante um tempo pode se tornar chato, então acredito que já esteja na hora de começar algo novo onde você irá se apaixonar novamente.

Boa Sorte e Bons Estudos!

1
1

Desanimar é normal, sempre tem aquele assunto chato ou preferiamos tá codando. Mas isso é uma questão de amadurecimento. Estude mesmo estando chato, pois é assim que a vida funciona. O que faz diferença é isso na verdade. Quando você for codar vai sentir a recompensa que é saber das coisas sem quebrar a cabeça com cada linha escrita dando erro. 99% já passou ou ainda vai passar por algo assim, é normal isso. Na escola você podia até amar matemática por exemplo, mas com certeza houve um assunto que você não gostou e te fez pensar sobre. Então por isso eu digo, é uma questão de amadurecimento mental. Continue se esforçando, que vai ser recompensador.

2
1

Passei por isso algumas vezes mas percebi que o trabalho de programação nem sempre é resolver os algorítmos mais complexos do mundo. Na maior parte do tempo você vai ficar resolvendo coisas simples.
Realizar projetos pessoais é legal, mas você pode enveredar por projetos open source e colaborar com eles.

1

É sempre bom desenvolver projetos pessoais para aprender novos conceitos e fixar os que já aprendeu.

Uma dica boa, que não sei se já sabe ou se já te passaram, é resolver problemas em sites como o leetcode.

Nesses tipos de site, você encontra problemas dos mais diversos temas, assim sempre vai encontrar temas novos para estudar e se aprofundar mais em algoritmos.

1

Salve!

Primeiro de tudo, um super obrigado por compartilhar esse cansaço com a comunidade - aposto que tem muita gente com um sentimento parecido, e ver uns textos assim nos ajudam a ver que não estamos sozinhos.

Como o pessoal falou, o começo é assim mesmo... Mas, se vc quiser apimentar um pouco sua jornada, pode pensar em problemas que te interessam e ir evoluindo de acordo com as necessidades da implementação.

Eu nem estou falando de fazer webservers com APIs pra vender como serviço. Se vc gosta de música produzida por computador, pode desenvolver um programa que recebe uma lista de notas e reproduz no seu computador (cada nota com um tempo fixo, ou variando de acordo com uma notação). Se está interessado em aprendizado de máquina, existem vários tutoriais para fazer um programa que reconhece objetos ou extrai padrões de dados de bolsa de valores ao longo do tempo. Pra quem está mais na pegada de computação gráfica, dá pra ir desde a implementação de uma engine implementado leis da física (e depois vc pode brincar com certos parâmetros, como a gravidade).

E sempre dá pra ir afiando o machado com conceitos teóricos - o mais pertinente é a chamada "complexidade" dos algortimos - podemos resolver o problemas de formas diferentes, e algumas podem trazer um ganho de velocidade maior do que décadas de densenvolvimento de hardware. Aqui vai um exemplo com algoritmos de ordenação: https://www.youtube.com/watch?v=WaNLJf8xzC4

A vida é assim: a gente tem que tatear um pouco o que existe por aí até encontrar aquela atividade que nos faz radiar energia.

1

Programação é um universo absurdamente grande. Eu encaro como um playground de puzzles enorme, sem fim.
Você aparenta gostar, mas se encontra desanimado. Eis a minha tese: o viés para o qual está olhando esgotou e você está paralisado, desmotivado.
Uma das melhores coisas que existem para profissionais das mais diversas áreas é encontrar desafios alinhados com as sua habilidades. Não muito difíceis a ponto de você se frustrar, nem muito fáceis a ponto de você se entendiar. Um alinhamento. É difícil encontrar esse tunning o tempo todo, porque geralmente estamos estudando o que não sabemos, ou executando o que já estamos cansados de fazer, por obrigação.
Você, que é jovem e estudante, tem a oportunidade e o tempo para dosar para que caminho ir. Recomendo que alinhe tarefas com suas habilidades de forma gradual, cada vez mais complexas.

A melhor recomendação que eu posso dar é: crie um projeto. Comece simples, pequeno e vá aplicando mais e mais ideias que aprende. Você vai ficar impressionado com a quantidade de coisas novas vão surgir à medida que você expande a ideia original do seu projeto. Caminhe descompromissadamente pelas ideias que você tem, expanda-as, corra atrás do que precisa aprender nesse processo. Dê tempo a si mesmo para crescer e experimentar. Eu lhe asseguro que você verá muito mais significado apenas com um projeto que se expande.
Quanto mais projetos você construir, com o tempo, mais significado verá na área de programação. Eu construí uns 40 até aqui. Até hoje não conheci o tédio e o desânimo.

1
1

Olha é bom escolher uma linguagem e fazer o projeto, mas você começou do jeito certo, eu comecei do mesmo jeito e usando VisualG exatamente. Eu não especialista em nenhuma linguagem ( por culpa minha mesmo ), mas não tenho dificuldade nenhuma de mudar de linguagem ou aprender por causa da base. Você está passando pela dor de aprender como o Akita diz.

1

está cansado de algoritmos bobos? então agora aprenda uma linguagem de programação de verdade e comece a fazer um projeto de verdade para resolver um problema de verdade.

talvez seja difícil decidir algo que esteja dentro da sua capacidade atual, mas só se deparando com problemas reais você vai ser um programador real.

1

Já que você já entende a prática, agora é a hora certa de se aprofundar na teoria.

Recomendo estudar, em Algoritmos e Estruturas de Dados, tópicos como (em ordem de prioridade e dificuldade):

  • Algoritmos de Pesquisa (binária, sequencial, etc);
  • Algoritmos de Ordenação/Sorting (existem VÁRIOS);
  • Estruturas de Dados Flexíveis (fila e pilha / FIFO e LIFO);
  • Árvores Binárias (importantíssimo! busca em profundidade, busca em largura...);
  • Tabelas Hash.

Vi que você citou estar estudando Java.
Segue meu repositório de AED's que fiz em Java.
Você pode utilizá-lo para guiar seus estudos.

E quando digo "estudar", quero dizer estudar MESMO.
Entender a complexidade dos algoritmos, reconhecer em quais casos é mais vantagem utilizar o algoritmo X ou Y.

Inclusive, em entrevistas técnicas de emprego, além de cobrarem a implementação de códigos, costumam pedir também a dissertação sobre a complexidade dos algoritmos que você implementou.

Dito isso:
Estude Análise da Complexidade de Algoritmos.

E, dito isso também:
Estude e faça LeetCodes.

O canal desse cara é sensacional pra isso.