Уроки с нуля в группе

Croessmah, Slonopotam
Без обид, но если ты не сможешь объяснить ничего новичку, то сенсеем 80 уровня ты никогда не станешь.
Умение объяснять это не навык педагога, это навык профессионала. Почему?
По-первых, потому что одна из задач senior'ов — это работать с junior'ами, в которых не запихнешь 100500 терминов с надеждой, что он это «расшифрует». Там нужно объяснять сложные вещи простые словами.
Во-вторых, чем более высокого ранга программист, тем более часто он взаимодействует с заказчиком, а это часто человек, который вообще ничего не смыслит в программировании, и ему надо что-то объяснить совсем на пальцах (вопросы в комментариях здесь под уроками, по сравнению с вопросами заказчика, это еще верх внимательности)
В-третьих, большинство книг, мануалов, блогов, которые завоевали популярность у профессиональных программистов, написаны очень простым языком. Взять гуру С++, Саттера или Александреску? Или настольную книгу очень многих программистов «Совершенный код» Макконела. А если зайти на курсы MVA, знаете что можно увидеть? Ведущих прогеров microsoft, которые объясняют основы ООП.

Slonopatam, мы тут в этом топике развели такой холивар. Но в этом холиваре, Croessmah хотя бы обосновывает свое мнение, я стараюсь обосновывать свое. В итоге это даже интересно. А Ваше — я знаю, почему профессиональный разработчик не должен (или не умеет) объяснять новичку, потому что я педагог, мне напоминает тех учителей, которые не приемлют альтернативной точки зрения. Мы можем подискутировать на тему, что должен, а что не должен уметь мастер, но вам придется обосновывать свою точку зрения, иначе это просто скучно.

Без обид, но если ты не сможешь объяснить ничего новичку, то сенсеем 80 уровня ты никогда не станешь.

Просто Вы не общались с профессионалами.
Вот это:

std::cout << "Hello world" << std::endl ;

повод для целой диссертации.
Вы просто не поняли.
Профессионал-то всё расскажет,
только нуб не поймет.

По-первых, потому что одна из задач senior'ов — это работать с junior'ами, в которых не запихнешь 100500 терминов с надеждой, что он это «расшифрует». Там нужно объяснять сложные вещи простые словами.

Если на должность джуна берут полных чайников,
то значит и сеньеры там соответствующие.
А если джуны не чайники,
то они в состоянии докопаться.

В-третьих, большинство книг, мануалов, блогов, которые завоевали популярность у профессиональных программистов, написаны очень простым языком.

Самый главвный ман — стандарт, написан прям очень просто :)
Страуструп тоже вон просто пишет.
А вот Мейерс пишет доступно,
но он не практик, он консультант — теоретик.

Или настольную книгу очень многих программистов «Совершенный код» Макконела. А если зайти на курсы MVA

Книга Макконнелла не для новичков
(прочитать то её можно,
но вот по настоящему понять — врядли новичку удасться),
также как и книга Александресску (которая вся шаблонная).

Croessmah

Просто Вы не общались с профессионалами

Вы не можете этого знать (тут я тонко намекаю, что Вы ошибаетесь, и не тонко, что Вы ОЧЕНЬ высокого мнения о себе, чтобы делать такие выводы толком не зная ни меня, ни рода моей деятельности)

Если на должность джуна берут полных чайников,
то значит и сеньеры там соответствующие.
А если джуны не чайники,
то они в состоянии докопаться.

Докопаться до чего? До «Hello World»? Разумеется. А если в бусте баг например, то Вы действительно думаете, что джуну, пусть и шарящему, по силу отыскать баг в кроссплатформенном коде, полному макросов и легаси кода? Тогда какие различия между джуном и сениором, если джун и так должен до всего докапываться?

Книга Макконела крута тем, что перечитывая ее студентом ты понимаешь какие-то основы, устраиваясь на работу ты понимаешь ее уже по-другому, а с опытом ты начинаешь с ней в каких-то моментах не соглашаться. Но суть в том, что она написана очень доступным языком. Автор не сыплет терминами, он использует метафоры, даже целую главу книги посвятил тому, как важно искать аналогии вместо сухих терминов.

А у Александреску книги не только про шаблоны, например у него с Саттером есть книга «стандарты программирования на с++», там про шаблоны 2-3 правила всего. Очень интересная книга, очень понятным языком написана.

Мейера специально не называла, потому что да, сейчас он больше консультант, но в своем интервью в Яндексе в прошлом году, он что-то говорил про свою практику промышленного программирования, так что он не совсем теоретик, просто в итоге к этому пришел.

P.S. Подскажите, где можно найти такую диссертацию. Не берусь утверждать, что такой диссертации нет, но google меня вывел лишь на пародии российской науки. В конце концов, Вы кинули довольно интересный факт, было бы здорово найти ему подтверждение.

P.P.S. Теперь вы тоже начали бросаться безосновательными выводами.

То, что первоклассный профессионал своего дела может быть ужасным педагогом — это факт.
И наоборот, хороший педагог может быть посредственным специалистом.

Такое бывает сплошь и рядом. Глупо об этом спорить.

Вы не можете этого знать

Признаю, погорячился.
Не один год занимаюсь плюсами,
а в общей сложности программированием лет 10,
и даже с таким багажом за плечами,
понять профи бывает тяжеловато,
особенно в тематике, которая является новой для меня,
хотя говорят они очевидные вещи.
И если это перефразировать «по простому»,
то всё становится ясно.
А теперь прикиньте,
каково всё это услышать полному новичку?
И да, я также занимаюсь репетиторством,
только вот новичков не беру,
т.к. объяснять что такое переменные — это явно не моё.

А у Александреску книги не только про шаблоны, например у него с Саттером есть книга «стандарты программирования на с++», там про шаблоны 2-3 правила всего. Очень интересная книга, очень понятным языком написана.

Читал где-то год назад,
ничего нового для себя в ней не узнал.
Книга хорошая, но всё же максимум
для новичков только и подходит.
Врядли опытный плюсовик сможет узнать в ней что-то новое.

Мейера специально не называла, потому что да, сейчас он больше консультант, но в своем интервью в Яндексе в прошлом году, он что-то говорил про свою практику промышленного программирования, так что он не совсем теоретик, просто в итоге к этому пришел.

Ага, а новая книга Мейерса
вообще как-то не очень получилась,
хотя может быть и весьма полезна тем,
кто хочет ознакомиться с C++11 и C++14.
Нашел для себя в ней пару интересных моментов.

То, что первоклассный профессионал своего дела может быть ужасным педагогом — это факт.

Ну так про это и разговор.
Однако, loshca утверждает,
что хороший профессионал — это всегда зашибательский учитель.
Просто приведу пример,
когда учился к нам поставили нового препода,
вот он очень хреново объясняет, но видно,
что он реально профессионал своего дела.
Пробыл он у нас недели две, не больше.
потом ушел работать в банк,
делает что-то связанное с безопасностью тамошних систем.

В конце концов, Вы кинули довольно интересный факт, было бы здорово найти ему подтверждение.

Диссертацию о hello world?
Ок. Просто сразу несколько глав содержания:
1) Работа препроцессора
2) Переменные, время(класс) хранения, идентификаторы, statement!=operator, литералы.
3) Функции. ODR?
4) Функция main — точка входа в приложение.
5) Функция main — ни фига не точка входа в приложение.
6) Инициализация переменных со статическим временем хранения.
7) Классы, наследование, перегрузка операторов и т.д.
8) Шаблоны, специализация шаблонов, инстанцирование шаблонов
9) Потоки ввода и вывода
10) std::ostream? А может std::basic_ostream<charT> ?
11) Не виртуальный интерфейс
12) Локали, внутренняя и внешняя кодировки, фасеты.
13) Указатель != массив
14) Вроде бы добрались до надписи «hello world». Строковые литералы.
15) Секция кода? Данных? Что это?
16) Указатели на функции?
17) Манипуляторы? Как это работает?
И т.д.
И это далеко не все, что есть в обыкновенном «hello world»

Croessmah

То, что первоклассный профессионал своего дела может быть ужасным педагогом — это факт.

Ну так про это и разговор.
Однако, loshca утверждает,
что хороший профессионал — это всегда зашибательский учитель.

Ну де-факто

Умение объяснять это не навык педагога, это навык профессионала.

не равно «хороший профессионал — это всегда зашибательский учитель».

Наверно это юношеский максимализм, когда новичок себе рисует профессионала, как человека, который мог в процессе своей карьеры развивать себя всестороне, в том числе и коммуникативные навыки, во всяком случае в сфере программирования мне казалось, что это довольно важно. Мне бы хотелось вырасти в такого профессионала.

P.S. Если не секрет, чему Вы обучаете и сколько берете?

во всяком случае в сфере программирования мне казалось, что это довольно важно.

Построить код,
который не будет нуждаться в объяснении,
намного важнее,
чем объяснение чего-то на «человеческом» языке.
Ну и дальше куча строчек о красоте,
выразительности, и хорошем стиле :)

P.S. Если не секрет, чему Вы обучаете и сколько берете?

C/C++, цена сильно зависит от длительности и тем.
Собственно, темы и длительность также
зависят от навыков обучаемого.

Croessmah
Я не считаю, что писать чистый, рабочий код это не важно. Никто не спорит с тем, что программирование для программиста это основной навык, но наша с Вами проблема в том, что либо я крайне плохо выражаю свои мысли, либо Вы в корне не согласны с идеей о том, что объяснять «по человечески» это такой же профессиональный навык, как анализ требований, тайм менеджмент или знание английского языка.

ибо Вы в корне не согласны с идеей о том, что объяснять «по человечески» это такой же профессиональный навык, как анализ требований, тайм менеджмент или знание английского языка.

Да, это важный навык, но он не обязателен
для профессионального программиста.

Господа, я вот сейчас ещё раз просмотрел нашу дискуссию, и у меня родилось подозрение, что мы друг друга не правильно поняли. А потом поехало...

loshca, ты в своём первом сообщении предлагала новичкам собраться в группу и пробежаться по урокам, подразумевая, что ты будешь в этой группе сенсеем (в терминологии дальнейшей дискуссии)? Я прав? Потому что дальнейшее обсуждение подразумевает, что в группе будут только новички.

Cranium,

Термин «сенсей» вводила не я, и введен он был значительно позже самого начала дискуссии.
Понимала ли я, что если бы кто-то захотел собраться такой группой, то вероятнее всего я была бы в ней самой опытной по части плюсов? Да, в этом был своеобразный челендж, посмотреть смогу ли я объяснить что-то «на пальцах» людям, которые только начали учить.

Перечитав, у меня сложилось ощущение, что мне пытались доказать, что-то вроде «я лучше знаю», а что лучше знаю, так и не рассказали. Если говорить конкретно про нашу ветвь разговора, то в итоге мы вообще ни к чему не пришли. Вы вкратце рассказали, как Вы видите индустрию разработки ПО, но такое ощущение, что Вы спроецировали на меня все грехи, как текущего ИТ образования, так и всех новичков, которые здесь проходят эти уроки с нуля.

Если говорить про ветку с Croessmah, то единственное, к чему мы пришли, что он считает, что навык «объяснять простым языком» опционален для профессионального программиста, причем если прочитать его последний пост, то этот навык «важный, но необязательный», что звучит для меня взаимоисключающе. С этим я не согласна, что видно из диалога, хотя у меня есть мысль, что Croessmah имеет ввиду либо очень редкие случаи, когда человек уникален в своем роде и его терпят из-за гениальности, либо, когда он работает в компаниях, где количество программистов в штате меньше сотни, либо, когда человек фрилансер. Т.е. во всех случаях, когда конечный продукт не является дорогим или сверхдорогим. И честно говоря у меня возникли очень большие сомнения в квалификации этого человека, когда он сказал, что занимается репетиторством, особенно, когда он внятно не объяснил, что конкретно он преподает, тем не менее это лишь сомнения, за которыми может ничего не стоять.

Подводя итог, мы все потеряли время. Я, потому что группа не собралась, Вы, потому что участвовали в дискуссии, в которой просто не было логического завершения, да и судя по всему начала.

И честно говоря у меня возникли очень большие сомнения в квалификации этого человека, когда он сказал, что занимается репетиторством

Это сугубо Ваши проблемы :)

особенно, когда он внятно не объяснил, что конкретно он преподает

Написал же, — «C/C++».
Что тут еще сказать?
Ну могу сказать, что конкретно
сейчас занимаюсь с человеком из Чехии.
Он, вроде как, не жалуется :)

Да, в этом был своеобразный челендж, посмотреть смогу ли я объяснить что-то «на пальцах» людям, которые только начали учить.
...
Я, потому что группа не собралась

И слава Богу.
Видите ли, к каждому человеку
нужен свой подход,
при обучении массово будет
либо страдать качество обучения,
либо кто-то поймет хорошо,
а кто-то совсем не поймет.
Если Вы хотите попробовать себя,
то вполне можете это сделать,
но не нужно этого пробовать сразу на группе.
Работа с группой будет в разы сложнее.
Да и одного ученика найти гораздо легче.

loshca, в своём первом посте в этом топике ты слишком зашифровалась. Поэтому тебя не поняли. Написала бы прямо: опытный преподаватель С++ приглашает новичков на вебинар по «Урокам С++ с нуля». И не было бы вопросов.

своеобразный челендж, посмотреть смогу ли я объяснить что-то «на пальцах» людям, которые только начали учить

Такой опыт можно получить и менее замысловатым путём. На этом (или каком-то другом) ресурсе отслеживай вопросы нубов в комментах к статьям и на форуме и отвечай. Если сказали «Спасибо» — ты ещё раз выдержала своё испытание. Если ничего не сказали, значит зря топтала клавиатуру.

Если говорить конкретно про нашу ветвь разговора, то в итоге мы вообще ни к чему не пришли. Вы вкратце рассказали, как Вы видите индустрию разработки ПО, но такое ощущение, что Вы спроецировали на меня все грехи, как текущего ИТ образования, так и всех новичков, которые здесь проходят эти уроки с нуля.

Про индустрию разработки ПО я ничего не говорил.

Говоря кратко, (1) мне дико не нравится существующая у нас сейчас система образования, начиная со школы и (2) мне не нравится пассивная потребительская позиция в отношении учёбы наших школьников-студентов. Да, грешен, спроецировал что-то и на тебя, посчитав за нуба. Потом, перечитав эту дискуссию и посмотрев те несколько постов, которые ты написала на этом ресурсе, понял, что на счёт нуба я ошибался.

навык «объяснять простым языком» опционален для профессионального программиста, причем если прочитать его последний пост, то этот навык «важный, но необязательный», что звучит для меня взаимоисключающе.

На самом деле, очень немногие люди могут что-то «объяснять простым языком» (без привязки к IT). Ещё меньше людей хотят это делать. К сожалению. И сфера IT здесь не исключение.

Cranium

в своём первом посте в этом топике ты слишком зашифровалась. Поэтому
тебя не поняли. Написала бы прямо: опытный преподаватель С++
приглашает новичков на вебинар по «Урокам С++ с нуля». И не было бы
вопросов.

В том то и прикол, что я не «опытный преподаватель», скорее человек, который бы хотел развивать определенные скиллы. Если писать пост в таком ключе, то звучит так, как будто я даю какие-то гарантии, а мне сейчас сложно сказать, а могу ли я их давать. Т.е. я могу дать гарантии, что я знаю плюсы на достаточном уровне, чтобы самой понимать и использовать то, что собираюсь объяснить, а вот дать гарантии в том, что смогу донести эти знания, я не могу. Плюс, возвращаясь к тому, что мы обсуждали выше, я не отрицаю факта наличия людей, которые ожидают, что им все положат в рот, а может еще и прожуют это за них, и мне не хотелось нарваться на таких.

Про индустрию разработки ПО я ничего не говорил.

Имела ввиду про систему подготовки, тут мой косяк, поторопилась — не дописала.

Такой опыт можно получить и менее замысловатым путём. На этом (или каком-то другом) ресурсе отслеживай вопросы нубов в комментах к статьям и на форуме и отвечай. Если сказали «Спасибо» — ты ещё раз выдержала своё испытание. Если ничего не сказали, значит зря топтала клавиатуру.

Очень неполноценный показатель, слишком мало фидбэка, и есть много спорных моментов. Фактически можно давать готовое решение и получать спасибо, но с объяснением это будет иметь мало общего.

На самом деле, очень немногие люди могут что-то «объяснять простым языком» (без привязки к IT). Ещё меньше людей хотят это делать. К сожалению. И сфера IT здесь не исключение.

С этим я не спорю.

говоря кратко, (1) мне дико не нравится существующая у нас сейчас система образования, начиная со школы и (2) мне не нравится пассивная потребительская позиция в отношении учёбы наших школьников-студентов.

В свое время я пришла для себя к выводу, что причиной и 1го, и 2го, является слаборазвитый институт семьи. Семья закладывает слишком много черт характера, которые влияют на дальнейшее обучение, да и вообще на способность обучаться.

loshca,

В том то и прикол, что я не «опытный преподаватель»...

Здесь я немного пошутил )) «Опытный преподаватель даёт уроки...» — так обычно пишут в рекламных объявлениях. Но общий смысл правильный.

Плюс, возвращаясь к тому, что мы обсуждали выше, я не отрицаю факта наличия людей, которые ожидают, что им все положат в рот, а может еще и прожуют это за них, и мне не хотелось нарваться на таких.

У-у-у... С таким настроем скилл не отрастишь )) 90% — это как раз те, на которых ты не хочешь нарваться. Ещё процентов 8-9 — студенты ВМК и ученики физматшкол — там у них свои преподаватели. Остальные — твоё )))

Очень неполноценный показатель, слишком мало фидбэка, и есть много спорных моментов. Фактически можно давать готовое решение и получать спасибо, но с объяснением это будет иметь мало общего.

Фидбэка действительно мало. Ещё меньше фидбэка на статьи, поэтому я тебе даже не предлагал писать статьи для этого ресурса.

Про «много спорных моментов» — не понял, что ты имела ввиду.

На вопросы отвечай так, что бы подтолкнуть человека к правильному решению. Т.е. объясняй, подсказывай направление движения, советуй что почитать. Иногда, правда, надо просто ткнуть человека носом в ошибку, или полностью переписать программу нуба, что бы продемонстрировать какие-то приёмы программирования. А отдавать готовое решение — медвежья услуга.

Семья закладывает слишком много черт характера, которые влияют на дальнейшее обучение, да и вообще на способность обучаться.

А как ты предлагаешь закладывать эти черты характера? Розгами?

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.