[identity profile] popovmd.livejournal.com posting in [community profile] useful_faq
Добрый день.
Хочу научиться программировать, с нуля, язык - Java.
Посоветуйте пожалуйста литературу, именно нулевого уровня.

Date: 2012-05-09 12:47 pm (UTC)
From: [identity profile] chaos-dremel.livejournal.com
Наипервейший вопрос, если с нуля, то почему именно джаву? Вопрос нумер 2: какие языки еще знаете?

Date: 2012-05-09 12:49 pm (UTC)
From: [identity profile] shackled-koenig.livejournal.com
думаю, дело в андроиде.

(no subject)

From: [identity profile] hannibal-lector.livejournal.com - Date: 2012-05-09 01:32 pm (UTC) - Expand

Date: 2012-05-09 01:56 pm (UTC)
From: [identity profile] chaos-dremel.livejournal.com
Если так, то рекомендую изучать в следующей последовательности:
1. Паскаль, в частности, среды разработки делфи и лазарус (у них на сайте отличный учебник для начинающих). Язык прост, имеет отличную математическую часть + кучу дополнений (в том числе и для разработки игр. Огромный плюс в том, что его реально выучить, до того как он надоест. Многие любители так на нем и остаються и не идут дальше.

Ремарка на полях. Лазарус конвертирует код на паскале в код на Си, а потом уже компилирует, поэтому сравнивая код наших предидущих програм, будет легко перейти к шагу 2.

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

3. Си++/Джава/обджектив-С(язык эпла). Если все еще есть желание их изучать 8-)

З.Ы. С самого начала и до самого конца потихоньку изучаем язык ассемблера, для понимания сути происходящего и ассемблерных вставок в код.

Date: 2012-05-09 12:48 pm (UTC)
From: [identity profile] shackled-koenig.livejournal.com
мне www.google.ru отлично помог.

Вам сперва надо научиться открывать, этот сайт.
Потом, в строчке запроса ввести "как программировать под java"
Когда вы с этим справитесь, нажать Enter

Потом уже будет проще, самый сложный этап позади.

Date: 2012-05-09 04:23 pm (UTC)
From: [identity profile] shackled-koenig.livejournal.com
Умение пользоваться поисковиками - это первая ступень к умению программировать.

(no subject)

From: [identity profile] alborisov.livejournal.com - Date: 2012-05-09 04:46 pm (UTC) - Expand

(no subject)

From: [identity profile] nataein.livejournal.com - Date: 2012-05-09 09:25 pm (UTC) - Expand

Date: 2012-05-09 01:29 pm (UTC)
From: [identity profile] autoench.livejournal.com
Выпендрился, возьми с полки пирожок.

(no subject)

From: [identity profile] happynewbear.livejournal.com - Date: 2012-05-09 03:35 pm (UTC) - Expand

Date: 2012-05-09 04:21 pm (UTC)
From: [identity profile] alborisov.livejournal.com
Какого рожна вы вообще делаете в этом сообществе, если, по-вашему, всё можно найти в Гугле? Пейте своё пиво из обеих кружек и помалкивайте. Задрали уже людей к Гуглу посылать. Убить вас мало.
Edited Date: 2012-05-09 04:22 pm (UTC)

(no subject)

From: [identity profile] shackled-koenig.livejournal.com - Date: 2012-05-09 04:25 pm (UTC) - Expand

(no subject)

From: [identity profile] alborisov.livejournal.com - Date: 2012-05-09 04:34 pm (UTC) - Expand

Date: 2012-05-09 04:30 pm (UTC)
From: [identity profile] intac.livejournal.com
потом неделю сортируй говно, начинай учиться по одним материалам, потом обнаружь что они не полные/не обновляемые(старые), потом снова ищи надёжный источник, потом обнаружь что учил кривые методы.. пока дойдёшь до истинны пройдёт всё желание заниматься.

Date: 2012-05-09 12:49 pm (UTC)
From: [identity profile] paradoxov.livejournal.com
Литература нулевого уровня не привязывается к конкретному языку. Если Вы вообще не умеете программировать, Вам надо получить базовые навыки, узнать что такое программирование как таковое. Если же программировать Вы уже умеете, то есть книжка «Языки программирования Java и JavaScript» Питера Вейнера, в которой делается быстрое введение в возможности Java.

(no subject)

From: [identity profile] dna2.livejournal.com - Date: 2012-05-09 02:04 pm (UTC) - Expand

(no subject)

From: [identity profile] dna2.livejournal.com - Date: 2012-05-09 02:08 pm (UTC) - Expand

Date: 2012-05-09 12:52 pm (UTC)
From: [identity profile] kraamis.livejournal.com
Если с нуля - начните с чего-то попроще. Вроде Турбо Паскаля, он отлично отрабатывает логику программирования.

(no subject)

From: [identity profile] pphantom.livejournal.com - Date: 2012-05-09 01:05 pm (UTC) - Expand

(no subject)

From: [identity profile] pphantom.livejournal.com - Date: 2012-05-09 01:28 pm (UTC) - Expand

(no subject)

From: [identity profile] rinka-wild.livejournal.com - Date: 2012-05-09 01:38 pm (UTC) - Expand

Date: 2012-05-09 01:59 pm (UTC)
From: [identity profile] dna2.livejournal.com
Хочу научиться водить с нуля, машина - синяя.

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

В общем, идите читать "Искусство программирования" Кнута, а там сами поймёте, что нужно дальше.

(no subject)

From: [identity profile] kraamis.livejournal.com - Date: 2012-05-09 02:09 pm (UTC) - Expand

(no subject)

From: [identity profile] pphantom.livejournal.com - Date: 2012-05-09 02:41 pm (UTC) - Expand

(no subject)

From: [identity profile] kraamis.livejournal.com - Date: 2012-05-09 03:14 pm (UTC) - Expand

(no subject)

From: [identity profile] kraamis.livejournal.com - Date: 2012-05-09 03:41 pm (UTC) - Expand

(no subject)

From: [identity profile] pphantom.livejournal.com - Date: 2012-05-09 04:01 pm (UTC) - Expand

(no subject)

From: [identity profile] kraamis.livejournal.com - Date: 2012-05-09 04:05 pm (UTC) - Expand

(no subject)

From: [identity profile] dna2.livejournal.com - Date: 2012-05-09 02:37 pm (UTC) - Expand

Date: 2012-05-09 02:25 pm (UTC)
From: [identity profile] dna2.livejournal.com
Добавлю.

У меня прямо под боком есть один "программист 1С". Его, так сказать, становление я наблюдал с самого первого дня. Тоже, конечно, ткнул его носом в Кнута, он вроде даже полистал, потом сказал "скучно и времени нет" и засел за руководство по адинэсу. И у него через год даже начало вроде что-то получаться - лепил какие-то формочки, что-то там поправлял в штатных конфигурациях.

Потом один отчёт ему вдруг не дался: он его и так, и эдак, а на печати вместо правильных цифр и строчек - какая-то совершенно невтемная лабуда. Две недели он с ним бился. Мне его жалко стало, я, хоть и вообще с этим адинэсом знаком на уровне "запускать двойным кликом по жёлтому значку" - подошёл, глянул в код. Ну конечно, там вместо отдачи параметра в SQL-запрос (или как оно по-ихнему, не знаю) какой-то бешеный трёхуровневый цикл с тремя страницами лапша-кода внутри, который делает вообще непонятно что. Я говорю, ты вообще что имел в виду, когда это писал? А он: это с этого форума скопипастил, то с того форума, а беэ этого оно синтаксическую ошибку выдаёт...

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

Понял, говорю, зачем человеку Кнут нужен? Говорит, понял...

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

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

(no subject)

From: [identity profile] happynewbear.livejournal.com - Date: 2012-05-09 03:34 pm (UTC) - Expand

(no subject)

From: [identity profile] happynewbear.livejournal.com - Date: 2012-05-09 06:31 pm (UTC) - Expand

(no subject)

From: [identity profile] autoench.livejournal.com - Date: 2012-05-09 03:59 pm (UTC) - Expand

(no subject)

From: [identity profile] happynewbear.livejournal.com - Date: 2012-05-09 06:32 pm (UTC) - Expand

(no subject)

From: [identity profile] nataein.livejournal.com - Date: 2012-05-09 10:01 pm (UTC) - Expand

(no subject)

From: [identity profile] dna2.livejournal.com - Date: 2012-05-11 04:25 am (UTC) - Expand

Date: 2012-05-09 08:07 pm (UTC)
From: [identity profile] big-hanfu.livejournal.com
"Йава для чайников" (http://www.amazon.co.uk/Java-For-Dummies-Barry-Burd/dp/0470087161), или похожее название. Высот не достигнете, но если проснется интерес, – будете представлять, как и чем его удовлетворить.

Date: 2012-05-10 06:15 am (UTC)
From: [identity profile] potan.livejournal.com
SICP.
После этого - стандарт Java и документацию на нужные API.

Date: 2012-05-11 03:39 pm (UTC)
From: [identity profile] blood-again.livejournal.com
Если Вы не изучали ранее ни одного языка программирования:
1. Возьмите любое практическое пособие по любому языку (хоть Кёрнигана+Ричи, хоть Дейтла, хоть Вирта) и пройдите по нему несколько глав (с начала и до написания пары собственных функций). Обязательно пишите и запускайте все примеры из выбранной книги. Этот этап обучения нужет только для того, чтобы Вы ощутили программирование "руками". Это облегчит работу над следующим этапом.
2. Предложенная ув. [livejournal.com profile] potan книга "Structure and Interpretation of Computer Programs". Она даст Вам понимание: что происходит в программах и почему программы пишутся так, а не иначе. Плюс даст точную терминологию, чтобы понимать коллег и быть понятым.
3. Берёте уже частично пройденное или другое пособие по языку. Проходите его полностью, при необходимости заглядывая в SICP (например, если у Вас возникнет вопрос "ЧТОЭТОТАКОЕ!!?????"). Не перепрыгивайте то, что Вы прошли на этапе 1, как бы Вам ни хотелось этого. Пройдите всё сначала, потому что теперь Вы будете лучше понимать, что Вы пишете.
4. Если Вы не владеете английским языком или владеете слабо - изучайте и укрепляйте его знание. Это неоценимо, когда Вы сталкиваетесь с документацией или просто ищете решение в сети типовой задачи.
5. Выбирайте технологии и фреймворки, с которыми будете работать (можно найти их упоминание в описаниях игр, на форумах разработчиков, в статьях игроделов). Не начинайте писать игры без применения готовых движков. Изобретать велосипеды имеет смысл тем, кто досконально разбирается в велосипедах.

Касательно советов, которые давали Вам выше.
Не начинайте изучать "абстрактное программирование", не познакомившись хоть немного с каким-нибудь языком. Иначе Вы получите массу информации, висящей в воздухе, не прикреплённой ни к какому практическому опыту. Это затруднит и замедлит обучение.
Не изучайте ассемблер. Вы ведь собрались писать игры для мобильных устройств, а не драйвера и операционные системы? Знание любого ассемблера лишь помешает Вам работать в этой области, а попытка использовать - тем более.
Не упирайтесь только в учебник по языку. Он даст Вам правила синтаксиса, но не научит решению задач, стоящих перед программистом. Читайте теорию алгоритмов, пособия по дискретной математике и векторной алгебре, описание подходов к программированию.