Какую книгу можно использовать по языку C, чтобы получить базовые познания в CS?
Вообще то мне больше по душе веб, но что то чувствую что не хватает основ информатики.
Изучаю JS, но он что то кпц какой абстрагированный. Начал изучать новый стандарт. Дошел до коллекций. И понял что ничего я не понимаю. Что, для чего, зачем нужны эти коллекции, буферные массивы, целые, вещественные числа, биты, память и т.д. Прочитал главу и вообще ничего не понял. Там это объясняется как будто я уже раньше с этим работал.
Решил все таки позаниматься с языком C. Мне кажется он более низкоуровневый. Думаю работа с ним даст более глубокие познания в CS.
В общем, посоветуйте хорошую, более менее актуальную книжку по этому языку. А то с этими книгами не знаком и не знаю что есть хорошее а что плохое. И чтоб не слишком нудная была, особого желания тратить время на другой язык нет.
Мне кажется, сейчас нет смысла в чтении этих книг. Ну напишите пару примеров по связным спискам и сортировкам - только их и поймёте, а что они только часть чего-то большего - нет. Почитайте что-нибудь по алгоритмам и структурам данных и методам работы с ними. Думаю, куда полезнее будет. Потом можно про подходы к программированию: объектно-ориентированное, функциональное, структурное... Потом уже когда будете решать задачи из книг, будет хоть понимание того, что делаете.
Роман Соколов Да я бы рад окунуться во все это, но мне время не позволит. Сначала нужно ознакомиться с самим языком, потом алгоритмы, структуры данных, ООП, паттерны и т.д. Это конечно все интересно, выделил бы годик другой на основательное понимание, но сейчас нет возможности сходить с дороги и пробовать что то другое. Для меня сейчас один путь - это JS и вся экосистема. А в мире JS, всем этим алгоритмам, паттернам, структурам данных и т.д, уделяется очень мало. Язык абстрагирован и для начинающих в it, все очень поверхностно. Мало внимания уделяется всему тому что в других языках на переднем плане. Вроде как что то делаешь, что то работает, а вот понимания как все это работает не очень то хорошее. Те же алгоритмы, парадигмы, подходы, структуры данных, объясняются везде на примере прикладных языков, в частности C/C++/JAVA.
Вот и хотелось бы познакомиться со всем этим на примере другого языка, так как на JS такое никто не объясняет. Хотя бы понять что где когда использовать и как все устроено. Получить основы, а потом уже продолжить JS way.
Вообще, думаю более старшие товарищи, сначала изучали прикладное программирование, изучали все то что отпугивает обычных людей, а уже потом у них был выбор чем заниматься, их плюс в том что у них уже была база основ программирования, и тот же JS им давался на раз плюнуть. А сейчас, как и мне, уже не ускакать за всем. Выбрал путь веб разработки, а программировать то толком не умею. Точнее нет основы основ, нет понимания алгоритмов, основ компьютерной алгебры и т.д.
В общем, что по алгоритмам посоветуете? Как вообще заходят книги по алгоритмам, людям которые не на 5+ в математике? Трудно ли изучать алгоритмы?
evg_: Язык, по большому счёту, особого значения не имеет, т.к. это просто способ описать работу с данными. Если со временем плохо, можно на ютубе посмотреть курсы по основам алгоритмов. Доступные книги по алгоритмам - не знаю, существуют ли такие)
По моему скромному мнению, лучшая книга по программированию вообще (на си подобных языках) это Р.Лафоре - ООП на C++. Доходчиво объясняются как простые вещи, присутствующие в большинстве ЯП (переменные, их типы, ветвления, циклы, структуры, функции), так и более сложные (классы, наследование, инкапсуляция, полиморфизм, обработка исключений и т.д.). Считаю эту книгу лучшей для старта :)
artemt А почему не с C? Ну да Java согласен. Но Python мне кажется не самый лучший вариант для понимания основ. Лично не знаю. Но все говорят так.
К миру microsoft никакого желания приближаться, нет, даже просто в учебных планах. Поэтому C# отпадает.
А если Java, что посоветуете по ней, для получения основ CS? Сколько вообще примерно может понадобиться времени на эти основы?
Потому что на этих языках проще осваивать такие вещи как структуры данных и алгоритмы, не вдаваясь в излишнюю специфику. Имхо конечно. Я бы рекомендовал Принстоновский курс по алгоритмам и структурам данных, он на Java. https://www.coursera.org/learn/introduction-to-alg... Книга у Седжвика тоже есть, так и называется Algoriths in Java. Плюс их же книги по курсу и основам Java, если есть необходимость. На рускком не знаю.
Я сторонних восходящего изучения: сперва железо и низкоуровневое, потом высокоуровневые языки. Но неважно, будет это С++ или С вначале, на обоих можно писать низкоуровневую работу и понять "коллекции, буферные массивы, целые, вещественные числа, биты, память и т.д"