Знания для программирования?

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

Что посоветуете изучить? Алгоритмы? Логику? Математику?
Возможно с примерами книг и курсов.

Заранее спасибо за ответы.
  • Вопрос задан
  • 1074 просмотра
Пригласить эксперта
Ответы на вопрос 9
sim3x
@sim3x
English + google
Ответ написан
Комментировать
ThePyzhov
@ThePyzhov
iOS Ninja
понял, что не хватает знаний в других областях

Что посоветуете изучить

Ту область, в которой не хватает знаний. Логично же.
Ответ написан
Комментировать
@McBernar
Говорят, что книга «Алгоритмы» Кормена — лучшая из существующих.

Есть Codewars, где можно решать подобные задачки и смотреть лучшие решения других участников. То есть, просто набить руку в этом деле. Не так сложно, как кажется.

На learn.javascript.ru после каждого урока есть прекрасные задания.

Есть множество книг по математике, которые не напичканы на 90% формулами, а простым языком объясняют математику.

Но для начала лучше садиться и писать код.
А учиться можно бесконечно, так и не начав делать реальные вещи. Не забывайте об этом.
Ответ написан
Комментировать
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
В первую очередь стоит изучить структуры данных: массивы, списки, словари, множества и немного деревья. Стеки, очереди и прочее используются значительно реже. Современные прикладные программы используют узкий набор стандартных алгоритмов (в основном трансформации между структурами данных) и знать наизусть сортировку пузырьком не требуется. Поэтому в алгоритмы загляните одним глазом - для общего развития. Когда освоитесь (например без проблем построите дерево файловой системы) время открывать книжки по ООП, а потом по паттернам проектирования.
Ответ написан
Комментировать
@DVoropaev
Ставлю + к карме на хабре за ответы на вопросы
зарегистрируйся на CodeForces, открой архив задач, отсортируй по количеству решивших, и решай. Очень полезная практика
Ответ написан
Комментировать
Neznayka1979
@Neznayka1979
Интересы - IT, психология...
«Программа = алгоритмы + структуры данных» - выражение Никлауса Вирта.
Иными словами, ключевыми непосредственными задачами программирования являются - создание и использование Алгоритмов и Структур данных.
Программирование - это строгость рассуждений и преобразований (Логика).
Из вышесказанного становится ясно, что следует освоить Логику, Алгоритмы и Структуры данных!
1. Логика:
Ответ написан
Комментировать
jamakasi666
@jamakasi666
Просто IT'шник.
А я посоветую решать реальные задачи из лично Вашей практики. Если работаете то попробуйте оптимизировать своим софтом какой-то ручной процесс. Или попробуте написать клон своей детской игры(не 3д конечно), другой вариант попробуйте вспомнить или осмыслить то чего вам так не хватало(или до сих пор нехватает) и напишите софт для того.
Писать код того что действительно интересно и неизвестно намного занимательнее чем читать какое-то задание и пытаться его выполнить.
Ответ написан
Комментировать
@evgeniy_lm
Для начала программисту нужны базовые знания которые дает средняя школа, тогда можно быстро находить более подробную информацию по интересующим задачам (знаешь что искать и где искать).

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

Нужно иметь представление об основных стандартных алгоритмах, книги Вирта и Кнута в этом помогут. Тем, кто не способен их осилить, в программировании делать нечего и не стоит слушать дилетантов , что эти книги якобы устарели, это все равно что утверждать, что устарела Евклидова геометрия или законы Ньютона. Эти книги основа, первоисточник все остальные это не более чем упрошенная интерпретация для чайников.
Ответ написан
Комментировать
@syrov
пишу программы до 99 строк
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы