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.