https://misuperweb.net/mastering-c-programming-essential-tips-for-beginners.html