1. The mentality of "I don't want to start writing code until I understand everything" will render you paralyzed always. You will never wrap your head around everything or even part of the code you are working on. Start coding, observe the effects, adjust, repeat.
I am guilty of this often when it comes to writing code. I spend a lot of time thinking through how the functionality will work mixed with research (read: Googling similar functions). To the point I don’t start writing code because I haven’t completely figured it out, rather than write the part that I have, and work from there.
I’ve been slowly working towards a new theme for this site as I move towards my goal of a public profile. Rather than coding out the scaffold and starting to fill in the pieces I know how I want to look and act, I’ve been waiting until I have a clear picture of the finish site.
That’s not practical for my own site, and definitely not practical for client work.
Time to break a bad habit.