LINUX.ORG.RU

Раннее знакомство с Java калечит судьбы программистов?

 ,


0

0

По мнению профессоров Нью-Йоркского университета Роберта Девара (Robert Dewar) и Эдмонда Шонберга (Edmond Schonberg) у студентов, начавших изучение программирования с Java, присутствуют только поверхностные знания о предмете. Также они считаю, что изучение програмирования стоит начинать с низкоуровневого языка Си, а также языков С++, Lisp и Ada.

>>> Источник

anonymous

Проверено: Shaman007 ()

>у студентов, начавших изучение программирования с Java, присутствуют только поверхностные знания о предмете.

Правильно. Начинать надо с машинных кодов (даже не с ассемблера - там уже абстракции есть) и проектирования простейших процессоров :)

KRoN73 ★★★★★
()

может наоборот - каждый выбирает язык по своему уровню?

lester ★★★★
()
Ответ на: комментарий от anonymous

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

tim2k
()
Ответ на: комментарий от kto_tama

хуже, если человек, считающий себя "программистом", думает что есть тольео два ЯП - Паскакаль и Делфи, а платформа - только оффтопик. Самое печальное, что есть такие... Еще добавил бы от себя, обучение программированию на языке 1С гораздо более губительно, ибо человек не представляет себе иных конструкций...

tim2k
()
Ответ на: комментарий от kto_tama

Первое знакомство с любым языком высокого уровня как с единственным и неповторимым калечит. А VB калечит нафсегда:)

Изучать нужно разные языки. А фундаментальные вещи всегда надо изучать с помощью _нескольких_ языков. "напиши то же самое на java, smalltalk, object pascal, c++...". А рассказывать "ООП на X" за такое надо яйца отрывать. И не Java калечит а препод который нихрена кроме Java не знает.

r ★★★★★
()

А почему никто вижуалбейсик не вспомнил? :)

anonymous
()
Ответ на: комментарий от r

"Кроме того, профессора указывают на плохое преподавание математических основ компьютерных наук"

Вот тут ППКС.

r ★★★★★
()

Полностью поддерживаю аффтара

acefsm
()

Поддерживаю. С - это такой "средний уровень": и от железа недалеко, и основные абстракции типа структур и функций есть. От него удобно двигаться кому куда надо. Условно говоря, будущий разработчик ОС потом относительно легко освоит ассемблер, будущий разработчик прикладного софта относительно легко перейдет к более сложным абстракциям (классы и пр.) ООП и т.п.

Вышесказанное относится только к профессиональным программистам. Остальные, вероятно могут начинать с python или java (и ими же закончить).

anonymous
()
Ответ на: комментарий от r

Да по моему уже пора воодить "программирование" в ПТУ. Я знаю нескольких .NET программистов и *уверено* им незачем было учится 5ть лет в вузе потому что они ничего кроме .NET VB|C# + VS + MSSQL не знают.

PS: Я не отрицаю что существуют дотнетчики которые знают - таких я знаю тоже. Но половина мне известных просто впустую истратила лучшие годы своей жизни.

r ★★★★★
()

> Студентам сложно писать программы без графического интерфейса

При чём тут Java?

> они не понимают взаимосвязи кода и работы аппаратных средств

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

> упор на изучении языка Java в вузах является важным фактором общего падения среднего образовательного уровня специалистов по информационным технологиям

Если под "упором" имеется ввиду изучение одного лишь Java, то конечно вредно. Но если это программист на Java, ему это вредно?

P.S. Программирую на С++.

anonymous
()

Thanks, Captains!

anonymous
()
Ответ на: комментарий от r

Я например на яву перешел послего того как немного по кодил на и на Си и на паскале и на C#, детство тоже начиналось тяжело - бейсик(спектрум :) ) потом паскаль. Яву выбрал не только из-за кроссплатформенности но и ещё из-за большой библиотеки.

The_Ketchup ★★
()
Ответ на: комментарий от anonymous

