Самое сложное это уметь использовать созданные до тебя алгоритмы в нужных местах, использовать, так называемые "бест практис" Ну, и конечно заставлять себя следовать этим "бест практис". Часто бывает, что понимаешь, что делаешь не грамотно, но не переделываешь потомучто лень или времени не хватает, тайно сопереживая тем, кто будет поддерживать код после тебя.