Как улучшить знания? Писать и писать. Придумайте себе проект, например, и реализовывайте его проходя через трудности и проблемы, а в будущем может даже и запустите\выложите его.
По второму вопрос сложно что-то сказать. У всех понимание правильности кода разное, и все его видят по своему. Если кажется что написали не очень, но работает, то просто остановитесь здесь, и подумайте, можно ли как-то оптимизировать. Только не перестарайтесь.