Comments 149
Неделя 1
Таблица умножения
Элементарные арфметические операции
Возведение в степень и логарифмы
Тригонометрические функции
Неделя 2
Производная функции
Интегрирование
Неделя 3
Вычисление определенных интегралов с помощью вычетов
Формула Гаусса-Бонне
Неделя 4
Применение дифференциальной геометрии в общей теории относительности
Неделя 5
Доклад на международной математической конференции
Не все пользуются Windows.
Для программирования на С++ мы рекомендуем использовать интегрированную среду разработки (IDE) Eclipse. Мы применяем её в наших лекциях. Мы выбрали Eclipse, потому что это бесплатная кросс-платформенная среда, одинаково доступная для всех участников курса. С помощью неё вы сможете полностью повторять примеры из лекций независимо от того, в какой операционной системе вы работаете.
Руководство по установке и настройке Eclipse под Windows, Linux и MacOS вы найдёте во в
Пользовался обоими, эклипс лучше. У него совершенно офигенная поддержка Git, вообще лучший гуй для гита из всех свободных, намного лучше вывод типов, есть go to declaration для перегруженных операторов и намного удобнее управление проектами и конфигурациями запуска (лично для меня), ещё на 100% не уверен, но понимание шаблонов у QtC, кажется, хромало. Использую QtCreator для рисования формочек, для этого он хорош. Эклипсу не хватает только создания болванок переопределяемых виртуальных функций из родительского класса, ну и по возможности рефакторинга поумнее, как для джавы (переименование есть, но и только). В CDT 9.3 много старых досадных багов поправили, кстати.
CLion бесплатен только для студентов и преподавателей, и если у вас не ISIC, от которого достаточно просто вбить номер — проходит время, пока они посмотрят на скан студенческого билета и проверят. Хотя тут надо отдать им должное, происходит это довольно быстро, и вас подписывают на год на все продукты, потом можно продлевать.
Хотелось бы увидеть "черный пояс")
UNIGINE С++ School: бесплатный онлайн-курс для продвинутых
Это, наверное, где-то написано, но я не нашёл — а на сколько часов в неделю рассчитан курс?
Но следует учитывать, что это при условии что вы уложитесь в рассчётные лимиты, например в 45 минут на задание по программирование для задачи по работе с файлами.
Опыт других курсов показывает, что эти задания имеют очень большой разброс — кто-то делает за 10 минут, а кто-то за неделю (я сам элементарное задание 2 недели 1 курса по машинному обучению про кошек делал 3 суток).
Бьярн Страуструп как-то рассказывал: «Открыл какой-то учебник по С++, а там на первой неделе указатели, printf, new, delete, void*… И я понял, что не хочу пользоваться таким С++».
Так вот, в начальных курсах всего этого безобразия вы не найдёте. И это заслуга создателей курса
std::vector
, std::map
и прочие) вы можете писать довольно-таки сложные программы об этом не думая вообще.А про
new
/delete
вы узнаете когда настанет пора разобраться в том, как std::vector
и std::map
устроены «внутри».В современном курсе я бы не стал вдаваться даже в то, что
"строка"
— это не std::string
. Хватит того, что "строка"s
— это std::string
, а о всём остальном вы узнаеете потом!Это звучит как нонсенс. Господа минусующие, вот об этом мой комментарий сверху!
Вполне возможно.
В этой связи выглядит странным (предположительное) негодование г-на Страуструпа по поводу new / delete, описанное в коментарии antoshka.
По идее, указатели — это наследие С. Их можно заменить ссылками. New / delete связаны с core features языка и замене не подлежат.Ассемблерная инструкция
add
тоже замене не подлежит, но про неё и разработчики со стажем могут сходу не вспомнить.В современном C++ считается «дурным тоном» использовать new/delete. При использовании «умных» указателей явно delete вызывать не нужно, а вместо new — используются аллокаторы.
Хотя, конечно, указатели на первой неделе — это и правда жестоко.
Жду следущих курсов. Как понимаю, они тоже сначала через бета-версию должны пройти? Записался в бета-тестеры на Coursera, до текущей недели так и нету следущих частей.
Насчёт цены в 1600 — кажется, Coursera снова решила всё переломать ради монетизации и теперь остались только подписки на месяц, ~3000. Надеюсь, все ещё можно как-то взять только один курс. Сам не видел, брал по старой цене.
Эта опция осталась только для одиночных курсов (не входящих в специализации) и для тех специализаций, где вы успели купить одиночный курс по старым правилам.
99% Новых курсов выходят по модели подписки.
P.S. Но зато в рамках месячной подписки можно пройти все курсы разом. Знаю прецедент когда спеку по маш обучению прошли за 2 недели.
P.P.S. цен в 1600 для большинства курсов уже давно не было. Пару лет назад (сами знаете из-за чего) все цены быстро выросли с 1600 как раз до 3000.
Я и узнал кое-что новое (банально понял зачем нужен explicit) и попрактиковался на более/менее реальных задачах.
Некоторые задания выглядят нудновато, думать не надо, а вот кодить надо много. Ну может так оно и надо — не знаю.
Некоторые моменты я не уловил: хорошо объяснено зачем передавать, скажем вектор, по константной ссылке. А почему возвращаем не по константной ссылке? Может это было в видео и я пропустил?
Последняя задача достаточно простая, но ты тратишь мильон времени чтобы научится обнаруживать неправильную дату или неправильный формат даты. Зачем? Какие навыки в плане разработки на плюсах я улучшу если потрачу кучу времени на придумывание всех edge case-ов? Это не понравилось. В соседних постах задача для поступления в школу unigine была, по моему мнению, интереснее.
Осталась куча не раскрытых тем, точно буду проходить новые курсы. Удачи вам.
А почему возвращаем не по константной ссылке?На что эта константная ссылка будет указывать, извините? На обьект, созданный внутри функции, который исчезнет, когда мы из неё выйдем?
Я боюсь тут сказывается привычка работать не с «языками с динамической типизацией», а «с языками со сборщиком мусора». В C++ каждым обьектом должен кто-то владеть (не так всё строго как в Rust'е, но концептуально — идея та же), просто так «висеть в воздухе» обьект не может…
Догадываюсь, что руководствуясь известными вам аксиомами вы дали верный ответ. Но не совсем понятно почему, ведь в курсе нет лайфцикла объектов. Почему владение ссылкой недостаточно, чтобы объект жил? Владение ссылкой != владению объекта? :-)
Но не совсем понятно почему, ведь в курсе нет лайфцикла объектов… Почему владение ссылкой недостаточно, чтобы объект жил?
Если там говорили о локальных переменных, то считайте, что он был (деструкторы нас пока не интересуют). Локальные нестатические переменные умирают при выходе из скоупа.
Проблема скорее в том, что не рассказали о ссылках в контексте возврата из функции. Хотя, подозреваю, что эту ценную информацию могли припасти до перегрузки операторов. Очевидно, если весь этот клубок сразу раскручивать, то курс растянется на несколько лет и хипстерам не понравится.
Но не совсем понятно почему, ведь в курсе нет лайфцикла объектов.Но в языке-то он есть!
Владение ссылкой != владению объекта? :-)Нет, конечно. Зачем вам нужна ссылка если у вас есть аж целый обьект на руках?
Это вообще самая большая проблема обучения C++: чтобы полностью понять как в нём работает простейшая
Hello, world!
программа вам нужно знать о работе с шаблонами, о перегрузке операторов, множественном и виртуальном наследовани и о тысяче других вещей.Потому, разумеется, прослушав вводный курс, вы не будете владеть «маленьким кусочком C++», к которому потом добавятся сложные вещи, нет, вместо этого вы сможете используя всю хитромудрую машинерую C++ (которая, напомнию, сидит «под капотом» уже в
Hello, world
!) для того, чтобы решать простые задачи…Но в языке-то он есть!
Я это понимаю :-) Мой комментарий лишь о том, что среднестатистический новичок, проходящий этот курс, вполне справедливо испытывает дискомфорт из-за недопонимания. Большинство привыкли к GC и к тому, что владение ссылкой ~= владению объектом, что объект висит в куче и будет там пока есть хоть один живой объект, который знает о нем. А некоторые и вовсе не заботятся о том, где объект и как он выделен
Кажется не хватает как раз кратенькой вводной как выделяется память в с++ и что на самом деле такое указатель
Кажется не хватает как раз кратенькой вводной как выделяется память в с++ и что на самом деле такое указательВы сейчас выступаете как изучающий C++ или как знаток C++, критикующий курс?
Если последнее — то вспомните про разные краевые случаи типа ссылок на временные объекты и «семантику перемещения». А если первое — то поверьте на слово: «кратенькая вводная про то, как выделяется память в C++» по объёму будет либо примерно сравнима со всем курсом Яндекса, либо бесполезна.
Вы действительно хотите его прослушать перед написанием
Hello, World!
?Курс же в целом прекрасен, хоть я его еще не прошел до конца, жду следующий. Спасибо!
Но возможно как профессионалы, вы можете дать достаточную вводную, чтобы избавить от этого дискомфорта. Ведь далеко не всегда профессионал знает о существовании недопонимания в определенном месте курса, потому, что многие вещи воспринимаются как аксиомы и не требуют никакого объяснения.Нет, к сожалению ситуация в данном случае совершенно иная: обьяснения, как раз, требуются — и, во многих случаях, даже люди со стажем понимают не всё.
Потому в курсе выбран подход: использовать простые варианты, которые должны работать без проблем — а сложные вещи оставить «на потом».
Так-то, в принципе, всё просто: есть локальные переменные и статические, которыми управляет компилятор и динамические.
Вот только в статических переменных есть такой подвид как «временные» переменные — которые сходу создают кучу сложностей.
А работать с динамическими переменными можно 100500 разными способами (в том числе можно и с GC столкнуться ненароком… а то и с двумя одновременно — скажем когда у вас программа на Unity под Android). А если к этому добавить потоки и исеключения?
Так что… сложно это всё. Одна из самых сложных и запутанных тем в C++, на самом деле.
Рассказать про локальные и статические переменные, которыми управляет компилятор и «ничего делать не надо».
Рассказать про new/new[] и delete/delete[] и про пару типичных ошибок/утечек.
Всё.
Рассказать про локальные и статические переменные, которыми управляет компилятор и «ничего делать не надо».Угу. Вот только уже на это одно потребуется уроков 5.
Рассказать про new/new[] и delete/delete[] и про пару типичных ошибок/утечек.
Всё.
Ну просто потому что массивы, как бы, хочется и обнулять тоже, а что для этого нужно написать что-то типа
int* array = new int[100]();
ни разу не очевижно. В том числе я встречал людей с неплохим стажем, которые не понимали что строчка вверху вовсе не эквивалентна следующему:
int* array = new int[100];
Вы очень сильно переоцениваете способность новичков к усвоению новых для них понятий. Очень.
Или ещё такое:
std::string hello_world_string() {
return "Hello, beautiful world";
}
int main() {
const std::string& a = foo();
const std::string* b = &foo();
std::cout << a << std::endl;
std::cout << *b << std::endl;
}
Почему первая строка печатается нормально, а вторая — нет? Ссылка же — это просто указатель, не так ли?К сожалению в случае с C++ и с локальными и со статическими переменными таки «чего делать надо». Про динамические переменные я вообще молчу…
У меня ваш пример падает с ошибкой при компиляции. Но вообще красивый пример :)
error: taking the address of a temporary object of type
'std::string' (aka 'basic_string<char, char_traits<char>, allocator<char>
>') [-Waddress-of-temporary]
const std::string* b = &foo();
Это предупреждение из серии фатальных. По крайней мере для Clang.
1 error generated.
Результирующего бинарника, естественно, тоже нет.
The result of the unary & operator is a pointer to its operand. The operand shall be an lvalue or a qualified-id.
Т.ч. даже компилироваться не должно, если это не MSVC с его нестандартными расширениями. Выше была именно ошибка, там даже есть слово error.
Конечно же в рамках данного курса всё равно какая среда разработки используется, т.к. он про основы языка, а не о промышленной разработке, но лучше не привыкать к плохому с первых дней разработки.
PS
Не холивара ради.
а по другим языкам есть/планируются курсы?
- Есть по машинному обучению (там поверхностно затрагивается python)
- На уровне бета-теста фронт-энд (html+css+js), готово уже 3 курса (впрочем, моё личное мнение как бета тестера не в пользу этой специализации)
- Ходят слухи про python
- Есть python от Яндекса и ВШЭ, но мне он показался довольно сумбурным
А если объективно, то разве вам не кажется, что разработка курса это в первую очередь история про то как попиариться для Яндекса и как заработать для авторов и МФТИ?
P.S. если что, я не автор. =)
Кстати, а если серьезно стоит конкретная задача за 21 день хоть как-то подтянуться до не джуна, но смахивающего на него, то как быть? Вот этот курс — основы (остальные его части, к сожалению, еще не доступны). А что почитать (по-практиковать) дальше? Чтобы не опасаться, что там «С с классами» и не потратить драгоценное время, а просто взять и «ботать». Еще раз спасибо!
Новичкам лучше начинать писать код в продвинутом редактора или полностью работать с компилятором из командной строки.
В нашем первом подходе, который мы выкинули, мы предлагали собирать из командной строк, но потом поняли, что это создаст слишком большую нагрузку на слушателей. Многие из них могли консоли до этого и не видеть ни разу, а мы их заставляем не только язык учить, но ещё и работать с непонятным чёрным экраном.
Насколько я понимаю, основная аудитория MOOC-курсов — это работающие люди. То есть у них есть 5-6 часов в неделю на изучение курсов. Чтобы они не бросили обучение, нагрузку им надо давать очень дозированно. Поэтому мы стараемся во всех лекциях и заданиях концентрироваться на какой-то одной проблеме. Чтобы слушателей не придавило объёмом информации.
Я ради развлечения начал проходить этот курс. На мой взгляд, человек который ничего и никогда не слышал о программировании с ним не справится. И вот тут как раз может пригодится книга. Мне только книги мало (говорю не в контексте этого курса, а в целом про изучение нового языка), хочется какого-нибудь интерактива — заданий с автоматической проверкой, а этого книга дать не может.
хочется какого-нибудь интерактива — заданий с автоматической проверкой, а этого книга дать не может.
Большинство книг по программированию, которые я встречал, содержали в себе примеры вида: «Вот такой-то код (… описание...) дает нам такой результат (… объяснение...)». Это уже огромное поле для экспериментов, начиная от «воспроизведи пример по памяти», до попыток сделать предположения о материале, который раскрывается далее с последующей проверкой. В помощь та же книга, автокомплит IDE и ошибки компиляции/собственные тесты. Плюс этого банального подхода в том, что полет фантазии не ограчичивается потоком жестко скриптованных заданий и работа идет в самделешном окружении, где удобно писать и дебажить, а не в браузере.
Так и тут работа идет в обычном окружении, просто потом нужно отправить файл с решением. Я, наверно, не правильно слово "интерактив" использовал. Я имел ввиду не тестовые задания которые встроены в лекции, а задания с написанием кода. Когда пишешь код в своем любимом редакторе/IDE, пишешь тесты, отлаживаешь и потом отправляешь исходный код в систему для проверки.
Безусловно, интересно и нужно эксперементировать с приведенными в книгах примерами, иначе их не понять полностью, но хочется еще иметь какую-то конкретную задачу без готового решения. Да, и просто приятно получить "звездочку" за решенное задание :) — RPG в реальности :) В этом плане, мне нравится codingame.com.
ИМХО, если с нуля учить ООП, то лучше не С++, а что-нибудь более защищенное, например, Java или C#, а когда человек готов к C++, то читать сразу Страуструпа. Имхо, это едва ли не лучшая книга по программированию вообще, а не только по C++.
Рихтера не читал, увы. Страуструп просто уровнем выше, его не стоит читать как самоучитель по C++ за X дней, иначе действительно можно заблудиться, наверное.
Вот, выходит, учебники он не пишет. Однако, итеративность изложения (это очевидно даже из оглавления) в том же «Язык программирования C++» показывает, что и справочник из нее не самый лучший.
Как раз отлично «латает дыры» после Шилдта, который в то же время чуть более «пологий», кмк. (по крайней мере могу говорить по поводу его «справочника», который мне отлично зашел как учебник в свое время)
Ведь, будем откровенны, нет идеальной книги, открывающей технологию от и до (как спецификация), в то же время немного разбавленной водой и примерами для легкой усвояемости в неокрепшем организме. Всегда приходится черпать информацию из нескольких источников, намывая знания.
Не пойму, о чём спор. Есть у Бьярне книжка для начинающих — Programming: Principles and Practice Using C++. Разжёвывается всё довольно подробно и последовательно, при этом указатели и управление памятью вводятся в третьей части. Последнее издание использует C++11/C++14.
Лучше бы по Rust-у сделали курс
А смысл? Он устареет через полгода.
А С++ устарел уже 10 лет назад так то.
Язык, может быть, и немного устарел — а вот курс по языку не устареет еще долго. В отличии от Rust, где ситуация прямо противоположная.
А кому будет нужен через десять лет курс по современному Rust'у?
С 2007-го года аж три новых стандарта вышло, поглядите при случае.Вы не поверите — но они все базируются на том, что в Turbo C++ 2.0 уже было. Да, появилось много нового, многие вещи стало делать проще и легче, но навыки, которые вы получите, пройдя курс на Turbo C++ 2.0 — вы сможете применить «с пользой» почти все.
Про Rust у меня такой уверенности нет.
A Tour of C++, наверное. Краткий обзор языка и стандартной библиотеки.
C++ Programming Language более подробно всё рассматривает.
Но я пишу на питоне почти 6 лет. И я до сих пор считаю, что я нифига не знаю. Чем больше проектов написано, ревью кода пройдено, тем сильнее понимаешь, что до прошаренности очень далеко.
Плюсы за 21 день по видосам и заданиям? Что-то у меня смутные сомнения на этот счёт.
PS Страуструп есть его не может не есть
PSS Rust, Python, Go etc — temporary trendy things for fun boys, with fun clubs sometimes.
А зачем? Atom нужно для всего этого настроить, новичку надо объяснить, что такое g++ -std=c++11 -o hello hello.cpp
, хотя он хочет просто написать код, нажать кнопку и посмотреть на результат. Это же касается любых развлечений с текстовыми редакторами. Для новичка, ИМХО, идеальный вариант: какая-то облегчённая IDE типа CodeBlocks. Быстро, работает, не перегружено непонятными фичами. Может быть Qt Creator, хотя это уже другой уровень.
P.S. а почему Atom? Может, я как-то не так его готовил, но с нужными мне настройками и плагинами он ужасно тормозит вообще везде, за VS Code такого не замечено, хотя оба крутятся на Electron.
Поэтому мы сначала показываем им «Hello, world», показываем основные конструкции языка, а непосредственно перед первым заданием по программированию объясняем, как настроить окружение. В этот момент люди уже знакомы с интерфейсом Eclipse, потому что они видели в видео, как мы с ним работаем.Он выглядит для них знакомым, а значит, у них возникнет меньше проблем при настройке.
Наоборот, оказывается полезно, чтобы ученики сразу могли приступить к практике, посмотреть/написать простые программы, а уже потом узнавали как это все работает под капотом.
Утрировано:
Сперва показываем, как машина ездит
Показываем руль, педали, корпус, салон, четыре колеса и багажник с запаской.
Рассказываем нюансы о каждой подсистеме.
Но при этом уже ученик знает, что пятого колеса тут нет и быть не может, потому что он видит как она ездит.
Показываем руль, педали, корпус, салон, четыре колеса и багажник с запаской.
Запаску-то зачем? Это ж и есть пятое колесо, о котором лучше не знать новичку.
int x = 0;
if (x = 0) {
cout << "x is zero" << endl;
}
Указывается, что в коде ошибка и спрашивается что нужно исправить что бы он выводил «x is zero».
Но очевидно, что он и так это выводит.
Но пример все равно спорный и запутывающий.
«Выберите корректные объявления переменных»:
— integer x;
— map<string, double> x;
— boolean x;
— vector x;
— dict<string, int> x;
— char x;
С первого взгляда, map и vector вроде бы заданы правильно и в уроках непосредственно перед этим они применялись преподавателем, но без указания заголовочных файлов компилятор их не распознает:
error: ‘vector’ was not declared in this scope
Получается, что корректным остается только встроенные тип «char», но похоже это не тот ответ, что ожидали авторы.
Не могу согласиться с тем, что новичкам обучение изначально даётся через IDE. И, к слову, раз уж взяли IDE, то надо было брать написанный на C++ же QT Creator, о чём, прочем, выше написали. Так вот, совершенно странно считать, что обучающийся не справится с командной строкой.
C++ — это не Javascript и HTML. С++ предполагает ознакомление со сложной системой, напрямую связанной с ОС. Если предполагаемый ученик не справился с командной строкой — зачем ему вообще дальше продвигаться? Более того, на то, чтобы объяснить концепцию командной строки даже тому, кто её до этого видел только в фильмах про хакеров нужно, я думаю, максимум час. Объяснить, что им придётся всё равно с командной строкой работать, что запускается она вот так, туда можно что-то печатать, жать Enter и что-то появится в ответ. Показать, как из проводника ссылку на папку можно перетащить в окно с «терминалом». Всё.
Концептуально, для новичков, командная строка это маленький чёрный ящик, который «понятно» как работает. А IDE — это приборная панель межгалактического лайнера с тысячей переключателей, которые только отвлекают и создают неуверенность типа «что я нажал, куда всё делось, аа-а-а!». Более того, я считаю, что новичкам первое время полезно набивать весь код руками, без автодополнений, чтобы на уровне рефлекса запомнить базовые конструкции языка.
В общем — я против IDE, против Eclipse, за командную строку и олдскул.
надо было брать написанный на C++ же QT Creator
Какой в этом смысл? Qt настолько же ненативен, насколько и Swing (сами себя рисуют). Qt в курсе не изучают (чтобы брать его интерфейс за образец), а знать, каким именно кодом дёрнули системное API не особо поможет в изучении языка в отрыве от ОС.
Если предполагаемый ученик не справился с командной строкой — зачем ему вообще дальше продвигаться?
Если предполагаемый ученик не осиливает самостоятельно Страуструпа, зачем ему вообще C++ изучать на всяких курсах?
Деньги, знаете ли, сами себя не заработают (=
Сравнивать по сложности концепцию командной строки и самостоятельное изучение С++ по Страуструпу — это или странное заблуждение, или неуместный троллинг.
Сравнивать по сложности концепцию командной строки и самостоятельное изучение С++ по Страуструпу — это или странное заблуждение, или неуместный троллинг.Я боюсь вы не сталкивались в людьми, которые никогда в жизни не работали с командной строкой. Они её боятся панически. И дело тут даже не в том, что это как-то особо сложно или хитро.
Проблема в том, что человек ожидает, что в ответ на любое его действие от компьютера поступит видимая реакция. Даже если он использует Гугл (почти командная строка) — то на любое его действие следует видимая реакция. Даже если он пишет программу на C++ и запускает её из IDE — он тут же и всегда видит результат.
А вы предлагаете ему перейти в другой, совершенно альтернативный мир, где ты что-то делаешь, а компьютер — молчит. Ты делаешь ошибку (скажем стираешь не тот файл) — а этого не видно. Страаашно. Безуууумно страшно.
Концептуально, для новичков, командная строка это маленький чёрный ящик, который «понятно» как работает. А IDE — это приборная панель межгалактического лайнера с тысячей переключателей, которые только отвлекают и создают неуверенность типа «что я нажал, куда всё делось, аа-а-а!».Так в прошлом веке было. А в нынешнем — люди могут не иметь никакого опыта работы с компьютером, но смартфон у них в кармане почти наверняка есть. А IDE — это такая же хрень, только побольше. А вот командная строка… нет, это только для истинных «гуру». Отличается сама концепция.
Программируя на языке уровня C\C++ невозможно не использовать командную строку. При этом, т.к. основная проблема с ней для «нулей» не понимание (как я написал, понимание можно дать максимум за час), а принятие, это надо сделать как можно раньше. Всё равно ведь придётся. А от того, что через n месяцев вы освоите какие-то конструкции C++, вам принятие легче не дастся. Так что как можно раньше. Никто ведь не говорит, что надо там писать то, что непонятно. Пиши то, что тебе говорят. И будет тебе правильная реакция.
Я вообще против «сахара» для новичков, как интерфейсного, так и языкового. Чем больше скрыто «за ширмой», тем больший будет шок, когда внезапно, из-за шага влево, всё развалится.
Если совсем невмоготу, и никак не идёт — возьми JS. Открываешь браузер, жмёшь F12 и программируешь до посинения. Никаких тебе ужасов с указателями, освобождением памяти и командной строкой.
Программируя на языке уровня C\C++ невозможно не использовать командную строку.Кто вам сказал? Я вполне встречал людей, которые писали на C++ не используя командную строку в принципе. Никогда и ни для чего. Да что там далеко ходить — используя Code Warrior для MacOS (ныне переименованную в MacOS Classic) под другом было просто нельзя!
Пиши то, что тебе говорят. И будет тебе правильная реакция.Не будет. Новички склонны забывать всякие мелочи. Ну там кавычки, пробелы, всякие знаки препинания. В случае с C++ — будет более-или-менее вменяемая диагностика. Хотя бы стрелочкой покажут место, где компилятору что-то не понравилось. В случае с командной строкой — будет чрезвычайно странное и непонятное сообщение об ошибке.
Обучение работе с командной строкой — это отдельный и, в общем, далеко не всегда необходимый курс.
Я вообще против «сахара» для новичков, как интерфейсного, так и языкового. Чем больше скрыто «за ширмой», тем больший будет шок, когда внезапно, из-за шага влево, всё развалится.Ага. Давайте начнём обучение с машинных кодов. А что? Для ARM'а — они просты и достаточно понятны. И прямо можно загрузчик в них писать. А когда научитесь плавать — в бассейн нальют воды.
Ну не работает это. Если ваша цель — «отшить» 99% потенциальных кандидатов и оставить только самых «стойких духом» — то да, этот метод годится. Вот только не факт, что останутся самые способные, а не самые упорные…
И, да, QT — это QuickTime.
Про IDE спорить не буду, наспорился. Считаю что наоборот — IDE будет больше пугать, чем не-IDE. Ваше право считать как хотите.
За Qt спасибо, всё время путаю.
В вопросах обучения людей не может быть без вкусовщины, мы же недетерминированы.Один конкретный человек — недетерменирован. Возьмите десяток — и появятся тендендции. Возьмите тысячу — и случайностей будет очень мало.
Про IDE спорить не буду, наспорился. Считаю что наоборот — IDE будет больше пугать, чем не-IDE. Ваше право считать как хотите.Причём тут моё или ваше право? Я застал времена, когда выбор «преподавать с IDE или без» был определён не хотелками авторов курса, а возможностями железа. Ну не было IDE на древних HP-UX'ах! А на PC — была. И на этих самых HP-UX'ах хорошо если к третьему занятию все студенты умудрялись запустить «Hello, World» (а на PC к этому времени уже довольно сложные программы писали). Просто потому что преподаватель был один и он не мог всю пару стоять «за душой» у каждого студента и обяснять — где тот накосячил. А без помощи преподавателя половина группы не могла сделать вообще ничего.
Да что там говорить — когда Turbo Pascal с приличной IDE вышел продажи Microsoft Pascal упали настолько что Microsoft наплевал на совместимость и выпустил Quick Pascal. И Microsoft C мало кто пользовался во времена, когда Turbo C (а позже Turbo C++) имела приличную IDE, а Microsoft C — исповедовал «old school» с командной строкой.
Это всё — обьективные вещи. Не знаю уж какая выборка вам нужна, но поверьте мне — в 80е годы все ВУЗы перешли на IDE при первой возможность (вплоть до того, что под СМки были специальные обучающие IDE написаны с несколько упрощённым C) не оттого, что освоение командной строки — было мелкой проблемой, через которую все студенты легко переступали.
Командная строка всегда была проблемой для «непосвящённых».
Спасибо за курс! Мне понравилось, но в финальном задании все таки дайте указания относительно поведения при отсутсвии ожидаемых аругментов у команд на входе. Это немного подпортило впечатление от курса.
И был в опросах вопрос, что можно как-то получить бумажную версию версию сертификата гос. образца за дополнительные деньги. Но на самом сайте нигде информацию не нашел. Или это касается только того, времени, когда курс будет расширен lj специализации?
Где можно приобрести футболки, как у преподавателей? Было бы здорово с гордостью надеть очередную футболку по окончанию курса!
А где кроме курсеры можно пройти эту специализацию. Там успел завершить только первый курс.
Присоединяюсь к вопросу. Где сейчас публикуется курс?
Same question
Как Яндекс создавал курс по C++, или Почему нам всё пришлось переписать