Spiking neural network (SNN) is a new generation of artificial neural network. It is more biologically plausible and has been widely concerned by scholars owing to its unique information coding schemes, rich spatiotemporal dynamics, and event-driven operating mode with low power. In recent years, SNN has been explored and applied in many fields such as medical health, industrial detection, and intelligent driving. First, the basic elements and learning algorithms of SNN are introduced, including classical spiking neuron models, spike-timing dependent plasticity (STDP), and common information coding methods. The advantages and disadvantages of the learning algorithms are also analyzed. Then, the mainstream software simulators and neuromorphic hardware of SNN are