Студенческий проект биржи недвижимости

    Полгода назад руководимая мной группа из 8 студентов приступила к проектированию и созданию сайта открытой площадки для публикации объявлений о недвижимости. Еще 1 студент получил задачу написать клон готового сайта. Расскажу, чем дело закончилось.


    Описания начала и середины описываемых событий тут и тут.

    Цели


    Какие цели мной ставились:
    1. Обучение студентов
    Каждый должен был вырасти над собой. Особенность ситуации в том, что мне досталось 9 лучших с потока — магистранты, которым прямая дорога в аспирантуру при должном усердии.
    Особая роль мной отводилась руководителю из числа студентов — координатору. Это был один из наиболее способныхх и организованных, который должен был «отвечать за все», как и в реальных проектах.

    2. Обкатка технологии
    Хотел получить ответ на вопросы:
    — можно так делать или нет?
    — Если да, что это дает участникам? Стоит ли игра свеч?
    — Если нет, чья в том вина? Моя? Координатора (читай тимлидера) или исполнителей?
    — нужна ли нам система контроля версий, багтрекер, канал для обсуждения? форум?
    — каков оптимальный размер группы? кого и как в нее стоит отбирать/пускать?
    3. Получение работающего прототипа
    Важно было получение хотя бы одной системы, целиком написанной студентами, для дальнейшего развития и запуска.
    Хотелось обкатать технологию обучения php + mysql + веб-технологии вообще + любой фреймворк = обученные студенты+проект.

    Итог


    Проблемы, о которых я говорил в предыдущем топике, а именно неспособность организовать труд в команде, крайне низкий уровень знания веб-технологий, ООП и готовности учиться, продемонстрированный большинством участников, с течением времени только усугубились. В результате — проект реализован в состоянии «сайт сделан, но ничего не работает».

    Ссылка: Волгометр

    Результаты (по целям)


    1. Обучение
    Каждый вырос. Особенно, полагаю, это касается тех, кто кодировал, кто верстал и кто руководил. Человек, освоивший начала ajax, тоже достоин уважения. Конечно, были те, кто проехал «на тихой волне», но это был выбор каждого. Эта цель, полагаю, достигнута.

    2. Технология
    Обкатать технологию удалось лишь частично.
    — Делать так можно, но только с малыми группами, при высокой квалификации, явным желанием работать со стороны студентов, заранее готовым ТЗ и детально проработанным распределением обязанностей. Всего этого нам не хватало.
    — моя вина в неудаче проекта как работающего сайта также есть, и она немалая. Я ее вижу в первую очередь в отсутствии систематического лекционного изложения всего того материала, который мог им потребоваться. Во вторую очередь это переоценка сил студентов. Они большую часть времени находились в «организационном тупняке», просто не понимая, с какого конца грызть задачу. Координатор, кстати, был выбран верно, он на 50% и обеспечил появление хотя бы такого результата
    — обязательно нужно средство коллективной разработки сайтов. Честно говоря, я не готов сделать такой выбор сейчас, но оно необходимо для организации командной работы. Как средство общения вполне достаточно проектного форума.
    — оптимальный размер группы: 1-2 или 4-5 человек для крупных задач. 8 — это много.

    3. Проект
    Работающий прототип не возник.
    Возникло нечто, что даже трогать не хочется. Никакие стандарты кодирования, проектирования, защищенности и коллективной разработки не соблюдались в последнюю неделю перед сдачей.

    Мои выводы и вопросы


    Обращаюсь к хабрасообществу (поскольку с 1 сентября я буду вести то же самое уже 65 студентам самого разного уровня):

    1. Теория.
    Нужно готовиться к систематическому ведению лекций по вебу вообще, php, mysql, основам безопасности и прочему. В голове весь этот материал у меня есть, но на его систематизацию элементарно нет времени. Буду крайне благодарен за материал для лекций (сами понимаете, мануалы в качестве лекций работают крайне плохо).

    2. Задания.
    Нужно иметь набор заданий от самых простых до таких вот групповых проектов. К слову, задание по клонированию сайта oscilloscop.ru, полученное одним студентом, было им выполнено почти отлично. Всем бы так. Полагаю, это могут быть задания на разработку простого элемента на базе готового фреймворка, регрессное проектирование, клонирование сайтов. Буду крайне благодарен за идеи.

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

    4. Средство организации коллективного труда.
    Нужно выбирать и внедрять средство коллективной работы над проектом с отслеживанием версий, отчетами об ошибках и прочем. Чем проще — тем лучше. Буду благодарен за советы.

    Спасибо за внимание и комментарии.

    p.s. Честно говоря, хвалиться особо нечем, и пост этот писать не хотелось. Помог довод: «сказал А — говори Б». Кроме того, через 1,5 месяца эти же вопросы предстоит решать уже совсем на другом уровне.

    p.p.s. Все студенты получили положительные оценки. Наилучшие — координатор, наиболее способный программист и человек, сделавший в одиночку клон сайта oscilloscop.ru

    Средняя зарплата в IT

    110 500 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 7 087 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 91

      0
      Потому что цели проекта должны быть такими:
      1. Проект
      2. Проект
      3. Проект

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

      Без позиции "сдохну, но сделаю" все процессы протекают в 5 раз медленее.
      Я считаю, что студенты - это такие люди, которых уже можно учить как взрослых. То есть достаточно вдохновлять, а знания и умения они могут уже добывать сами.
        0
        А вообще-то вы делаете крутое дело. 65 человек обучить новым технологиям - это задачка огого.

        Так что респект :)
          0
          спасибо. тяжко это, честно говоря. есть куда приложить силы, и кроме родного вуза
          0
          перечислены МОИ цели. Их цель была одна: сделать во что бы то ни стало, иначе быть беде. собственно, так они и сделали. забив на правила, лекции, ООП, безопасность, валидную верстку и прочее.

          а вот моя следующая цель — сделать так, чтобы в будущем появлялись еще и толковые проекты, а не только на "отстань"
            0
            Вы выступали в результате в качестве "клиента". А попытались соединить роли "клиент" и "менеджер", насколько я понимаю.

            ЗЫ. Я работал со многими людьми, которые делали на "отстань" уже после института :) И это серьезная работа - переломить это Отношение.
              +1
              не совсем понял вас

              я выступал в нескольких ролях:
              Клиент
              Руководитель
              Консультант
              старался всегда показывать, когда чью позицию я представляю.

              после института это отношение будут переламывать увольнением.
                0
                Попробуйте в следующий раз выступить в роли тим-лидера. Это должно быть продуктивнее с точки зрения обучения студентов. Лидер должен быть на голову а то и две выше остальных - тогда будет толк.
                  0
                  боюсь, это снимет с головы каждого львиную долю ответственности. они перестанут думать о проекте в целом. будет как в юмореске: "к пуговицам претензии есть? нет? ну я пошел"

                  хотя — есть здравое зерно
                    0
                    Имхо - наоборот - покажет, к чему надо стремиться. Это же обучение, а не реальные "полевые действия". Ответственность у каждого должна быть минимальна.
                      0
                      Вы и на голову выше по знаниям будете, и, как преподаватель, будете пользоваться намного большим авторитетом, чем студент-лидер.

                      И если вы так построите работу, плюс "заразите" идеей всех остальных, то с каждого конкретно вы сможете требовать больше, чем этот студент. И члены команды будут более ответственно относиться к проекту.
                0
                Мне кажется, начинающим лучше не успеть доделать какую-то часть работы в планируемый срок, но делать так, чтобы переделывать не пришлось, т.е. не "во что бы то ни стало", а ориентируясь на какие-то правила, разбираясь в непонятных вещах. А "на скорость" работа бывает эффективной, когда уже есть какой-то опыт этой работы.
              +2
              чтобы сделать хороший проект, нужно жить им..
                +1
                Вот чего мне не хватает :( Когда я был одержим проектом (делали стартап), то все это было. Сейчас просто сытая лень
                0
                Я сейчас студент, да и все хабралюди знают, как студенты живут и как они не учатся (в 90% случаев в последнюю неделю делается вся семестровая работа). Мне кажется, что работающий прототип с такой командой - нереальная задача, так что Вы сделали всё от Вас зависящее.
                  +2
                  Материал для лекций

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

                  Задания

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

                  Фреймворк

                  Я бы рекомендовал Zend Framework, но боюсь, что как фреймворк он будет для них не очень простым, особенно, если уровень знаний не высок.

                  Да и вообще я сомневаюсь, что им нужен фреймворк. До фреймворка и работы с ним нужно "дорости". Те же паттерны - они же их даже не поймут наверняка (по себе сужу - мне вычитывали в университете курс GoF, только я конечно же ничего из этого тогда не понял - понимание приходит позже, когда это потрогаешь руками и дойдешь до этого сам мозгами).

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

                  Средство организации коллективного труда

                  Достаточно, имхо SVN + Skype. Добавьте сюда систему ведения проекта и багтрекинг - и вы вооружены до зубов для командной работы.

                  Это то, что касается советов.

                  Я думаю, что стоит еще внести такие понятия понятие с следующий раз : тестирование перед сдачей и рефакторинг кода (это вообще крайне важный момент). Судя по всему эти вещи у Вас отсутствовали в процессе.
                    0
                    спасибо. очень внятный ответ. кое-что прокомментирую
                    общий уровень таков: все сдали с++, ооп, операционные системы, технологии программирования, базы данных.
                    программировать на нормальном уровне умеют 20-40%

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

                    принцип работы шаблонизатора мной объяснялся 4 раза. поняли трое.

                    я подумаю над вашими словами.
                      +1
                      Я думаю что и Вы и я прекрасно понимаем, что такое "сдали". Сдали - это мало говорит о том, чему студенты научились..

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

                      В веб-технологиях вообще крайне важно наличие практики..никакая теория ее не заменит.
                    0
                    мне видится проблема в том, что никто из команды, включая координатора-автора, не обладали достаточными технологическими знаниями. либо, как минимум, не имел их только координатор и, как следствие, не смог эффективно управлять проектом
                      +2
                      А вообще сам бы с удовольствием бы поучаствовал на Вашем месте - только вот никто не зовет :) А ведь это интересно - обучать, делиться знаниями, смотреть, как люди растут в знаниях и в умениях..Эх.
                        0
                        предложите свои услуги местному техническому вузу. 2100 рублей в месяц и отличный досуг
                          0
                          В ВУЗах нужна ученая степень, чтобы разрешили такое. А я через полгода только буду специалистом ;)
                            0
                            не так. полно преподавателей без степени.
                            меня бы взяли (и звали кстати в другие места), несмотря на то, что я ктн. просто вы не будете доцентом. потолок — старший преподаватель.
                              0
                              Это интересно..я просто слышал другое - мои знакомые пытались проводить занятия в университете СевНТУ (Севастопольский технологический) - были проблемы с этим. Хотя один семестр они таки отпреподавали, правда результаты тоже были не ахти..низкая культура у большинства..
                                0
                                Паренек знакомый с 4-го курса преподает, еще один на 3-м курсе, курс по БД читал. универ - ИТМО.
                        0
                        Вдумайтесь: команда из 8 человек сделала что-то. Да, сделала плохо и вряд ли тянет даже на двойку. Но сделала, практически довершила. Да, я уверен, что выполнено не более 10% предполгаемой работы. Но она выполнена. Это, я считаю, отлично. Да, хочется большего, но студенты будут помнить вас, а не скучные лекции. У них будет опыт, хоть и отрицательный. У вас будет опыт.
                        Хм, я бы мог сказать, что нужно было взять хорошего менеджера. Но не очень хотелось. Но надо было, вот и сказал. :)
                        Считаю, что все лучше, чем общий тон топика. Успехов.
                          0
                          хе. с этих позиций действительно все неплохо. и я в целом доволен. но это немного даосская позиция. а хочется триумфа и блеска )
                            0
                            Это отлично. теперь надо четко понимать, как достичь триумфа. Т.е. понять, что проблемы лежат
                            а) в образовании
                            б) в навыках совместной работы
                            в) в психологии.
                            Из этого поулчать дополнитлеьное образование.
                          0
                          Совсем не факт, что команда из 4-5 человек, превзойдет их КПД. С точки управления да, но точки организации и продвижения - по сути тоже.
                          Да они сделали все с нуля, но вопрос не в этом, вопрос в том, будут ли они готовы реать такие задачи самостоятельно, имхо - нет, так как было упомянуто, что материал не упорядочен, а залог всякого учения в структуре и систематизации, с последующим накоплением опыта с применением нестандартных решений.
                          Важен так же правильно поставленный вопрос, и их умение применить к нему знания. Все получится, и на 65 человек наберется толковых.
                            0
                            А каким должен был получиться проект? Какова его цель? Просто воплотить его технологически или же довести до реальной востребованности рынком? Как я понял, в работе не принимали участия люди, которые имеют отношения к рынку недвижимости. В таком случае проект может быть технически наворочен очень прилично, но при этом не будет удовлетворять потребностям как покупателей, так и продавцов недвижки.
                              0
                              кажется, вы не прочитали первую часть.
                              проект должен быть учебным. о коммерческом пуске речь не шла.
                                0
                                Не может быть проект "учебным". Человек Вам о другом хотел сказать. Я вот завтра иду для своего проекта в турагенство и бюро недвижимости. Они точно могут сказать чего хочет клиент.
                              0
                              Эх, хочу быть преподавателем...
                                0
                                см выше. российская система высшего образования нуждается в специалистах по вебу. я в этом убежден. полагаю, отсутствие степени вам простят
                                  0
                                  А отсутствие высшего и убожество среднего?

                                  В Санкт-Петербурге? Сомневаюсь.
                                  Обидно то, что разбираешься лучше чем студенты (что, в принципе, очевидно для преподавателя) и большинства преподавателей, но возьмут естественно Иван Иваныча, которому 50 и который программировал ЭВМ когда я еще не родился.
                                    0
                                    Такое есть. Кафедрам, кроме всего прочего, нужны показатели, в том числе кол-во "остепененных", которых кафедре при удобном случае припомнят.
                                –1
                                Какой курс? после 4 давайте только ASP.NET как веб-платформу, именно на нем приятно реализовывать крупные проекты с тимлидом и контролем версий, несколькими слоями и конечно ООП.

                                p.s.:имхо любые проекты не преследующие коммерческую выгоду обречены на провал
                                  0
                                  приятно — не довод

                                  я не навязываю php+mysql, клон осциллоскопа был написан на асп.нет
                                    0
                                    Ну в таком несколько обзорном курсе, как я понимаю, конкретная платформа не особо и важна. Подойдёт и asp.net и rails и любой фреймворк под php. Гораздо важнее тут объяснить основные принципы качественного веб-приложения, рассказать об основных архитектурах, распространённых типовых решениях, да и вообще о правильной разработке в целом. Так сказать наставить на истинный путь.
                                    0
                                    По-моему вы уже достигли многого.

                                    Они прошли этап ошибок, которые рано или поздно все равно совершили.
                                    И если ребята часть шишек набили уже в ВУЗе, то это повод для радости.
                                    А если таких как вы станет больше, это будет поводом для надежд на нашу систему образования.

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

                                      но предварительно каждому студенту из команды надо дать отдельное задание, чтобы он привык к технологии...
                                        +1
                                        Несколько советов с моей колокольни:

                                        1. Лучше писать на Ruby on Rails, не на PHP. Ну или на Django. Проблема с PHP в том, что на нем просто написать что-нибудь, но написать нормально очень сложно. ROR, например, дает довольно четкую идеологию, основы которой понять довольно просто. Ну и, конечно же, фреймворки дают более высокий уровень абстракции, позволяя избежать проблем с рутиной. Не в коем случае не советую ASP или J2EE — на них код проекта будет больше, знаний в головах меньше.

                                        2. Должен быть гуру, которой во-первых даст базовые знания (для руби это несколько лекций, но впринципе это можно заменить на чтение хорошой книги, Agile web development для ROR), а во-вторых на начальном этапе будет помогать советом и комментировать написанный код, повышая тем самым уровень студентов. Тут опять же важно насколько краток язык — ruby и python имхо гораздо локаничнее php, не говоря уже о компилируемых языках.

                                        3. В качестве scm порекоммендовал бы git — на нем гораздо удобнее работать в группе, но он довольно сложен. Возможно, достаточно будет и subversion'a.

                                        4. trac — баг–тракинг, вики, и т.п. рекоммендую.

                                        5. Мне кажется, что не правильно все сваливать на студентов, должен был быть человек, который представляет что и как надо делать, и который ставил бы задачи студентам.. Тогда результат был бы намного лучше.

                                        А вообще Вы молодец, делаете очень хорошее дело, . По своему опыту знаю, что в институтах этого очень не хватает. Я готов и даже был бы рад окакзать вам помощь в вашем начинании ;-)
                                          +1
                                          Странное у Вас противопоставление - PHP vs Фреймворки_на_других_языках. Как можно язык сравнивать с фреймворками? Сравнивайте тогда языки или фреймворки.. А так - "все смешалось в доме Облонских"..
                                            0
                                            1. php - это и есть фреймворк. Просто фреймворк-недоросток. Или шаблонизатор-переросток.
                                            2. Речь идёт не о сравнении. А о том, что выбрать в данном случае. И с этой точки зрения пхп- едва ли не худший выбор.
                                            Писать на голом пхп - будет получаться именно то, что получилось. Всегда.
                                            Писать на каком-либо пхп-шном фреймворке - это вообще ниочём, по-моему. (не буду расшифровывать, пусть это останется чоррным пятном на моей совести :) )
                                            Писать на голом руби-питоне ещё менее осмысленно, чем на голом пхп, несмотря на все бонусы в синтаксисе, логичности, продуманности и лаконичности. Как языки они ценны сами по себе, а использование их (голыми) в обсуждаемых целях - классическая погоня за двумя зайцами.
                                            J2EE - абсолютно согласен с предыдущим автором. C ASP дела не имел, поверю на слово.
                                            Вот и остаются рельса и джанга. Они (знаю про рельсу, на джангу надеюсь :) ) держат начинающих в жестких рамках, при этом уча хорошему :). Так что всё тут в порядке.
                                              +1
                                              Абсурд с самого начала. И по "пхп - это и есть фреймворк" и заканчивая "остаются только рельса и джанга".

                                              Не хочу продолжать дискуссию - Вы не компетентны в области PHP - по-крайней мере этого не наблюдается.
                                                0
                                                >Не хочу продолжать дискуссию
                                                Это правильно. Не вижу смысла в разговоре с фанатиками. Особенно с фанатиками интерпретатора форм персональных домашних страниц (ну, или гипертекстового препроцессора, если вам угодно).
                                                  0
                                                  Не путайте мягкое с зеленым. Тут нет никакого фанатизма, только тразвое рассуждение.

                                                  А пхп Вы можете называть как угодно, от этого он хуже не станет и в его полку не убудет.

                                                  Нет плохих языков, есть плохие программисты.
                                                    0
                                                    *трезвое
                                                      0
                                                      Это не я его так называю. Это он сам так называется. Я, ей богу, не при чём :).
                                                      Плохих языков, возможно, и нет, есть языки плохо спроектированые (точнее вообще никак не спроектированые), с мерзким синтаксисом и полным отсутсвием логики (следствие отсутсвие проектирования). Зачем писать на этом убожестве при наличии существенно лучших _во всех отношениях_ альтернатив, я даже представить себе не могу. Только фанатизм.
                                                      Трезвое рассуждение о чём? Даже отвлекаясь от предыдущего. Вы считаете, что этот препроцессор - подходящее средство для обучения студентов веб-технологиям??? Бедные студенты... :( Впрочем, о чём я спрашиваю... Ясно, что кроме пыпыпы вы ничего другого не осилили, иначе привели бы аргументы, а не переходили на личности по причине отсуствия таковых.
                                                        0
                                                        Автор между прочим довольно не плохо освоил Java, а уже потом перешел на PHP.
                                                          0
                                                          Знаю ровно две причины предпочесть пхп яве:
                                                          - крошечный размер проектов
                                                          - на яве сложно писать плохие программы
                                                            0
                                                            Вы не угадали. Предлагаю свернуть это обсуждение. Телепат из Вас плохой, а пхп мы уже обсудили, Ваша точка зрения ясна - "кто пишет на пхп - те - фанатики". На этом и поставим точку.
                                                              0
                                                              Я математик, мне гадать непристало. Перечитайте. Знаю ровно две причины... Причин не добавилось, логический вывод очевиден :).
                                                              ЗЫ. Ох уж эти недоучки. Когда все их знания ограничены брошюркой "пхп для идиотов", они напускают на себя многозначительный вид, будтно им одним известна некая Тайна, но они - мальчиши-кибальчиши, не продадутся за сгущёнку... Смешно. Точку ставим. Я уже всё понял и так. Вы продемонстрировали шаблонное поведение "пхп-программиста" (ругательство такое). Я думал будет интереснее и я эту Великую Тайну наконец узнаю :).
                                                                0
                                                                Вам не дано будет понять никогда, пока Вы считаете визави глупее себя.

                                                                PS. Я тоже математик..
                                                                  0
                                                                  Сложно понять человека, который так упорно хранит свою "тайну Золотого Ключика". Я, как вы правильно заметили, не телюпат :).
                                                              0
                                                              На Java сложно писать плохие программы?
                                                              [заливисто хохочет]
                                                                0
                                                                [пожимает плечами]
                                                                Сложнее, чем на пхп.
                                                                [и недоумённо]
                                                                Ну и нахера нам всем этот геморрой?
                                                                  0
                                                                  Тем кто знает Java лучше чем php несомненно да.
                                                                    0
                                                                    А богатым и здоровым быть, несомненно, лучше, чем бедным и больным.
                                                0
                                                Знаете, лучше писать на KWzX5. в качестве fwe я порекомендовал бы phrost/3, хотя могут быть проблемы с групповым дваркованием...

                                                //Извините, побочная мыследеятельность...
                                                  +1
                                                  Знаете, лучше писать на KWzX5. в качестве fwe я порекомендовал бы phrost/3, хотя могут быть проблемы с групповым дваркованием...

                                                  //Извините, побочная мыследеятельность... имхо это прям избыток опыта какойто
                                                  0
                                                  попробуйте для работ использовать сервис assembla.com - бесплатный и идеально подходит вам.
                                                  из фреймворков - Zend Framework к примеру
                                                  из учебных материалов - по моему, большинство есть на intuit.ru и как раз в виде готовых лекций.
                                                    0
                                                    Спасибо за статью и за то что вы делаете.
                                                    Именно из-за того что в моем вузе небыло таких преподователей, скорей наоборот, были совершенно противоположные по требованиям, желаниям, целям, я ушел с АВТ, да и вообще в другой ВУЗ на абсолютно другую специальность :)

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

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

                                                      Технологии
                                                      Если у студентов не будет знаний в области веб, то уделить время всему циклу процессов, которые происходят на сервере и клиенте, я не думаю что это введет в ступор, они ведь уже знакомы с программированием, поэтому могут понять, что на сервере генерируется программой код, основываясь на запросе HTTP. Отнес это ко второму пункту, так как к технологиям и принципам работы тоже относится.

                                                      Мне после C++ достаточно просто было писать на ASP.NET C# (хотя прошел через Classic ASP и PHP), может вам это тоже стоит учесть, чтобы народ не тратил много времени на привыкание к совсем новому для них PHP? Но это так, только имхо, совсем не навязываю.

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

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

                                                      Вообще, желаю вам успехов, думаю у вас все получится. Тем более что дело очень правильное.
                                                        0
                                                        Надо просто это делать чаще.
                                                        Урлы вида [имя_раздела].php, и соответствующее построение кода — вполне нормально для первого реального проекта. Второй, третий раз уже будет совсем другой подход и к архитектуре кода, и к процессу его обсуждения, и к процессу непосредственно его генерации, etc.

                                                        Никакие лекции не помогут, особенно лекции о модных процессах разработки.
                                                          0
                                                          разумно. сам так же учился. пока не дошел до собственныз наработок в сторону библиотек функций, не понимал зачем и как пользоваться фреймворками
                                                          0
                                                          да еще и потенциальных дыр на сайте понаоставляли ))))
                                                            0
                                                            хаюра обрезала линк - volgometr.intervolga.ru/obyava.php?announce_id_s='
                                                            0
                                                            Почитал предисторию, комменты, но так и не понял, сколько _реального_ времени было запланировано на начинание. Понял, что один семестр. Сколько часов в неделю они должны были этим заниматься? И что они должны были делать/какие обязанности были у них параллельно?

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

                                                            Поэтому я бы предложил "чисто аналитический re-engineering-проект". К примеру, для ваших следующих курсов берете недоделку, сделанную в этом семестре или какую-нибудь не большую систему, на которой студенты сами щупая и проверяя требования (не забудьте про не-функциональные!), ТЗ и код, по минимуму поймут как не надо делать. Как задача максимум можно поставить задание на улучшение какой-то конкретной части и презентация другим студентам в группе.

                                                            Таким образом и с технологией, хотя бы примерно, познакомятся. Ведя же аналитическую работу получат полезные навыки.
                                                              +3
                                                              У меня в Питере IT-компания. Мы часто собеседуем студентов и выпускников. Надо ли кому рассказывать, что средний уровень подготовки к решению реальных задач у студентов и выпускников хороших технических ВУЗов близок к нулю, исключение составляют те, которые успели на 4ом курсе начать где-то работать. Весной я прочитал курс лекций для студентов ИТМО по менеджменту в IT. К сожалению, это был студенты лишь первого курса, причем далеко не все студенты видели себя в будущем связанными с IT. Было трудно. Но, уверен, кое-что у них в головах осталось, все-таки каждый из них написал мне план проекта в MS Project. Я не ограничивал их каким-то конкретным проектом – реальные спеки показывать было бесполезно, так как далеко не все из них что-то могли программировать. Люди писали планы на ремонт квартиры, на переезд из общежития, на раскрутку своей музыкальной группы и т.д. Оценивали риски, адресовали их, как могли, спорили на зачете, что они правы – очень здорово! Я прекрасно понимаю, что это ничтожно мало, но что-то же надо делать с нашей системой образования.
                                                              На счет Вашей задачи. На мой взгляд, обучить web-программированию несколько десятков человек за семестр задача невыполнимая в принципе, но дать хороший старт, показать направления, дать представление о командной работе можно и очень нужно.
                                                              Я бы действовал по такой схеме –
                                                              В первую очередь рассказал, что такое интернет – многие люди им пользуются, приходят на собеседование на J2EE или C# - и не знают, что такое cookie. Немного коснуться стека протоколов, модель OSI – не запомнят и не поймут, но что-то отложиться. Ну потом HTTP. Причем здесь, на мой взгляд не надо останавливаться на подробном описание хидеров, методов и пр. Просто основы – request/response – сервер про нас «забыл». Через понимание понятия stateless протокола HTTP приходит понимание ограничений HTTP и, как следствие более глубокое понимание web.
                                                              Дальше основы HTML – ну, если, конечно, они не знают. И главное – не рассказывать сухо – тэги, атрибуты. Рассказывать что и зачем, на реальных примерах. Как когда-то лет 10 назад была книжка по программированию, не помню на чем, в которой с первых страниц людям было сказано – дочитав до конца, вы напишите игру. Это был тот самый пряник, который поднимает ту самую заветную мотивацию. Придумайте аналог – возьмите популярный среди них ресурс на его примере разберите верстку – не детально, а основы, чтобы люди слушали, а не спали.
                                                              Далее – очень важный пункт – командная работа. В не всяких сомнений необходимо дать основы работы с системами управления версиями. Причем опять же не просто дать вызубрить ключики, а именно рассказать зачем это нужно – думаю, будет полезно сравнить два подхода – VSS и SVN (cvs и пр.) Рассказать о плюсах и минусах. И остановиться конечно на SVN.
                                                              Далее – написать план проекта. Побить на стадии длинной максимум 2 недели (еще лучше неделю, но понимаю, что это не всегда возможно). Я тут имею ввиду сделать это не дома – а прямо там, при них. Думаю, что 65 человек надо делить на группы по 5-6 человек, ну максимум 8 - предел. Каждой группе поручить отдельный задачи – понимаю, что не всегда это возможно, далеко не каждый проект делиться на 10 равных частей без ущерба производительности. Вот тут самое важное – думаю, что нужно придумать такой проект. Необходимо также внести элемент соперничества – например делать каждую неделю рейтинги команд. По результатам сделанных работ. Можно, кстати, чтобы все делали один и тот же проект на скорость. Но безусловно, чтобы качество также влияло на общий результат.
                                                              На счет технологий. Мне кажется, что все равно, что PHP, что Ruby on Rails, что Python с Django – не имеет никакого значение. На мой взгляд, чем проще – тем лучше. Согласен, что не Java не ASP.Net не стоит брать – ООП лучше учиться отдельно от web – а уже потом пытаться осилить силу MVC/MVP.
                                                              Стоит выбрать баг треккинг – там предлогали trac – вещь хорошая. Мне, правда, Jira нравиться больше, зато в trac есть wiki, и сам trac бесплатный (по-моему).
                                                              Обязательно еженедельные отчеты – правда, не уверен, что это все возможно – сам был студентом, сам все делал в последний день. Это идеальная ситуация – нужно к нем стараться приблизиться, на сколько это возможно.
                                                              И напоследок – большое Вам спасибо за то, что Вы делаете – это действительно очень важно.
                                                                –1
                                                                Единственное, что мне не совсем понятно, это мотивация студентов. Ваша мотивация вполне ясна - готовый проект. Студенты же, не получая особой выгоды, обучаются новым технологиям, но особо не стараются, ибо на фиг надо горбатиться на кого-то, лучше новые знания применить для себя любимого. Мне это напоминает ситуацию на языковых факультетах - преподаватель предлагает перевести студентам сборник рассказов, который еще никто не переводил. Цель преподавателя - получить готовый к печати сборник, цель студентов - научиться переводить сложные конструкции, не дав ничего преподавателю :)
                                                                  +1
                                                                  положительная мотивация — научиться. перед ними все же опытный человек, которого есть о чем спросить. при желании можно кое-что перенять
                                                                  отрицательная мотивация — чтобы не вылететь из вуза

                                                                  мне их работающий код в общем не нужен, есть способы получить его в 10-15 раз быстрее и несравнимо качественнее
                                                                    0
                                                                    Я ведь и говорю кое-что они переняли и все, работать дальше они просто не будут. Они что-то сделали, вы что-то получили никакого продвижения дальше тут не будет, пока не будет достаточной мотивации.
                                                                    А на счет в 10-15 раз быстрее, вот этому наверное и надо учить, качественному и быстрому.
                                                                    0
                                                                    положительная мотивация проста — научиться.

                                                                    отрицательная мотивация — не вылететь из вуза

                                                                    мне их код не нужен, есть способы получить сайт в 10-15 раз быстрее и несравнимо качественнее
                                                                    –1
                                                                    http://volgometr.intervolga.ru/new.php?id=3"
                                                                    ребят, инджекшн самый примитивный.. не подставляйте весь сервер ;)
                                                                      0
                                                                      насколько я понимаю, как максимум из-под их юзера вы повалите их БД.
                                                                        0
                                                                        я то ничо не повалю, мне нафег это не нужно :)
                                                                        рядом с их бд скорее всего лежыт ещё одна бд какова нить ресурса с того же сервера, мона по хуизу поискать, и если юзер мускульный общий, то мона и те базы поглазеть :)
                                                                        вобщем я так, чтоб внимание обратили..
                                                                          0
                                                                          там лежит 150 сайтов. это сервер нашей конторы.
                                                                          но у нас правило: одному сайту один mysql-юзер и 1-2 БД, не больше.
                                                                            0
                                                                            ой, автор :) извиняюсь, не заметил..
                                                                            раздельные юзеры - уже харашо..
                                                                            ну мона багу внедрить (какуюнить XSS) на сайт, черех хтмл (с помощью базы), если её ещё нету :D
                                                                            какой нить админ то да спалица :)

                                                                            в общем навредить можно точно..

                                                                            а по теме, раз уж айдишнег число, то сделайте
                                                                            $id = (int)$_GET['id'];
                                                                            и вопрос именно в этом скрипте закрыт :)

                                                                            Удачи!
                                                                      0
                                                                      > мне досталось 9 лучших с потока — магистранты, которым прямая дорога в аспирантуру при должном усердии

                                                                      Дочитав до сюда, подумал, что ничего путного у вас, скорее всего, не вышло.
                                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                                          0
                                                                          полагаю, что веб-дизайн не тянет на высшее образование. в волгограде этим промышляют средние специальные учебные заведения. об уровне ничего не знаю
                                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                                              0
                                                                              судя по опыту оч многа веб-дезигнеров пришло из архитектурного, там рисуют многа :)
                                                                              а вообще, самообразование - лучшее образование! имхо..
                                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                          0
                                                                          Изложу свое скромное мнение
                                                                          8 человек работающих над одним проектом - это слишком много. Пусть над проектом трудятся 3-4 человека.
                                                                          По вашим вопросам и выводам
                                                                          1) Теория.
                                                                          Мое мнение состоит в том, что лекции, как вы их назвали по "вебу" (php,mysql) бесполезны. Так как студентам надо давать теорию по языкам программирования и теории СУБД (а php и mysql для примеров). К поставленному вами вопросу о том где взять материалы для лекций по web, я бы посоветовал обратить внимание на книжки издательства O'Relly или вот эту книгу
                                                                          по mysql - я бы все же советовал читать по мануалу, он достаточно информативный
                                                                          2) Задания
                                                                          по-моему давно Вы как-то писали какие задания можно предложить студентам и там многие высказали интересные идеи
                                                                          Вчера здесь был пост о том, куда кто-то собрался инвестировать, возбмите идеи оттуда
                                                                          3) Фреймворк...я думаю этот вопрос вы должны задать студентам, пусть сделают обзоры существующих, полазиют по интернету, почитают, посмотрят статистику использования. Пусть думают сами
                                                                          4) Svn
                                                                            0
                                                                            1) Теорию, точнее лекции можно сделать на подобии intuit.ru, чётко,просто и сжато, для того что бы понять основы и начать что то делать вполне достаточно
                                                                            2) Идеи для заданий можно поискать на хабре, было тут много постов на эту тему и много идей (помнится пост про гостевую книгу, вкачестве задания для пхп разработчика)
                                                                            3) Фреймоврк
                                                                            Думается лучше начать с более простого скажем CakePhp, Zend конечно классный, но более сложный (ну по крайней мере когда, я начинал, он показался мне сложным),эта сложность может только помешать и даже отпугнуть ( особенно начинающих). CakePhp позволяет писать полноценные проекты с небольшим запасом знаний, и как мне кажется наиболее подходит для студентов. А уже потом можно перейти на что нить более сложное, на тот же Zend
                                                                            4) В качестве среды разработки Eclipse + SVN и да было бы неплохо иметь свою wiki для обсуждения текущего проекта - это позволит иметь хорошую документацию. И wiki можно порочить какомунибудь хорошему студенту в качестве персонального задания
                                                                              0
                                                                              Имхо с фреймворков лучше не начинать. Для них CakePHP будет каким-то непонятным вуду. Сейчас для меня такой вуду - jQuery без знания Javascript
                                                                              0
                                                                              Начинать лучше с чтения, например http://paulgraham.com/road.html.
                                                                                +1
                                                                                Много уже тут написали. Но все же вставлю свои 5 копеек. Будет весьма интересно, если получится небольшая дискуссия. Я получил высшее педагогическое, но со студентами не работал, выбрав практическое направление. Но сам активно изучал вопросы научения и занимался индивидуальным обучениям по разным вопросам.

                                                                                Но ближе к теме. Я предлагаю вывернуть процесс обучения наизнанку. Вы сами прекрасно можете вспомнить свою практику и посмотреть на окружающую действительность. Когда люди быстро находят различные способы решения задачи? Когда у них есть какая-то сложность. На традиционных лекциях происходит ситуация, когда сложности нет (лекция читается заранее), поэтому вся информация отфильтровывается как неактуальная/незначительная. Когда же есть некая практика и видна проблема, то теория позволяет расширить возможные варианты решения.

                                                                                Поэтому условно говоря, я предлагаю такую схему:

                                                                                Интересная задача

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

                                                                                Варианты деления группы

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

                                                                                Задания

                                                                                Задания можно также отдать на долю студентов. У них своя команда/компания, есть задача. Пусть думаю как и по каким этапам они будут ее решать. Какие сложности будут возникать? Как они будут их решать? Они же уже действительно взрослые и могут, верно?

                                                                                Организация командной работы

                                                                                Этот вопрос требует обстоятельного обдумывания. Так как по сути такие средства еще могут занять время на изучение, а потом могут превратиться в обузу. Например студенты будут забывать писать свои задачи туда, а потом начнут тратить время, чтобы как-то ситуацию решить. Возможно стоит дать им опять же сначала получить проблему, а потом ее решать.

                                                                                Роль преподавателя

                                                                                Вам достается роль консультанта, который помогает студентам решать проблемы. Вот это и есть та самая теория, которая будет весьма к месту, когда есть проблема. Кроме того, есть еще важная роль супервизора, которая также достается вам. Нужно смотреть со стороны какие сложности возникают в командах. Тут могут быть примерно такие варианты сложностей их решений:

                                                                                1. Организационные
                                                                                1.1. Кто-то отлынивает от работы - расскажите о делегировании и неявных задачах проекта (собрать материал, изучить вопрос, найти решение, купить книгу, написать документацию, выписать задачи, составить алгоритм и т.д. и т.п.).
                                                                                1.2. Лидер перегружен - предложите ему выбрать помошника.
                                                                                ...

                                                                                2. Технические.
                                                                                1.1. Не могут понять как данные на сервер отправляются - нарисуйте схему.
                                                                                1.2. Не могут запрос к базе сделать - покажите как.

                                                                                Ну и т.д.

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

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

                                                                                Что касается фреймворков, то действительно рановато. Задачи есть и попроще, чем "супер-мега-стартап".

                                                                                ps: Если интересно продолжить развитие мысли, то пишите в личку. Тема мне весьма интересна.
                                                                                  0
                                                                                  И забейте вы на дизайнерские изыски. Ужасно выглядит.

                                                                                  - делайте все в ч/б или с градациями серого;
                                                                                  - не мучайте стандартные кнопки;
                                                                                  - учите их думать о подаче информации, а не об украшательствах.
                                                                                    0
                                                                                    В качестве обучающего материала могу предложить свои наработки по SQL-инъекции для MySQL. Писалось для начинающих форумчан-виндузятников, поэтому доступно вполне (изложен также процесс установки Apache, ActivePerl).

                                                                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                    Самое читаемое