Здравствуйте, Шахтер, Вы писали:
Ш>Это всё равно, что учить музыканта играть. Просто играть. На чем -- не важно.
Совершенно верно. Поскольку речь идет о начальном этапе обучения, то сравнить можно с изучением нотной грамоты, всяких там бемолей и диезов. Инструмент нужен, но ноты от этого другими не станут. А уж потом, когда основы освоены, можно изучать особенности.
Ш>Это совершенно разные вещи. Программисты в большинстве своём не придумывают алгоритмов. Они их используют.
Увы... Придумывать не надо, я об этом и не говорю. А знать их надо, уметь реализовать — тоже. Это культура. А без нее мы будеи иметь, что имеем, когда алгоритмы используются без понимания их, а в итоге все работает в N раз медленнее и требует памяти в M раз больше. Боюсь, что эту культуру мы почти потеряли.
PD>>Если только мы не хотим на выходе получить "специалиста", который умеет только методы вызывать и становится в тупик, когда надо самому что-то написать.
PD>>2. На каком языке учить — не так уж важно. Можно и с Паскаля начать. ТурбоПаскаль брать не стоит не потому, что он плох, а потому , что нечего им забивать головы проблемами и ограничениями модели памяти реального режима.
Ш>Важно.
Тогда скажи, на каком. Можешь вот на это голосование посмотреть, совсем недавнее. Что-то я не вижу какого-то преобладающего мнения. Либо все годятся (то есть не важно), либо дай другое объяснение.
PD>>3. Научили основам программирования — можно теперь и ООП и прочее.
Ш>А ООП и есть основа. Одна из.
Именно одна из, причем не первая.
PD>>4. И другие языки теперь изучать можно, но вообще-то лучше, если они сами будут их изучать. По какому учебнику — вопрос не первостепенный.
Ш>Языки не учат по учебнику. Чтобы овладеть языком, его надо использовать. Т.е. писать на нём.
С этим спорить нельзя.
PD>>Ну а что касается этого учебника — господи, что же тут непонятного? Автор когда-то разработал хороший (возможно, учебник я не смотрел) курс по программированию для 90-х годов прошлого века. Современное состояние он не знает, а продолжает читать свой курс. И будет его читать , пока на пенсию не выйдет. А тут подвернулась возможность издать этот курс, ну он и...
Ш>Это называется халтура.
И с этим тоже.
With best regards
Pavel Dvorkin
Re: Об обучении программированию в некоторых престижных вузах
Здравствуйте, LaptevVV, Вы писали:
LVV>Купил я тут намедни на Озоне книжку: Иванова, Нечушкина. Объектно-ориентированное программирование. Учебник.
А по этому курсу есть требования какие-то, обязательные знания и пр. или можно просто курс "ООП" читать как самому нравится?
Я к чему это спрашиваю — просто если это именно курс ООП, то надо дрессировать имеено по объектному и без какой либо привязки к языку.
Отдельно курсом уже читать с++, и прочее.
Но вот когда на примере с++ читают ООП, и дрессируют по знанию С++, это очень плохие учителя.
ООП надо читать на схемах и только.
И дресировать на умение делать группировку и вертикальные зависимости ну и прочее.
Так же надо учить что на "обычном" программировании там где потребуется if и прочее, при умелом ООП вообще можно обойтись (почти ( не рискну все же)) ТОЛЬКО ООП, то есть за наличие внутри класса if по своим свойствам надо бить палочкой по рукам. И ЭТОМУ надо именно дрессировать(!!!).
Здравствуйте, Vlad_SP, Вы писали:
LVV>> Один из приемов обучения: поправьте данный код в сторону улучшения ... (читабельности, производительности... и т.п.)
V_S>И что, много среди студентов таких, способных поправить в сторону улучшения ... (читабельности, производительности... и т.п.)?
Ну так а учеба на что?
Они делают, потом обсуждаем.
Учимся.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Об обучении программированию в некоторых престижных вузах
Здравствуйте, Andrew.W Worobow, Вы писали:
AWW>Здравствуйте, LaptevVV, Вы писали:
LVV>>Купил я тут намедни на Озоне книжку: Иванова, Нечушкина. Объектно-ориентированное программирование. Учебник.
AWW>А по этому курсу есть требования какие-то, обязательные знания и пр. или можно просто курс "ООП" читать как самому нравится?
Кое-что в стандартах прописано. AWW>Я к чему это спрашиваю — просто если это именно курс ООП, то надо дрессировать имеено по объектному и без какой либо привязки к языку. AWW>Отдельно курсом уже читать с++, и прочее. AWW>Но вот когда на примере с++ читают ООП, и дрессируют по знанию С++, это очень плохие учителя. AWW>ООП надо читать на схемах и только. AWW>И дресировать на умение делать группировку и вертикальные зависимости ну и прочее. AWW>Так же надо учить что на "обычном" программировании там где потребуется if и прочее, при умелом ООП вообще можно обойтись (почти ( не рискну все же)) ТОЛЬКО ООП, то есть за наличие внутри класса if по своим свойствам надо бить палочкой по рукам. И ЭТОМУ надо именно дрессировать(!!!).
Насчет дресировки — это да, я согласен.
Ночитать без привязки к языку — на 2 курсе рано. Это можно на 3 или 4 курсе.
А в начале 2 курса у них мозги еще до такой абстракции не созрели.
Многолетние наблюдения за студентами убедили меня, что при начальном освоении движутся от конкретного к абстрактному.
То есть приходится сначала показывать конкретику на некоем языке.
А несколько позже (лучше при изучении другого языка) — делать обобщения.
И на базе обобщений уже можно без привязки к языку.
Иначе ничего не поймут и это будет балластом до тех пор, пока мозги не созреют.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[7]: Об обучении программированию в некоторых престижных вузах
Здравствуйте, LaptevVV, Вы писали:
Ф>>>>а в Smalltalk'e Objective-C как, тоже? LVV>>>Да. Семантика — одна и та же.
Ф>>гм... смотря что понимать под семантикой... Ф>>вы что в данном случае понимаете здесь под этим словом? LVV>Объекты и передача сообщений.
ну если в таком узком смысле понимать, то да — везде один и тот же ООП.
однако если так, то я затрудняюсь сказать что же всё-таки такое ООП: "ВСЁ ЕСТЬ ОБЪЕКТ!", "вызовов методов не существует — ТОЛЬКО ПОСЫЛКА СООБЩЕНИЙ", "ЛЮБОЙ ОБЪЕКТ может принять ЛЮБОЕ СООБЩЕНИЕ, а потом уже решить: может он его обработать или нет" — если вы пишете на Smalltalk'е, то вы априори пишете, используя ООП.
Кстати "интерфейс" — это ООП'шный термин?
Всё сказанное выше — личное мнение, если не указано обратное.
Re[8]: Об обучении программированию в некоторых престижных вузах
Здравствуйте, Философ, Вы писали:
Ф>>>>>а в Smalltalk'e Objective-C как, тоже? LVV>>>>Да. Семантика — одна и та же.
Ф>>>гм... смотря что понимать под семантикой... Ф>>>вы что в данном случае понимаете здесь под этим словом? LVV>>Объекты и передача сообщений.
Ф>ну если в таком узком смысле понимать, то да — везде один и тот же ООП. Ф>однако если так, то я затрудняюсь сказать что же всё-таки такое ООП: "ВСЁ ЕСТЬ ОБЪЕКТ!", "вызовов методов не существует — ТОЛЬКО ПОСЫЛКА СООБЩЕНИЙ", "ЛЮБОЙ ОБЪЕКТ может принять ЛЮБОЕ СООБЩЕНИЕ, а потом уже решить: может он его обработать или нет" — если вы пишете на Smalltalk'е, то вы априори пишете, используя ООП.
Вопрос интерпретации одного и того же.
Вызов метода или посылка сообщений: хоть горшком назови — смысл от этого не меняется. Ф>Кстати "интерфейс" — это ООП'шный термин?
В смысле: все есть объект — нет.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Об обучении программированию в некоторых престижных в
LVV>Здравствуйте, Andrew.W Worobow, Вы писали:
AWW>>Здравствуйте, LaptevVV, Вы писали:
LVV>>>Купил я тут намедни на Озоне книжку: Иванова, Нечушкина. Объектно-ориентированное программирование. Учебник.
AWW>>А по этому курсу есть требования какие-то, обязательные знания и пр. или можно просто курс "ООП" читать как самому нравится? LVV>Кое-что в стандартах прописано. AWW>>Я к чему это спрашиваю — просто если это именно курс ООП, то надо дрессировать имеено по объектному и без какой либо привязки к языку. AWW>>Отдельно курсом уже читать с++, и прочее. AWW>>Но вот когда на примере с++ читают ООП, и дрессируют по знанию С++, это очень плохие учителя. AWW>>ООП надо читать на схемах и только. AWW>>И дресировать на умение делать группировку и вертикальные зависимости ну и прочее. AWW>>Так же надо учить что на "обычном" программировании там где потребуется if и прочее, при умелом ООП вообще можно обойтись (почти ( не рискну все же)) ТОЛЬКО ООП, то есть за наличие внутри класса if по своим свойствам надо бить палочкой по рукам. И ЭТОМУ надо именно дрессировать(!!!). LVV>Насчет дресировки — это да, я согласен. LVV>Ночитать без привязки к языку — на 2 курсе рано. Это можно на 3 или 4 курсе. LVV>А в начале 2 курса у них мозги еще до такой абстракции не созрели. LVV>Многолетние наблюдения за студентами убедили меня, что при начальном освоении движутся от конкретного к абстрактному. LVV>То есть приходится сначала показывать конкретику на некоем языке. LVV>А несколько позже (лучше при изучении другого языка) — делать обобщения. LVV>И на базе обобщений уже можно без привязки к языку. LVV>Иначе ничего не поймут и это будет балластом до тех пор, пока мозги не созреют.
А может лучше тогда двигается в направлении Проектирования ПО, а не ООП? Параллельно объясняя другие подходы, и когда какой подход выгоднее.
Да и еще для интереса подкинуть lua — то как он используется.
LVV>Здравствуйте, vpchelko, Вы писали:
V>>Такое впечатление, что кого-то обители. У каждого свои взгляды на ООП. Это не только С++ с STL. А про Java вообще не вспоминали! Безобразие LVV>Радость моя. LVV>1. ООП — он и в Африке ООП. Хоть на Яве, хоть на С++. LVV>2. Если ты пишешь о С++, то не упоминать о стандарте и STL — это не профессионально. LVV>А потом, такие как вы, ругаете огульно образование и образование для программистов в частности. LVV>Если б учебник был на основе Явы — ради Бога! LVV>3. Вот тебе такой учебник: https://www.ozon.ru/context/detail/id/20217147/ LVV>Ничего сказать не могу, поскольку пока не читал.
Насчет STL — считаю, что достаточно знать, что он есть и из себя представляет. А на практике он может и не пригодится. За 3 года работы с С++, мне разве что пригодился string, vector, map — т.е. коллекции.
Обычно ругают — неумение думать. Вот элементарный вопрос, почему dealloc не требует указания количества выделенной памяти? Много студентов которые С(только С++ учили) не видели в глаза ответят правильно на вопрос (либо придумают "свою" реализацию) ? Зная только определения функций malloc и dealloc?
Здравствуйте, velkin, Вы писали:
V>А вот скажите мне как представитель образовательного учреждения, зачем учить женщин, если в итоге практически 100% из них не пойдут в разработчики ПО. Устроятся или на совершенно другие специальности, или на смежные, например, преподаватель в ВУЗе. Далее они напишут книгу, которая вам же и не нравится.
Кстати, не всё так однозначно. Когда я работал в провинции, то девушек и женщин программистов встречал мало. А, например, в Питере их больше на порядок. В процентном соотношении меньше, чем мужчин, но всё равно много. В работе они исполнительны, меньше отвлекаются. Не всё так плохо, как ты описал.
Re[5]: Об обучении программированию в некоторых престижных вуза
Здравствуйте, Nuzhny, Вы писали:
N>Кстати, не всё так однозначно. Когда я работал в провинции, то девушек и женщин программистов встречал мало. А, например, в Питере их больше на порядок. В процентном соотношении меньше, чем мужчин, но всё равно много. В работе они исполнительны, меньше отвлекаются. Не всё так плохо, как ты описал.
Большинство выпускниц программерских специальностей, которые пошли по пути ИТ, работают тестершами. Причем без шансов перейти в автоматизированное тестирование. И реально хреначат за 30 000 рублей в месяц. При этом за те же деньги работают мадамы с гуманитарным дипломом, и квалификация такая же.
Относительно программисток. Есть то они есть. Квалификация все равно близка к нулевой. Бросают их на самые рутинные задачи на самые поганые проекты поддержки. Кто помоложе — просирают все сроки, авралят, делают медленно и с кучей косяков, вообще не понимаешь как мадам с такой нулевой квалификацией могла собеседование пройти. По крайней мере мужской пол с такой квалификацией не взяли бы даже на джуниора, без шансов. Кто поопытнее — у них почему то рабочее место расположено на кухне . Поддерживают болотный неторопливый проект черти какой давности, от которого мужской пол постарается свалить при первой же возможности. А женщины тут более предпочтительнее, ибо с большой вероятностью будут сидеть на нем до посинения, рано или поздно в проекте начинают нормально разбираться.
Когда тимлидят — это еще нормально. В код подчиненных не лезут (да и вообще в код не лезут), в основном берут на себя всю рутину, документирование, разбирание техзадания и т.д — вполне нормально справляются. Даже лучше с такими работать, ибо кто то из подчиненных берет на себя техническую часть и все хорошо. Но когда ПМят, это полный атас! Если какие проблемы возникают — полностью неадекватное поведение, истерики, мечутся туда сюда, технических объяснений ни черта понять не могут, да и самих их никто понять не может, даже другие ПМы.
Re[6]: Об обучении программированию в некоторых престижных вуза
Анализ весьма подробный, не буду оспаривать ни один из пунктов. У меня работа в основном R&D направленности. Там девушки (Д) являются хорошей парой в дополнении к инженеру-мужчине (М) в такой роли: М выдвигает идеи, выбирает общее направление исследований и работы. Д разбирается с ними детальней на практике, занимается реализацией, проверкой идей. Совместно с М занимаются оптимизацией. Code review как правило тоже проходит Д. Производительность и качество работы у такой пары очень высокая.
Re[6]: Об обучении программированию в некоторых престижных в
Здравствуйте, elmal, Вы писали:
E>Относительно программисток. Есть то они есть. Квалификация все равно близка к нулевой. Бросают их на самые рутинные задачи на самые поганые проекты поддержки.
Это вы в каком то аду трудитесь
Mоя знакомая, с которой учился здесь, из экс-СССР — спец (и офигенный! — для курсовой по мобильным роботам она нашей группе алго оптимизировала) по алгоритмам. Но работать ей тяжело — блондинки с зелеными глазами привлекают внимание Местные все помочь норовят, за жизнь поговорить
Здравствуйте, sourcerer, Вы писали:
S>Это вы в каком то аду трудитесь
Может отдельные и встречаются. Но основная масса выпускниц ИТ специальностей, и работающих по специальности — по квалификации ужас ужас ужас. Ну не полный ноль конечно, все таки SQL запрос написать могут, по инструкции сервер запустить, удаленно на стенд войти, кое как по английски переписываться — уже хорошо. Но как певицы и танцовщицы они обладают гораздо большей квалификацией.
Re: Об обучении программированию в некоторых престижных вузах
Здравствуйте, LaptevVV, Вы писали: LVV>И вот купил я этот учебник (с позволения сказать).
а что ж ты хотел, иу-6 к программированию мало относится,
программировать учат на 7 кафедре, и теперь ещё на 9,
причём те кого не выгнали с иу-7 как минимум хорошие программисты,
они прошли неземского и подобных инопланетян,
они с 3 курса писали компиляторы, их дрючили по ахо и ульману, робертсу и т.п.,
на 9 кафедре преподы — выпускники 7 кафедры, так сказать берут отгулы на работе
и читают лекции в альма матер
-
Re[2]: Об обучении программированию в некоторых престижных вузах
Здравствуйте, trop, Вы писали:
T>Здравствуйте, LaptevVV, Вы писали: LVV>>И вот купил я этот учебник (с позволения сказать).
T>а что ж ты хотел, иу-6 к программированию мало относится, T>программировать учат на 7 кафедре, и теперь ещё на 9, T>причём те кого не выгнали с иу-7 как минимум хорошие программисты, T>они прошли неземского и подобных инопланетян, T>они с 3 курса писали компиляторы, их дрючили по ахо и ульману, робертсу и т.п., T>на 9 кафедре преподы — выпускники 7 кафедры, так сказать берут отгулы на работе T>и читают лекции в альма матер
Кстати о птичках — мы тоже на 3 курсе пишем компиляторы...
А также отладчики, профайлеры, интерпретаторы и т.п.
Целую интегрированную среду написали для себя — чтоб учить нормально.
Но инопланетянами себя отнюдь не считаем...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Об обучении программированию в некоторых престижных вузах
Здравствуйте, trop, Вы писали:
T>а что ж ты хотел, иу-6 к программированию мало относится,
Даже если не относится. Предположим выпускают авиаконструкторов. Базовые знания программирования для авиаконструктора нужны? Однозначно нужны, как и для любого технаря, например строителя. Вот только за каким хреном измываться в 2014 году паскалем под ДОС? С ограничениями по памяти, с дефицитом хороших математических библиотек и тому подобным. Ведь все, что может понадобится этому технарю — ему придется велосипед изобретать, вместо того чтоб взять готовое. Для 1995 года это был неплохой выбор. Для 2000 го года уже гораздо менее актуально, лишний геморрой, который вообще никому не нужен.
А вот тот же матлаб очень вероятно может пригодиться. Питон тоже может пригодиться. И обучаться будет проще, так как не нужно извращаться с досом. Зачем там вообще С++, qt какой то? Нахрена ему ГУИ то писать с кнопочками? Именно этим авиаконструктор точно заниматься не будет, ему в лучшем случае надо будет набросать какой расчетик и построить график.
Меня в очень многих преподавателях одно ужасает. Они считают, что если они чему то выучились, то все, больше можно не учиться до конца жизни. Читать один и тот же конспект и все. Кроме этого конспекта не знают зачастую ни хрена, да и тот читают по бумажке. Еще зачастую не они его составляли, а он им по наследству достался от того, кто читал до них. Вот только мир меняется, появляются более эффективные методики обучения, те задачи, которые были довольно сложны 20 лет назад — сейчас решаются вообще без каких либо усилий, и освободившееся время на заучивание особенностей модели памяти tuny, small, huge — это все можно потратить с гораздо большей пользой. Именно программистов еще можно поизмывать паскалем при желании. Чтоб типа корней не забывали, чтоб понимали как раньше все было, ну и чтоб знали как можно больше языков и наконец поняли, что язык программирования это не основное, основное это умение программировать, знание и умение применять современных концепций. А именно для непрограммистов тратить время на мертвый не используемый язык, да еще на его особенности — это вообще атас.
Re[2]: Об обучении программированию в некоторых престижных вузах
Здравствуйте, DemonsInside, Вы писали:
DI>Так, если я правильно понимаю, то этому по идее должны учить в ПТУ, но никак не в ВУЗе. По сути, значит ваш университет выпускает кодеров, причем знающих, пусть и хорошо C++. DI>Насколько я понимаю, ВУЗы должны выпускать людей, которые по идее должны создавать новые технологии. Решать не решенные еще задачи. Вы не смотрите на Бауманку, вы лучше посмотрите на MIT, Stanford, Harvard etc. Вот на кого надо равняться.
Везде есть теоретическая часть и практическая. В информатике очень много интересных теоретических вещей, которые можно изучать в вузах. Но программировать так не научишься. Практика тоже нужна. И лучше всего её комбинировать.
Изучили например основы трёхмерной графики, и студенты получают задание реализовать что-то с помощью любого языка.
Но если их не научить азам какого-либо языка, некоторым стандартным подходам, идиомам, то это будет ужас. Люди заново будут переизобретать всем известные велосипеды.
Re[3]: Об обучении программированию в некоторых престижных вузах
Здравствуйте, LaptevVV, Вы писали:
LVV>Реальная, необходимая. LVV>Они там пишут чего-то под мобильные устройства — для контор, у которых есть мобильные сотрудники. LVV>И вот, говорит, проблема: LVV>мобильный сотрудник утром первое, что делает — входит в систему. Со своей мобилы. LVV>А поскольку таких сотрудников дофига — получается пиковая нагрузка в очень короткий промежуток времени. Сервер не справляется. LVV>И такое — 2-4 раза в день. LVV>Необходимо реально поисследовать этот процесс и предложить решение.
Не верю. Сколько сотрудников? И что они делают в системе?
Какая нагрузка на сервер?
Re[4]: Об обучении программированию в некоторых престижных вузах
Здравствуйте, kleng, Вы писали:
LVV>>Они там пишут чего-то под мобильные устройства — для контор, у которых есть мобильные сотрудники. LVV>>И вот, говорит, проблема: LVV>>мобильный сотрудник утром первое, что делает — входит в систему. Со своей мобилы. LVV>>А поскольку таких сотрудников дофига — получается пиковая нагрузка в очень короткий промежуток времени. Сервер не справляется. LVV>>И такое — 2-4 раза в день.
K>У них там сколько сотрудников, миллионы?
Думаю, что в сервере работает алгоритм с кубической сложностью. Либо сотрудников и вправду много и сложность квадратичная.
Re[2]: Об обучении программированию в некоторых престижных вуза
Здравствуйте, sourcerer, Вы писали:
S>А в немецком Уни вообще — общими были только вопросы и задачи, а как и по какому учебнику — это личное делo каждого (правда — это был продвинутый курс по программированию в автомотиве, я там вообще-то мастера-информатика делал, имея уже российский диплом инженера-программиста), но тем не менее — на учебниках никто особого внимания не акцентировал, главное — чтобы на вопросы правильно отвечал и лабораторные сдавал.
Так почти везде. Просто ещё принято давать список рекомендованной литературы, иначе студенты просто запутаются и будут читать всякий шлак.