Quantum networks play an extremely important role in quantum information science, with application to quantum communication, computation, metrology and fundamental tests. One of the key challenges for implementing a quantum network is to distribute entangled flying qubits to spatially separated nodes, at which quantum interfaces or transducers map the entanglement onto stationary qubits. The stationary qubits at the separated nodes constitute quantum memories realized in matter while the flying qubits constitute quantum channels realized in photons. Dedicated efforts around the world for more than twenty years have resulted in both major theoretical and experimental progress towards entangling quantum nodes and ultimately building a global quantum network. Here, we review the development of quantum networks and the experimental progress over the past two decades leading to the current state of the art for generating entanglement of quantum nodes based on various physical systems such as single atoms, cold atomic ensembles, trapped ions, diamonds with Nitrogen-Vacancy centers, solid-state host doped with rare-earth ions, etc. Along the way we discuss the merits and compare the potential of each of these systems towards realizing a quantum network.