Лет 15 назад я видел самый настоящий проект для веба на плюсах — с базой данных и страничками, выводимыми через cout <<
Проект был… эмм… не очень надежным и постоянно падал. :)
Помнится, когда я работал в одной чудо-мега-международной компании, там тоже очень красиво и правдоподобно расписывали прелести слияния с другой чудо-мега-международной компанией. Ай-люли-люли продукты, ай-люли-люли экономия, ай-люли-люли интеграция…
Результат был немного предсказуем: продукты объединить не удалось, команды слить не удалось, инфраструктуру слить не удалось, бюрократический аппарат вырос вдвое и погряз в интригах.
Теперь сравните это с первоначальным вызовом. Вы увидите, насколько удобнее стало читать.
Читать-то стало удобнее, но вместо одного (возможно, атомарного) вызова функции теперь нужно делать два. И при всем при этом из сигнатур функций по-прежнему не очевидно, в каких случаях надо отдельно задавать констрейнты, в каких — достаточно обойтись тем, что задается по умолчанию. Плюс если кто-то где-то забудет задать констрейнт после задания скидки, то найти багу будет непросто.
Неужели все так просто — обновить объектные файлы и слинковать их воедино?
Отслеживать зависимости можно, собирать промежуточные билиотеки, генерировать промежуточные файлы. Можно даже утилиты собирать промежуточные для генерирования всякого.
Про здоровье мозга вы, мне кажется, преувеличиваете: повредиться разумом от выгорания до такой степени, чтобы не заметить этого самого выгорания… Вряд ли.
Экий у вас идеальный мир с летающими понями…
Повредиться разумом человек может безо всяких выгораний. Просто «повреждения» бывают сильно разные, и вовсе не обязательно человека в психушку увозят. Бывают просто граждане с очень специфичными завихрениями в картине мира. Причем у кого-то эти завихрения так и остаются милыми безобидными завихрениями, а кто-то начинает бункер рыть в подвале многоэтажки, спасаясь от рептилоидов.
Что касается «не получится не заметить» — вы сильно, ну прямо вот вообще очень сильно, недооцениваете защитные механизмы мозга. Во-первых, «съезжание крыши» происходит постепенно, и человек так же постепенно обрастает защитными «коленными рефлексами» при столкновениях с суровой реальностью. Во-вторых, людям и в нормальных-то обстоятельствах бывает трудно оценить свое поведение со стороны, а представьте, каково человеку, которого окружают агенты инопланетян, успешно маскирующиеся под людей…
Я и сейчас не понимаю. Соль нужна для того, чтобы нельзя было сразу всю пачку хэшей отбрутфорсить — т.е. придется перебирать для каждого хэша отдельно.
Я говорю о том, как это делать нужно максимально продуктивно, с моей точки зрения.
А ваша точка зрения подтверждена каким-либо практическим опытом преподавания, или так — плод абстрактных рассуждений? Что-то мне подсказывает, что второе.
У вас подопытный то расширяется до неподготовленного ученика, то сжимается до «определенной категории». Определитесь уж.
Ничто ни во что не расширяется и не сужается — это два пересекающихся множества.
Речь шла о начальном этапе обучения — отсюда «неподготовленный ученик».
Речь шла о тех, кто берет не зубрежкой, а поиском системы в знаниях — отсюда «определенная категория».
Плохо, могло бы быть лучше. Дело тут совсем не в языках.
Так что же вы сюда-то пишете? Пишите сразу в Министерство образования, пусть исправляются. :)
На сем позвольте откланяться — я вам свою позицию объяснил уже несколько раз, а читать в десятый раз ваше «не, ну не понял» я сегодня не в настроении.
Вы утверждаете, что некоторым ученики разобраться не смогут, а мои предложения их этому обучить вы отвергаете. По сути — да.
Где я утверждал, что ученики разобраться не смогут — нельзя ли точную цитату? Не захотят — это да, вполне.
И где это я отвергал ваши предложения их обучить — тоже с цитатой, пожалуйста.
Вы всегда можете давать ссылку, где эта магия раскрывается. Тот, кото это останавливало удовлетворил бы интерес.
Вы ведете речь об идеальном мире, где ученики хотят учиться, а преподаватель точно понимает сложности преподаваемого предмета и заранее стелит соломку.
Я веду речь о мире реальном, где ученики вовсе не так яро мотивированы и где преподаватель частенько сам не очень хорошо ориентируется в тонкостях своего предмета.
Вот между ногами и разница (ц).
Это проблемы воспитания и ограниченности кругозора (вклад в который в немалой степени дают учителя, проводя за ручку и уберегая от трудностей).
Эвона как вы лихо ставите диагнозы системе образования. :)
Программа должна просто работать. Ученик должен понять, что он управляет ее работой. Очевидно, что от ключевых слов это не зависит для хэловорда, важен алгоритм и те примеры, которые дают ученику:
Кому очевидно? Вам? Мне вот не очевидно ни разу.
Если классический хэлловорлд вместо одной строчки занимает десять (из которых девять — магический бойлерплейт), то порог вхождения для неподготовленного ученика выше. Мне вот такое очевидно — о чем я, собственно, и сказал в первом сообщении.
На самом деле это разумный подход. Иначе получается как в реальной жизни: преподаватель ни бестолкового не научит и студент «с горящими глазами» демотивирован бесполезными занятиями, программу которых он уже далеко обогнал.
Подход, может, и разумный, но система образования у нас построена по-другому. Можно сколько угодно рассуждать, что в идеальном черно-белом мире нет никакой разницы, какой обучающий язык выбрать: питон, джаву, паскаль или ассемблер. В реальном мире разница все-таки есть, хоть и не настолько большая.
Это не ответ на вопрос, вы описываете обстоятельства.
Да.
Потому что я — не государство, чтобы давать вам компетентный ответ на вопрос «зачем учить всех пришедших в вуз».
Ставка на то, что менее мотивированный студент сам сможет разобраться. Так с болезнью мы тут боремся или с симптомом?
Да, ставка именно на это (плюс поправка на то, что преподаватель тоже неидеален).
Насчет того, с чем вы боретесь — я, честно говоря, затрудняюсь ответить. Я вам свою точку зрения высказал.
Знаете, я встречал преподавателей, которые ограничивали доступ учеников к средствам, которые «мы еще не проходили». Это очень и очень порочная практика, которая как раз губит мотивацию ученика по очевидным причинам, зато очень упрощает работу преподавателя.
Разве я где-то говорил, что преподаватель должен ограничивать доступ к средствам? Вовсе нет. Я имел в виду, что объяснять подробно всю системную библиотеку, функция за функцией, преподаватель не должен — это пустая трата времени и сил. Особенно тогда, когда изучаются совсем другие темы.
Мы говорим о какой-то странной категории учеников, которые по какой-то причине должны учить программирование, но не способны ориентироваться по обрывочной информации и учить этому мы не имеем права.
Выделенное вы, я так понимаю, мне приписываете? Так вот, я этого не говорил. Собственно, я и про остальное упомянутое не говорил («ориентироваться по обрывочной информации»).
Если вы не понимаете, о какой категории я веду речь, так ведь можно же просто спросить, не так ли? Зачем выдумывать какие-то странные критерии и приписывать их мне?
Есть ученики, которые предпочитают заучивать разрозненную информацию, и есть те, кто пытается понять общие принципы и увязать их в какую-то систему. Вот про вторую категорию я и говорю: когда их просто заставляют заучить некую «магию» без объяснений, это может их сильно демотивировать. Многое тут зависит от подачи материала преподавателем: хороший преподаватель сгладит негативный эффект.
Но взрослому человеку это не должно быть проблемой, иначе самостоятельно искать ответы на вопросы он просто не сможет. А это буквально крест на карьере в любой сфере интеллектуального труда. Хочешь расти быстрее — ломай себя, учись учиться.
Да, здесь вы очень правильно рассуждаете. Но есть нюанс: ученики и студенты далеко не всегда точно знают, чего хотят. Даже скажу резче: они вообще редко когда знают, чем хотят заниматься после окончания школы или вуза. А для того, чтобы расти в какой-то области, нужно прежде всего хотеть в этой области работать.
Я неоднократно видел, как ученики (да и студентны тоже) «загораются» энтузиазмом, когда понимают, что как устроено. И также неоднократно видел, как приходят на занятие с интересом и надеждой, а уходят потухшие — потому что ожидали понять «систему», а их заставляют записывать формальные определения. Именно поэтому я и говорю, что наличие магических строчек, которые никак не объясняются — это не очень хорошо.
Любознательный ученик задает вопросы и будет в поиске ответов на свои вопросы теребить преподавателя или гугол,…
(скип)
Если ученик этого делать не будет желать, то смена языка никак не поможет и высот в учении он не добьется (по крайней мере до тех пор, пока что-то не изменится).
Черно-белый подход, понимаю. Ученик или активен и любознателен, или пассивен, безволен и нафиг не нужен — отчислить без раздумий.
К сожалению, жизнь гораздо разнообразнее. На одного активного ученика приходится десяток-другой «полуактивных» — тех, кто не будет сам что-то искать, если ему не интересно. Но есть хорошая новость: многие из них могут стать активными, если им станет интересно. :)
Зачем учить тех, кто не хочет учиться?
Хороший вопрос.
Дело в том, что программирование в том или ином виде есть в программе множества вузовских специальностей. Многие из них вообще мало связаны с айти — технологи, например. Понятно, что для студента эта дисциплина — далеко не основная, свою жизнь он с ней не связывает, а следовательно, ожидать от него неугасимого энтузиазма, любопытства и гугления не очень разумно.
Про школу я вообще молчу. В старших класса вполне могут быть занятия по программированию, но ожидать от основной массы учеников неземной активности не стоит. Это в конце 1980-х уметь писать программы на компьютере было мечтой советского школьника. Сейчас энтузиазм поутих. :)
По моему скромному мнению, самое главное — это желание.
Правильная мысль.
Так вот, задача преподавателя — разжечь это желание в тех, до кого дотянется. А задача языка программирования — не слишком мешать процессу обучения своими особенностями.
Но если не будет желания, то вы никогда не найдете подходящего языка.
Вы говорите о желании изучать как о неизменном качестве ученика.
Я говорю о том, что желание изучать предмет может как появиться, так и угаснуть. И, к сожалению, сам был свидетелем того, как неудачно выбранный язык программирования плюс нежелание преподавателя разъяснять мутные детали — намертво отбивали желание учиться.
Для новичка программирование — сплошь необъятная магия из API стандартной библиотеки и синтаксических конструкций.
Вовсе нет.
При правильном объяснении там нет никакой магии. Хотите вывести что-то на консоль — вот есть библиотека для работы с консолью, подключается вот так, там есть такие-то и такие-то функции. Если интересно — вот справка. Мы пока будем пользоваться этим и этим.
Синтаксические конструкции объясняются тоже далеко не все сразу. Сначала — линейное программирование, потом ветвления, циклы, функции, и уже потом — классы.
Три-четыре ключевых слова в начале — это капля в море, едва ли кого-то смутит. Это непонимание не стопорит обучение.
Для определенной категории учеников (подчеркиваю: для определенной) — стопорит очень сильно. Скажем, в том же питоне можно написать хэлловорлд и тут же, построчно и посимвольно, объяснить ученикам, что здесь написано и для чего это нужно.
В джаве так не получится. В джаве придется или говорить, что «это магия, не обращайте внимания, это нужно просто скопипастить, чтобы все заработало», или же начинать втолковывать про классы, ООП и чем статические функции отличаются от нестатических.
«Те, кто привык понимать» обычно привыкли разбираться — вооружась гуглом начнуть непонятное расследовать, а не будут сидеть и ныть о том, как всё сложно. Тем более, что все ответы — в первых трех ссылках поисковика.
Вот оно как все просто-то, оказывается! Просто ученики должны быть замотивированы и должны учиться по гуглу. :)))
То есть, если я вас правильно понял, ученик должен:
— прийти домой с первого занятия, открыть гугл
— изучить ООП (что такое класс)
— изучить модификаторы доступа (и почему нужен public)
— изучить статические функции класса vs виртуальные
— получить просветление и идти спать.
Дело за малым: найти таких мотивированных учеников. Большинству-то и на занятиях учиться лень, не то что дома по гуглу.
К таким непонятным вещам относятся как к какой-то магии, которую нужно тупо запомнить.
По моему опыту — как раз наоборот, это сильно демотивирует тех, кто привык понимать, что делает, а не заучивать.
Собственно, я и есть тот человек.
И нет, слово «престарелый» не относится к каким-то особым словам-исключениям. Это обычное слово с приставкой пре- (означающей превосходную степень — т.е. «очень старый»).
«Устав от одиночества он соглашается на предложение некой конторы обменять свою жил. площадь на доживание в доме пристарелых».
Эммм… Если и сама книга с такими же очапатками написана, то отсылки к Киплингу — это весьма толстое издевательство. :)
В беседе с людьми, которые работали в ночное время, были замечены психические отклонения.
… пишет нам пользователь с ником NumLock.
А позвольте поинтересоваться — кто именно беседовал (и было ли у него образование в области психологии), кто были эти «люди, работающие в ночную смену» и сколько их было, по каким признакам были диагностированы психические отклонения и какие именно?
Полная смена обстановки очень способствует перестройке режимов сна и бодрствования. К примеру, в Питере я как-то обзавелся не очень хорошей привычкой засыпать в 1-2 часа ночи, а вставать в 9-10 утра. Темнота за окном этому очень даже способствует.
Но потом поехали в Индию на пару неделек зимой — и хотя разница в часовых поясах не такая уж большая (2,5 часа), я как-то очень быстро и безболезненно перестроился на ранние подъемы и ранний отход ко сну. Буквально за пару дней стал ложиться в 10 вечера по местному времени и вставать в 6-7 утра. Все равно местные в это время начинают под окнами ездить, греметь бидонами, бибикать, орать и всякое прочее. И никаких отрицательных последствий не заметил.
Фиг его знает. Мне почему-то кажется, что вы как-то неправильно перестраивались с ночного режима на дневной. У вас было две недели отпуска — взяли бы да и поехали куда-нибудь в теплые края, развеяться. Заодно и джетлаг был бы не так страшен. :)
Проект был… эмм… не очень надежным и постоянно падал. :)
Результат был немного предсказуем: продукты объединить не удалось, команды слить не удалось, инфраструктуру слить не удалось, бюрократический аппарат вырос вдвое и погряз в интригах.
Читать-то стало удобнее, но вместо одного (возможно, атомарного) вызова функции теперь нужно делать два. И при всем при этом из сигнатур функций по-прежнему не очевидно, в каких случаях надо отдельно задавать констрейнты, в каких — достаточно обойтись тем, что задается по умолчанию. Плюс если кто-то где-то забудет задать констрейнт после задания скидки, то найти багу будет непросто.
Отслеживать зависимости можно, собирать промежуточные билиотеки, генерировать промежуточные файлы. Можно даже утилиты собирать промежуточные для генерирования всякого.
Экий у вас идеальный мир с летающими понями…
Повредиться разумом человек может безо всяких выгораний. Просто «повреждения» бывают сильно разные, и вовсе не обязательно человека в психушку увозят. Бывают просто граждане с очень специфичными завихрениями в картине мира. Причем у кого-то эти завихрения так и остаются милыми безобидными завихрениями, а кто-то начинает бункер рыть в подвале многоэтажки, спасаясь от рептилоидов.
Что касается «не получится не заметить» — вы сильно, ну прямо вот вообще очень сильно, недооцениваете защитные механизмы мозга. Во-первых, «съезжание крыши» происходит постепенно, и человек так же постепенно обрастает защитными «коленными рефлексами» при столкновениях с суровой реальностью. Во-вторых, людям и в нормальных-то обстоятельствах бывает трудно оценить свое поведение со стороны, а представьте, каково человеку, которого окружают агенты инопланетян, успешно маскирующиеся под людей…
А ваша точка зрения подтверждена каким-либо практическим опытом преподавания, или так — плод абстрактных рассуждений? Что-то мне подсказывает, что второе.
Ничто ни во что не расширяется и не сужается — это два пересекающихся множества.
Речь шла о начальном этапе обучения — отсюда «неподготовленный ученик».
Речь шла о тех, кто берет не зубрежкой, а поиском системы в знаниях — отсюда «определенная категория».
Так что же вы сюда-то пишете? Пишите сразу в Министерство образования, пусть исправляются. :)
На сем позвольте откланяться — я вам свою позицию объяснил уже несколько раз, а читать в десятый раз ваше «не, ну не понял» я сегодня не в настроении.
Где я утверждал, что ученики разобраться не смогут — нельзя ли точную цитату? Не захотят — это да, вполне.
И где это я отвергал ваши предложения их обучить — тоже с цитатой, пожалуйста.
Вы ведете речь об идеальном мире, где ученики хотят учиться, а преподаватель точно понимает сложности преподаваемого предмета и заранее стелит соломку.
Я веду речь о мире реальном, где ученики вовсе не так яро мотивированы и где преподаватель частенько сам не очень хорошо ориентируется в тонкостях своего предмета.
Вот между ногами и разница (ц).
Эвона как вы лихо ставите диагнозы системе образования. :)
Кому очевидно? Вам? Мне вот не очевидно ни разу.
Если классический хэлловорлд вместо одной строчки занимает десять (из которых девять — магический бойлерплейт), то порог вхождения для неподготовленного ученика выше. Мне вот такое очевидно — о чем я, собственно, и сказал в первом сообщении.
Подход, может, и разумный, но система образования у нас построена по-другому. Можно сколько угодно рассуждать, что в идеальном черно-белом мире нет никакой разницы, какой обучающий язык выбрать: питон, джаву, паскаль или ассемблер. В реальном мире разница все-таки есть, хоть и не настолько большая.
Да.
Потому что я — не государство, чтобы давать вам компетентный ответ на вопрос «зачем учить всех пришедших в вуз».
Да, ставка именно на это (плюс поправка на то, что преподаватель тоже неидеален).
Насчет того, с чем вы боретесь — я, честно говоря, затрудняюсь ответить. Я вам свою точку зрения высказал.
Разве я где-то говорил, что преподаватель должен ограничивать доступ к средствам? Вовсе нет. Я имел в виду, что объяснять подробно всю системную библиотеку, функция за функцией, преподаватель не должен — это пустая трата времени и сил. Особенно тогда, когда изучаются совсем другие темы.
Выделенное вы, я так понимаю, мне приписываете? Так вот, я этого не говорил. Собственно, я и про остальное упомянутое не говорил («ориентироваться по обрывочной информации»).
Если вы не понимаете, о какой категории я веду речь, так ведь можно же просто спросить, не так ли? Зачем выдумывать какие-то странные критерии и приписывать их мне?
Есть ученики, которые предпочитают заучивать разрозненную информацию, и есть те, кто пытается понять общие принципы и увязать их в какую-то систему. Вот про вторую категорию я и говорю: когда их просто заставляют заучить некую «магию» без объяснений, это может их сильно демотивировать. Многое тут зависит от подачи материала преподавателем: хороший преподаватель сгладит негативный эффект.
Да, здесь вы очень правильно рассуждаете. Но есть нюанс: ученики и студенты далеко не всегда точно знают, чего хотят. Даже скажу резче: они вообще редко когда знают, чем хотят заниматься после окончания школы или вуза. А для того, чтобы расти в какой-то области, нужно прежде всего хотеть в этой области работать.
Я неоднократно видел, как ученики (да и студентны тоже) «загораются» энтузиазмом, когда понимают, что как устроено. И также неоднократно видел, как приходят на занятие с интересом и надеждой, а уходят потухшие — потому что ожидали понять «систему», а их заставляют записывать формальные определения. Именно поэтому я и говорю, что наличие магических строчек, которые никак не объясняются — это не очень хорошо.
Черно-белый подход, понимаю. Ученик или активен и любознателен, или пассивен, безволен и нафиг не нужен — отчислить без раздумий.
К сожалению, жизнь гораздо разнообразнее. На одного активного ученика приходится десяток-другой «полуактивных» — тех, кто не будет сам что-то искать, если ему не интересно. Но есть хорошая новость: многие из них могут стать активными, если им станет интересно. :)
Хороший вопрос.
Дело в том, что программирование в том или ином виде есть в программе множества вузовских специальностей. Многие из них вообще мало связаны с айти — технологи, например. Понятно, что для студента эта дисциплина — далеко не основная, свою жизнь он с ней не связывает, а следовательно, ожидать от него неугасимого энтузиазма, любопытства и гугления не очень разумно.
Про школу я вообще молчу. В старших класса вполне могут быть занятия по программированию, но ожидать от основной массы учеников неземной активности не стоит. Это в конце 1980-х уметь писать программы на компьютере было мечтой советского школьника. Сейчас энтузиазм поутих. :)
Правильная мысль.
Так вот, задача преподавателя — разжечь это желание в тех, до кого дотянется. А задача языка программирования — не слишком мешать процессу обучения своими особенностями.
Вы говорите о желании изучать как о неизменном качестве ученика.
Я говорю о том, что желание изучать предмет может как появиться, так и угаснуть. И, к сожалению, сам был свидетелем того, как неудачно выбранный язык программирования плюс нежелание преподавателя разъяснять мутные детали — намертво отбивали желание учиться.
Вовсе нет.
При правильном объяснении там нет никакой магии. Хотите вывести что-то на консоль — вот есть библиотека для работы с консолью, подключается вот так, там есть такие-то и такие-то функции. Если интересно — вот справка. Мы пока будем пользоваться этим и этим.
Синтаксические конструкции объясняются тоже далеко не все сразу. Сначала — линейное программирование, потом ветвления, циклы, функции, и уже потом — классы.
Для определенной категории учеников (подчеркиваю: для определенной) — стопорит очень сильно. Скажем, в том же питоне можно написать хэлловорлд и тут же, построчно и посимвольно, объяснить ученикам, что здесь написано и для чего это нужно.
В джаве так не получится. В джаве придется или говорить, что «это магия, не обращайте внимания, это нужно просто скопипастить, чтобы все заработало», или же начинать втолковывать про классы, ООП и чем статические функции отличаются от нестатических.
Вот оно как все просто-то, оказывается! Просто ученики должны быть замотивированы и должны учиться по гуглу. :)))
То есть, если я вас правильно понял, ученик должен:
— прийти домой с первого занятия, открыть гугл
— изучить ООП (что такое класс)
— изучить модификаторы доступа (и почему нужен public)
— изучить статические функции класса vs виртуальные
— получить просветление и идти спать.
Дело за малым: найти таких мотивированных учеников. Большинству-то и на занятиях учиться лень, не то что дома по гуглу.
По моему опыту — как раз наоборот, это сильно демотивирует тех, кто привык понимать, что делает, а не заучивать.
И нет, слово «престарелый» не относится к каким-то особым словам-исключениям. Это обычное слово с приставкой пре- (означающей превосходную степень — т.е. «очень старый»).
Золотые слова! :)
Большая половина переводов на Хабре, к сожалению, — подстрочники, переведенные слово за словом.
Эммм… Если и сама книга с такими же очапатками написана, то отсылки к Киплингу — это весьма толстое издевательство. :)
… пишет нам пользователь с ником NumLock.
А позвольте поинтересоваться — кто именно беседовал (и было ли у него образование в области психологии), кто были эти «люди, работающие в ночную смену» и сколько их было, по каким признакам были диагностированы психические отклонения и какие именно?
Но потом поехали в Индию на пару неделек зимой — и хотя разница в часовых поясах не такая уж большая (2,5 часа), я как-то очень быстро и безболезненно перестроился на ранние подъемы и ранний отход ко сну. Буквально за пару дней стал ложиться в 10 вечера по местному времени и вставать в 6-7 утра.
Все равно местные в это время начинают под окнами ездить, греметь бидонами, бибикать, орать и всякое прочее.И никаких отрицательных последствий не заметил.