Pull to refresh
0
0
Mihalytch @Mihalytch

User

Send message

Самый крутой бесплатный ресурс по обучению программированию с нуля

Reading time3 min
Views84K
image


Куинси Ларсон, основатель бесплатной образовательной платформы для программистов freeCodeCamp

Куинси Ларсон


Путь Куинси Ларсона в программирование был замысловатым. Он 6 лет был директором школы и вдруг ему захотелось повысить эффективность системы образования, поэтому стал учиться программированию. Куинси Ларсон проанализировал, какие были учебные программы (буткэмпы) на тот момент и понял, что ни о какой доступности и открытости нет речи, и тогда решил сделать свой инклюзивный-диверсити-бесплатный образовательный лагерь в 2014 году. Куинси Ларсон хотел помочь начинающим программистам, чтобы те не шли таким корявым путем как он сам. Благодаря freeCodeCamp теперь никто больше не должен есть стекловату и смотреть в бездну. Узнав про мотивацию Куинси Ларсона, я обрадовался, ибо не один я такой странный и хочу собрать концентрат, Ontol, самых полезных бесплатных материалов в одном месте.

Помимо работы над freeCodeCamp, Куинси Ларсон борется за свободный интернет, контрибьютит в open-source и играется со своими двумя детишками.

freeCodeCamp


Образовательной платформой FreeCodeCamp пользуются 350 000 студентов в день из 160 стран. За 2021 год студенты провели за обучением 2,1 млрд минут или 4000 лет. 217 000 учеников считают себя выпускниками этой школы, 40 000 получили работу ИТишника впервые, после обучения тут.

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

На русском языке про FreeCodeCamp нет странички в Википедии (хотя есть на сербском, албанском, португальском, манипури, румынском, малаяльском языках), зато есть сотни более кривых «пересказов» их курсов на русском языке, но не бесплатно, а за 150к+
Читать дальше →
Total votes 31: ↑21 and ↓10+11
Comments11

Регулярные выражения: никакой магии

Reading time13 min
Views35K
image

Код этого поста, как и сам пост, выложен на github.

До недавнего времени регулярные выражения казались мне какой-то магией. Я никак не мог понять, как можно определить, соответствует ли строка заданному регулярному выражению. А теперь я это понял! Ниже представлена реализация простого движка регулярных выражений менее чем в 200 строках кода.

Часть 1: Парсинг


Спецификация


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

  • . — соответствие любому символу
  • | — соответствие abc или cde
  • + — соответствие одному или более предыдущего паттерна
  • * — соответствие 0 или более предыдущего паттерна
  • ( и ) — для группировки

Хотя набор опций невелик, с его помощью можно создать интересные regex-ы, например, m (t|n| ) | b позволяющий найти субтитры к Star Wars без субтитров к Star Trek, или (..)* для нахождения множества всех строк чётной длины.

План атаки


Мы будем анализировать регулярные выражения в три этапа:

  1. Парсинг (синтаксический анализ) регулярного выражения в синтаксическое дерево
  2. Преобразование синтаксического дерева в конечный автомат
  3. Анализ конечного автомата для нашей строки

Для анализа регулярных выражений (подробнее об этом ниже) мы будем использовать конечный автомат под названием NFA. На высоком уровне NFA будет представлять наш regex. При получении входных данных мы будем перемещаться в NFA от состояния к состоянию. Если мы придём в точку, из которой невозможно совершить допустимого перехода, то регулярное выражение не соответствует строке.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments5

9 учебных проектов для бэкендера

Reading time3 min
Views116K
image
источник КДПВ

Ранее на Хабре публиковался перевод статьи с Medium'а с подборкой из 8 проектов, которые можно реализовать, изучая новый язык или фреймворк. На мой взгляд, подборка очень неплохая. Проблема в том, что рассчитана она только на фронтендеров и мобильных разработчиков. А я из другого лагеря.

Покопавшись в своих заметках, я собрал для вас подборку идей на тот случай, если чешутся руки сделать что-нибудь своё. Все эти «проекты» уже существуют в том или ином виде, но, иногда интересно написать свой бэкенд-велосипед и проехать на нем по граблям.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments20

Понимание критического пути рендеринга

Reading time5 min
Views65K

Браузеру предстоит пройти много шагов, прежде чем HTML-ответ от сервера будет преобразован в пиксели на экране. Последовательность этих шагов, необходимая для первого отображения страницы, называется «Критический путь рендеринга» (ориг. Critical Rendering Path).


Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments11

Структуры данных. Неформальный гайд

Reading time6 min
Views166K


Конечно, можно быть успешным программистом и без сакрального знания структур данных, однако они совершенно незаменимы в некоторых приложениях. Например, когда нужно вычислить кратчайший путь между двумя точками на карте, или найти имя в телефонной книжке, содержащей, скажем, миллион записей. Не говоря уже о том, что структуры данных постоянно используются в спортивном программировании. Рассмотрим некоторые из них более подробно.
Читать дальше →
Total votes 91: ↑83 and ↓8+75
Comments31

Selenium для Python. Глава 1. Установка

Reading time5 min
Views471K
Представляю перевод неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.

Предисловие от автора статьи


Selenium WebDriver – это программная библиотека для управления браузерами. WebDriver представляет собой драйверы для различных браузеров и клиентские библиотеки на разных языках программирования, предназначенные для управления этими драйверами.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments12

Приём радиофаксов и прочих цифровых передач с помощью обычного приёмника и компьютера

Reading time3 min
Views71K

Один из неудачных радиофаксов

С чем у нас обычно ассоциируется слово «факс»? Большинство представят гибрид принтера и телефона, с помощью которого передают документы в отдаленные уголки планеты. Но знаете ли вы, что факсом пользуются моряки при отсутствии интернета? По факсу японское новостное агентство Kyodo передаёт новости на двух языках, а различные метеоцентры — погоду на несколько дней вперед. И мы тоже можем все это получить и раскодировать — нужен лишь компьютер и подходящий приемник.
И как все это выглядит?
Total votes 80: ↑79 and ↓1+78
Comments51

300 потрясающих бесплатных сервисов

Reading time11 min
Views1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Total votes 341: ↑325 and ↓16+309
Comments107

Самые нужные плагины для Grunt

Reading time6 min
Views49K


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

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

А еще я выложил подборку на GitHub, чтобы каждый мог пополнить коллекцию.

Читать дальше →
Total votes 53: ↑48 and ↓5+43
Comments43

Компрессорная Башка

Reading time1 min
Views51K
— Вертер, а у вас есть что-нибудь такое, чего не было сто лет назад?
— Состязание роботов-гитаристов. Роботов-гитаристов.
© Гостья из будущего


Можно считать длительные выходные затянувшейся пятницей? Топик несерьёзный, но очень уж позитивные ребята на музыкальных инструментах отжигают, имхо. Хаб «юмор» что-то не нашёл. Топик-ссылки канули в Лету, приходится оформлять обычным топиком. Но не могу не поделиться — я от этих музыкантов просто прибалдел немного :-)

Если бы у Ангуса Янга было бы 78 пальцев?





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

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

Описание Ударника — www.robocross.de/page2.html
«Finngers», т.е. соло-гитарист — www.kernschrottrobots.de/bigengl/fingers.html

Официальный сайт — compressorheadband.com
Читать дальше →
Total votes 74: ↑69 and ↓5+64
Comments54

Как активировать режим Бога в Windows 7

Reading time1 min
Views578K
Знаете ли вы, что вы тоже можете стать Богом!? Ну, по крайней мере, на Windows 7 (по сообщениям пользователей это так же работает и на Windows Vista).

Этот режим позволит вам управлять всеми настройками Windows из удобного графического меню. Вот как его активировать:

1. Щелкните правой кнопкой мыши на любом пустом пространстве рабочего стола.
2. Перейдите в меню Создать и создайте новую папку.
Читать дальше →
Total votes 276: ↑221 and ↓55+166
Comments356

Способы передвижения компьютерных персонажей (часть 3)

Reading time4 min
Views26K
Это заключительная часть серии статей, описывающих перемещения компьютерных персонажей. Я расскажу о смешанных видах передвижений, которые сочетают в себе векторные и плиточные методы, небольшая оптимизация плиточных перемещений и ускорение просчетов добавлением сетки к векторам. А так же поведу общее сравнение всех описанных методов в виде таблицы.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments13

Способы передвижения компьютерных персонажей (часть 2)

Reading time5 min
Views45K
В предыдущей статье я рассказал о видах передвижений и перемещений в плиточном мире. Сегодня расскажу подробней о векторных способах. Как и в прошлый раз расскажу теорию, объясню суть и покажу пример реализации перемещений на языке C++.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments18

Способы передвижения компьютерных персонажей (Часть 1)

Reading time6 min
Views63K
Все, кто начинал заниматься реализацией игрового искусственного интеллекта, наверняка сталкивались с проблемой реализации движений своих персонажей. Дело в том, что поведение и в реальном мире в большей степени определяет интеллектуальность того или иного существа. Даже люди друг друга зачастую оценивают по поведению (что немного неверно). Эта статья рассчитана на тех, кто только приступает к реализации своего первого игрового ИИ. Я расскажу о видах перемещений, их преимуществах и недостатках, а также покажу на примере как можно реализовать тот или иной способ на языке C++. Замечания и критика, а так же свои точки зрения приветствуются.
Читать дальше →
Total votes 77: ↑67 and ↓10+57
Comments14

Структуры данных, PHP. Часть вторая

Reading time11 min
Views39K
Продолжаю совмещать приятное с полезным и переводить. Сегодня речь зайдет о кучах (heaps) и графах. Как обычно, материал скорее подойдет новичкам — большая часть информации, если не вся, уже где-то так или иначе освещалась.

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

UPD: Добавил сравнение производительности
Читать дальше →
Total votes 37: ↑29 and ↓8+21
Comments18

Структуры данных, PHP

Reading time9 min
Views83K
Данный пост является переводом и предназначен для новичков. Ну или для тех, кто забыл лекции с начальных курсов своих вузов. Скорее всего, данный материал уже попадался на хабре в той или иной модификации, но здесь упор на PHP и его особенности.

Структуры данных или Абстрактный Тип Данных (ADT) — это модель, определенная как некий набор операций, которые могут быть применены к самой себе и ограничена тем, какой результат дают эти операции.
Большинство из нас сталкиваются со стеком и очередью в повседневной жизни, но что общего между очередью в супермакете и структурой данных? В этом мы и попробуем разобраться в данной статье, где также будут описаны деревья.

http://www.thisiscolossal.com/2013/01/a-wooden-domino-tree-by-qiu-zhijie/



UPD: s01e02

Осторожно, трафик! Очень много текста!
Total votes 57: ↑44 and ↓13+31
Comments17

Crossfilter.js, dc.js и D3.js для визуализации Данных

Reading time4 min
Views35K
Приветствую ценителей красивой и функциональной визуализации данных! Предлагаю вашему вниманию небольшой обзор нескольких JavaScript библиотек, которые вкупе с D3.js позволят создать интерактивную визуализацию многомерных данных с возможностью применения фильтрации «на лету».


Заинтересовались, тогда добро пожаловать под кат.
Читать дальше →
Total votes 54: ↑52 and ↓2+50
Comments15

Explorer-2

Reading time5 min
Views154K


Cпустя день после публикации статьи Explorer-1 (Мой «Спирит») я принялся разрабатывать следующую версию аппарата. По советам хабраюзеров, наметил, что необходимо добавить в Explorer-2:

1. Двусторонняя связь.
2. Камера
3. Дублирующиеся датчики.
4. Больше датчиков.
5. Вменяемый корпус.
6. Спящий режим.
7. Источник питания посерьёзнее захудалой «кроны».

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

Читать дальше →
Total votes 163: ↑154 and ↓9+145
Comments106

Однажды фанера, atmega, да малина

Reading time6 min
Views106K

Введение.


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

Читать дальше →
Total votes 110: ↑108 and ↓2+106
Comments69

Как устроены переменные в PHP

Reading time3 min
Views64K
Вроде простой вопрос, даже не понятно что на него ответить, правда?
Мы все знаем как создать переменную, как получить значение переменной, как взять ссылку на переменную в конце концов.
Но как они работают изнутри?
Что происходит в интерпретаторе, когда вы изменяете значение переменной? Или когда удаляете ее?
Как реализованы типы переменных?

В этой статье я постараюсь раскрыть именно эти темы.

Abstract

Переменные в PHP выражены в виде неких контейнеров, которые хранят в себе тип переменной, значение, кол-во ссылающихся переменных на этот контейнер, и флаг — является ли эта переменная ссылочной.
Немного запутанно, но под катом станет понятней
Total votes 149: ↑133 and ↓16+117
Comments25
1

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity