LINUX.ORG.RU

Учебник по java


0

0

Нужна книжка для ребенка школьного возраста (9 класс) по java. Желательно абсолютно с нуля (человек раньше вообще не программировал). Что посоветуете?


Английский знает? Тогда Java: How to Program 7th Edition. Абсолютно полный курс, с нуля

Karapuz ★★★★★
()

Не обращая внимания на юзернейм топикстартера, я отвечу "Эккель"

legalize
()

> Нужна книжка для ребенка школьного возраста (9 класс) по java.

А для 6-го класса тебе не нужна, тролие?

anonymous
()

Брюс Эккель «Философия Java», 4-е издание.

mipt_student
()

Соглашусь, что не стоит изучать программирование с Java. Для этого есть более другие языки.

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

>>Начать обучать программированию не с джавы.

++

// аналогично Java programmer

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

>Начать обучать программированию не с джавы.

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

Borman3000
()

Я бы посоветовал Г. Шилдта, "Руководство для начинающих". Сам по нему изучал (у меня 4-е издание), хоть и не использую Java в повседневности. Не утверждаю, что это самый правильный выбор, но мне книга понравилась.

У него же есть отдельная книга "Swing. Руководство для начинающих" и "Java SE 6. Полный справочник".

Разумеется, ни о каком J2EE речи там не идёт, только в последней книге есть небольшая глава по JavaBeans и сервлетам.

Кстати, мне интересно, почему не рекомендуют изучать Java в качестве первого языка ? Хоть я и не профессиональный кодер, но считаю, что пусть человек приобщается к практическим вещам. Тем не мене, плюсую Python. Интересно услышать мнения.

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

> Для этого есть более другие языки

Записал :) Отличная фраза

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

> приобщается к практическим вещам. Тем не мене, плюсую Python

Python я не считаю непрактичным, если что.

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

Если учиться программированию, то надо хорошо понимать и знать, как работает язык. В Java же многое делается компилятором и JVM, а если ещё использовать IDE, то вообще почти всё автоматом (генерация классов, методов и т.п.). Опять же, в Java много возможностей, которые при обучении программированию не нужны (те же классы, интерфейсы, наборы данных). Я под изучением программирования понимаю изучение циклов, условных операторов, структуризацию программ, и алгоритмы со структурами данных: сортировки, деревья, хэши, списки...

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

>Начать обучать программированию не с джавы.

Разве что с SICP. А так -1000000. Java ничем не хужее паскакаля, а Дейтелевскую Java How to program ты в глаза видел?

Karapuz ★★★★★
()

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

Karapuz ★★★★★
()

Пусть, как и все хакеры, изучает язык, глядя на чужой исходный код. Так что чекаутните исходники ЛОР'а и учите язык по ним.

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

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

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

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

а понимать как что работает в java не нужно что ли?

>В Java же многое делается компилятором и JVM, а если ещё использовать IDE, то вообще почти всё автоматом (генерация классов, методов и т.п.).


и что в этом плохого?

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


типа quicksort на java написать нельзя что ли?

thevery ★★★★
()

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

begin
  Write('Hello');
