Страница телеграм канала Экстраполяция IT

itextrapolation logo

Экстраполяция IT

3961 подписчиков

Канал об IT в целом и о программировании в частности. Для обратной связи пишите @aratak Платной рекламы на канале нет, взаимных пиаров тоже, любителей объеденяться в репост-кланы в бан. фейсбук: fb.me/alexey.osipenko твиттер: twitter.com/alexeyosipenko


Входит в категории: Технологии
Экстраполяция IT
20.09.2021 11:09
Зачем на собеседованиях тупые алгоритмические задачки? Да-да, алгоримтические задачки из собеседований применяются в дальнейшей работе в чуть менее чем нуля случаях, но на собеседовании смысл в них вполне есть. Это потому, что любая задача из типа «посчитать то, что кажется что хрен посчитаешь» начитается с листика и ручки и попытке посчитать всё вручную. Мозг ленив и пытается экономить ресурсы и от этого ищет закономерности. И вот тут уже проверяется насколько мозг пытлив и гибок для того, чтобы найти совсем неочевидные и непрямолинейные решения. И тут есть несколько правил. 1. У задачи должно быть больше одного решения. Даже самый умный человек в мире не всегда приходит к решению за короткое время. А если решение всего одно, то ответ «решил/не решил» выдаёт очень много ложноотрицательных результатов. Ещё лучше, если задачу можно решить достаточно большим количеством способов, чтобы сформировать градиент качества решений. Чтобы хоть как-то можно было бы сравнить два разных решения. 2. Испытуемый не должен знать задачу или то, как её решать лучше. Тут очевидно, что если испытуемый знаком с задачей, то проверить гибкость ума не получится. В пуле задач лучше держать таких несколько и если задача знакома, то нужно брать другую. 3. Задача должна быть максимально абстрактна. Это менее очевидно, но тестовые задачи, сформулированные на языке рабочих задач начинают решаться не тестовым способом, а рабочим. «Перебрать юзеров, чтобы отсеять лишних» с помощью чистых алгоритмов пытливым и ленивым мозгом очень быстро решается парочкой запросов в базу данных, а вот «найти числа из последовательности, удовлетворяющие условию» уже достаточно абстрактна, чтобы рефлексы не тянулись к SQL. 4. Ничего другого, кроме пытливости ума такой тип задач проверить не в состоянии. Не надо искать подтекстов и проверять что-то ещё. Решения одной задачи не достаточно, чтобы определить насколько хорошо испытуемый пишет тесты, задаёт вопросы, называет переменные или что-то там ещё. Тем более если добавить к этому лёгкое ощущение экзамена или собеседования. Сейчас такие задачи стали чем-то вроде культа Карго и перешли совершенно в другую категорию собеседований. Проверяют скорость написания кода, оптимальность решения, чистоту кода и написание, простигосподи, тестов. Это настолько же тупо, как отсеивать козерогов и водолеев на основании совместимости гороскопов. Одна из любимых моих задач на собеседовании — это задача с названием «Сумма двух». Алгоритмических решений у этой задачи я знаю штук пять, каждое из которых ещё можно и оптимизировать. Дано: массив случайных натуральных чисел X в случайном порядке, среди которых могут быть дубликаты. И целое число C. Вопрос: может ли число C быть сформировано суммой двух элементов массива? Другими словами, существуют ли такие i, j, что X[i] + X[j] == C? Ответ нужно только true или false, сами числа знать не обязательно. Если захотите вдруг решить эту задачу — вот вам специальных гист, чтобы проверить решение.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
16.09.2021 11:09
У меня весьма странный способ познавать и изучать новую информацию. У некоторых это – найти нужную удачную аналогию. Хорошим примером будет попытка понять что такое децентрализованый блокчейн через аналогию с гитом. Ну, ветки, конфликты, мастер, форк, чексумма. Другие пытаются разобрать новое до знакомых кирпичиков и осознают новое снизу вверх. Общим паттерном такого изучения будет попытка взять и написать самому эту технологию. Если хочешь понять как работает операционная система, сядь и напиши свою, короче. Есть ещё те, кто просто запоминает то, что прочитал и вовремя это применяет. Ну, а если в памяти не находится ничего такого, то гуглим и запоминаем и см. сначала. У таких всегда под рукой блокнотик и ручка с кучей пометок и записей. Есть ещё четвёртый тип, к которому отношу себя я. Чтобы что-то понять, нужно это кому-то объяснить. Ну, прям прикинуться экспертом и взять и начать объяснять. Само собой, сначала читается кучу литературы, блогов и стэковерфлоу. Потом, конечно, безуспешные попытки что-то закодить или воспроизвести. А потом это нужно кому-то рассказать так, чтобы этот кто-то понял. И вот тогда наступает катарсис. Прямо в процессе объяснений все знания упорядочиваются и становится всё понятно и просто. У кого ещё какие способы? Делитесь в чатике.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
15.09.2021 11:09
Как выучить что-то новое? Ну, не новую версию вчерашней библиотеки освоить, а прям, кардинально новое что-то. Для нашего чатика обмолвлюсь, что это что-то такое, чего тебе не сильно хочется осваивать, но надо. Скажем, абстрактный фронтендер захотел выучить новый язык, скажем, раст, чтобы уметь делать что-то там новое и открыть для себя новые горизонты. Вроде бы тоже программирование, но там настолько всё по-другому, что прям дивный новый мир. Наверное, если учитывать современную зарплату фрондендера, то учить раст вовсе-то и не обязательно, ведь на хлеб с маслом хватит вполне и без него. Но и расти над собой надо, расширяя навыки и умения. К тому же не стоит забывать, что человек по своей природе ленив, а программист ленив вдвойне. Так как же продолжать развиваться, а не оставаться узким специалистом? Если от этого не зависит твоё выживание, то никак. А вот если зависит или ты по крайней мере думаешь, что зависит, то вопроса такого вообще не станет. Адаптируешься, как миленький. Вывод: хочешь освоить что-то новое, сделай так, чтобы от этого зависело твоё выживание.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
14.09.2021 11:09
Совершенно очевидно, что за работу программиста нужно платить. Уже менее очевидно, но все ещё достаточно понятно сколько конкретно нужно платить тому или иному программисту. И совершенно неочевидно и совсем запутанно с тем, что же ещё влияет на желание работать и продуктивность разработчика. Многие компании идут по пути наименьшего сопротивления и увеличивают разнообразие печенек на кухне, экзотичность кофейных зёрен, стриптизерш с иксбоксами и теннисных столов с корпоративами. Это, конечно же, помогает, но ненадолго. Главными же побудителями хорошего настроения на работе является то, что составляет подавляющую часть рабочего процесса. Если работа состоит в программировании, то важны технологии, техпроцесс и взаимодействие в команде. Если работа состоит в общении, то важным нужно считать дружелюбность и адекватность коллектива. Если работа состоит в организации всякого разного, то важным нужно считать правильно организованные штуки, вроде корпоративов или внутриофисных чемпионатов по бобслею. Ну, и так далее. Очень жаль, что повышением настроения для тех, кто в основном программирует и заполняет джиру, занимаются те, кто в основном организовывает праздники и выбирает принты на футболки. #перечитываяэкстраполяцию
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
13.09.2021 17:09
С 0x100 праздником, коллеги!
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
13.09.2021 11:09
Одно из самых болезненных занятий в разработке — формулирование самой задачи. И разработчики жалуются, что нетехнические специалисты ужасно ставят задачи, неоднозначно и запутанно. А вся соль в том, что перевод с гуманитарного на однозначный и понятный язык задачи и есть работа разработчика. Сначала переводим запутанный текст в понятный коллегам, потом этот понятный коллегам текст переводим в другой текст, понятный компьютерам. Пока существуют люди, которые не могут однозначно сформулировать задачу, существуют и программисты. Так-то.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
09.09.2021 11:09
Под заметкой про автодополняторы кода вспомнили про замечательную штуку — мутационное тестирование. Это когда покрытый код тестами слегка изменяется и ожидается, что хотя бы один тест упадёт. А если не упадёт, значит код был покрыт тестами покрыт код недостаточно. И само собой, хороший мутационный фреймворк должен имитировать распространённые ошибки разработчиков и не пытаться менять код до неузнаваемости просто ради того, чтобы завалить тесты. Это могло бы быть очень хорошим применением машинному обучению. Мне с мутационным тестированием в продакшене сталкиваться не приходилось и было бы очень интересно послушать тех, кто применяет его в бою. Есть такие? Отзовитесь в каментах, расскажите, покажите.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
08.09.2021 11:09
Большое количество разнообразнейших учебных курсов, вроде «Выучить PHP за месяц» и повышенный спрос на такие курсы уже не дают просто отмалчиваться. Еще и масса предложений прорекламировать курсы в «Экстраполяции» постоянно не дают игнорировать эту тему. И я попытаюсь сэкономить пару сотен долларов тем, кто хочет войти в айти через курсы. 1. Подавляющее большинство работы программиста состоит в нахождении и подбору нужной информации и построения новых умственных абстракций. Выучить все необходимое для работы просто невозможно. Изучать в первую очередь нужно механизм получения новых знаний. Учитесь учиться как бы. 2. Самая горячая технология уже через полгода-год превращается в дикий дикий энтерпрайз. Процесс изучения технологии непрерывен и никогда не останавливается. То, что на курсах рассказывают сейчас, было подготовлено пару месяцев назад и освоено учителем месяцев шесть назад. Актуальности в таких знаниях крайне мало. 3. Процесс обучения всегда основан на проведении аналогий с уже известными штуками. И у каждого процесс подбора аналогий сильно индивидуален. Все, что в состоянии сделать учитель — это навязать свои аналогии. 4. Некий базовый набор знаний все-таки получить можно, но он настолько фундаментален, что легко учится самостоятельно. Гит, основы юникса, алгоритмизация, немного математики. Плюс ещё некие основы для конкретной профессии. В веб-программировании, например, нужно понимать html, css, http и все такое прочее. 5. Целью любых курсов принципиально не может быть получение первой работы, иначе курс превращается в интенсив по оформлению резюме и подготовке к всевозможным тестовым заданиям. «Помогаем с трудоустройством» — фраза маркер таких курсов. 6. Можно понять и принять курсы повышения квалификации, где можно пообщаться с кем-то, кто поможет выбраться из локального минимума. Но для этого уже должен быть какой-то опыт и знания. С нуля такого делать нельзя. #перечитываяэкстраполяцию #экстраакадемия
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
07.09.2021 11:09
Одна из самых странных и удивительных штук в программировании за последние пару лет — нейронный дополнятор кода. Это когда машинным обучением подсказывают что в коде писать нужно. Их есть несколько, разной степени продвинутости, выбрать есть из чего. И задача ставится проще некуда: найти закономерности в уже существующем коде и продолжить существующий. Некоторые такие подсказчики не ставят амбициозных целей и пытаются бить наверняка, подсказывая имена даже новых переменных по первой букве, всякие устоявшиеся конструкции, вроде has_many :projects, если рядом есть класс Project и всякие for i++ конструкции. Это здорово помогает и экономит время. Но вот появились инструменты, которые обещают прям кусок кода писать. Мол, напиши каментом что ты хочешь, а я попробую сгенерировать код. Или назови функцию и дай сигнатуру, а я сгенерирую её тело. Немного поигравшись с таким инструментом становится понятно, что времени он не экономит совсем. На чтение куска кода уходит времени сопоставимо с его написанием, а нюансы и тонкости, которые можно пропустить в сгенерированном коде отнимут гораздо больше, чем написание такого кода самому. К тому же, если код банален настолько, что его прям можно подсказать целым куском, то его явно можно просто найти в зависимостях и установить пакетным менеджером. Вот что действительно было бы полезным и правильным, так это с помощью машинного обучения помогать писать тесты. По пяти уже написанным тестам подсказать недостающие парочку будет совсем не сложно, а времени сэкономит. Ну и ошибки в существующих тестах сильно сократит.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
06.09.2021 11:09
Ладно, лето красное пропело и пора в онлайн возвращаться. Надеюсь что вы по Экстраполяции скучали так же, как Экстраполяция скучала по вам. Одна из актуальных тем — дефицит разработчиков и спрос на программистов, превышающий предложение. С одной стороны рынок наводняют молодые айтишники, которые пороху не нюхали и даже массив не отсортируют самостоятельно. С другой стороны молодая кровь заставляет шевелиться старую и среди дремучих зарослей молодняка всегда можно больше одаренностей. Абстракции в программировании уже настолько устоявшиеся и малопротекающие, что писать на них вполне комфортно и без большого багажа знаний. Это очень круто, ведь не такие задачи не нужно искать людей с 10+ лет опыта.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


