There are some great posts/threads already on the board that cover this, so it is worth spending 10 minutes with the search function to find them.
The problem with conducting a weight check at the beginning of the dive is that it does not allow for the increasingly positive bouyancy of youyr cylinder as you consume the air during the dive. This means that even with a perfect weight check at the start, you can become too bouyant at the end of the dive.
To counter this, you can either approximately 'guestimate' an extra amount of weight to add to your belt to achieve correct bouyancy at the end of the dive...or... you can conduct the bouyancy check at the end of the dive and get your weighting spot on.
Quite often, new divers will conduct a buoyancy check - achieve the correct weighting - and yet still have a problem descending. This is often caused by one or more of several common problems:
1. Inadvertant finning, creating upward thrust, preventing descent (crpss your legs if you have to).
2. Deep breathing, causing increased buoyancy on descent (remember to exhale fully as your begin your descent).
3. Failure to completely empty air from the BCD. Remember to hold the deflate valve at the highest possible point above your head. Allow some extra time for air to work its way out.
There are also a couple of other methods that you can use to check your weighting....
1. Be consious of how much air you need to add to your BCD once you finish your descent and obtain neutal bouyancy. Anything more than a couple of quick 'squirts' and you are just adding air to compensate for being overweighted.
2. Try and hold neutral bouyancy with your tank on the minimum reserve pressure (50bar/500psi). Remember not to fin or scull with your hands. Keep your breathing steady and relaxed. Add or subtract weight, until you can hold a motionless stop with the minimum air reserve.