Русский
Русский
English
Статистика
Реклама

Phyton

Перевод Вот ваш мозг на Питоне исследователи расшифровали нейро-механику программирования

17.12.2020 20:07:58 | Автор: admin


Как активизируются области мозга во время программирования, логических рассуждений и при использования языка. Иллюстрация Университета Джона Хопкинса.

Исследователи из Университета Джона Хопкинса составили карту мозговой активности опытных компьютерных программистов, пока те ломали голову над кодом. В результате стала очевидной нейронная механика, лежащая в основе этого все более востребованного навыка.

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

Люди учатся программированию по-разному: от чтения самоучителей до формальных курсов. Удивительно, что мы обнаруживаем такую последовательную модель активации мозга у людей, которые программируют, сказала автор исследования Юнь-Фей Лю, аспирантка лаборатории нейропластичности университета. Это особенно удивительно, потому что мы знаем, что решающий период для овладения языком обычно заканчивается в раннем подростковом возрасте. А многие люди учатся программировать уже взрослыми.

Результаты исследования опубликованы в журнале eLife.

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

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

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

Чтобы разобраться в этом, Лю собрала 15 опытных программистов, в совершенстве владеющих языком Python. Каждый из подопытных лег в сканер фМРТ, чтобы измерить активность мозга в процессе программирования.

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

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

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



Подробнее..

Визуализация голосового помощника Алисы с эффектом голограммы

28.05.2021 12:18:53 | Автор: admin

Привет, Хабр! Говорят, лень - это двигатель прогресса. Но никто не говорил, что этот самый двигатель, будет быстрым. Моя история о том, как я делал визуализацию голосового помощника Алисы с эффектом голограммы из подручных материалов.

Вступление

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

Например, у меня есть робот голосовой помощник "Vector" от Anki (сейчас им владеет Digital Dream Labs). Он отлично передает эмоции (радость, огорчение, злость и т.д.), когда с ним взаимодействуешь. Но его проблема в том, что программная часть голосового помощника Vector очень слабая по сравнению с такими гигантами как Alexa, Google Assistant, Siri, Алиса.

Робот Vector от AnkiРобот Vector от Anki

Недавно Яндекс выпустил умную колонку Яндекс.Станция Макс с LED-дисплеем. Через дисплей, голосовой помощник "Алиса" дополняет свои ответы анимацией и выражает "эмоции". И это уже хороший шаг в сторону визуализации голосового помощника, но все равно этого недостаточно для меня.

Яндекс.Станция Макс с LED-дисплеемЯндекс.Станция Макс с LED-дисплеем

Бороздя просторы интернета во время всеобщего карантина, я увидел пост о том, как Джарем Арчер сделал рабочий концепт голограммы голосового помощника Cortana от Microsoft. Я вдохновился этой идеей и захотел это повторить, только вместо Кортаны, взять Алису от Яндекса.

Посмотрев, как Джарем сделал визуализацию Кортаны и прикинув по стоимости необходимые компоненты, понял, что это выйдет дороговато для моего первого, домашнего проекта. Т.к. я живу в населенном пункте с численностью населения не больше 2000 человек и с одним местным продуктовым магазином, то все компоненты нужно было заказывать через интернет, а доставка до меня очень долгая. Поэтому решил использовал всё то, что было под рукой:

  • Старый монитор c TFT матрицей (BenQ GW2750HM)

  • Старый ноутбук (core 2 duo p7350, GeForce 9300M, 4Gb RAM)

  • 3D-принтер (Tevo Tarantula 2017)

  • RGB-светодиодная лента

  • Arduino Nano

Дисклеймер по качеству фото

Не сразу додумался фотографировать весь процесс создания, поэтому фото были сделаны на свой старенький Xiaomi

Корпус

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

Модель делал в Autodesk Fusion 360. Сама модель состоит из нескольких частей и ее, в теории, можно сделать под любой размер монитора.

