Ещё одна точка зрения на построение курсов по программной инженерии

1 view
Skip to first unread message

Artjom Serdyuk

unread,
Dec 22, 2009, 5:48:00 AM12/22/09
to Academy
Коллеги!

Вот что думает Джоел Спольски о том, как и чему стоит учить студентов
- http://local.joelonsoftware.com/wiki/Опасности_обучения_на_Java

Andriy

unread,
Dec 23, 2009, 2:33:13 PM12/23/09
to Artjom Serdyuk
О©ҐО©ҐО©ҐвіО©Ґ

О©Ґ О©ҐО©ҐО©ҐО©ҐО©Ґ О©ҐО©ҐО©ҐдіО©ҐО©Ґ О©ҐО©ҐО©ҐО©Ґ 6.001 О©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐріО©ҐО©ҐО©ҐО©ҐО©Ґ MIT (О©ҐО©ҐО©ҐО©ҐО©ҐО©Ґ О©Ґ О©ҐО©ҐО©ҐО©ҐО©Ґ) О©Ґ О©ҐО©ҐО©ҐО©Ґ
О©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©Ґ, О©ҐО©Ґ 95% О©ҐО©ҐО©ҐО©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐО©ҐО©ҐтіО©Ґ О©ҐО©ҐО©ҐО©Ґ О©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐО©Ґ О©Ґ. О©ҐО©ҐО©ҐО©Ґчі MIT О©Ґ О©ҐО©ҐО©ҐО©ҐО©Ґ
О©ҐО©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©Ґ О©ҐО©Ґ Python О©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©Ґ О©ҐО©Ґ О©ҐО©ҐО©Ґ, О©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐвіО©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐО©Ґd
О©ҐО©ҐО©ҐціО©ҐліО©ҐтіО©Ґ О©ҐО©ҐО©ҐО©ҐО©ҐО©Ґ О©ҐО©ҐО©ҐО©Ґ.
О©ҐріО©Ґ О©ҐО©ҐО©ҐО©Ґ О©Ґ MIT О©ҐО©Ґ Java О©ҐО©ҐО©ҐО©ҐdО©ҐО©ҐО©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©Ґ О©ҐО©ҐО©ҐО©Ґ 6.170
Labjratory In Software Engineering О©Ґ О©ҐО©ҐО©ҐО©Ґ О©Ґ О©ҐО©ҐО©ҐО©ҐО©Ґ ніО©ҐО©ҐО©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©Ґ О©ҐО©Ґ
О©ҐО©ҐО©ҐО©ҐО©ҐО©Ґ.


AS> О©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©Ґ!

AS> О©ҐО©ҐО©Ґ О©ҐО©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐО©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©Ґ О©Ґ О©ҐО©ҐО©Ґ, О©ҐО©ҐО©Ґ О©Ґ О©ҐО©ҐО©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐО©Ґ О©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©Ґ
AS> - http://local.joelonsoftware.com/wiki/О©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©Ґ_О©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©ҐО©Ґ_О©ҐО©Ґ_Java

--
Best regards,
Andriy mailto:zarat...@gmail.com

Max Tatarchenko

unread,
Jan 8, 2010, 3:56:08 PM1/8/10
to Academy
Отвечу с точки зрения студента. Все-таки учил и учусь. Безусловно,
абсолютно необходимо изучение базовых принципов на базовых языках типа
С. Но и современные языки важны. А простота - это даже не особенность,
а вполне адекватная эволюция. И тут можно рассматривать не только
Java, а и Pyton, C# и еще много чего. И изучение их тоже необходимо,
потому что специалист знающий принципы программирования на С или
Pascal на реальном рынке мало кому нужен. Кроме того важно научить
использовать готовые наработки, если нет особых требований к
производительности и тд., а не "придумывать велосипед". Потому, по
моему мнению, стоит изучать принципы программирования на основе
классических языков, но когда дело касается индивидуальных проектов,
курсовых и дипломных работ - тут стоит давать свободный выбор.

Pendyshchuk Maxym

unread,
Jan 9, 2010, 6:16:00 AM1/9/10
to Academy
відповім з точки зору колишнього студента :) Все таки відучився і
працюю :))
на рахунок Паскаля - це учбова мова програмування, не більше. тому і
ринок його не потребує. Навіть Делфі не натворив якогось буму в ІТ.
Принципи програмування - це принципи програмування, вони загальні для
багатьох речей, якщо Ви не розумієте під ними синтаксис мови і ще
деякі незначні речі... Мені якраз нещодавно доводилося писати плагін
на Пітоні, я його взагалі не знаю, але все, що треба написав - якщо
знаєте як щось написати на одній мові, то і на іншій напишете
(твердження не завжди вірне, залежить від задачі), набір функцій по
роботі з об"єктами практично однаковий всюди, так що звичайного
довідника вистачає.

> специалист знающий принципы программирования на С или Pascal на реальном рынке мало кому нужен

тут є загвосточка... Ринок то може і не потребувати, а ось Ви як
програміст? Приклад. Веб-дизайн - здавалось б що простіше...
JavaScript, CSS, HTML... Але при написанні серйозного клієнта Ви
неодмінно стикаєтеся з проблемами швидкодії. Можна шукати в інтернеті
наробки інших людей, і найвагоміші принципи Ви знайдете у тих людей,
котрі роблять експерименти над браузерами :) Вихідний код ФайрФокса,
написаний на с++, доступний, більше того на сайті мозіли є статті про
те як і що можна відлагодити (як відкомпілити мозілу так, щоб побачити
як браузер реагує на ваш код), але то всього навсього напрямки, код
"підправити" доведеться Вам. Чи відчуєте Ви як програміст клієнта те,
що Ви не знаєте с++? У 99.999...9% - ні. Чи відчуєте Ви те, що Ви
знаєте с++ і встані зробити свій білд браузера який вам підкаже що ж
відбувається - 100% так.

Коротше кажучи питання знання С - це не потреба ринку, це скоріше Ваші
амбіції :) (До речі база даних PostgreSQL пишеться на С, навіть не С+
+... думаю на лекції по базам даних про це згадають :)

І ще одне - знаючи С, на Джаву, Пітон, ... Ви перейдете відносно легко
(наприклад, доведеться забути про проблеми вивільнення памяті - що всі
роблять залюбки...). А ось коли маючи досвід Джави потрібно щось
серйозне на С написати (вже не кажучи про підправку існуючого коду) -
у вас будуть проблеми, оскільки вже потрібно буде згадувати про те, що
звільнення памяті - це вже Ваш особистий клопіт. І це, доречі, типова
помилка Джавістів, коли їм потрібно написати щось для клієнта (html +
js) - вони забувають (чи не знають) що якщо вони самі не потурбуються
про звільнення об"єктів ("спрощено" кажучи), то на клієнті виникнуть
витоки памяті...

Підсумок. Кар"єра програміста виглядає так - спершу кидається на
прості речі, високого рівня, тому що можна написати швидко. А потім з
роками програміст починає все більше і більше опускатися на нижчі
рівні, щоб зрозуміти як все працює - ось це вже і є досвід, а так і до
С дійдете :) Опускатися не означає переходити; проекти все одно будете
писати на Джаві, шарпі чи ще чимось більш "сучасним". Хоча деколи може
виникнути ситуація коли потрібно використовувати С (у дипломній роботі
такі ситуації не настають :)

П.С. "если нет особых требований к производительности" - у комерційних
проектах з таким ще не зустрічався. Я б сказав "завжди є дуже суворі
вимоги до швидкодії". Тезу про велосипед це звичайно не відкидає, але
часто заставляє задуматися...

Max Tatarchenko

unread,
Jan 9, 2010, 9:24:13 AM1/9/10
to Academy
Согласен полностью, сам-то я ту же Java по аналогии с С быстро понял,
на пустом месте конечно нельзя учить сразу что-то. Зная принципы
работы с памятью в С например, можно потом легче понимать реализацию
тех или иных частей в языках более высокого уровня. И не отрицаю, что
принципы надо учить именно на классике. Тут формируется стиль ,
понимание да и вообще образ мышления. Я просто хотел сказать, что
классика-классикой, без нее никак, а отставать от реальности тоже не
следует.

> > специалист знающий принципы программирования на С или Pascal на реальном рынке мало кому нужен

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

Pendyshchuk Maxym

unread,
Jan 9, 2010, 11:39:36 AM1/9/10
to Academy
нажаль, відповідь на питання чому саме повинен навчити університет я
не знаю... Схиляюсь до того, що повинна переважати класика, основні
підходи програмування і принципи (щоб було розуміння чому саме так і
т.д.). А отже я погоджуюся з думкою пана Спольскі, я думаю як і
більшість професійних програмістів; студенти все по іншому сприймають
(як і я у студентські роки :).
Актуальних технологій багато, з ними не вгадаєш, тим паче що всі вони
швидко змінюються... Наприклад, для MVC на джаві в мої студентські
роки використовувався переважно Struts і його наздоганяв Spring. Що ми
зараз маємо? Цих фреймворків десятки... Принципи звичайно схожі, всі
вони реалізовують MVC, але можливості різняться, тому що в основу
закладені різні архітектурні підходи... Колись галасу наробили джава
аплети, а зараз? В книгах і досі їх описують, а змісту ніякого - вони
не використовуються... Та й будь-яку технологію швидко вивчаєш коли
вже потрапляєш на роботу і точно знаєш, що найближчим часом нічого
іншого використовувати не доведеться. У будь-якому випадку від
випускників не очікують знання всього :)

Однозначно можу сказати лише одне - університет не повинен викладати
"музейні" технології (мені читали Turbo vision - можу лишень радіти
якщо сьогоденні студенти не знають що стоїть за даними двома словами,
оскільки під ДОС ніхто вже не пише, а Turbo Vision при цьому
використовують ще менше людей). Мені також читали Prolog... цікаво
було б знати статистику який відсоток випускників знайшов застосування
даної "дивної" мови програмування у житті? ФоксПро - це складно
назвати базою даних... Цей список можна продовжувати... Так що,
впринципі вже у мої роки можна було більше часу виділяти "класиці",
або хоча б вже чомусь дійсно актуальному.

Reply all
Reply to author
Forward
0 new messages