Какую первую книгу по программированию выбрать?

Понимаю, вопрос глупый, хочу заняться программированием, с языком определился (Java), но не могу определиться, какую книгу выбрать по Алгоритмам и структурам данных, начальных знаний очень мало, советуют Вирта, но там язык Оберон, паскаль я не изучал.

Кнута как первую не советуют, т.к. будет взрыв мозга. Кормена начинал читать, там, я как понимаю, без особых математических знаний трудновато. Вот, собственно, и встает вопрос, какую книгу выбрать, искать другую более понятную, или подтянуть математику, чтобы понимать, о чем пишут?
  • Вопрос задан
  • 13748 просмотров
Решения вопроса 1
Deerenaros
@Deerenaros
Программист, математик, задрот и даже чуть инженер
Если знания нулевые, как Вы говорите, начните с изучения базового синтаксиса. Java сегодня имеет довольно богатый, пусть и очень стандартный синтаксис: классы и интерфейсы, наследование, переменные и члены класса, методы и уровни доступа, управляющие операторы (циклы, условия), анотации, система пакетов. Вроде всё. Пусть этот список станет поводом для того, чтобы прочитать это в рамках java где угодно, будь то wikipedia, аль coursera, да хоть Шилтд. К слову, здесь не сильно важен язык программирования. Если до этого хоть что-нибудь изучали, втянете за пару дней. Иначе изучение может растянуться на пару недель.

Вот после этого уже можно копать вглубь. Здесь я бы рекомендовал вами упомянутого Кормена и Кнута. Первого нужно читать вдумчиво, выполнять все упражнения (каждое выполненое упражение это +10 к интеллекту). Кнута можно просто полистать. Оба годяться как справочники, но Кнут будто создавался таким образом. Математики у Кнута много больше и если Кормен может что-нибудь доказать "абы как", то Кнут себе такого не позволит. Из-за чего его читать долго и нудно: можете смело пропускать доказательства и возвращаться как было что-то не понятно. В любом случае, их читать действительно сложно. Осилите хотя бы Кормена - медаль Вам уготована.

Но и язык нужно знать и понимать. Поэтому здесь пора заняться и тем, для чего java предназначена - энтерпрайзом. А именно, умением не столько программировать, сколько разрабатывать продаваемые продукты. Здесь подойдёт филосифия java для начала. Когда наследование перестанет Вас пугать (или наоборот, пройдёт время чересчур увлечённого наследования всего и вся), можно приступить к банде четырёх. В то же время, умея строить сложную архитектуру, мы всё ещё смутно знаем что под капотом у java. Так что можно почитать про оптимизации в JVM (читал англ, не знаю есть ли перевод), ну и покопаться в openjdk, если будет излишняя увереность, лишнем не будет.

Собственно, это roadmap на очень долгое время. С самых начал до седой старости будете изучать java. Вполне возможно, что к тому времени, как начнёте банду четырёх (если начнёте), уже подойдёт долгожданная java 2.0 и всё нижеописанное потеряет значение, но чем чёрт не шутит? К слову, Кормен, и Кнут, и философия, и банда четырёх остануться, это скорее фундаменальные книги.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 10
@comAT0Zz
Кнут хорош как справочник, если его просто читать - половину не поймете, вторую половину не запомните. Проще прибегать к нему при необходимости.

Математика и Java. гхм. А что вы собрались писать? Всмысле, долеко не везде нужны углубленные знания, и в прикладнухе хватает математики на уровне "1 + 3" (я не имею сейчас ввиду системы статистики и анализа, обработка графики и прочее, где реально необходимо знать математические алгоритмы и формулы) .

>начальных знаний очень мало
Подтяните вначале начальные знания. Калькулятор напишите, например.
Ответ написан
Любую и постепенно разбираться в мелочах, которые вам непонятны. До самой смерти.
Ответ написан
Комментировать
Colwin
@Colwin
Ведущий Java-разработчик
Я лично рекомендую Java Core, как на русском, так и на английском.
Лучше учебника по Java для новичков не видел.
А алгоритмы уже потом по Вирту - знаний Java должно хватить, чтобы переписать алгоритм по-своему. Тем более что в книге дается не только код, но и описание алгоритма - вот и напишите по описанию. Заодно будет неплохая практика.
Ответ написан
Colwin
@Colwin
Ведущий Java-разработчик
Вот еще вопрос на ту же тему: Какую книгу по java купить для новичка?
Ответ написан
Комментировать
Bandicoot
@Bandicoot
Вась-программист
Питер Сейбел - "Кодеры за работой. Размышления о ремесле программиста". Она не про паттерны или алгоритмы. Но это очень хорошая вводная книга для начинающих программистов. Помогает точно определить, нужно ли тебе программирование или нет, правильный ли ты выбрал путь. Плюс там много советов от опытных программистов.
Ответ написан
Комментировать
vvpoloskin
@vvpoloskin
Инженер связи
А может быть просто сесть и написать змейку или плеер?)
Ответ написан
@Ar4ybaldik
Отличное чтиво от Седжвика introcs.cs.princeton.edu/java/home
А также много-много практики на programmr.com
Ответ написан
Комментировать
@s1dney
А я бы не советовал начинать с Java вообще, если нет никакого опыта программирования. Начинайте с любой книжки по Паскалю/Си и т.д., не обязательно писать на них даже, просто это даст нужную базу для программирования в целом, на любом языке.
Ответ написан
@andy-007
если java, то есть книга именно для новичков books-redhats.rhcloud.com/java.action?page=12
Ответ написан
Комментировать
globuzer
@globuzer
gezgrouvingus progreszive ombusgrander greyderzux
вирт. структуры данных и программы.
либо любой учебник для первых курсов вузов ай-ти специальностей
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы