Network coding is an emerging area in information theory and is expected to have a signification impact on future design of switching systems. Preliminary studied show that network coding may increase the achievable multicast throughput by significant amounts. Thus, deployment of network coding could help better exploit shared resources such as Internet connections or wireless bandwidth. Construction of network coding has become a hotspot in this area. After introducing the basic concepts of network coding, this paper summarizes the research work on required alphabet size and distribute coding scheme. Applications and open problems of network coding are also discussed.