Just Code IT — крутой и полезный канал для всех, кто увлекается программированием и следит за новостями из мира IT 😎
Там вы найдете:
— Обсуждения тонкостей языков, алгоритмов, ИБ, компиляторов;
— Посты про качество кода и системное программирование;
— Дайджесты в сфере прикладного IT и научно-популярные статьи.
Вот несколько постов, которые точно будут полезны:
● инструменты для повышения продуктивности;
● интересные статьи про анимированные эллиптические кривые;
● подробный разбор фактов — Угадай DDI-2.
Подписывайтесь на канал по ссылке, чтобы не пропустить ни одного интересного материала 🔥
Протоколы передачи данных: что это, какие бывают и в чём различия?
Интернет очень большой и комплексный. Но на базовом уровне это всего лишь связь между различными компьютерами (не только персональными). Эта связь представляет из себя сетевые протоколы передачи данных — набор правил, который определяет порядок и особенности передачи информации для конкретных случаев.
IP — Internet Protocol
Протокол передачи, который первым объединил отдельные компьютеры в единую сеть. Самый примитивный в этом списке. Он является ненадёжным, т. е. не подтверждает доставку пакетов получателю и не контролирует целостность данных. По протоколу IP передача данных осуществляется без установки соединения.
Основная задача этого протокола — маршрутизация датаграмм, т. е. определение пути следования данных по узлам сети.
TCP/IP — Transmission Control Protocol/Internet Protocol
Это стек протоколов TCP и IP. Первый обеспечивает и контролирует надёжную передачу данных и следит за её целостностью. Второй же отвечает за маршрутизацию для отправки данных. Протокол TCP часто используется более комплексными протоколами.
UDP — User Datagram Protocol
Протокол, обеспечивающий передачу данных без предварительного создания соединения между ними. Этот протокол является ненадёжным. В нём пакеты могут не только не дойти, но и прийти не по порядку или вовсе продублироваться. Основное преимущество UDP протокола заключается в скорости доставки данных. Именно поэтому чувствительные к сетевым задержкам приложения часто используют этот тип передачи данных.
FTP — File Transfer Protocol
Протокол передачи файлов. Его использовали ещё в 1971 году — задолго до появления протокола IP. На текущий момент этим протоколом пользуются при удалённом доступе к хостингам. FTP является надёжным протоколом, поэтому гарантирует передачу данных.
Этот протокол работает по принципу клиент-серверной архитектуры. Пользователь проходит аутентификацию (хотя в отдельных случаях может подключаться анонимно) и получает доступ к файловой системе сервера.
DNS
Это не только система доменных имён (Domain Name System), но и протокол, без которого эта система не смогла бы работать. Он позволяет клиентским компьютерам запрашивать у DNS-сервера IP-адрес какого-либо сайта, а также помогает обмениваться базами данных между серверами DNS. В работе этого протокола также используются TCP и UDP.
HTTP — HyperText Transfer Protocol
Изначально протокол передачи HTML-документов. Сейчас же он используется для передачи произвольных данных в интернете. Он является протоколом клиент-серверного взаимодействия без сохранения промежуточного состояния. В роли клиента чаще всего выступает веб-браузер, хотя может быть и, например, поисковый робот. Для обмена информацией протокол HTTP в большинстве случаев использует TCP/IP.
HTTP имеет расширение HTTPS, которое поддерживает шифрование. Данные в нём передаются поверх криптографического протокола TLS.
NTP — Network Time Protocol
Не все протоколы передачи нужны для обмена классического вида информацией. NTP — протокол для синхронизации локальных часов устройства со временем в сети. Он использует алгоритм Марзулло. Благодаря нему протокол выбирает более точный источник времени. NTP работает поверх UDP — поэтому ему удаётся достигать большой скорости передачи данных. Протокол достаточно устойчив к изменениям задержек в сети.
SSH — Secure SHell
Протокол для удалённого управления операционной системой с использованием TCP. В SSH шифруется весь трафик, причём с возможностью выбора алгоритма шифрования. В основном это нужно для передачи паролей и другой важной информации. SSH часто применяется при работе с хостингами, когда клиент может удалённо подключиться к серверу и работать уже оттуда.
Станьте уверенным разработчиком главного языка “энтерпрайза”, Java, вместе с Хекслетом!
Кому подойдёт обучение:
✅ Новичкам, которые хотят освоить профессию с нуля.
✅ Тем, кто уже пробовал учиться самостоятельно, но чувствует потребность в наставнике.
✅ Тем, кто пробовал учиться на сторонних курсах, но до сих пор испытывает сложности в самостоятельном написании кода.
Курс поможет освоить язык, алгоритмы и структуры данных, работу с микросервисами, фреймворком Spring Boot, базами данных и инфраструктурой.
Начните прямо сейчас, переходите по ссылке выше. Вводные курсы профессии доступны бесплатно сразу после регистрации👆👆👆
Оцените формат и решите, стоит ли продолжать!
Ищете, где задать вопросы об ИТ и получить простой ответ без снобизма? Журнал «Код» поможет разобраться в сложных айтишных штуках.
Объясняют доступным языком. Подписывайтесь: @thecodemedia
Как стартапу развивать свой продукт с корпорацией?
⚡️ 24 октября в 14.00 (МСК) приглашаем вас на онлайн-встречу с представителем экосистемы MTS StartUp Hub, который расскажет про возможности развития технологических компаний в среде корпоративных инноваций и поделится примерами из практики МТС.
Ключевые темы:
🔹 как технологической компании попасть на орбиту корпорации
🔹 как корпорация отбирает инновационные проекты
🔹 каким требованиям должен отвечать проект
🔹 как проекту подтвердить соответствие этим требованиям
👨💻 Спикер: Андрей Краснопеев, руководитель проектов внешних партнерств в MTS StartUp Hub.
✅ Вы узнаете, где крупные компании ищут инновации, какие задачи ставят при работе с инновационными проектами, какие проекты попадают в MTS StartUp Hub и как не допускать ошибки при работе с корпорациями.
Успеть зарегистрироваться
Реклама. Рекламодатель Фонд развития интернет-инициатив Pb3XmBtzsrM3ZvD2w6LwzXHof1tQy4yURqCxsjL
🚀OTUS ведёт набор на онлайн-курс «QA Lead» и проводит бесплатный вебинар на тему «Применение инструментов системного мышления для оптимизации и улучшения процесса тестирования»: регистрация
На вебинаре мы разберёмся, какие инструменты может использовать QA лид для вскрытия системных проблем и поиска их причин. Изучим в формате воркшопа такие инструменты, как:
— 5 почему;
— CLD диаграммы (Casual loop Diagram), как способ графического представления системы и процессов;
— построение Value stream map.
Экспертизой поделится преподаватель-практик Анастасия Асеева-Нгуен (Head of QA, Tinkoff)
🔥Регистрируйтесь сейчас — напомним перед вебинаром!
Что важнее: ядра или потоки?
Что такое технология мультипоточности и для чего она нужна?
Если очень просто - то это второй поток команд, который используется планировщиком задач операционной системы, чтобы использовать ресурсы процессора более эффективно.
А теперь чуть сложнее. Во время работы к вычислительным ядрам процессора идет непрерывный поток команд от планировщика операционной системы. Теперь представим, что у нас процессор на 1 ядро и 1 поток и мы работаем в какой-то программе. У нас все хорошо, так как поток команд от этой программы идет на ядро, оно его обрабатывает - все гуд.
Теперь открываем еще одну программу. Планировщик также помещает ее инструкции в очередь, но ядро у нас всего одно. Тогда, в зависимости от приоритета, одна из программ тупо не будет выполняться, так как выполнять ее не на чем - ядро-то одно.
В 2002 году в intel озадачились этой проблемой. Так как процессор на 2 физических ядра был еще не готов, решили изящно выкрутиться из положения: к одному физическому ядру подводить два потока инструкций. Так и получился Hyper-Threading.
Главное отличие физических ядер от логических.
Само собой, логическое ядро - это не дополнительный вычислительный блок, а как бы второй путь к одному блоку, так что "производительность на бумаге" он не увеличивает... НО
Теперь при открытии второй программы, первая не перестанет выполняться а будет ожидать процессорное время, и если оно появится - ядро переключится на второй поток и будет исполнять уже его, и, если это нужно, позже снова переключится на первый поток. Таким нехитрым образом на одном ядре можно исполнять сразу два потока команд.
Даже больше скажу: если одна программа задействует два потока, то в случае какой-то проблемы с первым потоком ядро опять таки переключится на второй поток и продолжит выполнение программы, а не будет ждать, пока решится проблема на первом потоке.
Если подытожить, то мультипоточность - это когда одно ядро процессора может выполнять несколько потоков команд, но не параллельно (ядро все-таки одно), а последовательно, но может в любой момент переключаться между ними, либо выполнять несколько программ параллельно (пусть и не так эффективно, как полноценные два ядра).
А что лучше - 4/8 или 6/6?
Теперь - простой вопрос. Что лучше взять - процессор на 4 ядра и 8 потоков или на 6 физических ядер, но без мультипоточности. Тут все зависит от того, для чего берется компьютер (имею в виду, для каких задач).
Мы ведь помним, что количество потоков никак не влияет на количество физических ядер, а только повышает эффективность их работы, позволяя одновременно обрабатывать сразу два потока данных. Обычно это дает прирост производительности где-то от 5 до 30%.
В 6-ядерном процессоре больше самих конвейеров, и плевать тут на то, что работают они не так эффективно. Запускаем одну тяжелую задачу - процессор на 6 ядер (при условии полной нагрузки на все ядра обоих процессоров) будет сильно быстрее, так как у него тупо больше ядер.
Для примера можно взять i5 9500 и i3 10105F. Они имеют похожую архитектуру, одинаковую буст-частоту и одинаковый поядерный объем L1 и L2 кэшей (64 и 256 кб соответственно). В большинстве задач именно i5 на 6 ядер и 6 потоков окажется быстрее, но всего на 5-10%, а если одновременно нужно выполнять огромную кучу задач - между процессорами установится паритет, так как i3 тупо работает эффективнее.
Освоить мобильную разработку с нуля можно на курсах Яндекс Практикума.
→ Android-разработка: 12 месяцев, языки Java и Kotlin
→ iOS-разработка: 10 месяцев, язык Swift
Изучить новую профессию реально, если правильно выстроить программу и усердно заниматься. Упорство зависит от вас, а о программе позаботился Практикум.
— Освоить базовые принципы программирования помогает двухнедельный курс «Бассейн».
— Программа основана на реальных требованиях работодателей к младшим специалистам.
— Интерактивный тренажёр помогает освоить теорию и закрепить её в тестах.
— Практика идёт на учебных проектах для портфолио.
А ещё на курсе много работы с опытными специалистами:
— наставники-разработчики разбирают сложные темы на живых вебинарах.
— команда поддержки отвечает на вопросы по теории в тренажёре.
— код-ревьюеры проверяют проекты и подсказывают, как их улучшить.
— кураторы помогают с организацией и расписанием.
— карьерный центр учит работать с резюме, мотивационными письмами, портфолио и готовиться к собеседованиям.
Попробуйте и напишите своё первое приложение бесплатно
→ Andriod
→ iOS
🔱 Искал хакатон, а нашел золото!
Разработай IT-решение на первом онлайн-хакатоне от лидера золотодобычи - компании «Полюс» и поборись за призовой фонд 300 000 рублей!
Тебя ждут:
🔸 2 дня интенсивной работы с опытными экспертами золотодобывающей компании «Полюс»;
🔸 Задачи по Mobile&Web и DS-разработке, возможность внести реальный вклад в развитие отрасли;
🔸 Призовой фонд 300 000 рублей;
🔸 Неповторимая атмосфера фана и нетворкинга в среде единомышленников.
▶️ Успей подать заявку до 10 октября на сайте: polyus-hack.ru!
Успей подать заявку на участие в масштабном онлайн-хакатоне MORE.Tech 4.0 с призовым фондом 1 100 000 рублей!
⏰ Менее недели до завершения регистрации!
Что будет:
⚡️ С головой погрузишься в интересные задачи: разработаешь профильную ленту бизнес-новостей или веб-сервис с элементами геймификации для сотрудников Банка ВТБ;
⚡️ Познакомишься с опытными ИТ-специалистами ВТБ;
⚡️ Прокачаешься в разработке за 3 дня, как за месяц.
🏆 Помимо главного денежного приза в 1 100 000 рублей, тебя ждут нетворкинг, фирменный мерч и другие приятные подарки!
👉 Если нет своей команды — поможем ее собрать.
Регистрируйся и вступай в чат единомышленников, вступай в команду или создавай свою!
Прием заявок до 3 октября, успевай!
moretech.vtb.ru
Сколько можно заработать на 3D-визуализации?
⠀
Олег Кононыхин, 3D-визуализатор с 20-летним опытом, заработал в 2021 году только на картинках в 3D Max 4 млн руб. Из них 500к составил пассивный доход.
⠀
Да, вы можете сказать, что это опытный 3D-визуализатор. Но, ребята, всему нужно учиться.
⠀
Олег прошел путь от монтажа лифтов до 3D-моделирования. Он начинал методом "проб и ошибок", когда образование было еще не так доступно.
⠀
Поэтому сейчас он создал большой проект, в котором делится накопленными знаниями, проводит бесплатные практические тренинги и рассказывает, как стать визуализатором и начать зарабатывать уже в этом году.
⠀
Подписывайтесь на канал Олега и забирайте его опыт -> @diskill_3d
⚡️ Масштабный онлайн-хакатон MORE.Tech 4.0 с призовым фондом 1 100 000 ₽ от банка ВТБ!
🟣 DATA и WEB задачи: разработай профильную ленту бизнес-новостей или веб-сервис с элементами геймификации для сотрудников ВТБ.
Что будет:
🔹 Познакомишься с опытными IT-специалистами ВТБ;
🔹 Прокачаешься в разработке за 3 дня, как за месяц;
🔹 Лимитированный мерч;
🔹 Нетворкинг и другие приятные бонусы.
Если нет своей команды — поможем ее собрать, вступай в команду на платформе хакатона или найди ее в чате.
Регистрируйся и вступай в чат участников, получи ответы на волнующие вопросы, найди команду или создай свою.
▶️Прием заявок уже идет, первые 300 участников, загрузившие решение - получают фирменный мерч от ВТБ.
❗️Успевай подать заявку, жми на этот текст.
Что важнее: ядра или потоки?
Что такое технология мультипоточности и для чего она нужна?
Если очень просто - то это второй поток команд, который используется планировщиком задач операционной системы, чтобы использовать ресурсы процессора более эффективно.
А теперь чуть сложнее. Во время работы к вычислительным ядрам процессора идет непрерывный поток команд от планировщика операционной системы. Теперь представим, что у нас процессор на 1 ядро и 1 поток и мы работаем в какой-то программе. У нас все хорошо, так как поток команд от этой программы идет на ядро, оно его обрабатывает - все гуд.
Теперь открываем еще одну программу. Планировщик также помещает ее инструкции в очередь, но ядро у нас всего одно. Тогда, в зависимости от приоритета, одна из программ тупо не будет выполняться, так как выполнять ее не на чем - ядро-то одно.
В 2002 году в intel озадачились этой проблемой. Так как процессор на 2 физических ядра был еще не готов, решили изящно выкрутиться из положения: к одному физическому ядру подводить два потока инструкций. Так и получился Hyper-Threading.
Главное отличие физических ядер от логических.
Само собой, логическое ядро - это не дополнительный вычислительный блок, а как бы второй путь к одному блоку, так что "производительность на бумаге" он не увеличивает... НО
Теперь при открытии второй программы, первая не перестанет выполняться а будет ожидать процессорное время, и если оно появится - ядро переключится на второй поток и будет исполнять уже его, и, если это нужно, позже снова переключится на первый поток. Таким нехитрым образом на одном ядре можно исполнять сразу два потока команд.
Даже больше скажу: если одна программа задействует два потока, то в случае какой-то проблемы с первым потоком ядро опять таки переключится на второй поток и продолжит выполнение программы, а не будет ждать, пока решится проблема на первом потоке.
Если подытожить, то мультипоточность - это когда одно ядро процессора может выполнять несколько потоков команд, но не параллельно (ядро все-таки одно), а последовательно, но может в любой момент переключаться между ними, либо выполнять несколько программ параллельно (пусть и не так эффективно, как полноценные два ядра).
А что лучше - 4/8 или 6/6?
Теперь - простой вопрос. Что лучше взять - процессор на 4 ядра и 8 потоков или на 6 физических ядер, но без мультипоточности. Тут все зависит от того, для чего берется компьютер (имею в виду, для каких задач).
Мы ведь помним, что количество потоков никак не влияет на количество физических ядер, а только повышает эффективность их работы, позволяя одновременно обрабатывать сразу два потока данных. Обычно это дает прирост производительности где-то от 5 до 30%.
В 6-ядерном процессоре больше самих конвейеров, и плевать тут на то, что работают они не так эффективно. Запускаем одну тяжелую задачу - процессор на 6 ядер (при условии полной нагрузки на все ядра обоих процессоров) будет сильно быстрее, так как у него тупо больше ядер.
Для примера можно взять i5 9500 и i3 10105F. Они имеют похожую архитектуру, одинаковую буст-частоту и одинаковый поядерный объем L1 и L2 кэшей (64 и 256 кб соответственно). В большинстве задач именно i5 на 6 ядер и 6 потоков окажется быстрее, но всего на 5-10%, а если одновременно нужно выполнять огромную кучу задач - между процессорами установится паритет, так как i3 тупо работает эффективнее.
В телеграм появился новый канал про облачные технологии и безопасность в них!
Там каждый день мы делимся новостями по взлому, инцидентам, трендам и новым сервисам в облаках!
Присоединяйся к каналу.
Game Dev термины которые должен знать каждый разработчик
AAA(Triple-A) - Термин “AAA-игра” используется в игровой индустрии для обозначения наиболее высокобюджетных компьютерных игр, рассчитанных на массовую аудиторию.
Agent - Внутриигровой персонаж или объект, использующий Al для взаимодействия с другими объектами.
Asset - Сокращение всего, что входит в игру - объектов, звуков, карт и т. Д.
Cinematics(Cutscenes) - Сегменты игры, которые не контролируются игроком.
Collision - Действие двух объектов, которые сближаются и касаются/ударяются друг о друга.
Clipping - Процесс предопределения определенных областей в игре, в которых происходит рендеринг.
Culling - Обнаружение, изоляция и отклонение любых ненужных данных.
Edge - Связь между двумя вершинами угла.
Event - Игровое действие, выполняемое пользователем.
Game Engine - Программное обеспечение, которое предлагает набор инструментов и функций для создания игр.
Gold master - Игра, соответствующая всем требованиям издателя и платформы.
Lightmap - Предварительно отрисованная система освещения, которая сохраняется для постоянного использования в игре.
Mechanics - Основные функции, правила и результаты, определяющие игровой процесс.
Mesh - Совокупность вершин, ребер и граней, которые служат основой модели.
Model - Полностью трехмерный объект, созданный путем добавления текстур и других функций к сетке.
Physics - Использование реальных законов физики, чтобы сделать игру более реалистичной.
Polygon - многоугольник образованный гранями полигональной сетки.
Prop - Интерактивные объекты в игре.
Rendering - Процесс получения изображения из 2D или 3D модели. Компьютерный расчет и визуализация объектов и сцен со всей информацией о материалах, текстурах и освещении.
Shaders - Небольшие программы, обычно используемые для управления световыми и теневыми эффектами.
Terrain - Все, на чем создается окружающая среда в игре.
Texture - Визуальная обертка вокруг объектов, например кожи персонажа.
Tile - Изображение, которое используется для создания других изображений большего размера.
Подборка инструментов инженера данных под разные задачи.
Взгляните, вдруг всё это время вы забивали гвозди микроскопом?
А если вы хотите сделать архитектуру данных на работе ещё мощнее — обратите внимание на курс Яндекс Практикума.
Пройдите тест в бесплатной вводной части курса, чтобы понять, подходит ли вам программа.
Признаки senior-разработчика
Senior
Подобно другим названиям в мире программирования, таким как junior или full-stack, определение сеньора у разных людей и компаний может отличаться. Однако часто все сводится к следующим качествам: опыт, лидерство, наставничество и технические способности.
Сильные навыки отладки
Не обязательно, что сеньоры пишут код без ошибок, но у них есть знания и инструменты, с помощью которых они могут диагностировать и решать любую проблему в своей области.
Знать, когда лучше не использовать
Существует так много интересных и полезных инструментов, что сложно знать, когда использовать устоявшиеся передовые практики, а когда рискнуть и попробовать что-то новое. Сеньоры благоразумно избегают риска; они знают, что хорошее ПО - это работающее ПО.
Упрощение сложных действий
Если вы не можете объяснить что-то простыми словами, то вы недостаточно хорошо это понимаете. Сеньоры могут легко донести свою точку зрения до других разработчиков, с которыми они работают.
Обучение других разработчиков
Они с энтузиазмом делятся своими знаниями и тем самым повышают уровень не только команды, но и собственных навыков.
Внимательно проводит код-ревью
Новые разработчики обычно пропускают код-ревью. Да, проверка чужого кода может быть сложной и монотонной, но чтобы достичь высот, вам нужно признать, насколько это важно. Ваша работа - использовать свой многолетний опыт.
https://t.me/sympace
Вы спросите, о чем мы будем болтать? Да ни о чем! Или обо всем сразу😜
Помните, все эти разговоры в офисе у кулера или в курилке?
Ну, там, где обсуждают все траблы и фичи! Так вот, об этом и будем болтать: не душно, не серьезно, смотрите сами! 😎