15.05.2021 18:05
На правах субботы и продолжении творческого поиска написал тут коротенький рассказ «Злодеи». Приятного чтения. https://telegra.ph/Zlodei-05-15
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
09.05.2021 11:05
Сова и глобус. Самая большая ошибка организации уделённой работы — это попытка натянуть процессы офисной работы на удалёнку. Каждое утро перед работой собираемся в одной комнате посмотреть друг на друга? Давайте будем каждый день в одно и то же время смотреть на друг друга в камеру. В офисе можно в любой момент подойти к кому угодно и задать вопрос? Давайте писать в чат и требовать ответа. Конечно, если брать офисные процессы и пытаться по ним жить на удалёнке, то безусловно работа в офисе окажется лучше.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
27.04.2021 12:04
Давным давно, когда я ещё работал в аутсорсе, у нас появился термин локальный, которым мы объясняли вид деятельности, где мы как бы выполняли свою работу по программированию, но при этом не программировали. Термин этот — «программирование в емейлах». Задачей было убедить заказчика с помощью аргументов в письме, что вот эта вот конкретная фича ему не нужна. Разработчики очень часто пренебрегают этим видом деятельности, подразумевая, что раз фичу просят, то надо делать. Но если разработчик не видит смысл в новой фиче, то скорее всего он сделает её не так, как ожидалось. Фичу надо делать толко тогда, когда лично вы видите в ней смысл. Иначе нужно разговаривать, пока либо разработчики не увидят смысл, либо постановщики задачи не убедятся в бесполезности фичи.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
21.04.2021 17:04
Короче, у меня тут ситуация, ещё круче той, что Дмитрий описывал, помните? Давным давно, по долгу службы, оставил я свои контакты в группе одной, которые сейлзы тусуются. С тех пор их спам, об «митапах», «интенсивах» и прочей подобной штуке читал по-диагонали без особого интереса. Но тут прямо я совершил ошибку и кликнул по ссылке. И что вы думаете? Мне позвонил прям на телефон какой-то Юра с претензией, мол, чо это я по ссылке кликнул, а их инфокурс не купил? Может, у меня случилось что, заболел я там или кликнул по ссылке и умер внезапно от того, что сердце стало от настолько инфокурса офигенного и лендинга продающего. В общем, я в шоке, этому сейлзов молодых учат?
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Экстраполяция IT
19.04.2021 13:04
Лучший ajax в моей жизни назывался .js.haml. Это было офигенно. Потом я отвернулся, потом я как-то гастролировал с FRP, а потом произошло вот это: https://github.com/reduxjs/redux/commit/9276ff0af6400633d6731b15fed6e70c3561887e #dimoneverything
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме