Какие книги следует читать, чтоб стать программистом

Какие тысячи книг надо прочитать, чтоб выявить те «три», которые реально помогли стать хорошим программистом? Хочется поговорить не столько о конкретных книгах, сколько о типах книг. И в чем заключался академический подход к этому в СССР…



В свободное время модерирую JAVA раздел на одном из интернет форумов. Часто приходят ребята и спрашивают посоветовать пару книг или видеокурсов, чтобы быстро изучить язык и быстрей начать программировать и, став профессионалом, зарабатывать на этом. Все-таки, а что значит программировать?


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


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


Чтоб стать таким проводником, нужно одновременно соприкоснуться с двумя формами:

1. миром железа
26_10_005.jpg1000610452.jpg1001085325.jpg

2. сторона человеческого восприятия

1002729662.jpg1001694665.jpg


Ведь именно этим фундаментальным аспектам обучали в высших технических школах СССР. Если освоить хорошо их, то дальнейшие книги сами выстроятся — потребуются знания о методиках разработки, конкретных языках и фреймворках. Выбираться будут из тактических соображений, в зависимости от задачи и изучаются за конечное время.


Как считаете?
  • Вопрос задан
  • 22705 просмотров
Пригласить эксперта
Ответы на вопрос 9
@korvindest
Сам программист и имею некоторый опыт преподавания программирования, как школьникам, так и студентам.

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

Убьете в себе всякое желание развиваться в этом направлении. Лучшая мотивация для человека продолжать что то начатое, это когда он видит как что то, только что созданное им, пускай и почти бесполезное, но (!)Работает.

Начните с какой нибудь книжки изучения языка (C, Java, C#)для начинающих. Для начала освойте основные конструкции языка: Типы данных, Ввод, Вывод, Условия, Циклы, Функции/Методы.
Потом переходите на решение простых задач:
— Вывести все числа от 0 до 10
— Вывести все четные числа
— Вывести таблицу умножения
— Красиво отформатировать выводимую таблицу умножения
— Вывести треугольник паскаля (тоже можно с форматированием)
Далее стоит уже порешать простейшие алгоритмические задачи, которые потихоньку заставят вас обратиться к книжкам этой тематики:
— Найти решение уравнения заданного коэффициентами, методом деления отрезка пополам.
— Позволить пользователю ввести набор чисел и вывести их в сортированном виде.
— Прочитать файл и вывести все встречающиеся в нем слова (уникальный список слов)

… тут уже начинает кончаться фантазия потому что я еще не пил свой утренний кофе, но если вам потребуется я с удовольствием добавлю список.

После того как эти азы вам будут уже известны вы и сами найдете себе задачу по плечу. И вам будет гораздо интереснее читать те книжки которые вам тут советуют. И не важно какую платформу и язык вы выберете потом, важно сначала научиться программировать.
Ответ написан
Alexx_ps
@Alexx_ps
Чтоб стать программистом нужны не книги, а практика, практика и еще раз практика… Даже прочитав 100 книг вы не станете программистом.
Причем практиковаться желательно не просто примерами листинга из книги или задачками в конце главы, а нужно брать эти задачки за основу и придумывать вокруг них какую-то полезную программу. Так вы намного быстрее начнете именно программировать, а не переписывать листинги из книги.
Ответ написан
Gibbzy
@Gibbzy
ну базы данных, сети, операционные системы про это конечно обязательно знать программисту (хотя на самом деле от специализации зависит)

но как правило выделяют следующих авторов:

тут нужно изучать что то подготовительное
например «Как программировать на паскале»
или «Что такое циклы, массивы и какие типы данных бывают»

Дональд Кнут
Грэйди Буч
Мартин Фаулер
Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес

+ книги по специализации
например если вы на java пишете то не пройдете мимо Брюса Эккеля.
Если вам нужны знания баз данных или операционных систем то прочитайте про них.
Ответ написан
@Optik
Странно как то выглядят комментарии. Либо книги либо практика. Без практики вообще никуда, но и работать без книг нельзя. Меняется лишь стартовая точка в зависимости от текущего уровня знаний и умений. Если совсем программировать не доводилось, то сначала надо получить представление минимальное. Источником отлично послужит intuit.ru, статей для новичков с разжеванным материалом полно. Если это все уже известно, то тут надо начинать читать Thinking in Java и искать возможность для реальной практики. Можно конечно и задачки щелкать, но гораздо быстрей прогресс будет идти на неэфемерном проекте, где есть сроки и есть люди способные направить в нужное русло. Можно open source, но, имхо, лучше найти работу с минимальным порог входа. А дальше уже будут Блох, Кнут и прочее.
Да это может не совсем корректный подход в понимании людей со стажем. Но для человека с головой этот вариант наиболее быстро ведет по пути развития. Только нужно помнить что ты до сих пор ничего не знаешь, а код того senior -а тоже надо проверять на наличие косяков и Г. Знание английского также сильно ускорит поиск инфы и новых знаний, ибо книги мастрид далеко не всегда есть на родном языке даже через годы + помощь на форумах англоговорящих будет оперативней и скорее более полезной (народу тупо больше, а значит и больше хороших специалистов). Еще очень важным моментом является инженерное образование, т.е. умение разрабатывать системы, обслуживать их, изучать неизвестные. И тут боюсь книг не существует. Только ВУЗовская школа.
Ответ написан
Wott
@Wott
что бы стать хорошим программистом надо намного больше чем «три» книги. Даже если общими мазками выписать области знаний, то будет больше. А начинать надо с алгоритмов в частности или дискретки более обще.

Что бы быстро стать оплачиваемым программистом надо не java а php+html+css+js, только что бы не остаться быдлокодером надо потихоньку разворачивать курс какого-нить программисткого ВУЗа — прежде всего математику, базы, сетевые приложения

В «человеческом» надо прежде всего учиться общаться — communication skill из любого прожект-менеджерского курса, потом VCS и методы разработки вообще и совместной разработки в частности — ООП, шаблоны архитектуры и прочие.
Ответ написан
difiso
@difiso
В параллельной вселенной я космонавт
Donald Knuth «The Art of Computer Programming». Без этого никуда
Ответ написан
@contor Автор вопроса
Ну да, это и отличает два пути:
— 9 классов — ПТУ — Вечерняя высшая школа
— 11 классов — Дневное обучение

И то и другое имеет место быть и работает. Я говорю о том, что программистам настраивать себя надо на то, что фундаменталку изучать придется…
Ответ написан
@Harshow
Я конечно не супер знаток, но вот эти книги рекомендуют почти все, кто связан с программирование, независимо от специализации.
Ответ написан
goodprogrammer
@goodprogrammer
к. ф.-м. н.
Книги бывают разные: теоретические (это подспорье), более практические похожие на курсы (такие лучше прорабатывать тщательно).
Но полезнее ставить перед собой задачи (от элементарных к более сложным) и доводить их до конца. Тогда ваш мозг сам подскажет и выцепит нужную инфу, книгу, курс.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Emphasoft Санкт-Петербург
от 150 000 до 300 000 ₽
Kotelov Санкт-Петербург
от 150 000 до 190 000 ₽
SCHNEIDER GROUP Санкт-Петербург
от 160 000 до 190 000 ₽
08 мая 2021, в 00:18
3000 руб./за проект
07 мая 2021, в 22:42
3000 руб./за проект
07 мая 2021, в 22:25
2400 руб./за проект