Комментарии 42
Не совсем понятно, почему на первом же курсе имеются вопросы, вместо видео.
По паре абзацев по каждому разделу написано еще здесь.
Если не сложно, добавьте абзац о Си-составляющей.
Я только не понял причем тут Stepic, т.к. ссылка идет на Mail.ru.
4 модуля, 12 уроков:
1. Углубленное программирование на языке C
2. Объектная модель языка C++. Обобщенное программирование
3. Библиотеки промышленной разработки
4. Шаблоны проектирования. Основы промышленной разработки
Правда тот курс стоило бы назвать "Асинхронное программирование на ...". И подача материала, ИМХО, какая-то слабая: видео приходилось ускорять, рвалось на полуслове, зачем-то написание кода в прямом эфире из головы с поиском ошибок, при этом была ситуация с корраптом, который так и не был решён :) Ещё была пачка замечаний, часть из них в отзывах и комментариях оставлено точно было, но конкретика уже выветрилась. Хотя, быть может от того, что это область моих интересов и, частично, профессиональной деятельности, плюс проходился курс спортивного интереса ради, то и придирок родилось много :)
Поддержу, тот курс не соответствует названию. Из C++ там только первая неделя и немного boost где-то в конце. "Многопоточное" в последние несколько недель, до этого курс по UNIX. Лекции адски нудные: переписывание манов, компиляция ручным вызыванием gcc, исправление ошибок, отсутствие пояснений к некоторым кускам кода. Схожий по материалу курс от Computer Science Center в разы интереснее (и называется правильно).
Полистал "углублённое программирование" — на вид поинтереснее, хотя что именно углублено непонятно.
Кстати, а как вы планируете их использовать? Понятно, что устраиваясь в mail.ru они, быть может, какой-то вес и будет иметь, но, к.м.к, больше нигде оно особо и не котируются.
Главное не запутаться и не принести сертификат от Mail.ru в Яндекс и наоборот :-) А по сути, это наверное играет роль, когда карьерный путь только начинается. В моём случае к началу карьеры было уже немного Open Source, для трамплина этого оказалось достаточно. А потом уже можно обращаться к предыдущему опыту и участию в проектах.
А вы сначала пробегитесь по задачам. Скорее всего вы сможете часть решить без предварительного просмотра лекций. Тем паче, что некоторые вопросы всё равно требуют обращения к сторонней литературе и в лекциях не освещены. Первую задачу на программирование вообще можно решать без оглядки на теорию в видео.
Собственно лекции потом по мере возможностей посмотрите.
Проходил у них курс про Web-разработку python, Django — очень понравился, набрал 96 балов, временами бывали сбои, но ребята хорошую идею реализуют и развивают, стараются как можно больше делать курс интерактивным, задействуют git и виртуальные системы. Уже зарегистрировался, интересно, что будет в новом курсе.
P.S. из пожеланий разработчикам, хотелось бы что бы видео можно было сразу скачать на весь урок, а лучше часть, что бы смотреть целиком и понимать картину в целом, без перерывов на паузы.
Я очень надеюсь, что это был сарказм и намек на неточную формулировку текста на слайде...
Её адрес выравняется по позиции, кратной 128. Дырку при этом никто не запрещает компилятору использовать как угодно, особенно если есть слова без жёсткого требования к выравниванию. В памяти же она как занимала 4 байта — так и будет. Более интересно применение в структурах, но с учётом того, что это расширение компилятор о каком-то стандартном поведении говорить не приходится, а вот так это может выглядеть:
#include <iostream>
#include <cstdint>
#include <cstddef>
using namespace std;
using al64_uint32_t = uint32_t __attribute__((aligned(64)));
struct Foo
{
uint32_t a;
uint32_t b;
uint32_t c;
uint32_t d;
};
struct Bar
{
uint32_t a;
uint32_t b;
al64_uint32_t c;
uint32_t d;
};
int main()
{
cout << sizeof(al64_uint32_t) << endl;
cout << sizeof(Foo) << endl;
cout << sizeof(Bar) << endl;
cout << "a: " << offsetof(Bar, a) << endl;
cout << "b: " << offsetof(Bar, b) << endl;
cout << "c: " << offsetof(Bar, c) << endl;
cout << "d: " << offsetof(Bar, d) << endl;
return 0;
}
А результат вполне может оказаться таким:
4
16
128
a: 0
b: 4
c: 64
d: 68
обратите внимание, что тут компилятор решил, что сама структура должно быть выравнена по 64 байтам и расположение полей такое, что памяти потребуется 128 байт, при этом дырки эффективно используются, что бы разместить остальные элементы. Размер же самого типа никак не изменился.
Проверить можно на Ideone: http://ideone.com/8um9v1
Ещё интересно как она будет располагаться на стеке: тут многое зависит от возможностей оптимизатора и от наличия/отсутствия зависимости по данным у этой переменной, если зависимости по данным нет, что вполне можно будет дырку заполнить другими данными.
Новый курс на платформе Stepic: «Углубленное программирование на С/С++»