Удобно ли тебе устроиться в одну компанию а работать в другой?

Ответ

Ответ не найден

Ответ 18+ 🔞

Слушай, вот реально интересная штука. Есть у меня один знакомый, который постоянно спрашивает: "А как мне сделать так, чтобы мой код работал быстрее?" И я ему каждый раз одно и то же говорю, как попугай, блядь. А он всё равно не понимает, ёпта.

Вот смотри, представь себе, что твой код — это как старый жигуль. Жрёт бензина дохуя, а едет еле-еле. И ты вместо того, чтобы движок починить, начинаешь ему новые фары ставить или магнитолу крутую впихивать. Ну и что толку-то? Он всё равно будет глохнуть на каждом светофоре, потому что проблема-то в другом месте, в самом сердце, в алгоритме, блядь.

Вот, например, есть у тебя функция, которая ищет что-то в массиве. И ты её вызываешь в цикле, внутри другого цикла. Это же пиздец, чувак! Это как если бы ты в магазин за хлебом ходил не сразу, а сначала до угла, потом назад, потом опять до угла, и так сто раз. Ну и кому такая жизнь нужна?

# Вот это пиздец как медленно. Не делай так, а то я приду и впендюрю тебе клавиатурой.
for item in my_list:
    if item in another_list:  # А эта проверка 'in' — это тоже внутренний цикл, ёбана!
        do_something(item)

А теперь смотри, как можно сделать по-человечески. Сначала подготовь всё, что нужно, один раз, а потом уже работай. Это как если бы ты перед походом в магазин сразу список всего составил, а не бегал туда-сюда за каждой мелочью.

# А вот это уже другое дело. Быстро и понятно.
another_set = set(another_list)  # Сделал один раз и забыл
for item in my_list:
    if item in another_set:  # А поиск в сете — это почти мгновенно, магия, блядь!
        do_something(item)

Видишь разницу? В первом случае сложность получается O(n*m), что в переводе на русский означает "хуёво и долго". А во втором — O(n + m), то есть "нормально и приемлемо". Это базис, ебать его в сраку! Если этого не понимать, то можно хоть сто лет писать код, а он всё равно будет тормозить, как черепаха в сиропе.

И главное, чувак, не надо выдумывать велосипед, когда уже есть целый автопарк готовых решений. Потрать время не на то, чтобы свою кривую сортировку написать, а на то, чтобы понять, как правильно использовать встроенные инструменты. Они уже оптимизированы дохуя умными людьми, которые, в отличие от нас с тобой, не сидят на форумах, а реально знают, как работает железо.

Короче, смысл в чём: прежде чем пытаться ускорить код какими-то микрооптимизациями, посмотри на общую картину. Может, твой алгоритм изначально говнистый? Вот это и есть 90% успеха. Остальное — уже тонкости, типа выбора структур данных или кэширования. Но если фундамент кривой, то хоть обложи его золотом — дом всё равно развалится. Понял да?