Точка входа в программирование
21.2K subscribers
995 photos
179 videos
2 files
2.53K links
Фундаментальные знания по основам программирования

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/zrgj
Download Telegram
Код, написанный на JavaScript, обрабатывается движком. Но как именно это происходит «под капотом» и какие процессы в этом задействованы?

В общих чертах и с очень наглядными анимациями

А если решили погрузиться серьёзно, вот огромный цикл статей, которые раскроют внутреннее устройство Java Script лучше любой книги:

1. Обзор движка, механизмов времени выполнения, стека вызовов

2. О внутреннем устройстве V8 и оптимизации кода

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

4. Цикл событий, асинхронность и пять способов улучшения кода с помощью async/await

5. WebSocket и HTTP/2+SSE — что выбрать

6. Особенности и сфера применения WebAssembly

7. Веб-воркеры и пять сценариев их использования

8. Сервис-воркеры

9. Веб push-уведомления

10. Отслеживание изменений в DOM с помощью MutationObserver

11. Движки рендеринга веб-страниц и советы по оптимизации их производительности

12. Сетевая подсистема браузеров, оптимизация её производительности и безопасности

13. Анимация средствами CSS и JavaScript

14. Абстрактные синтаксические деревья, парсинг и его оптимизация

15. Классы и наследование, транспиляция в Babel и TypeScript

16. Системы хранения данных

17. Технология Shadow DOM и веб-компоненты

18. WebRTC и механизмы P2P-коммуникаций

19. Пользовательские элементы

20. Паттерны и анти-паттерны

21. JavaScript ES8 и переход на async/await

#javascript #веб
Что на самом деле нужно учить новичку, кроме языка программирования?

Многие новички сразу бегут писать «хэллоуворлды» на разных языках программирования. Но язык — это только один из необходимых инструментов. Чтобы стать продвинутым разработчиком, полезно понимать фундаментальные концепции.

И вот 8 таких концепций
​Джун или не джун, вот в чем вопрос. Чек-лист для проверки

Спойлер: если к техническим знаниям прилагается автономность — точно растете.

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

Джун растёт, когда он:
– перестаёт делать поспешные выводы — это показывает, что человек смотрит не только на гипотетическое решение задачи, но и на проблему в целом;
– понимает, когда опыта хватает, а когда нужно проконсультироваться;
– знает, где можно найти ответы на сложные для него вопросы;
– задаёт открытые вопросы, на которые нельзя ответить «да» или «нет» и которые помогают понять, что получит заказчик, если решить задачу определённым образом;
– развивает Soft Skills. Важно уметь уточнять, что именно хочет менеджер от разработчика, объяснять РМ какие есть способы решения задачи и какие они несут риски, договариваться и доказывать, быть проактивным, ведь конечный результат зависит от работы всей команды.

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

Если вы делаете что-то сами, находите решения, можете ответить на вопросы менеджеров, заказчика - однозначно растёте.

#советы
​Алгоритмы и структуры данных для начинающих

Уверенное применение структур данных и алгоритмов имеет важное значение при создании программ. Изучить основы поможет серия коротких видеоуроков с примерами на JavaScript. Например, что такое BinarySearchTree, LinkedList, Stack, Queue, их применение, а также другие структуры и алгоритмы:

https://youtube.com/playlist?list=PLIFGfLqvZ-yGHI2Fg0NCgi7FY0h1yh-af

#js #алгоритмы
Топ реальных историй про первую работу: как начиналась карьера в IT у наших читателей

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

Делимся лучшими реальными историями про первую работу:
Как таксист в тяжёлой депрессии стал Python-разработчиком

С завода на завод. Как слесарь стал программистом всего за 8 месяцев

Как пройти путь от галеры в Новосибирске до релокейта на Филиппины

Как стать Golang-разработчиком и получить оффер на 100 000 рублей в 20 лет

Как студент из Красноярска стал фронтенд-разработчиком

#карьера
Назад в 80-е: как сделать аркадный автомат со своей 8-bit игрой?

Авторы статьи решили полностью погрузиться в 80-е и собрали несколько своих аркадных автоматов, к которым написали игру.

Вот, что из этого получилось

#история #gamedev
Почему в байте именно 8 бит?

В байте могло быть 4, 6 или 16 бит, но почему мы остановились именно на 8 бит? Интересная статья на Хабре, в которой отвечают на этот вопрос.

#история
Ребят, ищем человека вести один из ваших любимых каналов

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

Если хотите стать частью нашей уютной команды, узнайте подробнее о вакансии и пишите нам. Давайте познакомимся и сработаемся: https://tprg.ru/bqed

Найдись, тот самый человек! Главред грустит.

#вакансии #работа
Битые файлы для продления дедлайна

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

Делимся с вами подборкой битых файлов самых ходовых форматов: от .docx до .zip. Просто скачиваете нужный файл, отправляете заказчику и продлеваете дедлайн.

#инструменты
Кстати, у нас на сайте вы можете подписаться только на интересные вам теги и отслеживать самые свежие новости и полезные статьи по этой теме.

Вот, например:
— Веб-разработка: https://tproger.ru/tag/web/
— Нейросети: https://tproger.ru/tag/neural-network/
— И геймдев: https://tproger.ru/tag/gamedev/

А ещё можно подписаться на годноту по конкретному языку:
— Python: https://tproger.ru/tag/python/
— JavaScript: https://tproger.ru/tag/javascript/
— C++: https://tproger.ru/tag/cpp/

Посмотрите все теги и выберите только те, которые интересны вам!
Типичный гайд на ютубе
MVP продукта: как внедрить фичу и не растерять пользователей?

MVP — это минимально жизнеспособный продукт. Его создают чтобы минимизировать потери, перед тем, как вывести новые фичи в продакшен. Благодаря ему можно проверить, понравятся ли изменения пользователям.

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

https://tprg.ru/nQ3o
Одни говорят, что без математики никуда. Другие, что нужно уточнять о какой математике идёт речь. Третьи считают что в программировании математики нет.

Нужна ли математика и что на самом деле надо знать для типовых проектов?

Давайте разбираться

#математика
Типизация языков программирования: разбираемся в основах

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

Давайте разбираться подробнее: https://tproger.ru/explain/tipizacija-jazykov-programmirovanija-razbiraemsja-v-osnovah/
gitignore — это своеобразное указание Git, какие файлы нужно игнорировать и не добавлять в репозиторий

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

В этом репозитории вы найдёте огромное количество шаблонов .gitignore практически для всех языков и фреймворков: Ruby on Rails, Python, Perl, Laravel, Java и пр. В нем есть даже шаблон для Fortran! И у него уже больше 149 тысяч звёзд.

#github
Что такое JSON и чем может быть полезен?

JSON или JavaScript Object Notation — текстовый формат обмена данными. И хотя JSON основан на JavaScript, он применяется и при работе с другими языками программирования. Корректные значения JSON — это:
— JSON-объект — неупорядоченное множество пар «ключ:значение», заключённое в фигурные скобки { };
— массив — упорядоченный набор значений, разделённых запятыми и находящийся внутри квадратных скобок [ ];
— число (целое или вещественное) или строка;
— литералы true, false и null.

Давайте на примерах разберёмся, чем JSON может быть полезен и как использовать его правильно: https://tproger.ru/articles/chto-takoe-json-vvedenie/
Почему всё вокруг ломается и виноваты ли в этом компании или такова цена прогресса?

Мы уже привыкли, что наши устройства периодически ломаются или быстро устаревают. Переход с LGA 1156 на «оптимизированный» LGA 1155, неразборные корпусы смартфонов и несъёмные аккумуляторы — как ещё производители организуют планируемое устаревание техники и как мы можем с ним бороться?

Рассказывает наш читатель Александр Клименков: https://tproger.ru/articles/kovarnyj-plan-pochemu-vsjo-vokrug-lomaetsja

#технологии