В основании корпуса есть углубления по бокам, чтобы туда приклеить светодиодную ленту и вставить платформу из оргстекла для подсветки основания, но позже я столкнулся с проблемой, что найти/заказать оргстекло сложно, поэтому основание сделал из ДСП. Ножки не планировал добавлять т.к. изначально думал, что конструкция будет стоять на основании корпуса, дабы пыли и шерсти под ней не было, а ноутбук будет рядом. Но уже после того, как напечатал модель, понял, что ноутбук отлично влезает под корпус и ножки делал уже из брусков дерева.

Модель корпуса в Autodesk Fusion 360Модель корпуса в Autodesk Fusion 360

3D печать

Для печати корпуса выбрал ABS пластик т.к. он прочный и легко поддается обработке. Но есть и минусы: дико воняет и сильно чувствителен к сквозняку. На печать всех компонентов ушло дней 5 почти непрерывного печатания. Поэтому запах в доме еще долго не мог уйти.

Напечатанный корпусНапечатанный корпус

Печатал первый раз и из-за того, что 3D-принтер был без внешнего корпуса, а дома был сквозняк, некоторые детали были с сильным браком и пришлось мастерить внешний корпус принтера из того, что было дома (спортивный коврик и полотенце). После этого детали стали немного лучше, но все равно были косяки, которые были терпимыми.

После печати деталей обработал их наждачной бумагой, нанес грунтовку и покрасил в черный матовый цвет.

Эффект голограммы

Эффект голограммы создается просто: сверху лежит монитор, изображение попадает на стекло, которое стоит под определенным углом.

У стекла есть эффект раздвоения изображения (особенно, если стекло толстое), когда изображение отображается на передней и задней стороне стекла. Чтобы это убрать, с обратной стороны наклеил антибликовую пленку.

Первая проверка работы "голограммы"Первая проверка работы "голограммы"

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

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

Полностью собранный корпусПолностью собранный корпус

Программная часть

Программная часть состоит из четырех частей: официальный, но уже устаревший desktop-клиент Алисы, Python-сервис для обработки сообщений, приложение на Unity для отображения модели и Arduino Nano для управления светодиодной лентой.

Общий принцип работы визуализации следующий: клиент Алисы передает текст команды от пользователя и ответ на Python-сервис. После обработки данных, сервис отправляет команду на вызов той или иной анимации в приложении на Unity и команды для управления светодиодной лентой на Arduino.

Чтобы перехватить запросы в клиенте Алисы, использовал реверс-инжиниринг. Для этого взял старую версию клиента Алисы. Данная версия работает на JS, но исходники были обработаны обфускатором, поэтому пришлось долго искать места, где можно перехватить команды. После этого вставил вызовы API моего сервиса для передачи данных.

После того, как сервис получил данные из клиента, он их обрабатывает. В зависимости от того, какие данные пришли, отправляет по MQTT сообщения: состояние (например, Алиса начала слушать пользователя), текст ответа на запрос и изображение ответа. Если с состоянием и текстом сообщения все легко и в сервис приходит простой JSON, то с изображением не так просто. Внутри клиента Алисы изображения строятся на основе сложного JSON, который приходит от сервиса Яндекса. Его нужно было бы обрабатывать и создавать изображение самому, а т.к. я ленивый человек, решил отправлять то, что клиент Алисы сам формирует (HTML блок + CSS). Далее сервис вставляет HTML блок в запущенный заранее веб-драйвер Chrome, делает скриншот и отправляет в MQTT JSON сообщение с изображением в Base64, высотой и шириной изображения для сохранения пропорций в Unity. Для включения/выключения светодиодной ленты, сервис отправляет по Serial порту сообщение/команду в Arduino, выбирая какую область (светодиод над моделью и/или заднюю и нижнюю светодиодную ленту) включить с каким RGB цветом и яркостью.

Есть еще одна функция. Клиент Алисы периодически опрашивает сервис на наличие новых команд для неё. Если есть новая команда, то клиент выполняет её таким образом, как это сделал бы пользователь через голос или текст. Например, если дать команду: "Алиса, повтори за мной: Перед уходом, не забудь покормить кота", то эту фразу она и повторит. Таким образом можно оповещать состояние датчиков.

Приложение на Unity принимает сообщения с MQTT для запуска анимации и отображения текста/изображения на специальных панелях. Модель отображают три камеры (каждое изображение попадает на свое стекло), на которых применен эффект "зеркала", чтобы после проецирования на стекло пользователь видел корректное изображение модели и текста.

Визуализация в UnityВизуализация в Unity

Т.к. голос Алисы бы сделан на основе голоса Татьяны Шитовой, которая озвучивает большинство героинь Скарлетт Йоханссон, то для модели Алисы я взял образ персонажа из комиксов Marvel "Черная вдова", что дало визуализации свой "шарм". Саму 3D-модель я взял из открытого доступа, а скелет и его анимацию сделал в Blender, визуальный эффект голограммы был применен на модели в самой Unity.

3D-модель Алисы3D-модель Алисы

Из-за того, что работа по созданию анимации была самой последней частью общей работы, то данному этапу уделил очень мало времени, поэтому набор движений скуден.

Заключение

Огромное спасибо моей жене! Без её помощи, поддержки и терпения я бы забросил эту идею с самого начала.

Еще есть что доделать. Например, можно было добавить камеру, чтобы отслеживать лицо пользователя и "поворачивать" модель к пользователю для усиления эффекта голограммы, прикрутив к сервису OpenCV и отправку в MQTT значений поворота модели, но USB камеры нет.

Из минусов, найденных при эксплуатации:

  1. У меня настроена система "Умный дом", через Home Assistant. На нем работают как свои устройства (на esp8266/Arduino), так и производителей (в основном от Xiaomi). Когда я начал делать этот проект, то была возможность управлять всеми устройствами через Алису. И можно было бы не использовать Яндекс.Станцию мини, но в какой-то момент Алиса в клиенте перестала находить эти устройства, хотя управлять ими через станцию все еще можно. Скорее всего поменяли API, поэтому перестало работать, но есть идеи как это можно исправить

  2. Плохая идея использовать монитор с TFT матрицей

Еще нашел необычное применение для такого устройства: вместо Алисы, отображать время или таймер до какого-то события с включенной подсветкой.

Отсчет до нового годаОтсчет до нового года

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

Подробнее..

Из филолога в Python-разработчики как переучиться и чего ждать от новой профессии

03.04.2021 00:05:49 | Автор: admin

Стать разработчиком, если ты не технарь и у тебя нет профильного диплома, вполне реально много подобных примеров можно найти в сети. Считается, что Python один из самых простых способов войти в эту профессию, но есть масса нюансов, которые могут повлиять на обучение. О том, как его построить, чтобы не обжечься на первом языке программирования, рассказываетпреподаватель Python в GeekBrains и главный инженер Сбера по разработке в Data Analytics Вероника Голубева.

Вероника Голубева, преподаватель Python в GeekBrains и главный инженер Сбера по разработке в Data Analytics Вероника Голубева, преподаватель Python в GeekBrains и главный инженер Сбера по разработке в Data Analytics

Стать разработчиком может человек с любым бэкграундом. Если не верите попробуйте погуглить: в интернете хранятся тысячи историй о том, как гуманитарий стал программистом. Главное работать с материалом, который дают преподаватели.

Например, у меня был студент бизнесмен, он упорно сдавал задания, скидывал кейсы из работы своей фирмы, которые пробовал решить с помощью полученных на курсах знаний. Этот человек был заинтересован разобраться, понять профессию и применить навыки в своей сфере. И ему не мешало отсутствие технического бэкграунда.

Достаточно легкоязык программирования Pythonдается гуманитариям лингвистам, филологам. По сути, он как иностранный язык, только легче: так же нужно изучать синтаксис, но больше логики, строже правила и нет исключений. Перейти на Python с другого языка программирования очень легко, но, если вы новичок и выбираете, с какого языка начать, начните с Python. На нём будет гораздо легче, чем на условном Java, обучиться базе циклам и объектно ориентированному программированию.

Вообще, к нам накурсы Pythonприходят люди с разными целями и навыками: есть и технари, которые хотят углубиться в профессию, и люди из не связанных с программированием сфер им тяжелее, но программа гибкая, поэтому успешны и первые, и вторые. Накурсах программирования Pythonмы ставим задачи, максимально приближённые к тому, с чем придётся столкнуться будущим разработчикам на работе, и это хорошо для наших студентов. Я в университете учила C++ решала задачи на программирование шахматной доски. В дальнейшем эти знания мне нигде не пригодились, а время и силы потрачены.

Чтобы начатьобучение языку Python, достаточно восстановить базу по информатике из школьной программы: алгоритмы, блок-схемы. Если у вас есть понимание алгоритмов и вы можете построить алгоритм решения квадратного уравнения, этого достаточно.

Как и где учиться

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

Наш курс построен так, что большую часть навыков студенты отрабатывают в домашних заданиях: если не хватает времени, можно делать их и пропустить лекцию. Это обосновано тем, что, прослушав курс, научиться программировать нельзя нужна практика. Если что-то непонятно, можно поискать ответ в сети или спросить преподавателя. Это гораздо эффективнее, чем если просто слушать лекцию и не делать домашку.

Чтобы сохранить мотивацию, можно смотреть видео о профессии: на YouTube есть классные ролики о том, что можно научиться делать, они цепляют.

Программирование на Python это сложно. Не понимать что-то нормально.

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

Однажды студент мне написал, что прослушал лекцию и ничего не понял. Я спросила, что именно, но он настолько запутался, что даже не смог сформулировать. В итоге я написала ему огромное сообщение, где в метафорах разъяснила всё, о чём говорилось.

Что-то не понимать нормально. Нужно просто двигаться дальше: писать, учить. Это ужасный момент разочарования, но, если продолжать биться, потом поймёшь, что на самом деле это было очень просто.

Чтобы было легче, нужно много читать: про типы данных,основы программирования на Python, циклы, условия. Перед тем как начать кодить, рисуйте блок-схемы, пишите решения задач русскими буквами. Это первый шаг к пониманию. После этого повторите на синтаксисе языка. Сделали? Значит, вы уже что-то можете.

К типам данных (словари, списки) я советую регулярно возвращаться в течение всего обучения. Получаешь опыт возвращаешься снова: тогда и понимаешь, для чего это тебе было нужно. А ещё про эти самые типы очень любят спрашивать на собеседованиях.

Можно учиться самостоятельно, но это сложно: нет программы, структуры и понимания, как это делать. В интернете бездна информации, ты пытаешься её изучать, систематизировать, но тонешь и не понимаешь, как её применить. Так можно упустить важное и заморочиться на мелочах. Одна моя одногруппница так же училась Python-разработке: решала сугубо теоретические задачи. В результате у неё нет понимания, как применять полученные знания в работе.

И некоторые учебники не предполагают самостоятельногоизучения Python, например Марка Лутца немногие смогут дочитать до конца. Такие книги хороши для закрепления знаний. Как вариант, можно попробовать занятия на Coursera или подобных ресурсах. Есть сайты и даже игры с базовыми задачками по программированию. Но в большинстве своём они далеки от того, что придётся делать на работе.Обучение Pythonна курсах дополнительно экономит время: вам не нужно искать ответы самостоятельно. Вы можете задавать их преподавателю, чтобы лучше разобраться в теме. Но читать учебники нужно. Они дают возможность глубже вникнуть.

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

Лучший учебник для новичков, по моему мнению, Изучаем Python. Программирование игр, визуализация данных, веб-приложения Эрика Мэтиза. Ещё можно послушать онлайн-лекции на YouTube, напримертакие.

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

