Computer science

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

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

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

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

1919
25 комментариев

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

Ответить

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

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

2
Ответить

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

Ответить

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

Ответить

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

2
Ответить