>а я с перла и начинал. ничего такого тут нет

Конечно нет. Главное не кончить тем с чего начинал. А так сказать "кругозор" иметь.

r ★★★★★
()

не жяво калечит а преподы калечат.

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

давать разные задания, от абстрактных методов какогонить spring до конкретных static классов и ничего не покалечится.

gigabito
()
Ответ на: комментарий от gigabito

>давать разные задания, от абстрактных методов какогонить spring до конкретных static классов и ничего не покалечится.

Покалечится. Будет человек у которого один желудок. Я таких видел .NET чиков - они за пределами С#/.NET standard library вообще мира не представляют.

r ★★★★★
()
Ответ на: комментарий от r

Кто знает все-не знает ничего.
Если есть популярные продукты-должны быть люди кто их знает. И никому нахрен не нужен программист АСМа,Си который ничего кроме него не знает...или поверхностно знает _ВСЕ_ ибо для знания языка-нужна практика.
Кстати, чем отличается для процессора
begin
end
от
{
}

anonymous
()
Ответ на: комментарий от The_Ketchup

>детство тоже начиналось тяжело - бейсик(спектрум :)

Ну шо начнем мерятся?

microbasic for microdos
embedded basic for KopBeT
express pascal (+asm embedded):-p
basic for zxspectrum:)

r ★★★★★
()

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

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

stellar
()

моя первая программа была написана на яве 1.2 , 1996 году(мой первый курс) =) сначала КрисДжамса, потом СимантекСижуалКафе. Я даже написал на жабе броуновское движение частиц. Но потом мне повезло, на физфаке впервые был прочитан спецкурс по perl, по которому у меня в зачетке стоял зачет. С тех пор я стал нормальным.

p.s. хотя жабка тогда была очень интересной.

vilfred ☆☆
()
Ответ на: комментарий от tim2k

> Значит я умру, доктор? Ява с 1999-го уже не лечится? OMFG!

Заспиртуй свой мозг, и сдай в музей паталогий, кунтс-камеру

fmj
()

Правильно мужик говорит. Присоединяюсь. Сам начина с бейсика и пасцаля, потом С, затем С++, затем Ruby, Java и JS.

// Java & JS developёr

shahid ★★★★★
()
Ответ на: комментарий от r

можно учить .NET стандарт лайбрери. а можно еще поучить каким образом классы и библиотеки жяво взаимодействуют с shared libraries системы и даже пописать пару примеров таких библиотек на сях.

а если не подходить к вопросу комплексно тут и чихпых мозг покалечит. чихпых кстате еще большее зло. т.к. мозг программера трансформируется к анализу работы "скрипта" во время одной вебсессии и возносятся молитвы Великому Апачу за которым неизведанное.

gigabito
()

Интересная точка зрения, ну начинал когда-то еще с ПМК МК-61 и машинных кодов на каком-то 8080-компе ("Апогей"), потом blablabla по нарастающей, потом лет на 5 завязал вообще с написанием чего-либо, ну и заново начинал уже с Java. Доктор, теперь определиться не могу, хорошо это или плохо :)))

edw1n ★★
()
Ответ на: комментарий от anonymous

>Кто знает все-не знает ничего.

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

>Если есть популярные продукты-должны быть люди кто их знает.

Это не отменяет необходимости знания теории.

>Кстати, чем отличается для процессора begin end от { }

Зависит от копмилятора/интерпретатора/архитектуры.

stellar
()
Ответ на: комментарий от r

> Да по моему уже пора воодить "программирование" в ПТУ. Я знаю нескольких .NET программистов и *уверено* им незачем было учится 5ть лет в вузе потому что они ничего кроме .NET VB|C# + VS + MSSQL не знают.

Одна проблема - таких ПТУ, боюсь, нет.

> PS: Я не отрицаю что существуют дотнетчики которые знают - таких я знаю тоже. Но половина мне известных просто впустую истратила лучшие годы своей жизни.

Пресловутый отмаз от армии, блин.

sv75 ★★★★★
()
Ответ на: комментарий от imp

> Калечит Haskell - потом хочется от всего остального плеватся...

Так плюйтесь, плюйте в лицо Java кодерам, не стесняясь своих эмоций, не стесняйтесь показывать как вы их презираете! :)

fmj
()
Ответ на: комментарий от r

>>детство тоже начиналось тяжело - бейсик(спектрум :)

> Ну шо начнем мерятся?

Мальчишки ... :)

Я , например, начинал учится программированию на программируемом микрокалькуляторе.

Только так ты поймешь, что такое ячейка памяти, ячейки кодов, список машинных инструкций и пр.

А какое непередаваемое ощущение ты испытываешь, когда берешь в руку Большой Жесткий Диск, ставишь его сверху на Большой Привод, с кряхтением закрываешь Большую Крышку Привода ...

AlexLorovitch
()
Ответ на: комментарий от fmj

>Так плюйтесь, плюйте в лицо Java кодерам, не стесняясь своих эмоций, не стесняйтесь показывать как вы их презираете! :)

То быдло, которое не понимает зачем нужно например partial function application должно убить себя :)

imp ★★
()
Ответ на: комментарий от stellar

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

И каким боком тот же лисп уперся в теорию? Теория для вас Си и Си++ или алгоритмы?

>Это не отменяет необходимости знания теории.

Ну открой теорию и почитай какой либо алгоритм. Или только на Си можно реализовать 2+2, 2-2, 2/2 ?

>Зависит от копмилятора/интерпретатора/архитектуры.

Значит вся проблема в выборах того же Паскаля и Си-это всего лишь компилятор? А при чем тут язык программирования?

anonymous
()
Ответ на: комментарий от r

>Да по моему уже пора воодить "программирование" в ПТУ.

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

kss ★★★★★
()
Ответ на: комментарий от tim2k

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

Кстате да, многие программеры, захватившие в деццтве времена СССР, прошли путь Васик -> Ассемблер+Машинный код -> C -> C++, ну и потом Java опционально. Посему имеют представление о том, как работает аппаратура.

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

К примеру, недавно отметилось уважаемое мною издательство "Питер" книгой "Аппаратное обеспечение и эффективное программирование" Юрия Магды. Лучшеб ее непечатали, в самом деле. Стока фактических ошибок и опечаток я давненько не встречал. Книго путает читателя так, что любой чел в конце концов скажет - "Я в этом никогда не разберусь". И будет по-своему прав.

Виновата не ява, а общество, в котором процесс обучения превратился в процесс получения образования.

xintrea
()
Ответ на: комментарий от imp

> Калечит Haskell - потом хочется от всего остального плеватся...

бугага, это точно :D

Joe_Bishop
()

Говорят очевидные истины. Я смутно чувствую, что брать надо сразу C, Python и что-то функциональное (лично я за нишевой erlang, не люблю скобки ;) Или, как вариант, брать мультипарадигменный язык, а C оставить на сиспрог.

Java без spring/JEE/etc - рассказывать, на мой взгляд, не нужно, разве что как один из примеров ООП.

Кстати, профессорам пора вылезать из танка. Ну Лаврова прочесть они, положим, не в состоянии, но van Roy / Haridi - вот он лежит:

http://www.librecours.org/documents/5/521.pdf

sv75 ★★★★★
()
Ответ на: комментарий от anonymous

>Кстати, чем отличается для процессора
begin
end
от
{
}

Когда узнаешь чем оно отличается от

(+ 2 3)

sum (X,Y,R) :- R=X+Y.

let f g x y = g x y;;
f (+) 3 2 ;;

поймешь:)

r ★★★★★
()

Я Java'у перестал уважать после того, как узнал, что в ней нет typedef. Статью не читал, заголовок одобряю.

JackYF ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.