Как устроиться на работу джуном

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

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

Для работы нужно знать треть от требуемого в вакансии.В списке требований практически любой вакансии джуна куча библиотек, часть из которых на самом деле не понадобится. Если вы знаете хотя бы 3040 % из того, что требуется, смело идите и пробуйте.

Найти работу легко.На рынке острый дефицит кадров, огромные запросы и ужасная текучка. Новичок может устроиться на позицию аналитика данных на зарплату 90120 тыс. рублей. Хорошего уровня джуниор может рассчитывать на 8090 тыс. рублей. Есть вакансии с зарплатой в 30 тыс. они дают прокачать опыт, но больше подходят студентам вузов, которые ещё не заинтересованы в высоком доходе. У нас на курсах бывают те, кто вряд ли может себе позволить низкую зарплату, но джуниору реально найти вакансию с хорошей оплатой. Правда, это может занять чуть больше времени.

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

Продолжайте учиться.В первые 3 месяца на новом месте вас может настигнуть стресс: вы будете осваиваться, привыкать, вникать, что делает компания и для чего. А потом стоит выдохнуть: как только поймёте, что справляетесь с базовыми задачами, ищите, как сделать лучше. Это способ быстро дорасти до мидла.

По сути, джуниоры отличаются от мидлов только опытом работы: у первых есть только знания, которые они учатся применять, а мидлы уже понимают, на чём они специализируются и как эффективно решать рабочие задачи. Мидлам нужно хорошо знать библиотеки и понимать, какие алгоритмы они используют и почему. Алгоритмы это база: их спрашивают даже на собеседованиях в Google и Amazon. Без знаний алгоритмов невозможно заставить код работать хорошо и быстро. Если вы пытаетесь прокачаться до мидла, попробуйте прочитать книгу Python Cookbook Дэвида Бизли.

Как проходить собеседования

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

Учитесь на ошибках.Джунам на собеседованиях задают практически одни и те же вопросы. Если вы не смогли ответить на них, запомните их и найдите ответы. На Хабре была яркая история про разработчика, который в Кремниевой долине ходил по собеседованиям на мидла, а потом дома разбирал сложные вопросы. Походив полгода, он устроился сеньором на гораздо более высокую зарплату, чем планировал изначально.

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

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

Список самых частых вопросов

Когда я в Сбербанке участвую в собеседованиях на вакансию питониста, обращаю внимание на то, умеет ли кандидат решать задачи на оптимизацию, быстро ли отрабатывает код, который он пишет. Вот о чём ещё могут спросить:

  • изменяемые и неизменяемые типы данных это спрашивают практически на любом собеседовании;

  • итератор, генератор, декоратор;

  • разница между листом и генератором об этом обязательно спросят;

  • магические функции;

  • реализация алгоритма сортировки слиянием Python;

  • multithreading vs. multiprocessing.

Вотздесьможно посмотреть подробнее про типовые вопросы.

Из софт-скиллов мне важно умение работать в команде, общаться, выражать свои мысли, презентовать себя. Понятно, что собеседование это стресс, и там нервничают все. Но по тому, что и как вы делаете, зачастую становится понятно, уживётесь ли вы в команде, комфортно ли будет с вами работать. На наших курсах мы учим работать в гибких командах по Agile и Scrum: эти методики сейчас применяют практически все команды разработки.

Обычно этап личной беседы наступает уже после предварительного отбора, прохождения тестов, решения задач. Когда понятно, что ты подходишь. Бывает и так, что из-за волнения человек проходит техническое собеседование, но проваливает собеседование с руководителем. Я наблюдала ситуации, когда в итоге на работу брали того кандидата, который уверенно говорил всякие непонятные для руководства слова, хотя объективно по уровню знаний уступал своему сопернику. Всегда есть тот, кто знает и умеет больше тебя. Но это не повод себя обесценивать. Да, ты джуниор, но ты классный джуниор. А всему, чего не знаешь, ты научишься.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru