Смотря, что вам нужно) если устроиться в FAANG like компанию, то без этих знаний никуда не пойдешь, также в РФ в крупных компаниях спрашивают. У меня была цель научиться решать и проходить кодинг интервью, но в процессе оказалось, что это полезно и интересно, сейчас продолжаю решать для души)
Я уже несколько раз объяснял, почему именно 600) не было цели решить конкретное количество задач, была цель решить столько задач, чтоб хватило для прохождения собеседований - я достиг этой цели, прошел кодинг интервью в разных компаниях. Почему 600? Тоже ответил, кому-то нужно меньше, мне пришлось больше усилий приложить, видимо не слишком умен)
Если в колледже все это усвоили, то остается только завидовать) у меня в универе было подобное, тот же алгоритм дейкстры, но тогда я не уделил этому внимание и сейчас далось все тяжело, тк пришлось все изучить. После 5 задач на хард - это сильно, мне бы так
Поэтому я решил написать эту статью и дать направление таким же как и я) Все самое полезное, что я нашел оставил в статье, но мне к сожалению пришлось все собирать по крупицам. Но да, согласен, если бы более структурировано делал, то быстрее получилось бы, один из советов начинать с низов и потихоньку двигаться в сторону сложных структур, я же пытался то на массивы решать задачи, то деревья, то графы и даже динамическое программирование и backtracking
сейчас мне тоже легко удаются easy, но когда начинал с большим трудом решал и все время хотелось плакать от своей тупости. на данном этапе уже интереснее medium решать и поглядывать на hard, в идеале интересно было бы участвовать в contest-ах и занимать какие-то места, чисто ради удовольствия)
да, тут нужно отталкиваться от конкретной задачи и ситуации, порой что-то пишешь временно, а оно остается навечно, а порой что-то пишешь очень хорошо и потом это нужно переделывать, потому что бизнес решил не делать этого) натыкался и на то и на другое, и притом неоднократно
да, порой heap поможет быстрее решить задачу, нежели сортировать данные, что обычно занимает nlogn время а насчет количества, тут уже все индивидуально, кому-то достаточно 50 задач решить, чтоб понять все, кому-то 200-300, а кому-то все 600 и больше
тут уже у каждого свой приоритет, весь прошлый год у меня был приоритет литкод и я в этом преуспел, не идеально конечно, но могу пройти собеседования, сейчас в приоритете кабанчик и систем дизайн. сама суть посыла - найти время на что-то, что тебе нужно) мне было нужно решать задачи и научиться их решать, я до работы и после находил, на выходных, в то же время старался в зал ходить, гулять, чтоб еще и физическая активность была(но в моем случае легче конечно, тк детей нет, но уверен, что даже с детьми можно что-то придумать, хотя бы по 15-30 минут заниматься чем-то, что нужно тебе)
Полностью согласен, если нет сил решать задачу, я читал статьи, если нет сил читать, то смотрел как решают задачи. ну и сама работа должна быть адекватной, чтоб ты не выгорал, а оставались силы после работы что-то делать)
Удивляет насолько легко люди говорят за всех) если бы не решал все эти задачи, я бы 100% завалил 99% интервью, смог бы решить задачи типа - узнать является ли строка палиндромом или анаграммой, не говоря уже о backtracking задаче после которой пришлось еще и binary search пройтись, чтоб решить задачу. Зависит от того, где вы работаете, если строите сервисы по вычислению маршрутов и тп, где нужны знания алгоритмов, то да, со временем накопите опыт, иначе нет, у меня 8+ лет опыта, но ни разу не приходилось писать merge sort или алгоритм дейкстры и не смог бы решить задачи связанные с ними на интервью, а сейчас - пожалуйста. Ну и нужно учесть изначальные знания, кого-то в школе учат программировать на Pascal, а кого-то печатать в word(мой случай)
я понимал, что я писал, но нет предела совершенству, теперь чуть больше знаю как оптимизировать, что лучше использовать в тех или иных случаях. речь тут не про то, что решение алгоритмов тебе дает суперсилу, это просто фундамент, который по идее нужно было изучать еще давно, но у меня руки дошли сейчас
Это один из примеров, чему научился решая алгоритмические задачи. Насчет 600 задач - это скорее не о том, что я такой крутой и решил 600 задач, а наоборот, тк некоторым достаточно даже 100 задач решить, чтоб понять все то, что я понял после решения 600 задач.
Не пойму негативного настроя) этот пост не для сторожил и не для тех, кто щелкает задачи как орешки, а для таких же как и я, которым недостаточно мотивации, которые думаю, что у них ничего не получится, которые не знаю с чего начинать, какие ресурсы использовать и тд
кровельщику нужно знать фундамент кровельных работ, сишному инфраструктурщику знать фундамент в своей области) я это имел в виду
Смотря, что вам нужно) если устроиться в FAANG like компанию, то без этих знаний никуда не пойдешь, также в РФ в крупных компаниях спрашивают.
У меня была цель научиться решать и проходить кодинг интервью, но в процессе оказалось, что это полезно и интересно, сейчас продолжаю решать для души)
Завидую) если бы мне также легко удавалось, я бы точно не написал эту статью))
Я уже несколько раз объяснял, почему именно 600) не было цели решить конкретное количество задач, была цель решить столько задач, чтоб хватило для прохождения собеседований - я достиг этой цели, прошел кодинг интервью в разных компаниях.
Почему 600? Тоже ответил, кому-то нужно меньше, мне пришлось больше усилий приложить, видимо не слишком умен)
Я не в Армении, но да, Мета была готова релоцировать из моего текущего расположения в Лондон.
Гражданство РФ
Знать фундамент важно во всех областях)
результат - спокойно прохожу кодинг интервью)
фитнес для мозга)
понимания разных структур данных, алгоритмов, подходов, big O
Если в колледже все это усвоили, то остается только завидовать) у меня в универе было подобное, тот же алгоритм дейкстры, но тогда я не уделил этому внимание и сейчас далось все тяжело, тк пришлось все изучить.
После 5 задач на хард - это сильно, мне бы так
Поэтому я решил написать эту статью и дать направление таким же как и я)
Все самое полезное, что я нашел оставил в статье, но мне к сожалению пришлось все собирать по крупицам.
Но да, согласен, если бы более структурировано делал, то быстрее получилось бы, один из советов начинать с низов и потихоньку двигаться в сторону сложных структур, я же пытался то на массивы решать задачи, то деревья, то графы и даже динамическое программирование и backtracking
сейчас мне тоже легко удаются easy, но когда начинал с большим трудом решал и все время хотелось плакать от своей тупости. на данном этапе уже интереснее medium решать и поглядывать на hard, в идеале интересно было бы участвовать в contest-ах и занимать какие-то места, чисто ради удовольствия)
да, тут нужно отталкиваться от конкретной задачи и ситуации, порой что-то пишешь временно, а оно остается навечно, а порой что-то пишешь очень хорошо и потом это нужно переделывать, потому что бизнес решил не делать этого) натыкался и на то и на другое, и притом неоднократно
да, порой heap поможет быстрее решить задачу, нежели сортировать данные, что обычно занимает nlogn время
а насчет количества, тут уже все индивидуально, кому-то достаточно 50 задач решить, чтоб понять все, кому-то 200-300, а кому-то все 600 и больше
тут уже у каждого свой приоритет, весь прошлый год у меня был приоритет литкод и я в этом преуспел, не идеально конечно, но могу пройти собеседования, сейчас в приоритете кабанчик и систем дизайн.
сама суть посыла - найти время на что-то, что тебе нужно) мне было нужно решать задачи и научиться их решать, я до работы и после находил, на выходных, в то же время старался в зал ходить, гулять, чтоб еще и физическая активность была(но в моем случае легче конечно, тк детей нет, но уверен, что даже с детьми можно что-то придумать, хотя бы по 15-30 минут заниматься чем-то, что нужно тебе)
Полностью согласен, если нет сил решать задачу, я читал статьи, если нет сил читать, то смотрел как решают задачи.
ну и сама работа должна быть адекватной, чтоб ты не выгорал, а оставались силы после работы что-то делать)
:D к примеру)
Удивляет насолько легко люди говорят за всех) если бы не решал все эти задачи, я бы 100% завалил 99% интервью, смог бы решить задачи типа - узнать является ли строка палиндромом или анаграммой, не говоря уже о backtracking задаче после которой пришлось еще и binary search пройтись, чтоб решить задачу.
Зависит от того, где вы работаете, если строите сервисы по вычислению маршрутов и тп, где нужны знания алгоритмов, то да, со временем накопите опыт, иначе нет, у меня 8+ лет опыта, но ни разу не приходилось писать merge sort или алгоритм дейкстры и не смог бы решить задачи связанные с ними на интервью, а сейчас - пожалуйста.
Ну и нужно учесть изначальные знания, кого-то в школе учат программировать на Pascal, а кого-то печатать в word(мой случай)
Согласен, навык прохождения интерфью - это отдельный навык, который нужно прокачивать, относится к кодингу, к сисдизу, к бихейву и тд
Но в то же время это не бесполезные знания, которые совсем не пригодятся в работе
я понимал, что я писал, но нет предела совершенству, теперь чуть больше знаю как оптимизировать, что лучше использовать в тех или иных случаях.
речь тут не про то, что решение алгоритмов тебе дает суперсилу, это просто фундамент, который по идее нужно было изучать еще давно, но у меня руки дошли сейчас
не понял вопрос)
отвечу иначе - в итоге научился решать задачи, больше знаний по структурам данных, начал проходить успешно кодинг интервью
Это один из примеров, чему научился решая алгоритмические задачи.
Насчет 600 задач - это скорее не о том, что я такой крутой и решил 600 задач, а наоборот, тк некоторым достаточно даже 100 задач решить, чтоб понять все то, что я понял после решения 600 задач.
Не пойму негативного настроя) этот пост не для сторожил и не для тех, кто щелкает задачи как орешки, а для таких же как и я, которым недостаточно мотивации, которые думаю, что у них ничего не получится, которые не знаю с чего начинать, какие ресурсы использовать и тд