Тема: Як вивчити C++ не новачку?
Доброго дня!
Я не скажу, що я супер, але я вивчаю C++ 3 роки. Починав з вивчення C++ для MS-DOS. Рік тому перейшов на Windows, але з тих пір я закинув програмування. Вся проблема в тому, що потрібно писати сотні рядків коду, щоб нормально написати невеличку програму. Так, можна написати невеличку програму і в 40 рядків коду, проте, це спрощений варіант. В нормальному варіанті потрібно обробити всі значення, які повертає функція, а оскільки функцій багато, то виходить дуже багато рядків коду. Навіть обробка значень, які повертає MessageBox займає багато місця, не кажучи вже про CreateFileA(). Значення, які повертає кожна функція я постійно забуваю, а тому сиджу з гуглом. Функції типу операції з файлами, і т.д. вивчив давно. Читав книгу "Системне програмування" різних авторів. А от з графікою в мене проблеми. Не можу намалювати навіть квадрат, не говорячи вже про OpenGL і DirectX. Написав пару програм, для запису та читання CD/DVD. Пів року тому це для мене був против, зараз вже ні. І нічого більшого, крім цього, я створити не зміг.
Дуже погано знаю сокети. Не можу знайти матеріал для роботи з сокетами. Всі використовують сторонні бібліотеки, на msdn розміщена така інформація, що треба багато читати, а конкретних прикладів використання немає.
Обмежився я написанням власної програми для тестування сайту на можливість атаки. Багато потоків і на кожен поток свій проксі.
Зайшов я на проекти фрілансу в інтернеті. Подивився завдання і мене взяв жах.
Завдання:
Написати програму для віддаленого керування. Клієнт на C++/Windows, сервер assembler/linux.
Ну, структури linux я взагалі не знаю. Точніше, знаю, для першої linux можу зробити програму. А структуру сучасної linux я не знаю. Що додали, що забрали. Можна ж так, як в Windows, писати 1000 рядків коду для виводу повідомлення, а можна просто викликати MessageBox(). І тому я не знаю, як там в лінукс, на асемблері, викликати функцію повідомлення, яка, можливо, на одній лінукс запрацює, а на іншій - ні. Ну, я не говорю про повідомлення. Для створення серверу потрібно багато функцій.
Це - найлегше завдання, яке я знайшов.
Всі інші завдання були типу "відновити доступ до БД", "протестувати гру". Ну, не буду ж я купляти робочу станцію за 200 000, щоб протестувати гру за 1000.
Взявся я за асемблер, на віндовсі, виявилося, що там імена функцій такі ж, як і в C++, тому все пішло, як по маслу. Я маю на увазі функції, імпортовані з DLL-бібліотек Windows, мають однакові так би мовити назви в C++ і в асемблері. В C++ їх могли назвати по-іншому, наприклад, не CreateFileA(), а CreateF(). На лінуксі за асемблер ще не брався.
Мені вже 18 років, я ніде не навчався, зі школи все давно забув. Закінчив 9 класів, з 9 класу весь час вчив C++. А мені треба якось заробити гроші. Я давав оголошення на olx, ніхто не писав нічого і тому я їх зняв... З фрілансом проблему розказав, на чистому C++ нічого немає.
І з самим C++ проблеми, я часто забуваю, які значення повертають функції, часто путаю.
Ну я думаю, це ж не в одного мене таке.
Скажіть, може і у Вас таке було, що мені робити, як мені вивчити плюси нормально, щоб можна було без msdn писати та як заробити гроші?