Чтобы понимать - читайте Кнута, Кернигана, Ричи, Страуструпа. Эти книги замусолены не одним поколением программистов, и переизданы несчетное количество раз. Это как в литературе - начинается все с классики. Потом можете смотреть в сторону книг Гради Буча, Фаулера и подобных им. Без базы никуда короче.