Não há nada de errado em descobrir primeiro seus algoritmos no papel. Não tanto para a codificação diária, mas para algoritmos mais complexos, os programadores profissionais trabalham com eles em papel ou quadro branco o tempo todo, especialmente se um formato gráfico o torna mais claro. Para um aluno, todo programa é complexo.
Se você quiser melhorar a criação de algoritmos em um computador, existem algumas técnicas que você pode praticar. Não comece escrevendo o código, escreva as mesmas coisas que colocaria no papel como comentários e, em seguida, expanda-o em código real ou comentários mais detalhados um por um.
Por exemplo, se eu estiver excluindo um elemento do meio de uma lista vinculada, posso começar com algo como:
// find the element
// point the previous element to the next element
// How do I get a pointer to the previous element?
// doubly-linked list?
// another find?
// keep track during the first find?
// delete the element
Depois, posso substituir // find the element
por uma função com mais pseudocódigo e continuar até ter uma solução completa. Não pense que o código deve ser escrito de maneira linear.