LINUX.ORG.RU
решено ФорумTalks

Первая работа

 ,


0

3

Приветствую форумчане!

Я думаю начать искать работу стажёром или джуном. Начал решать задачи на leetcode, нарешал чуть больше 100 задач, охватывающих большинство классических алгоритмов и структур данных. Это 77 лёгких, 33 средних и 4 сложных задач.

Хочу узнать: можно ли с такой статистикой устраиваться начинающим специалистом в хорошую компанию? И вообще сколько нужно решить задач, чтобы попасть в big tech?

Сколько задач вы решали для поиска первой работы.



Последнее исправление: iskander9908 (всего исправлений: 2)
Ответ на: комментарий от vbr

реализовать аналог malloc/free, а также написать на WinAPI программу, визуализирующую кучу, чтобы наглядно было видно, как она используется.

Интересно! А можно поподробнее про malloc свой?

Хочется скрин глянуть даже. А куча какая? Как структура данных или в памяти что-то?

Gyros
()
Ответ на: комментарий от Gyros

Я ничего не сохранял, очень давно это было. Насколько я помню - я просто делал связный список из свободных блоков, размер текущего свободного блока и указатель на следующий блок хранился в первых байтах свободного блока. Для выделения памяти я шёл по списку и искал первый свободный блок подходящего размера. Размер выделенного блока записывался в первых байтах выделенного блока, пользователю возвращался указатель за этими байтами. А найденный свободный блок либо уменьшался, либо удалялся. Для освобождения памяти я либо превращал выделенный блок в освобождённый, если он окружён выделенными блоками, либо сливал его со следующим/предыдущим освобождённым блоком. По сути ничего сложного, просто аккуратно всё надо было запрограммировать и не запутаться в указателях.

GUI - была горизонтальная полоска, каждая вертикальная черта которой соответствовала каким-то байтам, и окрашивалась в красный/зеленый цвет, в зависимости от того, были ли эти байты занятыми или свободными. И несколько кнопок и текстовых полей, для того, чтобы вызывать malloc/free соответственно и наблюдать, как это отражается на визуальной индикации. GUI делал на WinAPI с C.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 4)
Ответ на: комментарий от urxvt

Едрить я дебил, уже на второй простейшей (по рейтингу сложности) задаче я сдулся.
Задача про коня на доске. Ну и ладна 🙂

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Едрить я дебил, уже на второй простейшей (по рейтингу сложности) задаче я сдулся.

Не парьтесь, это возможно и норм явление в условиях когда задачки уровня «задрочили», а не уровня «что знаешь и умеешь», тесты очень часто ориентированы на «задрочили».

anc ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Это больше про навык, есть конечно нестандартные задачки уровня Гены Корткеевича, но на leetcode, в основном, - просто навыки.

Если будете решать по 3 задачи в неделю - то через время заметно повысите свой рейтинг.

iskander9908
() автор топика
Последнее исправление: iskander9908 (всего исправлений: 1)
Ответ на: комментарий от anc

А я и не парюсь но иногда подбешивает, я знаю что я тупая пробка из поливинилацетата 😊
Потом решу. Иногда полезно даже просто подумать, даже если это безрезультатно.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Я по лимиту времени не вписался сначала (естественно, перед тем долго ища опечатку :)). Прикрутил мемоизацию и оно прошло.

Оказалось, Литкод намного удобней. Там можно и свои тесты добавлять, и запускать один тест, и видеть насколько быстрое твое решение в сравнении с другими. Ничего из этого тут пока нет. Жаль.

urxvt ★★★★★
()
Ответ на: комментарий от anc

На самом деле, эта задача хороший пример того, что в Литкоде есть очень полезная база, которую можно применять вне литкода. Вот эта задача на простое динамическое программирование (как там внизу указано). Это можно сравнить с шаблоном проектирования. Да, все 100500 миллионов возможных их знать не нужно (да и невозможно простому смертному), но немного популярных очень даже желательно.

А так то все «навык», все «задрочили». Месси тоже просто «задрочил» свои удары. А Линус задрочил программирование, так как задрачивал ассемблер еще с младшей школы.

urxvt ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Иногда полезно даже просто подумать, даже если это безрезультатно.

Вот с таким тезисом согласен полностью! Мне такое тоже очень нравиться. Вот бывает порешаешь задачки по матану/физике уровня конец школы - первые курсы института для сына друга и прям приятно вспомнить далекую молодость. :)
ЗЫ А вот ЧСХ информатику в разрезе программирования которой меня заваливают эпизодически не люблю. Очень не люблю. Причем от уровня чуть больше чем начальной школы, до первых курсов института. Причины две:
1. Абсолютно дебильные условия задачек, распарсить это крайне трудно. У учащихся которые ближе к этому тоже с парсингом не очень, и в результате зачастую мучают преподов моими вопросами.
2. Написать код по школьному/студенческому, вот это самый лютый трэшак, просишь у них решения аналогичных задачек, гуглишь решения аналогичных задачек... главная цель написать быдлокод максимально приближенный к ожидаемому преподом.

