https://medium.com/@jh.baek.sd/mastering-modern-c-a-comprehensive-guide-to-advanced-programming-5acd02ca6df8