Computer science

Без основ далеко не уйдёшь

Люди часто задают здесь вопросы типа: "а какой язык выучить?", "а на каком языке игру писать?" и т.д. Но толку от знания языка, когда не знаешь как правильно держать вилку?

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

P.S.: Я понял, что всё плохо, когда у меня туго начали идти каты на codewars

11 показ
2.5K2.5K открытий
25 комментариев

Ну раз Ширяев плюс поставил, то, наверное, лучше уже не посоветуют)

Ответить

Кнут скорее для спеца. Я оттуда использовал один алгоритм маскировки целых чисел, забыл как его сам Кнут назвал. Для псевдослучайных названий заказов в виде кодов, из которого номер заказа получить можно, но нужно знать два секретных числа.
Редко, но метко, могут пригодится двоичные деревья и поиск по ним (использовал в рамках БД таблицы с большим количеством категорий, вложенных в друг друга), поиск по графам и прочая.

Проблема в том, что я пока реализую красивый алгоритм, мидл программист решит ту же задачу "в лоб". Если не быстрее. Да, его решение будет на 30-50% медленнее, но в ряде задач это тупо некритично, а где-то нивелируется процессорной мощностью, которая только растет. Эффективные алгоритмы нужны только там, где много поступающих данных, типа банковской сферы или социальных сетей.

Ответить

Даже не смотря на то, что ты написал про решение "в лоб" у мидлов, мне всё равно как-то не комфортно живётся с тем, что я не могу сходу написать любой алгоритм сортировки, а не пользоваться встроенной библиотекой с каким-нибудь там .sort методом для массива. Это как уметь решать СЛАУ методом Гаусса, но не сразу вспомнить сколько будет 8*7. Не знаю почему, но у меня именно такое мнение

Ответить

Кто у вас лучший?

Ответить

Как вариант сначала просто узнать определение Computer Science. Потом узнать основные разделы, которые изучает Computer Science. После определить для себя самые приоритетные разделы и на каждый из них загуглить по книжке (естественно нужны те, которые легко читать новичку, подборок куча в Интернете). После 2-3 книжек уже сам определишь, что тебе нужно дальше.

Ответить