I've been a web developer for 3 years now, just starting to get a hang of the standard flow of a 9-5 job. I'm getting a firm grasp on the technology, scope, and implications of the work I do.
One thing I have trouble with is doing time estimates. How do you do time estimates now? Did you start with something different to get to where you are now?
Comments from different industries or perspectives are appreciated. I'm of the firm belief that programmers don't know everything.
2. Estimate how long you think each will take, knowing it always takes longer than you think.
3. Realize it always takes longer than you think, and revise your list.
4. Double everything.
5. Round up.
6. Add it all up, walk to towards your bosses office and/or call the client.
7. In a last second panic realization that it always takes longer than you think, double it again.
In all seriousness, you will get better over time, namely after you do this many times. The only "secret" to the process is write down a detailed list of the things that must get done. Alot of people tend to clump up alot of the endgame details as "polishing" and that results in the 90/10 rule taking full effect (that the last 10% of the work takes 90% of the time) because things like UI testing, inserting the logo, doing the install script, etc, etc, take forever and a day.