One is that the skin and surface tissues can be quite translucent. This depends to a certain extent on the colour of the skin; it is more difficult to see veins through darker skin. The second reason is that the veins you can see are actually very close to the surface. You cannot see arteries in the same way arteries carry oxygenated blood from the lungs because arteries are buried deep inside tissue.
But veins run along the surface of your tissues, often just under your skin, so they are easily seen. The best places to see your veins are your inner wrists, the backs of your hands, your inner elbows, your neck and upper chest and your legs, especially your feet.
The reason that veins appear to be blue is because they carry blood that does not contain much oxygen in it. Veins carry the blood back from the respiring body tissues to the heart and lungs. The tissues have exhausted much of the oxygen that was carried in the blood, so the blood appears blue. Blood that has high levels of oxygen in it is bright red, and is transported through the arteries.
The third reason has to do with the nature of the skin rather than the blood or vein itself. Fair skin normally reflects the light that hits it. However, the longer red wavelength of light can penetrate further into the skin than the shorter blue wavelength before being reflected out. So the red light travels into the blood in the vein and is absorbed there. But the blue light ends up being reflected back before it reaches the vein and this makes the vein appear blue.