#include<string.h>
char* message = "Hello World";
write(sock, message, strlen(message)); //strlen(message) == 11
if ( bytes_read != 0 )
{
while( i == bytes_read ) // здесь i == 0 а bytes_read != 0 что означает ( i != butes_read)
// условие не выполняется блок пропускается
{
cout << buf[i];
i = i + 1;
}
}
if ( bytes_read > 0 )
{
while( i != bytes_read ) // здесь i == 0
{
cout << buf[i];
++i;
}
}
паттерны это вообще настольная книга. Да я прочитал, ознакомился со всеми. Сейчас перечитываю.
C Unleashed использую для "тренировок", и да этой книги достаточно, чтобы понять как работает железо на низком уровне. Если вы это имели ввиду.
По поводу математики - если нет специфических требований, достаточно уровня технического колледжа, чтобы чувствовать себя свободно. Дискретная математика, линейная алгебра, немного теории вероятности и статистики. Аналитической геометрии на плоскости и в пространстве. Начал дифференциального и интегрального исчисления. Это все осваивается при наличии желания, не спеша в течение двух лет.
Что Вы подразумеваете под фундаментальными вещами в ремесле программиста?
ЯП - это инструмент. Технологии программирования. Основные алгоритмы и структуры данных - это как таблица умножения, должны быть отработаны на подсознательном уровне. Как это делается - очень просто нужно побороть лень и тренировать пальцы и мозг. Каждый день как молитву щелкать по клавишам переписывая очередной алгоритм. Много времени не займет а пользу принесет огромную.
почитайте Роберта Мартина и Кена Бека.
Различные библиотеки на данном этапе в расчет не берем, завистит от языка и среды.
rock4ster пишет, что хочется писать красивый и понятный код. Для этого нужно знать, что такое красивый и что такое понятный код. Лучше чем Чистый код: Создание, анализ и рефакторинг - еще никто не написал. Совершенный код в расчет не берем - это другого уровня.
И не надо сразу грузить голову всем подряд, сети, базы данных, конструирование компиляторов, машинное обучение, Web разработка и т.д. . Тем более погружаться только в одну среду или технологию, той литературы, что я привел достаточно для хорошего начала,
значительного расширения кругозора и правильного старта.
Р.S. И да, я не знаю на достаточном уровне ~50% того что написано в этих книгах, ввиду отсутствия практического опыта применения некоторых знаний. Но ориентироваться в них могу.