Pull to refresh

Comments 71

UFO just landed and posted this here
IMHO можно заниматься разработкой OpenSource-проектов исключительно на старших курсах и исключительно под руководством «профи». Чем, собственно, некоторые у нас в универе и занимаются.
Если говорить о программинге, то, скорее всего, первые курсы справляться не будут. За исключением особо одарённых. Но в той же графике возраст и опыт не помеха, когда надо делать большие объёмы творческой рутины.
Да, я всё воспринимаю с позиции программиста.
Насчет «больших объёмов творческой рутины» — такая работа очень развивает использование оптимальных методов работы и понимание необходимости планирования.

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

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

У некоторых студентов уже 4-5 курса начинаются свои проекты в которых они достигают успеха.
В каком университете вы учитесь?
Харьковский Национальный Университет Радиоэлектроники (ХНУРЭ)
Насчет того, что нужно участвовать в OpenSource «исключительно на старших курсах» не могу с вами согласиться — любая научно-исследовательская работа студентов должна начинаться как можно раньше, чтобы стимулировать желание учиться, узнавать все больше, применять знания на практике.

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

По опыту преподавания на Аэрокосмическом факультете МАИ могу сказать, что заинтересовавшиеся программированием студенты первого курса, которым год преподавали теорию программирования и язык Fortran, за летнюю практику + летний факультатив успешно осваивают язык PHP и работу с базами данных на таком уровне, что они уже могут, постоянно совершенствуясь и обучаясь, набираться практического опыта.
А что от студента получит опенсорс? Кучу багов и ненужного кода? Уж пусть лучше студенты учатся на чём-то другом, не мешая остальным. Опенсорс — это не площадка для обучения, а чётко поставленные цели на конкретный результат.
Хотя опять же зависит от одарённости студента…
А что от студента получит опенсорс?

От студентов OpenSource, обычно, получает развитие, новые идеи, подходы. Еще не все описано в книгах — кое-что новое люди все еще придумывают. Насчет багов и ненужного кода, возможно, вы можете удивиться узнав, что значительная часть кода программ с sf.net написана молодыми людьми. Не стоит думать, что студенты Berkeley или MIT пишут программы лучше, чем наши.

Для обучения также важен ответ на вопрос — что опенсорс даст студенту? И ответ такой: OpenSource — это работа в команде, взаимодействие с пользователем, необходимость постоянно соответствовать жестким требованиям, это большой позитивный опыт, который помогает многое узнать и осознать.

Уж пусть лучше студенты учатся на чём-то другом, не мешая остальным.

Программист может учиться только посредством написания программ, поэтому обучение программированию «на чём-то другом» отпадает.

Насчет «не мешая остальным» не понял, кому вы считаете могут мешать люди, работающие над своим проектом?

Никто ведь не даст непонятно кому вписать пару строчек в репозиторий ядра Linux — тоже самое справедливо для всех остальных нормально организованных проектов. Вы путаете OpenSource, как возможность для всех участвовать и свободно получать исходный код, с возможностью размещения непонятно чего в набор рабочего кода.

Опенсорс — это не площадка для обучения, а чётко поставленные цели на конкретный результат.

Чтобы не путаться в определениях давайте придерживаться следующего: ru.wikipedia.org/wiki/Определение_Open_Source

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

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

Естественно, что участие в OpenSource-проектах не может являться обязательной частью обучения, как, например, лабораторные работы. Но преподаватели такое должны поддерживать, поощрять и направлять. Это позволяет способным и неординарным личностям проявить себя лучше, чем решая лабы для всей группы.
Научно-исследовательская работа студентов не обязательно должна становиться публичной. Зачем каждый курсовой пихать на сорсфорж?

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

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

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

В общем-то, всё зависит от целей обучения. Если нужны инновационные и полезные научные работы, то раньше четвертого курса нет смысла за них браться, а до этого нужно усердно коптить над мат.частью; если же нужны кодеры с практическим опытом написания «реальных» программ, то можно после первого курса идти работать (как, кстати, и сделали некоторые мои знакомые… до сих пор так и работают).
Зачем каждый курсовой пихать на сорсфорж?

Естественно, этого никто не делает. Об этом речи не было изначально.

Да и не стоит забывать, что уровень подготовки у всех разный.

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

Поэтому на первых курсах реально полезных научных проектов не выйдет.

На первых курсах от студентов, изъявивших желание участвовать в научной работе, никто не требует сразу самостоятельного научного результата. Они работают в команде со старшими товарищами и вносят свой посильный (это оценивают те, кто разбирается в вопросе) вклад в развитие существующих проектов. Если своих идей нет, то свой проект у них может и не появиться, но это не значит, что нельзя участвовать в чужом. По мере роста квалификации молодых участников растет их вклад, и как раз к 3-4 курсу достигается достаточный уровень, чтобы предлагать что-то действительно новое и полезное.
Это может быть полезным только тем, кто пошел на программиста чтобы быть программистом =)
А у меня вот 70% группы будут работать кем угодно (менеджер, водитель, мож кто дело свое откроет...), но не программистами.
А задачки типовые им решает остальная часть в 30% =).
Таких мы не рассматриваем в данном контексте. О них нет смысла заботиться и рассуждать, полезно им что-то или нет :)
Я категорически за участвие студентов в разработке опен-соурс. Если студенты не готовы работать над большими международными проектами, то пусть работают над внутренними. Вспомните университет Беркли.
И я не понимаю позицию людей, которые считают, что учеба должна быть отделена от работы, ето смахивает, как по мне, на позицию студентов бездельников, которым лишь бы отсидеть ети пару лет, а дальше мама снова куданить пхнет (ничего личного). Снова и снова выпускать студентов, которые ничего не умеют делать, так как не было практики реальных проектов? Извольте. Потому конорам и приходится заново учить вновь принятых на работу.
Участие в проектах -это хорошо. Опенсорсу- тоже хорошо.
Опенсорс проекты в вузе- звучит забавно, потому что если это внутренняя автоматизация, то маловероятно, что где нибудь этот же код смогут применить. Сейчас наблюдаю за написанием системы тестирования в своем вузе, могу сказать что каждый год студенты за диплом делают по 3-4 системы, не кому не нужных. А действующая система работает не плохо, но если дать ее код, кому нибудь другому, то год уйдет только на разбирательство.

По опыту своей учебы в вузе, могу сказать что 2\3 людей с моего потока (думаю в других вузах не лучше) нельзя пускать к коду в принципе. Из оставшейся 1\3 нужен весомый стимул и крепкая рука научрука(как здесь выше сказано — ПРОФИ), иначе через пару дней найдется либо какая нибудь халтурка за деньги или после отладки целый день какого нибудь бага другого студента все желание отвалиться.

Кстати, Неужели кто то думает что студент(я про большинство) будут писать качественный код в опенсорс проектах, особенно в первое время?!

Неужели кто то думает что студент(я про большинство) будут писать качественный код в опенсорс проектах, особенно в первое время
а если он не будет его писать, ни в первое время ни потом, то как из него потом получится хороший программист, который качественный код писать будет?

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


так само собой коммитеры за его кодом будут приглядывать… даже если он на 100% уверен в себе… Чтобы перестали приглядывать надо, чтобы в нём были уверены все основные разработчики, а не он сам.
Насчет приглядывания за кодом — хорошо работает круговой взаимный аудит кода участников рабочей группы одного проекта, если проект небольшой. Естественно, наставник смотрит код у всех, но, таким образом, многие вещи могут быть объяснены меньшее количество раз до полного их восприятия.
Хочу проголосовать за 3-й и 4-й вариант одновременно.
Это такая диверсия опенсорса? Более 90% пишут такой говнокодище, что плакать хочется.
а что заставляет вас думать, что, перестав быть студентами, они станут писать лучше?
Наличие опыта.
Говнокод в большинстве своем не от безответственности, а от неопытности.
а откуда возьмется опыт, если не пытаться?
я не говорю, конечно, что всем нужно сразу лезть в опен-сорс. но имхо если стараться и стремиться делать как можно лучше, вполне получится. да еще и тот самый опыт появится.
Именно оттуда и возьмется, вы правы.
Но от этого код первое время не перестанет быть говнокодом.
Некоторые всю жизнь его пишут.
Говнокод часто еще и от внутреннего разгильдяйства и нежелания качаться. Как говорил Билл Гейтс — хороший программист хорош уже в первые годы своей карьеры.
Плюсую. Еще и потому, что в нормальном _продукте_ 20% творчества, а оставшиеся 80% — «рутина», тратить силы на которую никому не интересно, особенно студентам, которые хотят чего-нибудь нового и необычного.
Кроме того, в ВУЗах совершенно не построен процесс получения продукта, а не какого-то кода, пусть даже и хорошего.
Вывод — пусть лучше потратят время на учебу, а на старшем курсе идут в интернатуру в хорошую фирму с наставником, а не в open-source проект, в котором большинству пофиг, что за г#вно ты выдаешь.
Третий вариант, но только потому, что разработка идет в процессе учебы (хотя опытное и разумное руководство в любом проекте не лишнее). Поскольку студенты не имеют достаточного опыта и знаний о разработке ПО и конкретных технологиях, то должен быть человек, который будет руководить проектом и указывать на ошибки в архитектуре/коде и требовать их исправления.
В противном случае проект либо не будет закончен либо не будет нести никакой пользы. И уж точно не будет развиваться в дальнейшем.
Но само по себе участие студентов в разработке «живых» проектов будет очень полезно. Как для развития этих проектов, так и для студентов, ведь они смогут получить бесценный опыт. Плюс это было бы очень полезно для развития Open Source в целом.
Причем это касается не только студентов-программистов, но и менеджеров и управленцев, потому как любой проект необходимо продвигать, поддерживать (не только код), развивать (кто-то должен проводить анализ рынка и находить пути развития проекта, чтобы поддерживать его спрос). Кто-то в конце концов должен управлять разработкой и продвижением.
Всеми руками за участие студентов в open-source.
4 вариант. Делать что-то уже кем-то сделанное смысла мало, если только есть уверенность, что результат будет лучше аналогичных, и потраченное время не пойдёт насмарку. В среде студентов часто рождаются весьма оригинальные идеи, которые стоит реализовывать. Немало известных open-source проектов вытекло из студенческих курсовых/дипломных работ. Взять хотя бы GIMP )
Приятно участвовать в большом проекте и делать что-то новое, а не решать типовые задачи
Приятно — то — приятно, но для студента типовые задачи самое главное, только на них можно чему-то научиться.
По поводу опроса, то только под руководством профи. А вообще, лучше найти хорошую работу, где будут наставлять и платить за это деньги: ни что не мотивирует на получение новых знаний, как достойная зарплата=))
Во всём мире принято, чтобы студент платил за обучение, а вы предлагаете учиться, да чтобы ещё и приплачивали за это.
Наверно, поэтому во всём мире работают индусы и китайцы;)
Если куратором проекта будет довольно хороший (в плане опыта работы) человек — то все будет отлично.
Работа над разработкой опенсорсного ПО может быть (или должна?) альтернативой лабораторным работам (те кто хочет и заинтересован будут этим заниматься). Тут сразу будет прививаться работа в команде, и подзатыльники за говнокод от тиммейтов и куратора — зато дисциплинировать будет.
Если проект, разрабатываемый студентом, по рассматриваемой задаче и по уровню сложности соответсвует и/или превосходит по сложности стандартные лабораторные работы, то, я считаю, может быть хорошей альтернативой этим лабораторным работам.
А где и как подписаться на Open Source? Очень хотелось бы поучаствовать? Кто-то есть участвующий? Подскажите, пожалуйста.
Генерируешь идею, заражаешь ею других людей, регаешься на SF.net, ..., PROFIT!
Выбираешь интересный тебе Open Source проект, находишь его багтрекер и Contributing Guide, после чего начинаешь фиксить баги… в процессе багфиксинга само собой изучаешь кодовую базу проекта.
К сожалению реальность такова:

Обязательно нужно, чтобы кто-то руководил.
Нужен профи.
Преподы в большинстве своем не профи(я не говорю про всех, так что не обижайтесь).
Новичков же сторонний незаинтересованный в них профи учить не будет.
Студенты(их большая часть, тоже не все) будут производить никому не нужный говнокод за неимением грамотного руководителя.
Я вроде еще не студент а опенсорсом занимаюсь, правда только свои проекты.
Сейчас пишу навороченный текстовый движок, надеюсь скоро узнаете зачем =)
Зато есть вариант для инопланетян.
Да ладно open source. Приходят выпускники на работу устраиваться. Спрашиваю — чем занимался? Вот, говорит, курсовую писал такую-то. Программная часть еле работает, не дописана толком. Ладно, а для себя-то делал что-нибудь? Неа…

Если человеку нравится программировать — как он мог этим не заниматься для себя (open source или нет — второй вопрос)? Если ему это не нравится — какой смысл учиться и потом заниматься тем, что не нравится?

Студентам в открытых разработках участвовать не сложно. Потом время находить станет сложнее. Хотя при желании можно даже в коммерческом проекте часть кода выделить в открытые библиотеки :)
У вузов есть много задач, которые должен кто-то решать. Кто-то должен писать и улучшать системы для тестирования, обучающие программы, да те же методички верстать. Иногда преподы часть своей работы перекладывают на плечи студентов в обмен на автомат. Я помню, как кто-то набирал статьи для книги преподавателя, например.

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

4 — ИМХО не очень подходит для процесса обучения, потому как РУТИНА — базис который надо обкатать сперва, потому мой вариант 3.
Но не исключаю приятные исключения.
Голосовал за «Только если профи будут руководить и разбирать ошибки, участие может быть полезным».

Но хочу немного уточнить свою позицию. Выпускать большинство студентов в OpenSource — это для социологов, которые собирают статистику на тему «выплывут или нет», имхо, большинство утонут.

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

За всем этим дожен наблюдать человек, который сможет объяснить ошибки учащегося и указать на ошибки других.
А смысл этим заниматься до и во время учёбы? Мало знаний, мало опыта. Например, большее из трех чисел можно искать составляя большой список условий, а можно так $p = max($p1,$p2,$p3) — то есть, не зная многого, можно сидеть и велосипед изобретать.
Возможно участие в реальном проекте и поможет тем студентам, которые действительно захотят, добрать тот недостающий опыт и знания.
Блин, а где ответ «С удовольствием бы поучаствовал, лень этому не помеха»?
Хммм а «6,32% (84)Не люблю опенсорс и бесплатный труд» Это что за болезные? Или это как раз завуалированный пункт с НЛО?
Просто бесплатно работать мало кто хочет. Для курсовой можно и свой реальный проект брать, исходные коды все не обязательно выкладывать.
Одно дело не любить бесплатно работать(что вполне объяснимо), другое дело — не любить опенсорс в принципе (ну вот что он такого сделал?). Это как бы разные вещи.
Не понимаю, что ты хочешь сказать. Не любить != ненавидеть.
Немного не то сравниваете. ((не любить бесплатно работать) != (не любить опенсорс))
А кто вам сказал, что над опенсорс проектами работают бесплатно? По разному бывает конечно, но если у человека достаточно квалификации, чтобы получать деньги за работу, то он может их получать и в опенсорс проектах, причём иногда даже больше, чем если бы он работал в обычной российской IT-конторе, для трудоустройства в которую нужна такая же квалификация.
Т.е. схема в опенсорс проектах та же что и в IT-конторах: сначала надо работать за опыт и знания, а потом уже можно и деньги получать.
В пункте написано про бесплатный труд, сам принцип открытого кода я не имел в виду.
Хоть открытые, хоть внутренние, хоть какие проекты — нужен хороший, знающий, умеющий и разбирающийся в разработке человек, который сможет всем этим управлять, но в универе очень и очень мало таких…
Реальнее устроится на коммерческую фирму, где тебя натаскают, подскажут и поправят, а потом и предложат работу в будущем… Они более заинтересованы, чем универы.
По-моему, не ко времени совет, сейчас большинство коммерческих фирм заинтересовано только в том, чтобы остаться на плаву. А инвестиции в новых сотрудников, а тем более в потенциальных, прикрыли ещё в конце 2008-го.
Последние месяца три рынок поднимается. У нас например, за 2009 год не взяли ни одного джуниора, а с января этого года -человека 3-4. Сейчас как раз хорошее время пробовать, имхо. Само собой, полных нулей не возьмут…
однозначно «за», но только для старшекурсников, когда база уже есть и особый бред писать никто не будет. Это и опыт работы, и самому приятно, что что-то делаешь для общества.
P.S. Сам студент, если что=)
Приятно участвовать в большом проекте и делать что-то новое, а не решать типовые задачи

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

А есть вообще реальный опыт применения труда студентов у кого-то (в опен соурс или в другом проекте удаленно)?
То-есть мне интересно, существуют ли «профи», которые «будут руководить и разбирать ошибки» студентов?
мне интересно, существуют ли «профи», которые «будут руководить и разбирать ошибки» студентов?

Вряд ли, во всяком случае их количество в десятки тысяч раз меньше, чем кол-во студентов. А вот если студент сначала прочитает книги Макконелла, Фаулера, GoF, то кол-во потенциальных руководителей для него возрастёт в сотни раз. Т.е. надо заложить фундамент по матчасти, прежде чем серьёзными проектами заниматься.
У меня сейчас дипломник по учебе пишется совершенно в другом месте и будет в итоге решать совершенно реальные задачи. После диплома можно остаться на этой-же работе.

Это прекрасное решение, я считаю. =)
Я сам делал диплом по месту работы) согласен, это хороший вариант
UFO just landed and posted this here
Sign up to leave a comment.

Articles