Возможно ли изучать Алгоритмы и структуры данных без знаний языков программирования?
Здравствуйте.
Из этой области есть знания только мат. анализа(да и то многое забыл, те же матрицы, диффуры, интегральные уравнения и т.д., в общем надо будет повторять) и HTML/CSS.
Хочу в будущем стать программистом(сайты и веб-приложения делать, на Ruby ил Python, скорее всего) и мне дали рекомендацию идти следующим путем, в таком порядке:
1. Алгоритмы и структуры данных, графы.
2. ООП.
3. Паттерны
4. Проектирование
5. Реляционные БД
6. Методология разработки ПО
7. Тестирование
Я уже скачал книгу по " Алгоритмы и структуры данных" авторов А.В. Ахо, Д.Э.Хопкрофт, Д.Д.Ульман , но там примеры на языках программирования, которые я не знаю. В видеокурсах на ютубе тоже все примеры разбираются с помощью языков.
В общем дайте рекомендацию, что мне делать. В ближайшие несколько лет(2-4 года или больше) хотелось бы стать грамотным специалистом, а не "быдло-кодером".
Хотелось бы услышать рекомендации по поводу литературы, с которой стоит начинать свое обучение.
CyberUserRus: Я хочу стать не просто веб-программистом, а программистом, в первую очередь. И понимать основы работы программ, иметь базис. Быть грамотным специалистом. И в будущем лепить веб-приложения, сайты и прочее. Всегда была интересна данная область.
CyberUserRus: Почему же мечты? Все мои знакомые, что учатся в Вузе на программировании владеют этим базисом. Почему я не могу? Объясни.
По образованию я физик-инженер. Знания физика были высокие(в основном ядерка, квантовая механика и оптика).
Redwhaler: Если вы хотите именно глубокого понимания программирования и компьютерных наук то есть идеальная для этого классика SICP https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D... Говорят что именно эта книга способна сделать из человека программиста. Думаю с вашим образованием будет как рас хорошо читать подобный труд.
Виталий Витренко: Я её могу сейчас начать читать на чистую голову без знания языков? Или лучше все-таки мне получить базис по какому-нибудь языку и начинать читать?
Когда-то(года 4-5 назад) знал язык C, который сейчас мало где используется, но я его полностью забыл. В вузе семестр проходили.
CyberUserRus: Алгоритмы, структуры данных нужны,и web-программисту, и просто программисту,языки лишь инструмент который хороший специалист может выбирать под конкретную задачу, как вы собираетесь работать с массивом не зная что это такое, и не зная алгоритмы поиска, сортировки?
Redwhaler: Эта книга использовалась в MIT в качестве первого курса по программированию(сейчас там тоже она, но с использованием Python). Так что можете начинать прямо сейчас.
CyberUserRus: это понимание "программирования" как такового. Конечно, для быстрого старта это не подходит, и после этой книги отдельно придется изучать ООП парадигму и какой нибудь современный ЯП, но автор заявил что он хочет понимать основы работы программ, а мне кажется эта книга как рас создана для этого.
CyberUserRus: А у меня других вариантов нет, по образованию работы нет. А если и есть, то платят копейки. А программирование мне всегда было интересно + там еще и платят неплохо.
Вы будете читать алгоритмы или на каком то языке программирования, или на каком то псевдо языке. Вы можете пробовать разобраться со всем как Ада Лавлейс, но оно того не стоит. Базовые операции во всех языках одинаковы if, else, while, for... и что бы понимать алгоритмы на новом языке учить его не нужно.
"Искусство программирования" Дональд Кнут - нестареющая классика по алгоритмам, мало кем прочитанная до конца, но тем не менее мозг под ремесло затачивает.
Си (без плюсов) я думаю до сих пор является лучшим языком для обучения. После него будет просто изучить любое количество популярных языков программирования.
Сергей Зеленский: А мат. анализ, как считаете, стоит ли мне подтянуть? Школьную математику знаю на 5, но матан подзабыл. Чем глубже, тем больше плаваю, ибо давно он у меня был, а в физике(моя специальность) встречаются в основном лишь простые диффуры, матрицы и чаще всего операторы(квантовая механка на них построена).
как написал CyberUserRus важна мат. логика. Мат. анализ нужен будет в специфических задачах, анализ данных, моделирование сложных процессов, разработка игр, я занимаюсь web -ом, за уровень школьных знаний не разу не приходилось выходить
Redwhaler: Из математики стоит вспомнить линал, численные методы, аналитическую геометрию, статистику, теорвер. Не обязательно все сразу, но их знание может когда-нибудь вам пригодиться.
Это будет просто не интересно. Да и упражнения как вы будете делать и проверять их на работоспособность? Есть замечательная книга Алгоритмы на java, там в первой главе идет обзор возможностей java которые потребуются в книге. И в каждой главе если вводится что то новое, то объясняется почему и как. Так же по этой книге скор будет курс на Coursera.
Если захотите разобраться более поподробней с java, есть просто супер книга для новичков Head First Изучаем Java. Читается очень легко и быстро.
1. Алгоритмы и структуры данных, графы.
2. ООП.
3. Паттерны
4. Проектирование
5. Реляционные БД
6. Методология разработки ПО
7. Тестирование
Но он не будет работать. Вы же не машина, чтобы все это выучить и запомнить. Вот как вы мат. анализ забыли, также последовательно будете забывать все пункты из списка, если просто в академических целях будете все учить, переходя от одного пункта в другой.
Начните программировать. Начните быдлокодить. В начале исключительно быдлокод. А потом сориентируетесь.