Category: Общее

09
Апр
2021

🖋 Как создавать инклюзивные и доступные цифровые продукты

Хорошо спроектированный и продуманный UI/UX влияет на желание людей пользоваться продуктом. Разбираемся в мелочах, которые позволяют сделать интерфейс более понятным и привлекательным.

23
Янв
2021

🚀 Объектно-ориентированное программирование – самая большая ошибка компьютерных наук

Рассказываем, как ООП наносит огромный ущерб экономике и почему пора менять парадигму программирования. Присоединяйтесь к надвигающейся революции!

C++ и Java, вероятно, являются одними из худших ошибок, которые когда-либо делала компьютерная наука. Многие выдающиеся программисты, включая создателя ООП Алана Кея, критиковали и продолжают критиковать эти языки за то, что они извратили первоначальную идею и породили самую печально известную парадигму современной разработки.

К несчастью, современное ООП приобрело огромную популярность. Это позволило ему нанести огромный ущерб экономике – триллионы долларов – и даже убить (в буквальном смысле) тысячи человек!

Почему же ООП так опасен?

***

Представьте, что вы садитесь в свою хорошо знакомую машину и едете по хорошо знакомому маршруту. И вдруг что-то идет не так, как всегда. Вы отпускаете педаль газа, но машина продолжает ускоряться! Давите на тормоз – не помогает!

Страшно? Подобный инцидент произошел в 2007 году с Джин Букаут – и еще с сотнями водителей Toyota Camry. Десятки человек погибли.

Производитель ссылался на залипание педалей, человеческий фактор и даже половые коврики, однако истинным виновником оказалось программное обеспечение автомобилей.

Команда экспертов 18 месяцев разбирала кодовую базу Toyota – и нашла сотни потенциальных причин возникновения непреднамеренного ускорения. Код в целом был запутанным и беспорядочным – то, что на сленге называется «спагетти». Из-за этого Toyota пришлось отозвать более 9 млн автомобилей и выплатить более 3 млрд долларов.


Проблема спагетти

Подобные инциденты не уникальны – и это пугает. Например, два самолета Boeing 737 Max потерпели крушение из-за ошибки, вызванной спагетти-кодом (346 жертв, 60 млрд долларов ущерба). То же самое может случиться, например, на атомной электростанции или в реанимационной палате.

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

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

Откуда берется спагетти-код?

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

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

ООП – корень зла

ООП не накладывает на код никаких ограничений, которые могли бы предотвратить его запутывание. Безусловно, есть лучшие практики разработки – внедрение зависимостей, TDD, Domain Driven Design, которые реально помогают. Однако они не внедрены в парадигму, не обеспечиваются ей, и нет инструментария, который мог бы следить за их соблюдением.

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

Ссылочные типы

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

Это превращает программу в один большой сгусток глобального состояния и противоречит первоначальной идее ООП. Алан Кей, создавая свой язык Simula, предполагал, что части программы будут общаться между собой подобно биологическим клеткам, то есть независимо. Они должны были посылать друг другу сообщения, оставаясь закрытыми от внешнего мира (инкапсуляция).

Но в современном ООП одни «клетки» проникают внутрь других и меняют их состояние. Это приводит к большой связанности кода. Изменения в одном месте программы могут привести к неожиданным последствиям в другом.

Предсказуемость

Склонность к спагеттификации – не единственная проблема ООП-парадигмы.

Работая с ПО мы обычно хотим, чтобы оно было надежным и предсказуемым. 2 + 2 всегда должно быть равно 4, а нажатие на педаль тормоза всегда должно приводить к замедлению автомобиля. Это называется детерминированностью.

Если 2+2 будет равно 5 хотя бы один раз из миллиона, это может привести к ужасным последствиям.

В информатике, «недетерминированный алгоритм» – это алгоритм, указывающий несколько путей обработки одних и тех же входных данных, – без какого-либо уточнения, какой именно вариант будет выбран.

Если эта цитата вам не нравится, то это потому, что недетерминированность в целом никуда не годится.

Вот пример кода, который просто вызывает функцию:

nondet-det-func.js
        console.log( 'result', computea(2) );
console.log( 'result', computea(2) );
console.log( 'result', computea(2) );

// result 4
// result 4
// result 4
    

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

А вот другой код:

nondet-nondet-func.js
        console.log( 'result', computeb(2) );
console.log( 'result', computeb(2) );
console.log( 'result', computeb(2) );

// result 4
// result 4
// result 4
// result 2    <=  плохо!
    

Эта функция вернула разные значения для одних и тех же входных параметров. Функция computeb недетерминирована. Она может выдавать ожидаемое значение, но это не гарантируется.

Что делает функцию детерминированной или недетерминированной?

  • Функция, не зависящая от внешнего состояния, на 100% детерминирована.
  • Функция, которая вызывает только другие детерминированные функции, также является детерминированной.
nondet-func-impl.js
        function computea(x) {
  return x * x;
}

function computeb(x) {
  return Math.random() < 0.9
          ? x * x
          : x;
}
    

Результат работы функции computea зависит только от аргумента x и всегда будет одинаков для одинакового x. Эта функция детерминирована.

Функция computeb недетерминирована, потому что вызывает недетерминированную функцию Math.random. С чем мы взяли, что Math.random недетерминирована? Она не принимает аргументов, а вычисление случайной величины основывается на системном времени, то есть зависит от внешнего состояния.

Детерминированный код предсказуем, недетерминированный – нет.

Непредсказуемость

Давайте рассмотрим простую функцию сложения:

nondet-simple-add.js
        function add(a, b) {
  return a + b;
};
    

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

Теперь немного усложним задачу – введем в бой объекты:

nondet-add-boxed.js
        const box = value => ({ value });

const two = box(2);
const twoPrime = box(2);

function add(a, b) {
  return a.value + b.value;
}

console.log("2 + 2' == " + add(two, twoPrime));
console.log("2 + 2' == " + add(two, twoPrime));
console.log("2 + 2' == " + add(two, twoPrime));

// output:
// 2 + 2' == 4
// 2 + 2' == 4
// 2 + 2' == 4
    

Пока все идет хорошо. Давайте внесем небольшое изменение в тело функции add:

nondet-add-mutation.js
        function add(a, b) {
  a.value += b.value;
  return a.value;
}

console.log("2 + 2' == " + add(two, twoPrime));
console.log("2 + 2' == " + add(two, twoPrime));
console.log("2 + 2' == " + add(two, twoPrime));

// output:
// 2 + 2' == 4
// 2 + 2' == 6
// 2 + 2' == 8
    

Что случилось? Внезапно результат перестает быть предсказуемым! В первый раз код сработал нормально, но с каждым последующим запуском его вывод становился все более и более неожиданным.

Другими словами, функция больше не детерминирована.

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

***

Детерминированная программа гарантирует, что 2+2 == 4 . Другими словами для входных параметров (2, 2) функция add всегда должна возвращать 4. Независимо от того, сколько раз вы ее вызвали, работает ли она параллельно и что происходит за ее пределами.

Недетерминированные программы – это полная противоположность. В большинстве случаев вызов add(2, 2) вернет 4 . Но время от времени функция может возвращать 3, 5 или даже 1004. Недетерминизм крайне нежелателен, и теперь вы понимаете, почему.

Каковы последствия недетерминированного кода? В нем легко появляются дефекты – баги, которые заставляют разработчиков тратить драгоценное время на отладку и значительно ухудшают качество работы ПО.

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


Побочные эффекты

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

Вернемся к нашей функции сложения:

nondet-add-func-only.js
        function add(a, b) {
  a.value += b.value;
  return a.value;
}
add(two, twoPrime)
    

Функция add выполняет ожидаемую операцию, она добавляет a к b . Однако это также приводит к побочному эффекту – изменению объекта a.

Так как объекты передаются по ссылке, то и объект two за пределами функции изменился. two.value теперь равно 4. После второго вызова станет 6 и так далее.

Чистота

Разобравшись с детерминизмом и побочными эффектами, мы готовы говорить о чистоте.

Чистая функция – это функция, которая одновременно детерминирована и не имеет побочных эффектов. То есть у нее всегда предсказуемый результат работы, и она не делает ничего лишнего.

Чистые функции имеют множество преимуществ:

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

И так далее. Проще говоря, чистые функции возвращают радость в программирование.

Насколько чисто ООП?

Для примера давайте поговорим о двух фичах ООП — геттерах и сеттерах.

Результат геттера зависит от внешнего состояния — состояния объекта. Многократный вызов геттера может привести к различным выходным данным, в зависимости от состояния системы. Это делает геттеры изначально недетерминированными.

Сеттеры предназначены для изменения состояния объекта, что делает их по своей сути побочными эффектами.

Таким образом, все методы в ООП (кроме, возможно, статических) либо не детерминированы, либо вызывают побочные эффекты. Следовательно, ООП – это что угодно, только не чистое программирование.

Чистое решение

Есть ли что-то, что может спасти программирование – луч надежды в мрачном мире программных сбоев? Что-то достаточно надежное и детерминированное, чтобы на нем можно было строить качественное ПО? Это математика.


В computer science математика воплотилась в парадигме функционального программирования, основанного на системе лямбда-исчисления.

А на чем основано современного ООП? Уже не на биологических законах клеток, как планировал Алан Кей. Оно базируется на множестве нелепых идей вроде классов и наследования, склеенных скотчем, чтобы лучше держались.

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

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

Как я тут оказался?

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

Очень похожий процесс происходит сейчас с ООП. Только вместо вопроса «как я попал в эту точку исполнения», мы спрашиваем «как я попал в это состояние».

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

Функциональное программирование избавит нас от сложных вопросов. Когда состояние остается неизменным, оно не вызывает проблем.

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

А как же спагетти-код?

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

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

Но ООП и ФП дополняют друг друга!

Жаль вас разочаровывать, но это не так.

Объектно-ориентированное программирование – полная противоположность функциональному. Оно нарушает многие фундаментальные принципы:

  • Поощряет нечистоту кода.
  • По своей сути не детерминировано и поэтому непредсказуемо.
  • Принципы композиции для ООП чужеродны и могут лишь привноситься извне.
  • Способствует спагеттификации кода.
  • Усложняет отладку программы и написание тестов.

Программисты ООП тратят большую часть своего времени на исправление ошибок. Программисты ФП – на написание работающего кода.

Действуйте, пока не поздно

ООП было очень большой и ужасно дорогой ошибкой. Давайте все, наконец, признаем это. Если ваш автомобиль работает на объектно-ориентированном ПО, вы не можете быть спокойны.

Пришло время принять меры. Мы все должны осознать опасность ООП и начать делать маленькие шаги в сторону функционального программирования. Это не быстрый процесс, реального сдвига можно ожидать не раньше, чем через 10 лет, однако он должен произойти.

В ближайшем будущем ООП-программисты станут «динозаврами», как сейчас разработчики на COBOL. C++, Java, C# умрут. TypeScript тоже умрет.

Начните изучать функциональное программирование прямо сейчас! F#, ReasonML и Elixir – все это отличные варианты для начала.

Присоединяйтесь к надвигающейся революции!

31
Дек
2020

🎄 С Новым годом!

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

Уходящий год был непростым, и это не дежурная фраза. Кт…

30
Дек
2020

📊 Что такое Big Data простыми словами

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

О тенденция развития больших данных мы писали в статье «Почему Big Data так быстро развивается?». В новой статье расскажем о применениях больших данных простыми словами.

Что такое большие данные?

Big Data – область, в которой рассматриваются различные способы анализа и систематического извлечения больших объемов данных. Она включает применение механических или алгоритмических процессов получения оперативной информации для решения сложных бизнес-задач. Специалисты по Big Data работают с неструктурированными данными, результаты анализа которых используются для поддержки принятия решений в бизнесе.

<a href="https://thinkandsell.com/wp-content/uploads/2017/07/big-data-marketing.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Одно из определений больших данных звучит следующим образом: «данные можно назвать большими, когда их размер становится частью проблемы». Такие объемы информации не могут быть сохранены и обработаны с использованием традиционного вычислительного подхода в течение заданного периода времени. Но насколько огромными должны быть данные, чтобы их можно было назвать большими? Обычно мы говорим о гигабайтах, терабайтах, петабайтах, эксабайтах или более крупных единицах измерения. Тут и возникает неправильное представление. Даже данные маленького объема можно назвать большими в зависимости от контекста, в котором они используются.

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

Как классифицируются большие данные?

Выделим три категории:

  • Структурированные данные, имеющие связанную с ними структуру таблиц и отношений. Например, хранящаяся в СУБД информация, файлы CSV или таблицы Excel.
  • Полуструктурированные (слабоструктурированные) данные не соответствуют строгой структуре таблиц и отношений, но имеют другие маркеры для отделения семантических элементов и обеспечения иерархической структуры записей и полей. Например, информация в электронных письмах и файлах журналов.
  • Неструктурированные данные вообще не имеют никакой связанной с ними структуры, либо не организованы в установленном порядке. Обычно это текст на естественном языке, файлы изображений, аудиофайлы и видеофайлы.
<a href="https://www.google.com/url?sa=i&amp;url=https%3A%2F%2Fwww.msab.com%2F2020%2F03%2F09%2Fbig-data-in-digital-forensics-the-challenges-impact-and-solutions%2F&amp;psig=AOvVaw3LtOCEJLprXk_tb1j89SAW&amp;ust=1609341125999000&amp;source=images&amp;cd=vfe&amp;ved=0CAIQjRxqFwoTCPjK6oS98-0CFQAAAAAdAAAAABAD" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Характеристики больших данных

Большие данные характеризуются четырьмя правилами (англ. 4 V’s of Big Data: Volume, Velocity, Variety, Veracity):

  1. Объем: компании могут собирать огромное количество информации, размер которой становится критическим фактором в аналитике.
  2. Скорость, с которой генерируется информация. Практически все происходящее вокруг нас (поисковые запросы, социальные сети и т. д.) производит новые данные, многие из которых могут быть использованы в бизнес-решениях.
  3. Разнообразие: генерируемая информация неоднородна и может быть представлена в различных форматах, вроде видео, текста, таблиц, числовых последовательностей, показаний сенсоров и т. д. Понимание типа больших данных является ключевым фактором для раскрытия их ценности.
  4. Достоверность: достоверность относится к качеству анализируемых данных. С высокой степенью достоверности они содержат много записей, которые ценны для анализа и которые вносят значимый вклад в общие результаты. С другой стороны данные с низкой достоверностью содержат высокий процент бессмысленной информации, которая называется шумом.

Традиционный подход к хранению и обработке больших данных

При традиционном подходе данные, которые генерируются в организациях, подаются в систему ETL (от англ. Extract, Transform and Load). Система ETL извлекает информацию, преобразовывает и загружает в базу данных. Как только этот процесс будет завершен, конечные пользователи смогут выполнять различные операции, вроде создание отчетов и запуска аналитических процедур.

По мере роста объема данных, становится сложнее ими управлять и тяжелее обрабатывать их с помощью традиционного подхода. К его основным недостаткам относятся:

  • Дорогостоящая система, которая требует больших инвестиций при внедрении или модернизации, и которую малые и средние компании не смогут себе позволить.
  • По мере роста объема данных масштабирование системы становится сложной задачей.
  • Для обработки и извлечения ценной информации из данных требуется много времени, поскольку инфраструктура разработана и построена на основе устаревших вычислительных систем.
<a href="https://www.d3vtech.com/assets/images/insights/what-is-data-science.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Термины

Облачные Вычисления

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

Прогнозная Аналитика

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

Описательная Аналитика

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

Базы данных

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

Хранилище Данных

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

Бизнес-аналитика

Бизнес-аналитика (BI) – это набор инструментов, технологий и концепций, которые поддерживают бизнес, предоставляя исторические, текущие и прогнозные представления о его деятельности. BI включает в себя интерактивную аналитическую обработку (англ. OLAP, online analytical processing), конкурентную разведку, бенчмаркинг, отчетность и другие подходы к управлению бизнесом.

Apache Hadoop

Apache Hadoop – это фреймворк с открытым исходным кодом для обработки больших объемов данных в кластерной среде. Он использует простую модель программирования MapReduce для надежных, масштабируемых и распределенных вычислений.

Apache Spark

Apache Spark – это мощный процессорный движок с открытым исходным кодом, основанный на скорости, простоте использования и сложной аналитике, с API-интерфейсами на Java, Scala, Python, R и SQL. Spark запускает программы в 100 раз быстрее, чем Apache Hadoop MapReduce в памяти, или в 10 раз быстрее на диске. Его можно использовать для создания приложений данных в виде библиотеки или для выполнения специального анализа в интерактивном режиме. Spark поддерживает стек библиотек, включая SQL, фреймы данных и наборы данных, MLlib для машинного обучения, GraphX для обработки графиков и потоковую передачу.

Интернет вещей

Интернет вещей (IoT) – это растущий источник больших данных. IoT – это концепция, позволяющая осуществлять интернет-коммуникацию между физическими объектами, датчиками и контроллерами.

Машинное Обучение

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

Интеллектуальный Анализ Данных

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

<a href="https://cdn.datafloq.com/cache/blog_pictures/878x531/big-data-analytics-paving-path-businesses-decision.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Где применяются большие данные

Аналитика больших данных применяется в самых разных областях. Перечислим некоторые из них:

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

Если вы хотите освоить новую профессию или повысить квалификацию в сфере Big Data, стоит обратить внимание на курс факультета аналитики Big Data онлайн-университета GeekBrains. Программа включает основательную математическую подготовку, изучение языка Python и получение навыков практической работы с базами данных. Также изучаются Hadoop и Apache Spark – востребованные инструменты для работы с большими данными. Курс ориентирован на применение машинного обучения в бизнесе и построен по принципам практической работы над проектами с ведущими специалистами отрасли и личным помощником-куратором.

29
Дек
2020

📊 Big Data и Data Science в некоммерческом секторе

Если вы планируете карьеру в Big Data или Data Science, необязательно сразу ориентироваться на крупные ИТ-компании. Методы науки о данных используются в различных отраслях, включая некоммерческие организации и государственные образовательные учреждения.

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

Есть и хорошая новость: методы Big Data и Data Science применяются в различных отраслях для принятия решений и оптимизации деятельности. Начать карьеру в некоммерческом секторе или в государственном образовательном учреждении будет намного проще, чем сразу после обучения пытаться рассылать резюме в ответ на опубликованные ИТ-гигантами вакансии. Попробуем разобраться, как и зачем в этих отраслях используют науку о данных.

<a href="https://sloanreview.mit.edu/wp-content/uploads/2020/09/EG2-Redman-Davenport-Serious-Data-Science-2400x1260-1-1200x630.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Нужны ли в НКО Data Scientists?

Как и многие компании, некоммерческие организации собирают данные, но редко используют их в полной мере из-за отсутствия специальных команд Data Scientists. Некоторые организации выделяют бюджеты на изучение и внедрение технологий Big Data и Data Science, а значит испытывают и потребность в кадрах. Большая часть талантов сосредоточена в бизнес-секторе, но в НКО также существует пробел в трудовых ресурсах, который необходимо заполнить специалистами с разными интересами. Учитывая относительно невысокий (по сравнению с корпоративным) уровень заработных плат, средняя планка требований к кандидатам здесь пониже.

<a href="https://crampete-staticfiles.s3.ap-south-1.amazonaws.com/images/blog/Data-Science.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Роль Data Scientist в НКО

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

Прогнозная аналитика – главное преимущество науки о данных для некоммерческих организаций. Она позволяет точно измерить эффективность предыдущих и адаптировать будущие усилия к реальности. К примеру, технологии могут использоваться продовольственными банками для определения потребности в дополнительном провианте и поиске доноров в периоды высокого спроса, вроде стихийных бедствий и других ЧС. В образовании большие данные нужны для изучения результатов школьников и студентов – вариантов их применения множество.

Маркетинг и сбор средств

Маркетинг важен для некоммерческих организаций точно так же, как и для бизнеса. Data Scientist может определить целевой рынок и сделать усилия по сбору средств более эффективными. Отношения с донорами являются одним из наиболее важных факторов в работе НКО, а методы Big Data и Data Science нужны для принятия решений в области сбора средств для повышения видимости, а также для стимулирования взносов. Как и бизнес, НКО зависят от отношений с партнерами. Наука о данных помогает эти взаимоотношения развить и предлагает правильные стимулы для их поддержания.

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

Финансирование и оптимизация фондов

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

Например, если организация доставляет продукты питания в обеденное время в государственные школы в бедном районе, она должна использовать оптимальные маршруты доставки. В противном случае школьники останутся голодными, репутация НКО окажется под риском. Специалист по Big Data и Data Science поможет определить, какие маршруты обеспечат быструю доставку с наименьшими расходами.

Мониторинг и внедрение

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

<a href="https://crampete-staticfiles.s3.ap-south-1.amazonaws.com/images/blog/Data-Science.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Примеры проектов Data Science в НКО

Amnesty International

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

Бельгийское отделение Amnesty International недавно заключило соглашение с платформой анализа данных RapidMiner для модернизации возможностей отчетности и аналитики. Amnesty International интегрировала программное обеспечение RapidMiner с системой управления взаимоотношениями с клиентами (CRM). CRM предназначен для повышения доходов и обычно используется компаниями для увеличения прибыли, но он также может играть определенную роль в сборе средств для некоммерческих организаций.

Khan Academy

Образовательное НКО Академия Хана работает через веб-платформу‎. Посещающие ее сайт и взаимодействующие с контентом пользователи генерируют множество данных. Аналитика здесь чрезвычайно эффективна для определения наиболее популярного контента и наиболее эффективной стратегии. Решения из области искусственного интеллекта могут применяться для создания чат-ботов и ресурсов обслуживания клиентов, которые помогают пользователям найти ответы на наиболее часто задаваемые вопросы.

DataKind

DataKind‎ – это НКО, которое объединяет ведущих мировых специалистов по обработке данных с известными организациями по социальным изменениям для сотрудничества в области аналитики и математических алгоритмов для максимизации социального воздействия. На сайте DataKind‎ представлены волонтерские возможности, раздел для подачи идей и примеры завершенных гуманитарных проектов. В DataKind‎, к примеру, построили прогностическую модель, чтобы иметь возможность идентифицировать студентов, которые были подвержены риску отсева, и предложить им своевременную поддержку.

Заключение

Если вы хотите построить карьеру в Data Science и Big Data, лучше начать прямо сейчас. Эти области постоянно расширяются, генерируя новые вакансии. Если вы уже работаете в некоммерческой организации или в государственном образовательном учреждении – отлично. Подумайте, как можно применить новые технологии. Вполне вероятно, что ваша инициатива по их использованию встретит полное понимание у руководства. Тем более, что такие организации охотно отправляют сотрудников на различные курсы. Для освоения необходимых навыков с нуля запишитесь на курсы факультета Аналитики Big Data онлайн-университета GeekBrains. Учебные программы основаны на практической работе над проектами с ведущими специалистами отрасли и личным помощником-куратором.

22
Дек
2020

❓ Потребуются ли программисту на собеседовании алгоритмы и структуры данных?

Начинающие разработчики и даже программисты уровня middle прекрасно владеют современным инструментарием, но часто проваливают собеседования из-за нехватки теоретических познаний. Абстрактные структуры данных и алгоритмы могут стать для соискателя препятствием на пути к работе мечты. Рассказываем, как это исправить.

Нужны ли структуры данных и алгоритмы программисту средней руки вопрос спорный. Едва ли ему придется самостоятельно разрабатывать быструю сортировку или что-нибудь в этом духе. С другой стороны, теоретический базис необходим любому специалисту для формирования правильного образа мыслей. Работодатели на собеседованиях проверяют не только владение языками программирования и фреймворками, но и насколько хорошо кандидат знаком с вечной классикой. Если он не может отличить FIFO от LIFO или плавает в вопросе о пузырьковой сортировке, путь в профессию закроется. Есть мнение, будто усвоить необходимые знания можно за пару дней с книжкой в руках, но это не так. Материал слишком объемный, чтобы быстро с ним справиться – о подготовке к собеседованию лучше позаботиться заранее.


Чего хотят работодатели?

Программисты уровня junior и middle для рекрутеров ИТ-компаний – темные лошадки. Какой-нибудь senior или team lead гораздо понятнее работодателю, поскольку уже имеет имя, послужной список и большое количество реализованных проектов в портфолио. Чего ждать от новичков или специалиста среднего уровня, никому не известно, а значит и собеседовать их станут основательно – к этому стоит быть готовым. Требования к потенциальным кандидатам разнятся от компании к компании, но некоторые общие принципы выделить можно.

О чем на собеседованиях спрашивают в корпорациях?

Крупные ИТ-компании не ждут от начинающих разработчиков совершенного владения современными технологическими приемами. Даже программисту middle-уровня на сей счет может быть сделано послабление, но к вопросам наличия у соискателя теоретического базиса гиганты относятся очень серьезно. Список требований обширен и включает весь джентльменский набор из программы профильного вуза. Наличие академических познаний не гарантирует получения места, но их отсутствие точно не даст пройти HR-квест до конца. Как сказал бы математик: теория необходима, но недостаточна для трудоустройства.

О чем спрашивают в средних и небольших компаниях?

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

Чего хотят от соискателей стартапы?

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


Какие знания необходимо освоить?

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

  1. Основные структуры данных и алгоритмы: сюда входят стеки, очереди и связные списки, битовые операции, циклы, рекурсия и алгебраические алгоритмы;
  2. Алгоритмы сортировки: простые сортировки, линейная сортировка, пирамидальная сортировка, а также быстрая и внешняя сортировка;
  3. Деревья: двоичные, красно-черные и прочая, прочая, прочая;
  4. Хэш-таблицы: сюда же входят хэш-функции, универсальное и идеальное хэширование, а также разрешение коллизий;
  5. Теория графов и комбинаторная оптимизация: владеть этой областью нужно на уровне студента-математика первого курса. Ничего сложного, все сводится к основным определениям и решению типовых задач, вроде задачи коммивояжера.
  6. Алгоритмы на строках: тут придется вспомнить забытые со студенческих времен фамилии: Ахо-Корасика, Бойера-Мура и прочего Кнута-Морриса-Пратта. Еще потребуется подучить алгоритмы сжатия и шифрования;
  7. Вероятностные алгоритмы: MinHash, SimHash, HyperLogLog, Count-Min Sketch, фильтр Блума и вот это все;

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


Где можно научиться?

Перечисленные выше темы изучаются в вузах, но уже к старшим курсам ударившиеся в современные технологии студенты забывают о классике. У пришедших в программирование из других профессий специалистов теоретический базис тоже хромает, и это вполне естественно. Заполнить пробелы в знаниях помогают книги. В интернет-магазинах доступны неплохие работы: от модной «Грокаем алгоритмы», которую написал Адитья Бхарагава, до классической «Introduction to Algorithms» издательства MIT Press. Некоторым нравится «The Algorithm Design Manual» Стивена Скиены – выбрать есть из чего, но на изучение теории по книгам у работающих программистов не хватает ни времени, ни мотивации. Это тоже вполне естественно.

Не стоит заниматься ̶с̶а̶м̶о̶л̶е̶ч̶е̶н̶и̶е̶м̶самообучением, когда можно обратиться за помощью к профессионалам. Каждый хорош в своей работе: кто-то умеет писать программы, а кто-то – еще и учить этому других. Если вы хотите получить целостные и системные знания, компания OTUS предлагает IT-специалистам более 60 авторских курсов. Сейчас идет набор на пятимесячную программу онлайн-обучения «Алгоритмы и структуры данных»: вступительное тестирование можно пройти на сайте. Желающим также предлагают посетить бесплатный демо-урок, который пройдет 22 января.

Теоретический базис – фундамент вашей карьеры, а дом без фундамента построить невозможно.

06
Дек
2020

🕸 Обучение веб-разработке: руководство по оформлению кода HTML/CSS

Код HTML/CSS нужно оформлять красиво, а значит особенности верстки – обязательная часть программы обучения веб-разработке. Рассказываем, как освоить нужные знания с нуля.

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

Делайте отступы

Выделяйте новую строку для каждого блочного, табличного или списочного элемента. Вложенные элементы отделяйте четырьмя (или двумя) пробелами от элемента-родителя.

Тег div является вложенным элементом относительно section.

        <section>
    <div>
    </div>
</section>

    

В свою очередь теги h1 и p выравниваются относительно тега div, не создавая «лесенки».

        <section>
    <div>
        <h1>Заголовок</h1>
        <p>Текст</p>
    </div>
</section>
    

Это правило не распространяется на строчные теги (i, u, a, b, span) внутри абзаца. Например, тег span не нужно начинать с новой строки и делать от него отступы.

Выравнивайте теги по одной вертикальной линии

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

Так писать не надо:

        <section>
    <div>
        <h1>Заголовок</h1>
        <p>Текст</p>
 </div>
      </section>
    

Комментируйте код

Когда в разметке идет подряд много закрывающих тегов, ставьте комментарий (название класса) рядом с ним. Тогда вам не придется гадать, какой именно класс закрывается.

        <div class="wraper">
    <div class="header">
        <div class="title">
          .....
        </div><!-- .title -->
    </div><!-- .header -->
</div><!-- .wraper -->
    

Начало каждого блока желательно начинать с короткого комментария с названием секции. Это очень удобно и позволит вам легко ориентироваться в структуре документа.

        <!-- Footer -->
<footer>
    <div class="page-footer"></div>
</footer>
    

Всегда пишите в нижнем регистре

Весь код должен быть написан в нижнем регистре. Это относится к названиям элементов и атрибутов, значениям атрибутов, селекторам, свойствам и их значениям (кроме текста). Текст внутри тегов можно писать с заглавной буквы в начале предложений, а для остального существует свойство text-transform: uppercase;.


Используйте кодировку UTF-8

UTF-8 – один из самых распространенных стандартов кодирования, который позволяет наиболее компактно хранить и передавать символы Юникода. Убедитесь, что ваш редактор использует UTF-8. Всегда указывайте кодировку в шаблонах и документах HTML с помощью <meta charset="utf-8">. Опускайте кодировку для файлов CSS, поскольку для них UTF-8 задана по умолчанию.

Используйте валидный HTML

Валидная разметка – это код, который написан в соответствии с определенными стандартами. Их разработал Консорциум Всемирной Паутины – World Wide Web Consortium (W3C). При помощи таких инструментов, как W3С HTML Validator, можно проверить качество кода HTML и CSS. Написание валидного HTML оттачивает знание ограничений языка разметки и понимание технических требований.

Используйте семантическую разметку

Семантическая верстка (разметка) – это подход к созданию веб-страниц, основанный на расстановке тегов HTML в соответствии с их семантикой. Проще говоря, используйте теги по назначению: <hX> для заголовков, <p> для абзацев, <a> для ссылок и т.д. Это поможет поисковому роботу проанализировать страницу сайта и подготовить ее описание для пользователей, а также повысит приоритет выдачи.

Для людей с ограниченными возможностями создается специальный софт, который ориентирован на семантическую разметку. Постарайтесь указать альтернативное содержимое для картинок, видео или анимаций, заданных с помощью canvas. Это поможет людям со слабым зрением понять, о чем говорится в аудио- или видеозаписи.

Не указывайте протокол при добавлении внешних ресурсов

Опускайте название протокола (http:// или https://) в ссылках на картинки и другие внешние ресурсы, файлы стилей или скрипты. Это делает ссылку относительной и предотвращает, например, использование незащищенного контента на защищенном сайте, а также незначительно уменьшает размер файлов.

Не используйте необязательные теги и лишние обертки

Для уменьшения размера файлов и лучшей читаемости старайтесь избегать использования необязательных тегов и лишних оберток (wrapper). В спецификации HTML5 есть их список.


Изучите правила оформления CSS

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

Изучите нюансы синтаксиса CSS

Ставьте точку с запятой после каждого объявления. Это необходимо для беспрепятственного добавления новых свойств и уменьшения путаницы. Используйте пробелы после двоеточий в объявлениях. Это поможет вам лучше ориентироваться в документе CSS. Начинайте каждый селектор или объявление с новой строки. По возможности объединяйте свойства отдельных блоков в группы и обозначайте их комментариями, разделяя переносом строки. Не указывайте единицы измерения для нулевых значений, если на это нет причины. Трехсимвольная шестнадцатиричная запись для цветов короче и занимает меньше места (color: #ааа;).


Используйте препроцессоры

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

Используйте автопрефиксер

Префиксы нужны, чтобы «подружить» свойства CSS c различными браузерами. Изначально они были придуманы, чтобы помочь разработчикам браузеров адаптировать спецификацию под свои нужды. Чтобы не заниматься этим самостоятельно, используйте утилиту нового поколения autoprefixer для добавления префиксов к экспериментальным свойствам из CSS-3.

Будьте последовательны!

Следует придерживаться определенного стиля написания кода. Чистый и красивый код говорит об уровне профессионализма верстальщика и его отношении к работе.

***

Если вы только осваиваете профессию, стоит обратить внимание на курс по веб-разработке от Geek Brains и Mail.ru. Начав с основ, здесь можно получить необходимые для начала карьеры знания. Актуальная программа состоит из 2 – 3 вебинаров в неделю и 2 месяцев стажировки. Под руководством опытных преподавателей студенты наработают необходимую для дальнейшего развития базу и получат помощь в трудоустройстве.

12
Ноя
2020

🙋 Как iOS-разработчику создать резюме, которое выделит его среди других кандидатов

Соискателя выбирают за навыки, но сначала его должны выделить в общем потоке. Рассказываем, как составить резюме, которое зацепит любого рекрутера. Наши советы будут полезны не только iOS-разработчикам.

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


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

1) Контактная информация

Кроме заполнения полей «Имя» и «Фамилия» стоит добавить фото и дать контакты для связи.

Подберите подходящую фотографию – это первый визуальный образ, который будет ассоциирован с вами. Снимок должен соответствовать должности, на которую вы претендуете.

Рекрутеру потребуется с вами связаться, поэтому оставьте как можно больше контактов, и обязательно включите ссылку на профили в соцсетях. Вас все равно будут искать, так что постарайтесь сэкономить время hr-специалиста. Укажите телефон, E-mail, Telegram, VK, Facebook, Skype, Habr и т.д.

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

Будьте открыты. Рекрутеру придется узнать о вас как можно больше, потому не стоит выглядеть подозрительно. Неизвестность ему не понравится. Облегчая поиск информации о себе, вы повышаете собственные шансы на успех.

2) Опыт работы


Эта колонка не должна быть пустой! Если у вас нет опыта на позиции в крупной компании, постарайтесь вспомнить другие варианты.

В поле «Компания» напишите: «Собственные проекты». Расскажите, какие проекты вы разрабатывали, даже если это не оплачивалось. Какие решали задачи, какие технологии и инструменты применяли. Обязательно опишите проблемы, с которыми столкнулись, и пути их решения. После этого напишите о результате: что конкретно было разработано. Дайте ссылку на показательный проект в общедоступном репозитории.

Прикреплять ссылку, к примеру, на Github нужно, чтобы доказать обладание заявленными навыками. Репозиторий должен быть оформлен идеально: стоит добавить в него несколько проектов, которые демонстрируют вашу компетентность. Также для рекрутера лучше добавить скриншоты приложений и поместить их в резюме.

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

Вспомните о достижениях, которыми вы гордитесь без скромности. Это объективная возможность убедить рекрутера, что вы лучший претендент на должность. Основной интерес hr-специалиста опыт по специальности. При наличии опыта в IT по другому направлению, упомяните об этом вкратце – это продемонстрирует ваш кругозор. Чем больше подобной информации вы предоставите, тем сильнее и привлекательнее будет выглядеть резюме.

3) О себе


Важный фактор отбора. Перед отправкой резюме нужно зайти в описание желаемой вакансии и посмотреть запрашиваемые навыки.

Далее нужно вписать их в раздел «О себе», чтобы соответствовать требованиям компании. Не нужно придумывать скилы, сначала изучите их. Чтобы привлечь внимание и произвести впечатление, придется составить резюме под конкретного работодателя, сосредоточившись на его требованиях. Например, напишите о том, какие библиотеки вы используете в проектах, что умеете делать code review, пишете Unit-тесты и т.д. Создайте краткую справку по техническим навыкам.

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

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

Об этом нужно упомянуть обязательно. Можно, к примеру, похвалиться статьями на Хабре и прикрепить ссылку на профиль. Расскажите, на какие митапы вы ходили, в каких хакатонах участвовали и какие заняли места.

В конце этого блока можете описать, как представляете себе хорошее место работы.

4) Ключевые слова

Если вы создаете резюме на HeadHunter (hh), заполните список в разделе «Ключевые навыки».

Чем больше вы там расскажете, тем выше будет резюме в поисковике у рекрутера. Релевантность никто не отменял.

В качестве примера приведем список навыков iOS-разработчика:

  1. Swift
  2. Xcode
  3. iOS
  4. Objective-C
  5. Git
  6. SQL
  7. ООП
  8. ARKit
  9. MVVM
  10. VIPER
  11. UIKit
  12. Realm
  13. Alamofire
  14. REST API
  15. GCD
  16. Core Data

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

5) Высшее образование и повышение квалификации, курсы

Хорошо, если в этом блоке вам есть о чем рассказать.

Перечислите имеющиеся дипломы и сертификаты. Если их нет, попытайтесь отыскать. Сертификаты о прохождении курсов от обучающих платформ Udemy или Geekbrains отлично подойдут.

6) Чего не следует писать в резюме

Есть несколько вещей, о которых в резюме нельзя писать ни в коем случае.

  • Низкая заработная плата

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

  • Степень Junior

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

  • Нерелевантный опыт

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

7) Небанальное сопроводительное письмо

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

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

Резюме и сопроводительное письмо должны дополнять друг друга. Нельзя повторять в письме содержание резюме. Следует адресовать его непосредственно HR, придерживаясь делового стиля общения. Письмо должно оставаться в рамках делового этикета. Не предлагайте свои услуги чрезмерно навязчиво: энтузиазм – хорошо, назойливость – плохо. В переговорах лучше придерживаться позиции «Хочу, но не нуждаюсь». В конце письма попытайтесь любезно инициировать контакт и вежливо поблагодарите за уделенное вам время:

«Надеюсь, вы найдете мою кандидатуру соответствующей требованиям вакансии.
С уважением, (ваше имя)».

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

8) Размещение резюме

Чтобы вас нашли с наибольшей вероятностью, лучше оставить свое резюме на разных российских рекрутинговых ресурсах, а не только на HH.

SuperJob, «Мой круг», «Хабр Карьера» – на последний сайт обратите особое внимание: там можно найти множество хороших вакансий от проверенных работодателей.


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

***

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

31
Окт
2020

🐍 Топ 10 трендов разработки на Python в 2020 году

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

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

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

Что такое Python и как он появился


Python – это популярный высокоуровневый язык программирования. Он является объектно-ориентированным и интерпретируемым языком с динамической семантикой, что делает его простым и легким в усвоении. Кроме того, Python легко читаем; следовательно, снижаются затраты на программное обслуживание в целом. Разработанный Гвидо ван Россумом, этот язык был создан под знаменем Python Software Foundation. Изначально он был выпущен в 1990 году, и прошло 30 лет, прежде чем он обрел популярность.

Основная философия Python включает в себя следующие идеи:

  1. Прекрасное лучше безобразного;
  2. Явное лучше скрытого;
  3. Сложное лучше усложненного;
  4. Простое лучше сложного;
  5. Читабельность имеет значение.

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

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

Постоянные обновления фреймворков Python

Фреймворки Python всегда служили ему опорой. Тройка TurboGears, Django и Pyramid стала основополагающей в ускорении работы системы с меньшим количеством строк кода. Этот год обещает сочные обновления трех фреймворков с улучшенными плагинами и новыми библиотеками, которые помогут полноценно раскрыть потенциал языка. В общем, Python – это несомненно прекрасный язык с расширенной и многогранной пользовательской базой.

1. Разработка на Django

Если вы еще не слышали об этом фреймворке Python, вам непременно стоит о нем узнать. В частности фреймворк является одной из высокоэффективных и гибких структур, направленных на минимизацию времени и усилий, необходимых для разработки веб-приложений. Учитывая тот факт, что это фреймворк с открытым исходным кодом, Django получает регулярные и качественные обновления плагинов с целью упрощения процедуры реализации. Известно несколько сторонних библиотек, повысивших популярность языка среди таких известных площадок, как YouTube, Spotify и прочих.

2. TurboGears

Еще один фреймворк Python – это TurboGears, представляющий собой фулстек-инструмент. Он был создан, чтобы упростить и ускорить разработку веб-приложений. Весь фреймворк зависит от «Ruby on Rails» и был разработан вокруг архитектуры MVC. Более того, он дает разработчикам возможность сформировать деловое чутье на всех платформах, сокращая при этом количество строк кода.

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

3. Pyramid

Фреймворк Pyramid идеально подходит для быстрой разработки базовых веб-приложений. Более того, легкость и гибкость обеспечили ему популярность в 2020 году. Python-фреймворк Pyramid основан на фундаментальных принципах, которые можно описать не иначе как простую технику программирования. Это абсолютный фаворит среди разработчиков, способных написать уникальные веб-приложения. Однако начинающим разработчикам он может прийтись не по душе.

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

Другие адаптеры Python

В 2019 году значительно увеличилось общее количество пользователей Python. Та же тенденция, несомненно, будет наблюдаться и в 2020 году в отношении программного обеспечения на Python. Проведенное компанией Stack Overflow исследование показало, что количество желающих освоить Python специалистов значительно преобладает в сравнении с другими схожими языками.

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

Больше признания со стороны влиятельных отраслей и корпораций

2020 год призван совершить революцию в использовании платформы Python. Все больше и больше корпораций и бизнес-организаций адаптируются к использованию Python вне зависимости от их размера и сегментации. Например, Facebook – это бренд, который использует Python на протяжении долгого времени, и у него есть группа, ведущая разработку в данном направлении. Большая часть кода Facebook написана на языке Python.

Так что, в 2020 году Python будет использовать большее число людей.

Анализ данных на Python

В наши дни анализ данных получил широкое распространение. Он не обошел стороной ни одну из сфер бизнеса. Согласно последним тенденциям, на рынке наблюдается резкий рост использования аналитики данных. То же будет наблюдаться и в предстоящее время. Как минимум 50% разработчиков на Python использовали этот язык для анализа данных.

