прикол в том что алгоритмы - мне даются не очень сложно.
Архитектуру - тоже можно спрогнозировать (ну более менее нормально)
Но когда дело доходит до написания кода - ступор бл
Можно учить путем написание одного проекта несколько раз. Сперва плохо выйдет(без паттернов, везде статик методы, плохо тетстируемый) а 3 -4 уже намного лучше будет.