Depende do seu nível de experiência. No meu ciclo de vida como desenvolvedor, iniciei com foco na engenharia de software: arquitetura, paradigmas, diagramas, algoritmos, processos e afins. Quando você aprende muito bem toda essa base, os desafios se tornam mais interessantes e mais tranquilos de lidar.
A meu exemplo, já trabalhei com 13 linguagens de programação diferente e estou sempre pulando para uma nova em projetos pessoais. Como consolidei uma base muito forte sem depender de uma linguagem em específico, consigo transitar muito bem entre elas.
A questão do portfólio é muito subjetiva na verdade. Muitos acabam considerando que portfólio é sentar em criar uma stack completa (clone de sei lá o que, por exemplo). Mas, portfólio também é código, também é algoritmo. Você pode muito bem subir no seu GitHub algoritmos de busca, estruturas de dados, etc, em diferentes linguagens. Para se exercitar e mostrar como você coda.
Nas minhas últimas férias, estava fazendo no GitHub alguns desafios do florinpop17. Também é uma boa opção. Muitos dos desafios exigem algoritmos e processos para serem resolvidos. Além disso você pode resolvê-los em qualquer linguagem. A parte chata é que você não vai ter uma solução exata como o BeeCrowd que avalia o seu desempenho. Mas, de resto, vale a pena.
Em resumo, se te falta a base da engenharia de software, eu recomendaria pelo menos 50% (ou mais) do seu tempo em estudo gasto nisso. Se você já tem uma boa base, aí sim começe a desenvolver aplicações completas e os desafios que passei são uma boa oportunidade para isso.