Доступность нескольких библиотек в линейке Python – главная причина, по которой разработчики выбирают именно его. Есть библиотеки, которые являются предметно-ориентированными и созданы с помощью сообщества Open-Source Python. Этот язык действительно полюбился многим разработчикам и будет продолжать их радовать в 2020 году.

Автоматизация и гибкость для большего количества пользователей

Главная особенность Python – его скорость. Это позволяет писать код быстрее, автоматизировать задачи и скрипты. Еще одним фактором в пользу Python является то, что он отлично себя проявляет в вопросах автоматизации. Этот факт, несомненно, стал ярким событием 2020 года. Со временем, Python привлечет больше профессиональных разработчиков, которые бы с удовольствием специализировались на этом языке.

Более того, гибкость языка Python в сочетании с его универсальностью сумела впечатлить пользователей и повысить его популярность. Язык отлично регулируется и без проблем работает с несколькими другими, оборудованием, фреймворками и архитектурой. On-board программирование на Python означает, что у вас есть доступ к гибкости и творчеству для реализации ваших стремлений.

Неполноценность программной разработки без Python

Как упоминалось вначале, технологии постоянно меняются. Вот почему знание идущих в ногу с трендом языков помогает оставаться на плаву, несмотря на любые изменения или обновления. Язык Python обладает способностью беспрепятственно работать с современными технологиями, такими как data science, сетевое программирование, машинное обучение, Big Data и многими другими. Большинство программистов стремятся работать с языком, который упрощает работу с кодом и технологиями.

Учитывая все возможности интеграции Python, современные технологии не могут быть полноценными без его использования.

Бесшовная языковая интеграция

Еще одна вещь, которая привела к популярности языка Python в 2020 году – это возможность интеграции, которая облегчит жизнь многим пользователям. Написанные на Python системы могут успешно взаимодействовать с другими популярными языками. Язык сам по себе достаточно гибкий, так что разработчики могут писать отдельные фрагменты кода на Python, а остальное – используя популярные на рынке языки программирования. Именно поэтому этот язык используется для подключения к корпоративным приложениям.

С Python облачные вычисления обрели популярность

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

Основы академического сценария

Применение Python в качестве основного для преподавания языков программирования, безусловно, доказывает его превосходство. Большинство связанных с ИТ университетов и колледжей в течение долгого времени использовали Python, но только недавно представители академической сферы поняли важность введения его в качестве отдельного предмета. В 2020 году язык Python получил более широкое внедрение в учебную программу.

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

Постоянная поддержка сообщества

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

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

***

Универсальность позволяет Python оставаться в тренде 2020 года. Он применяется в различных сферах разработки, включая Frontend и Backend, Big Data и Data Science, а также при решении задач искусственного интеллекта, машинного обучения и даже для создания мобильных и настольных приложений.

Этот универсальный язык программирования преследует множество целей, от функциональных аспектов до объектно-ориентированного программирования. Более того, Python можно использовать как язык для написания скриптов и получения информации.

Python определенно лидирует

Язык Python является полностью бесплатным, что побуждает начинающих разработчиков и программистов его опробовать. Использование Python требует минимальных затрат и рисков. Учитывая его кроссплатформенность языка, разработчики всегда стремятся отдать ему предпочтение.

Заключение

В целом, Python уверенно укрепился в корнях программной экосистемы, и его ожидает еще более светлое будущее в 2020 году. Проще говоря, это как соль для пищи: без него программирование может стать «безвкусным». На сегодняшний день Python составляет серьезную конкуренцию своим соперникам и к концу года станет еще более популярным.

***

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

23
Окт
2020

? 13 онлайн-курсов по изучению английского языка для ИТ-специалистов

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

Перево…

23
Окт
2020

💪 13 онлайн-курсов по изучению английского языка для ИТ-специалистов

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

Перево…

16
Окт
2020

👨🏼‍💻 Хакатоны, конференции и митапы по Big Data, которые помогут карьере

Мы собрали для вас все ближайшие мероприятия для карьерного роста и получения новых знаний в сфере Big Data. На фоне пандемии коронавируса многие из них проходят в онлайн-формате.

О работе специалистов по анализу больших данных мы писали в статье «Big Data: размер имеет значение». В материале, подготовленном при поддержке факультетов искусственного интеллекта и аналитики Big Data онлайн-университета GeekBrains, собраны все ближайшие мероприятия, которые помогут карьере специалиста по Big Data.

<a href="https://www.istockphoto.com/fr/illustrations/hackathon" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Хакатоны

ХАКАТОН FIT-M 2020

Междисциплинарный хакатон по применению IT-решений в фундаментальных и прикладных научных исследованиях

Когда: c 17 по 19 декабря 2020 г.

Где: МГУ им. М.В. Ломоносова

Стоимость участия: бесплатно

Язык мероприятия: русский

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

Победители в номинациях «Лучший Прототип» и «Лучшая Концепция» получат дипломы, денежный приз и подарки от спонсоров. Каждому из участников также вручат сертификат.

Подробнее: https://fit-m.org/hack

ANTI-DISCRIMINATION HACKATHON

От Hackathon Factory

Когда: c 31 октября по 1 ноября 2020 г.

Где: Онлайн

Стоимость участия: бесплатно

Язык мероприятия: английский

Хакатон для разработчиков, специалистов по Data Science и Big Data, HR, предпринимателей, юристов, преподавателей и исследователей, работающих в области инклюзивности и подбора персонала. Можно зарегистрироваться на все время хакатона или только на презентацию финальных проектов для слушателей.

Подробнее: https://www.eventbrite.nl/e/online-anti-discrimination-hackathon-registration-120175577387

HUAWEI EUROPEAN UNIVERSITY CHALLENGE 2020 SWEDEN

От Huawei

Когда: с 25 сентября по 3 декабря 2020 г.

Где: Онлайн

Язык мероприятия: английский

Стоимость участия: бесплатно

Четырехнедельное мероприятие для студентов магистратуры или докторантуры в сфере Data Science, математики, программирования или смежных областей. Участникам предлагается использовать технологии ИИ, машинного обучения и навыки программирования, чтобы набрать как можно больше очков в игровом соревновании. Призовой фонд продукция Huawei для первого, второго и третьего мест, а также возможность получить стажировку в компании.

Подробнее: https://huawei-euchallenge.bemyapp.com/sweden?utm_source=hackathon.com&utm_medium=referral&utm_campaign=hackathon.com

BIOHACKATHON-EUROPE

от National Bioscience Database Center (NBDC) and Database Center for Life Science (DBCLS)

Когда: c 9 по 13 ноября 2020 г.

Где: Онлайн

Стоимость участия: бесплатно

Язык мероприятия: английский

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

Подробнее: https://www.biohackathon-europe.org/

<a href="https://www.eventmobi.com/" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Конференции

ОНЛАЙН-КОНФЕРЕНЦИЯ DATA SCIENCE

от Data Start

Когда: 20 октября 2020 г.

Где: Онлайн

Стоимость участия: бесплатно

Язык мероприятия: русский

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

Подробнее: https://datastart.ru/online-autumn-2020/#register

ODSC West 2020 Online

Когда: c 26 по 30 октября 2020 г.

Где: Онлайн

Стоимость участия: от 349 $

Язык мероприятия: английский

Основные направления конференции в этом году включают Deep Learning, машинное обучение, предиктивную аналитику, “Data Science for Good” и data-воркшопы. Будут также обсуждаться темы autonomous machines and conversational AI to machine translation, data science research, speech recognition, and unsupervised learning.

Подробнее: https://odsc.com/california/

MarketsandMarkets Big Data APAC Virtual Summit

Когда: c 5 по 6 ноября 2020 г.

Где: Онлайн

Стоимость участия: варьируется

Язык мероприятия: английский

Один из самых известных саммитов для лидеров в сферах Big Data, Data Science, цифрового преобразования, Business Intelligence, Data Warehouse and Architecture, Strategy Development. Основные темы: трансформация бизнеса с помощью данных, проектирование эффективной инфраструктуры Big data для вашей организации, эффективное использование искусственного интеллекта и машинного обучения, создание команды по Data Science, выявление новых тенденций в области анализа данных, роль Big Data в 2020 году и влияние глобальной пандемии на будущее.

Подробнее: https://events.marketsandmarkets.com/marketsandmarkets-big-data-apac-virtual-summit/

International Conference on Big Data and Machine Learning

Когда: c 13 по 15 ноября 2020 г.

Где: Онлайн

Стоимость участия: от 170 $

Язык мероприятия: английский

Форум по обмену идеями и последними разработками в области Big Data и машинного обучения для ученых, исследователей и практиков из различных отраслей промышленности. Отличная возможность пообщаться с ведущими учеными и практиками Big Data Analytics, Data Science Models and Approaches, Algorithms for Big Data, Big Data Search and Information Retrieval Techniques, Machine Learning Techniques for Big Data и т.д.

Подробнее: http://www.bdml.org/

International Conference on Big Data and Blockchain

Когда: c 14 по 16 ноября 2020 г.

Где: Онлайн

Стоимость участия: от 350 $

Язык мероприятия: английский

Международная конференция для ведущих ученых и исследователей по обмену опытом и результатами исследований в области Big Data and Blockchain. С темами докладов конференции можно ознакомиться по ссылке.

Подробнее: http://www.icobdb.org/

BIG DATA CONFERENCE EUROPE 2020

Когда: c 24 по 26 Ноября 2020 г.

Где: Онлайн

Стоимость участия: от 20.000 RUB

Язык мероприятия: английский

Международная конференция по Data Science и искусственному интеллекту. Спикеры из Microsoft, Linux Foundation, Cloudera и других уважаемых организаций. Воркшопы на темы Stream Processing Essentials и Essentials for Apache Hadoop and Hadoop Ecosystem (LT).

Подробнее: https://bigdataconference.eu/ и https://bigdatadays.ru/

2020 IEEE International Conference on Big Data

Когда: c 10 по 12 декабря 2020 г.

Где: Онлайн

Стоимость участия: от 250 $

Язык мероприятия: английский

На конференции будут обсуждаться вопросы технической и научной природы связанных с Big Data проблем. Основные докладчики представители Google и We Bank, а также спикеры из академической сферы. Со списком специальных секций можно ознакомиться по ссылке.

Подробнее: http://bigdataieee.org/BigData2020/?utm_source=xp&utm_medium=blog&utm_campaign=content

<a href="https://orangescape.com/events/" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Митапы

Elevate Your Data Exploration with AWS

Когда: 21 октября 2020 г.

Где: Онлайн

Стоимость участия: бесплатно

Язык мероприятия: английский

Самое интересное: ​​​​​​​In-depth воркшоп в рамках AWS, таких как Amazon EMR (Elastic Map Reduce) и Amazon Redshift.

Подробнее: https://go.slalom.com/elevateyourdata

Analyst’s eye: a subjective review of big data solutions

Когда: 5 ноября 2020 г.

Где: Онлайн

Стоимость участия: бесплатно

Язык мероприятия: английский

Самое интересное: Спикеры из Google Cloud Platform (BigQuery data warehouse), Microsoft Azure (Synapse Azure SQL DWH data warehouse), Amazon Web Services (distributed query engine Athena), Snowflake (Cloud Data Warehouse), Vertica (MPP analytical platform).

Подробнее: https://alterdata.io/en/bigdata_tech_review

Lunch & Learn – Scala for Big Data the Big Picture

Когда: 9 ноября 2020 г.

Где: Онлайн

Стоимость участия: бесплатно

Язык мероприятия: английский

Самое интересное: Возможность изучить Scala и понять, почему это действительно “язык Data Engineers”.

Подробнее: https://tickets.datasciencefestival.com/schedule/

Rock Your Profile and Networking with Linkedin’s Big Data Engineering Leaders

Когда: 11 ноября 2020 г.

Где: Онлайн

Стоимость участия: бесплатно

Язык мероприятия: английский

Самое интересное: Нетворкинг в LinkedIn лидерами Big Data Engineering.

Подробнее: https://dreamjob.splashthat.com/

Data Natives 2020 г.

Когда: 18 ноября 2020

Где: Онлайн

Стоимость участия: бесплатно

Язык мероприятия: английский

Самое интересное: Обсуждение различных тем индустрии Data Science.

Подробнее: https://datanatives.io/about/

***

Если вы хотите освоить новую профессию или повысить квалификацию в сфере Big Data, рекомендуем записаться на курс факультета аналитики Big Data онлайн-университета GeekBrainsy. Программа включает основательную математическую подготовку, изучение языка Python и получение навыков практической работы с базами данных. Также изучаются Hadoop и Apache Spark – востребованные инструменты для работы с большими данными. Курс ориентирован на применение машинного обучения в бизнесе и построен по принципам практической работы над проектами с ведущими специалистами отрасли и личным помощником-куратором.

14
Сен
2020

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

Чат-боты сейчас на подъёме….

31
Авг
2020

Рассказываем о проведённой летом работе над proglib.io. Лучшие материалы и описание нововведений, раздел с курсами и отзывами, свежий дизайн.

Привет!

30
Апр
2020

Наша работа над Proglib. Апрель 2020

В конце каждого месяца мы рассказываем о работе над proglib.io, проведённой за этот период. Лучшие материалы за апрель и описание нововведений: тёмная тема, авторизация через Telegram, интерактивные статьи.

30
Апр
2020

Наша работа над Proglib. Апрель 2020✨

В конце каждого месяца мы рассказываем о работе над proglib.io, проведённой за этот период. Лучшие материалы за апрель и описание нововведений: тёмная тема, авторизация через Telegram, интерактивные статьи.

25
Мар
2020

Суперподборка: более 70 бесплатных русскоязычных онлайн-курсов по IT-специальностям

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

Пандемия COV…

20
Мар
2020

Как сделать эффективными обсуждения по видеосвязи

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

В связи с последними событи…

15
Мар
2020

Просто добавь нейросеть: 7 исторических фильмов в 4K и 60 FPS

Москва, Париж, Нью-Йорк и Англия времен Прекрасной эпохи, Луна и Марс начала космических путешествий – видео, качество которых улучшено с помощью нейросетей. Приятного просмотра!

29
Фев
2020

Наша работа над Proglib. Февраль 2020

Что сделала команда Библиотеки программиста для своих читателей за второй месяц 2020 года. Рассказываем о телеграм-боте для мероприятий, головоломках, топовых публикациях и новом тесте.