end.
А на джаве много мелочей, которые придётся оставлять на потом, но без них программа не скомпилируется. В итоге человеку придётся просто запоминать все магические манипуляции, которые надо сделать чтобы заработала простейшая программа (потому что человеку, не знающему что такое программирование, не имеет смысла объяснять про модули, неймспейсы, классы, статические методы, области видимости и прочее. И вообще, не для этого она делалась. Паскаль, схема - намного лучше в этом плане.

Legioner ★★★★★
()

Да какая жаба в 9-м классе? Народ, опомнитесь! Ребенку нужно налегать на школьные предметы, до ынтырпрайз-программинга ему ещё ой как далеко. Максимум букварь по питону, для особо одаренных - htdp и sicp. И то я сильно сомневаюсь, что это всё надо в столь юном возрасте.

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

Я вот дико жалею, что в 9-м классе просто учился, а не начинал заранее думать, с чем именно я хотел бы работать. В таком возрасте голова должна ещё хорошо варить, и если будет желание, то справится, ИМХО, и со школьной программой.

//Зарываться в кодинг с головой не стОит, но если душа лежит к этому - можно только порадоваться.

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

>Java ничем не хужее паскакаля

Хуже многим. Что бы обучить просто пузырьку нужно расскзать что такое пакеты, классы, методы, статические методы, строки, модификаторы доступа сверх того что нужно на паскале. Нафига это всё при начале обучения, а?

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

>а понимать как что работает в java не нужно что ли?

Понять, как это всё работает в Java сложнее, чем в том же паскале/С.

>и что в этом плохого?

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

+ есть принятый для Java стиль программирование, по типу все поля закрыты, для доступа геттеры/сеттеры, наследование, интерфейсы и т.п., что отнюдь не облегчит изучение ПРОГРАММИРОВАНИЯ, а не самой Java.

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

А если вспомнить про работу с файлами в Java? Одна обработка исключений чего стоит.

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

>Понять, как это всё работает в Java сложнее, чем в том же паскале/С.

понимать ВСЁ как правило не нужно, только если будут конкретные проблемы в конкретном месте, а общие вещи не так сложны.

>Банально синтаксис правильный не запомнишь, т.к. тебе всегда будет подсказывать среда разработки.


public static void main(String[] args) что ли? В реальной жизни классы руками всё равно никто не пишет.

>+ есть принятый для Java стиль программирование, по типу все поля закрыты, для доступа геттеры/сеттеры, наследование, интерфейсы и т.п., что отнюдь не облегчит изучение ПРОГРАММИРОВАНИЯ, а не самой Java.


не хочешь - не пиши, но если сильно хочется - в пару кликов IDE за тебя их создаст

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


а кто заставлет ими пользоваться-то? дефолтный пакет+паблик поля и нет вопросов.

>А если вспомнить про работу с файлами в Java? Одна обработка исключений чего стоит.


опять же исключения можно и не обрабатывать.

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

хватит и просто методов (типа в паскале процедуры - это что-то принципиально иное, да?)+классов+main-метода.

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

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

И чему тогда научится человек? Исключения не обрабатывать, юзать дефолтный пакет, а все поля и классы генерить через IDE? Ты так обучался программированию? Я нет, и изложил, как, на мой взгляд, правильнее. А правильнее использовать язык, предназначенный для изучения программирования, или хотя бы не шибко умный. Java в этом плане явный оверхед.

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

>Что бы обучить просто пузырьку нужно расскзать что такое пакеты, классы, методы, статические методы, строки, модификаторы доступа сверх того что нужно на паскале.

пакеты - не нужно
статические методы - не нужно
строки - желательно как раз сразу объяснять, что такое строки
модификаторы доступа - не нужно

Пузырек можно уместить в main(args())

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

>вообще все сложности java для обучение легко решаются groovy :)

+10^100000 только ни одной книги на русском по Groovy нет, и потом, любая книга по Groovy предполагает что человек знает уже программирование в целом и програнье на жабе в частности.

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

> Банально синтаксис правильный не запомнишь, т.к. тебе всегда будет подсказывать среда разработки.

Решается элементарно. Пока синтаксис правильный не запомнит и ключи запуска и classpath, не давать среду разработки. BlueJ спецом для этого сделана

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

> В реальной жизни классы руками всё равно никто не пишет.
> в пару кликов IDE за тебя их создаст

> дефолтный пакет+паблик поля

> исключения можно и не обрабатывать


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

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

почему двух-то? Я штук пять, наверное, смотрел, другое дело что лучше GINA пока что не написали, увы, а regina ещё даже не meap :(

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

>А если вспомнить про работу с файлами в Java? Одна обработка исключений чего стоит.

В паскале в программах нет ошибок, ага. Run-time access violation on address 29034892832 и объясняй ребенку, что это значит

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

Groovy.Recipes
Programming.Groovy
Groovy.Programming.An.Introduction.for.Java.Developers
Manning.Groovy.in.Action

Ну, да, чё-то казалось, что их две :) Но все равно ни одна без знания жабы не читается

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

> только ни одной книги на русском по Groovy нет

Сколько можно пиарить это поделие? Умные дядьки из МТИ какбэ намекают на правильные языки и литературу для обучения. Жабофилы же всё лисапед с квадратными колесами норовят подсунуть.

anonymous
()

http://www.javatalks.ru/ftopic1627.php#4817

>Х.М. Дейтл, П.Дж.Дейтл Как программировать на Java ( 3 тома )
По-моему, это замечательное издание особенно для новичков. Здесь всё достаточно понятно описано, много примеров

thats what im talkin about. только там не 3 тома а один, и на русском есть 3-е издание или 2-е, а уже актуально 7-е

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

>И чему тогда научится человек?

вы таки определитесь, чему вы собрались учить человека - java или алгоритмам?

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

ну толсто же, хоть бы аргументов привели...

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

как по мне уж лучше пусть ant освоит, ибо ключами имхо никто уже давным-давно не запускает

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

>Но все равно ни одна без знания жабы не читается

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

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

МТИ - это вы про MIT? Дык даже они на Scheme забили уже.

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

Дадада, пусть набивает втупую код не понимая. Это так похоже на то, как сейчас обучают =/

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

я бы тоже предложил начать с питона. Заставит грамотно код писать + не особо сложный язык. Да и потом перейти на джаву будет не сильно трудно (подход в программировании одинаковый у обоих)

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

дык groovy - это почти что и есть питон для java, только без отступов и __подчёркиваний__

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

вполне серьезно. хороший язык. весьма непривычный правда, после всяких java/php/python

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