Подготовка к собеседованию на Java Developer
Менторы
Специалисты своей области, которые смогут помочь вам
Middle .Net Developer
Senior Product Manager
Middle Python Developer
Ведущий программист
Backend Software Engineer (PHP)
Senior .NET/C# developer
Middle DevOps Engineer | Tbilisi, Georgia
Middle C# .NET
Senior PHP-разработчик
Middle python developer
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
итак всем привет в гостях писаться пожалуйста рассказать тебе какие цели у меня зовут росла в пятнадцатом году закончил университет по направлению материаловедение и технология композиционных материалов пройти сферу про программирование не знал ничего не в чем интересовался по работал по специальности несколько лет года 3 потом в другом направлении поработал и пришел к тому что начал изучать программеров примерно год назад начал изучать язык си вообще не умею программировать нисколько не знал дам как цикл в общем ничего
00:00:05 - 00:01:29
этого не и начал потихонечку учитель изучать программирование с перерывами с периодами потом зимой начал изучать java то есть грубо говоря полгода назад но java прям нормально начал учить нас конца апреля то есть зимой я еще учил можно сказать как бы процедурном стиле просто писал это программки консольных не он бы ничего такого не изучал просто писала в стиле на языке какие-то функции вызывал их не методе мы упростили грубо говоря вот потом в апреле момент потом прошел собеседование в июне в компанию
00:00:48 - 00:02:24
по набору на обучаем программу компании по направлению в памяти зеленые тестировали и мы проучились собеседование прошло и вот мы июля быстро учились автоматизировали сейчас у нас останется августа и на данный момент жду проект вроде как должны позвать [музыка] и гений тебя не слышно тестирование мы использовали нас познакомимся моргом selenium также мы изучаем но чтобы запускать спорта проекта была там нас прошлись так быстренько поджарю [музыка] вот и потом у нас были фильм word расселением среднем в драйвер юнит был
00:01:39 - 00:03:32
[музыка] аллюры замечали немножко дженкинса запускали но это было про всем учебная задача надо было через я даже дженкинс cucumber over the unit 4 5 там кто на каком хотел выбирать малым jal core и в принципе вроде все давайте для начала вот у меня например gif и у них short какой диапазон допустимых значений short это у нас по моему короткое целое нас 16 бит по 16 байт , байт на 16 мп у нас 32 размер диапазона значений получаем а вот чем отличается примите short от класса пер кишок какая цель у класса ветки
00:02:49 - 00:06:20
класс обертки это у нас уже получается объект all-in gift это обычно переменная примитивный типы всего 8 и он хранит у нас только значение но в принципе поздно она игарка будет хранить значение научим это примитивный тип а уже обертка это объект класса мотивация была создания потому что например у нас есть обобщение они они работают только с объектом вручается нам нужно обычный примитивный тип данных мы не можем поместить и нам нужен спец на ссылочных данных ну по крайней мере для этой цели возможно есть еще но я сейчас что 1
00:04:52 - 00:06:58
хорошо если это вообще не желаете так получается так что допустил я пишу в садах коллекция разум юрий вист как получать так что потом это работает но получается работать я разбирал generique да ну я щас немножко получается ну когда объявляем переменную у нас не переменную а новый объект создаем у нас есть вот этот оператор треугольный треугольник раунд ромбик и туда помещаем получается [музыка] те типы объектов которые мы хотим с которыми мы хотим в дальнейшем работа ну собственно поэтому и честный вопрос
00:05:54 - 00:08:13
не понял до конца большая хорошо винчи дальше вот есть мужик олег тогда и того же самый листа пожалуйста вот есть например мне released идеи из каперсов донбасс массив какой бы ческих обычно я уже есть обычные сеть а.а. нами чески если мы заводов класс там вот массив объектов он процентный отметить что читатель [музыка] выглядишь динамический массив какая сложность алгоритмическое добавление элемента него худшем случае случай а это нам получается нужно воротись когда мы добавляем нас все элементы будут двигаться если там память
00:07:08 - 00:09:34
еще хватает например у нас там классический вот у нас есть released у него изначально емкость например например 10 10 лет у нас всего в этом прелесть и 5 если мы хотим добавить 6 при этом новый массив на создаем мы просто помещаем и глеб хочет вправо сдвигаем все элементы не давали начала проведу но это начало опер но если в середину там будет поменьше конечно она даст очень занят число тут наверное интересует есть конкретно будет эта операция добавления улучшена использовать если в начала в конец то есть сначала будет
00:08:46 - 00:10:39
если серединка поменьше я к тому что при оценке сложности алгоритма нас вот эти больше меньше не интересуются порядок тут разом коэффициент a2 и интерьер хорошо давайте сначала а если в конец тоже может быть о том случае если мы добавим конец ну тут получится как в конечном любом случае нужно будет создавать новый массив верно на же мы же не хотим убить последняя петля симулянтом последний элемент этого массива то у нас получается мы можем то будет от единицы до допустим у меня сейчас мы сильно 10 я добыл добавил 8 момент это
00:09:42 - 00:11:29
проблема или нет добавил со сдвигом если нет 8 а нет это не проблема у нас вы все перек опираться и там уже будет сложность друга и скопировать и в 11 также такой идеи релизу связанный список хорошо если это так какая сложность ставки или нет гитарист строго кулак единицы от единицы хорошо а если что я хочу ставить его в 80 элемент сказать папе единиц у него же как раз по моему самая высокая скорость уровню начало и конец а если че регину добавить а по-моему тоже самом он как раз по моему выигрывает товары гестапо вставки
00:10:34 - 00:13:06
и удаления учитывает ли эта сложность время поиска места главных инструмент а перебирать элементы в этом хорошо а почему середину будет уокен но при этом в начало и конец будет логин середина нам придется перебирать получается все элементы а первый последний не нужно потому что они хранят ссылки обе стороны они знают грубо говоря свое как в массиве получается у нас мы знаем какой элемент хорошо деревья этого перейдем на 30 какую сущая стерилизуется данный вас трясет но это ученость множество получать
00:11:59 - 00:13:48
больше есть множество он реализует деревья по моим красный черный а человеческого черный обычно верю а здесь я не подскажу потому что я особо не копал а деревья я знаю что она по моему по скорости быстрее ничего но обычно если взгляд что у меня есть обычно верю я пока в течение ограничиваю сколько наследников может быть у одного узла 2 где то сразу чтобы они не 2 in 1 сколько может охотников максимум смотри если в игре что-то просто бинарное дерево какая может быть алгоритмическая сложность смотри хорошо то есть допустим я дачная
00:13:03 - 00:15:25
добавлять элементы постоянно направо бам бам бам бам 500 элементов один задний минут где как ты это случае получим сложность логин какую структуру нападать и вещи то что пагода внести элементы правы массив и список и солдату смочить поворачиваем вот так и получаем то же самое значение выборе близости от вы пришли что вот и синдрома пена хорошо теперь вот но как посадка была a300 если так не черное дерево что он делает ну получается не совсем не позволяет нашему дереву говорится в список а да там же да там по моему чередуется что
00:14:20 - 00:16:11
там дороги сложно балансировки простого инструмента поэтому а может быть сложно хорошо брака священное дерево какая операция такая сложность поиска имеет значение в этом случае либо логарифм подорвет и я бы списку читал я помню что там получается приходим к аналогу бинарного поиска мы можем скорее пожалуйста мой привет compact интерфейс там purple для чего он не нужен его собран он как раз таки для перебора элементов коллекции хорошо прошел что для перебора коррекция как раз по моему подходит для
00:15:23 - 00:17:49
пересчета для деревьев [музыка] нас будет наша задача попробуйте вот это так надеюсь туда записи будет видно то есть смысл что у тебя на дерево и тебе необходимо определить какой из узлов какая сторона как вот еще какая максимальная глубина то у дерева данном случае у тебя есть дерево то есть четыре у него два наследника десять и двадцать три и 2012 и 63 потому что видишь это жена веранда ведь один алгоритм который сможет посчитать какой какая максимальная глубина нашего дерева я пока это ставлю сверху от у
00:16:48 - 00:18:57
тебя пока не кидаю болванку нашего класса d будет какой-то класс паблик и public этих который будет принимать себя class with not рутовый возвращать некоего значения пока пусть это будет 0 хорошо то есть вот это глаз минут он имеет все открытые переменные можно обратиться руб . в руки чтобы инициализировать с помощью какого числа это пока нам не критично теперь тебе необходимо каким-то образом пройтись по этому дереву имеешь ссылку только на рутовый нот и определить какой же у нас получается какая максимально
00:18:11 - 00:20:11
тебя есть оплошности вышел без мне нужно определить точки зрения алгоритм и программа сама определила емкость дерево глубину до вывести public static перевод он допустим 15 ты появишься тоже ментовке попросят написать что переноса не ставят 1 класс сейчас еще впихнуть сюда смешивание класс перенос который напишите ну теперь видим что все хорошо отлично всякий доступ поехали давай сначала определимся какой подход ты будешь использовать в этом случае имени работа думаю штанг но тут видимо у нас получается вершина дерева это у нас
00:19:11 - 00:21:35
четверка надо как-то пройти с неё и пройтись до конца хорошо дошел до конца дерево дальше что мы тут получается нужно понять в какую сторону идти потому что если я я подумал сначала можно грубо говоря пройтись по всем элементам и там какой-то счетчик прикрутить чтобы он считал количество элементов то есть но если мы пойдем в сторону 10 следующего элемента не будет то надо как-то вернуться в сторону другую что мешает тебе одновременно и направо и какие у нас есть две большие группы алгоритмов сортировки и поиска и
00:21:05 - 00:22:56
реализации подход к решению задач и противные а еще или курсе вы хорошо просто что твой римская кстати когда функция сама себя возвращая хорошие то есть грубо говоря я должен вызывать функцию саму себя внутри вот на чтобы ее вызывать она все равно должна еще что то делать помимо самого себя вызываться и когда она должна дойти до какого-то определенного момента они должен быть какая-то остановка чтобы ну иначе у нас будет бесконечная рекурсия и все хорошо очень хорошо служить ты брани жаришь нам знаков . остановки
00:22:01 - 00:24:04
для режиссировал алгоритма сказал что для тебя будет сигналом того что ты дошел как бы ходу а то что все ссылки на следующий элемент например нет то есть например мы дошли до десяти и у нас по этой ветке нет дальше уже элемента и мы можем в принципе остановиться идите дальше ну и то есть мы пойдём в эту сторону грубо говоря воде условие пожалуйста того чтобы наследница это знак [музыка] тут есть метод а спросим ее чему по умолчанию равен объект если вы не изолировали ну то есть если у нас следующий элемент на нас все
00:23:03 - 00:25:04
мы дошли до конца до конца и в обмен то есть то что мы говорим а ведь он нам нужно этот наш остановить этим версию до канта нам нужно возродить и для чего мы доходим до конца какая какой цвет запись этом случае пройти все элементы зачем а что вы предпочитате в количество нот я думаю тут наверно счетчика пульт на нужно прикрутить некоторым принципе видно но ты где алгоритм дали гусиной приводе сохранишь нигде ну да более и более хитро выдумано делать а ты вот ищет пытаешься считать сверху правильно а можно снизу да и зуба
00:23:58 - 00:26:11
прогнута чему от мы должны быть равны когда мы дошли до нету чем мы конкретному значению 4 наверное ехать на интересно ножи и равного получается мы должны быть равно это вершине дерева почему друг друга но это будет означать но хотя даже не дней ну и также равны ну но у школы должны в этом случае то есть ягоды все вот я сейчас пришел в точку отсчета пчел личный счет какая цифра является началом отсчета а минус 0 0 отличить мы дошли до не топ 100 км и равна нулю отлично теперь вот мы видем что 3 курсе мы должны теперь на каждом
00:25:32 - 00:27:19
следующем этаже что делать вернуть функцию нашим нету для чего мы возвращаем что мы хотим сейчас начало . чё-то 0 и возвращаясь на каждый уровень вверх мы будем проверять опять будет надежды дошел ножа или выше по любому меня ни на есть элементы что теперь когда въезд на и что у меня это мы должны вернуть получается нашу функцию отлично хорошо и что с ней сделать так она у нас а передайте следующий элемент у нас аргумент аргумент смотри давай так то есть приз так вот мы с находится в на шестерке даже ниже
00:26:36 - 00:28:38
шестерки да у меня вот здесь идет шахтер как у меня идет до релиза говорю чтобы ящик равен нулю теперь я хочу почитать высоту поставить чтобы не больше а вот так высоту тыс я поднялся сюда должна быть заполнена сейчас я просто так у нас высота у нас будет на шестерке чему она удобно тройки почему тропе мы же считаем снизу единиц хорошо единица пошли выше на 23 чему должна быть высота равна хорошо а четвёрка чему это будет ровно 33 отлично то есть принципе картины из а теперь вдова я знаю что мы считаем мы
00:27:41 - 00:29:34
опустим это же я что делаю [музыка] увеличиваем наш результат лично не отлично и теперь ты должен каким-то образом пойти и налево и направо и пойду как-то иди дальше что ты будешь передавать сейчас выпущенном в этому методу я буду передавать какой-то [музыка] хорошо мы тогда должны вызвать саму себя хорошо допустим для чего max3d.pl я вызываю а что я передаю в качестве аргумента в метод runtu трудно ли как-то передать следующие элементы гель класс есть три not close двинут у него следующая или до следующей wind
00:28:40 - 00:30:45
наверное через а мне не значение не наследник напишу должны сейчас проверить где он едет слева или справа где будешь переменной допустим макс макс . логично теперь здесь я передал райт right макс вечера передал элемент рай отлично и теперь я могу возвращаться на каждом следующем быть я должен пребывать увеличили до значительно то есть я говорю что мы даже что больше правильно если лев макс дпс больше right макс дпс программ должны вернуть лет это сделать назначение она не надо сейчас равно за мной увеличить его величина 1 будем
00:29:54 - 00:32:37
лечить а если the right макс демонстрацию дальше смотрите как у тебя с со стримами стрима честно сказать не очень потому что я собой . нога потому что как то же но потому что ее автоматизации в принципе не используют в плане вэба но если падет что такая штука джимми то программу такому заклятия к которая позволяет использовать для нагрузочного тестирования хорошо давайте пройдемся по работа с велом лишь пожалуйста что такое еще тебе протокол для чего вы используете http но он для запросов здесь определяли
00:31:19 - 00:33:29
запросы get fast на он передавая запрос клиент-сервер в одну сторону запрос она обрабатывает все и возвращаю обратную сторону он работает нет такой связи запросу и все хорошо допустим если ситуация на диабет и только что мы не поддерживаем сессию с осени на как получится так что при следующем обращении к какому-то ресурсу сайте мне не нужно будет вводить логин и пароль как у может авторизовать он должен хранить проще это там где там честно сказать не знаю я честная этими вещами заниматься только
00:32:50 - 00:34:55
автоматизировали эскизы именно бы к нам я хорошо давайте лабазы разбомбил нужны тут сто процентов что такое нормализация базу данных а нормализации и ведение базы данных нормальному виду не чтобы все лишнее убрать и там по моему еще и есть 8 правил про правила или формы форма но я не помню как называется в общем 8 говоря про честно не помню ну знаешь что они есть дата вот если ты не знаешь , вопрос к чему может привести нарушение нормализации подводных у нас будет получаться много избыточной информации лишнего
00:33:57 - 00:35:54
всего если возможно будет сложно работать базы данных хорошо убил допусти 8 поговорить с тобой бро внешние ключи что это такое а это у нас ну ключи это вообще столбцы ну не совсем у меня может быть стал без ключа смотри я тебе кусок участке есть такие две таблицы оставишь у нее есть по идее есть подлинный есть поле create cake одну простатита поля не заданы есть у меня продлится ardors у которой есть айди да так ведь и есть пули кастами хайди которая отвечает за то чтобы мы понимали к какому кастор принадлежит данный заказ
00:35:18 - 00:36:53
у нас можешь не пожалуйста сейчас сделать так чтобы я увидел любого запроса все всех костями и все их заказы надо получается хорошо давай джонс как ты напишешь который оттуда если мы допустим есть кастами но у него нет ни одного ордер inner join что я получу получим наших просто миров но там не будет и и получим удар ордер но там будет просто пустые значения разве это joined естественно лев joy что он не хочет что хочу получить как сделал видов джойс и мир join у нас объединяет столбцы хорошо согласен что я получил в этом
00:36:34 - 00:39:08
случае нас есть кастрюля но у него нет ни одного заказа ну надо не только тех кост амиров у которых есть после заказы и те ордера у которых тоже не сказками мы получим ничего мы их просто не получим отлично хорошо напиши мне сейчас пожалуйста синтаксис и на join я вот этого случая дальше уж не ожидал тебя трубиран звучать я пока экранчик пошарю так так так с клинской по идее вот он хорошо по гитаре давайте связать есть я поспал близкий было бы отлично вот и поехали не одном окне края у нас получается что между нас
00:38:08 - 00:41:16
две таблицы у меня есть у тебя есть varchar настой у тебя есть хорошо здесь допустим нотном мы знаем что не может быть просто нас без значение давай это будет проблядь того вес весь аиде потому что там писал клей для предателя 3-ей когда то есть есть грех есть кредит и есть поле кастами по сути это for на таблицу конец на поле и структуру таблицы что у нас забудьте сделать джон у меня выше обожает и мы теперь должны из нашего к сейчас это некритично так и мы ее должны получается такой виджет первых и укажите kinder джой
00:39:38 - 00:43:42
хорошо хорошо теперь мы должны получаются вывести все наши элементы ну ты по краям не объяснил как ты будешь их джо вич но нас у нас получается мы должны их по столбцам соединить верно каким столбцам по тем который раз есть одинаковым game created и ольги они но какие бы чем 30 у ножа связано связь между блогерами и каста миром сделка через поле кастами иди она интересном случае [музыка] покажу смотри то есть мы дарим рассылок там каста мир тип-обёртку он из параметров по каким мы делаем си а ideas to me say die
00:42:28 - 00:45:04
равно 1 . просто все поля перечислить вот такие команды как а вот с маленького писалось да я понял демонстрация потушу так давай вот еще на завершение работал с марина понимаешь команду и что она делает команда плен она насыщает сгенерированный диплом что делает в репозиторий по моему отправляет какие-то для оценки и покрытия кода тесты средства библиотеки фреймворке которые помогли бы мне оценить насколько мой кот покрыть и стали бы не стал таким chery по моему нет не сталкивались мы юнитам именно что только g-unit
00:44:14 - 00:46:37
другие вещи а вот какой вид тестирования проводить хорошо хорошо так то да принципе моментов который я прошелся ты как бы сделал дальше после этого я тебе где исправилась просто пробел есть особенно потому что бы ты хочешь потом уберите в будущем материал провел что нужно процент потом материалы на некоторые поэтому делал учить поэтому эти стрелки проверено в принципе в принципе у меня у моей вопросом все советы может просто не могут не подойти а теперь давайте допрос остались хотела уточнить я немножко разрываясь времени так много
00:46:00 - 00:48:53
университету чуть чуть лучше сделать например те же деревья лучше условно вообще не изучал до этого вообще алгоритму структур данных я там эти пузырьки про самое простое изучил а в дальнейшем не капал лучьше углубиться в изучение алгоритмов приоритетнее или лучше какие-то инструменты и фреймворке например на selenium или spring там у разработчиков или три девочки параллельно если вы как бы у тебя не было ситуации то что ты ну те которые работают которым нужно работать как бы поддерживать устранит я бы сказал что
00:47:39 - 00:48:52
нужно учить академически но реальность тебе нужно учиться я бы тебе сейчас надеюсь publish на проект и до сих пор и которые тебе нужны спортсмены работе чтобы ты мог зацепиться и немного закрепившись уделять уже обучению поэтому ты и должен стать спецом должен хорошо владеть java core потому что необходим на ней базы данных потому что это особенно важно сделать сложный выбор любые вложенные запросы он более не у нас на проекте радисты строчки то есть разделение покупать эти вещи когда ты будешь себя в них уверенно чувствовать а
00:48:16 - 00:50:02
после этого я бы тебе рекомендовал изучить спин потому что он позволит тебе понять как делаются реальные проекты и ты сможешь более менее хотя бы претендовать на вакансию по этой компании ну когда вы тесно у вас тоже попали перевести но для того чтобы садиться в других компаний и и нужно будет конечно да нет вот у меня был самый важный вопрос потому что все время мечусь между какими-то академическими как раз компьютер сайнс и уже воля прикладными вещами я понял спасибо большое должен на самый просто не подступишься потому что нужно
00:49:24 - 00:51:05
хорошо у тебя там эти на прощание чтобы больше читать книжек мне кажется потому что я там хорошо написано по шилду и еще мне очень нравится там рекомендуется да то есть макс расскажу никаких платных я нигде ничего не покупаем все по книжкам и в основном и вот запись со всеми обращаюсь спасибо большое пока
00:50:19 - 00:51:50