anc ★★★★★
()
Ответ на: комментарий от urxvt

Я по лимиту времени не вписался сначала (естественно, перед тем долго ища опечатку :)). Прикрутил мемоизацию и оно прошло.

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

Или даже может строить два деревка, снизу вверх и сверзу вниз, может ещё лучше будет, так как к моменту схода вместе половинок путей, тупиковые пути будут отсечены быстрее.

Просто я одно решение подглядел, разбираясь в интерфейсе и поглядеть что такое «разбор» поглядел. Там таблицу строили и в узлах хранили количество путей до узла, а потом всё складывали. Прикольно, но так нельзя (можно, но не интересно) буду деревком пробовать, но потом.

Там можно и свои тесты добавлять, и запускать один тест, и видеть насколько быстрое твое решение в сравнении с другими. Ничего из этого тут пока нет. Жаль.

Ну, может. Но я тут гляжу можно просто файл загрузить, а это по сути решает все проблемы, пиши в чём удобнее, запускай и проверяй, а на проверку уже готовое. Хотя возможность запуска без отправки на проверку была бы удобной, ну просто очепятки отловить и подобное. Сортировку из трёх чисел я лишь с седьмого раза заслал хехе.

В любом случае, спасибо за ссылку.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от urxvt

но немного популярных очень даже желательно.

Даже популярное и программирование у меня не складываются вместе. Популярными могут быть решения каких-то алгоритмов, но не облечение этих алгоритмов во вполне определенный код на определенном ЯП. Да, чистота кода очень важна, но тесты эту чистоту не проверят.

Месси тоже просто «задрочил» свои удары.

Плохое сравнение.

А Линус задрочил программирование, так как задрачивал ассемблер еще с младшей школы.

Вот это уже ближе к цели :) Но учитывая упоминание асма это вот ниразу не показатель, автоматизаторы из олдскул тоже на асме умели огого и эгегей, но это не значит, что они реально умели программировать.

anc ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

У каждой задачи есть теги, к какой теме она относится. Эта на динамическое программирование. Суть в том, что задача разбивается на подзадачи (две, так как конь может два варианта шага сделать). И да, получается такое себе дерево возможных шагов.

Есть всякие статьи на каждую тему/шаблон. Например эта

urxvt ★★★★★
()

Сколько задач вы решали для поиска первой работы.

Для поиска вообще не решал.

Не в задачах счастье.

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от anc

Даже популярное и программирование у меня не складываются вместе. Популярными могут быть решения каких-то алгоритмов, но не облечение этих алгоритмов во вполне определенный код на определенном ЯП. Да, чистота кода очень важна, но тесты эту чистоту не проверят.

Если я тебя верно понял, то ты поднял хороший вопрос. Мне кажется, тут, действительно, есть два навыка: придумать алгоритм решения и воплотить алгоритм в код. И Литкод нормально тренирует их обеих.
Казалось бы, если знаешь как решить задачу то в чем проблема просто перевести описание алгоритма с человеческого языка на условный Питон? Но я по себе много раз замечал, что приступая к работе воплотить свои слова/мысли в код бывает не так то и просто. И это я совсем не про литкод, а про реальные задачи. Также многократно замечал при собеседовании кандидатов, кандидат словами верно рассказывает решение задачи а приступая к коду не может его родить.

Месси тоже просто «задрочил» свои удары.

Плохое сравнение.

Почему? Много спортсменов говорят, что во многом успеху они обязаны своему упорству. И тренеры так говорят.

Вот это уже ближе к цели :) Но учитывая упоминание асма это вот ниразу не показатель, автоматизаторы из олдскул тоже на асме умели огого и эгегей, но это не значит, что они реально умели программировать.

Да какая разница, асм, С или Питон? Если они писали годные, новаторские, сложные программы то это и значит, что они умели программировать. Это же по определению.

urxvt ★★★★★
()
Ответ на: комментарий от urxvt

Но я по себе много раз замечал, что приступая к работе воплотить свои слова/мысли в код бывает не так то и просто. И это я совсем не про литкод, а про реальные задачи.

Так это старое доброе «человек долго бесцельно ходит по коридору туда сюда, потом бьется головой об стену и убегает в кабинет...»

Почему? Много спортсменов говорят, что во многом успеху они обязаны своему упорству. И тренеры так говорят.

Плохое сравнение в контексте обсуждаемого.

Да какая разница, асм, С или Питон?

Для программистов да, без разницы. Но я лишь зацепился за асм в разрезе автоматизаторов :)

anc ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)