Ответ на пост «Айтишники:уровень Бог»
Мне кажется глупо отрицать тот факт, что есть определённые черты или характеристики личности, критически необходимые для того или иного рода деятельности. Без которых преуспеть в этой области просто не получится. И такие особенности человека есть не только в программировании, но и в других областях (например в вашей).
Странно отрицать, что для продаж критически необходимы навыки коммуникации.
Вам рассмеются в лицо, если вы скажете, что для воспитания детей не требуются терпение и уравновешенность.
Примеров можно привести массу, думаю продолжать нет необходимости.
Ваш оппонент отчасти прав - для работы именно программистом действительно требуется определённый склад ума и взгляд на вещи. Да, когнитивная нагрузка в профессии очень высока, и чтобы преуспеть надо быть способным эту нагрузку тянуть. Но программирование - не единственная профессия, требующая таких склонностей, строго говоря. Есть ещё наука, инженерия, масса профессий требует похожих навыков.
С другой стороны, высокие оклады это НЕ следствие гениальности или какой-то исключительности, а следствие совокупности факторов: резко возросшей востребованности профессии рынком (следствие скачка цифровизации), ограниченным количеством хороших специалистов (требуется много времени на то чтобы его вырастить, в целом людей с подходящими), плюс высокие требования по некоторым характеристикам человека (к сожалению, скромность и эмпатия не являются обязательными - поэтому таких как ваш оппонент действительно немало).
В общем, не судите по одному попутавшему берега индивидууму сразу всех представителей профессии. Возможно когда-нибудь он осознает свою неправоту, потому что нам в нашей программистской профессиональной среде тоже не нужны токсичные самовлюблённые мудаки, и рано или поздно либо поймёт, либо недвусмысленно намекнут.
P.S. Программирую с 1990 года с небольшими перерывами.
P.P.S. Личное наблюдение - знаю много коллег, кто без проблем освоил радикально отличную от программирования профессию и занимается ей в виде хобби. От музыки, до строительства. И я всё равно считаю, что концентрация умников и умниц среди программистов выше среднего (уж простите). Просто вам попался такой вот неприятный представитель.
Что такое Few-shot learning?
Few-shot learning позволяет модели распознавать и классифицировать новые изображения после того, как она была обучена на небольшом количестве обучающих примеров.
Зачем это придумали? Ведь модели обычно обучают на огромных количествах данных? Чем больше, тем лучше, так?
Да, но… Few-shot learning — это важный концепт в ML по нескольким причинам.
Во-первых, такой метод сокращает время, необходимое для разметки больших наборов данных.
Во-вторых, не нужно добавлять разные функции для разных задач, если мы используем один и тот же набор данных для создания разных примеров. И это, с одной стороны, круто, потому что обучение на небольшом количестве данных научит модели лучше распознавать объекты на основе их меньшего количества. Это означает, что модели становятся более универсальными, а не такими специализированными, как обычно.
С другой стороны, в бизнесе востребованы разные модели для разных отраслей, потому что это учитывает особенности рынка и потребности предприятий. Экспертиза в определенной сфере помогает сократить время на разработку моделей, которые уже соответствуют требованиям этой отрасли, и, следовательно, требуют меньше изменений.
Короче говоря, метод обучения зависит от целей.
Обучение на малых данных наиболее часто используется в computer vision, поскольку характер проблем CV требует либо больших объемов данных, либо гибкой модели.
А можно ли сделать модель, обученную на небольшом количестве данных, сделать гибче? И как?
Возможно, конечно, если придерживаться определенных стратегий. Можно добавить дополнительные слои или изменить число нейронов в слоях. Да, это увеличит её сложность модели, но также и улучшит ее способность к обобщению.
Есть ещё методы аугментации данных: повороты, масштабирование и отражение изображений. Они помогают увеличить разнообразие обучающего набора и сделать модель менее чувствительной к вариациям в данных.
Есть и другие. Техники адаптивного обучения, о которых мы уже рассказывали в рубрике #технокульт в этом материале. Правда, не в контексте обучения моделей, а RL-агентов, но суть не меняется. Другие варианты — это алгоритмы ансамбля: бэггинг, бустинг или стекинг… Обо всём этом — чуть позднее.
Что вы делаете такого что выдает в вас ITшника?
Расскажите что вы из IT не говоря что вы из IT.
Brief, или как двое школьников создали соцсеть, часть вторая
Возможно вы видели наш предыдущий пост и наткнулись на нерабочую ссылку на Play Store. К сожалению, нас оттуда забанили по неизвестным нам причинам, поэтому нам пришлось выложить наше приложение в RuStore:
https://apps.rustore.ru/app/dg.farist.appslovo
Инвайт код: V6AXL4LIMV
Для тех, кто не видел предыдущий пост, вставлю его сюда.
Всем привет! Мы учимся в 10-м классе и с начала этого года мы работали над собственным мобильным приложением. Хотим узнать ваше мнение о нашей работе и чуть-чуть прорекламировать наш проект).
Приложение называется Brief и представляет из себя соцсеть. Сейчас объясним идею проекта вырезками из презентации, которую мы подготовили для сдачи проекта в школе.
Далее поговорим о фичах.
Чтобы зарегаться в нашем приложении вам нужен инвайт-код, например этот: V6AXL4LIMV
Что мы использовали при создании приложения:
На проект ушло +- 6 месяцев. Кроме создания приложения мы провели закрытое тестирование, выпустили множество обновлений. Очень хотим услышать конструктивную критику и/или предложения по развитию проекта). Будем бесконечно благодарны всем скачавшим.
P.S. Наши ники - theoaristov и demid, добавляйтесь))
Какие могут быть проблемы с обучением, если всё есть в сети, на русском и в открытом доступе
Затронута важная тема!
Оригинальный пост:
Заклинание призыва инициатора (вроде так произносится):
Многие программисты, которые сильно погружены в тему, просто не способны рассказать что-то полезное не потому, что не понимают материал, а потому, что не понимаю проблем начинающих. У кого-то были отличные учителя и они не заметили трудностей на этапе обучения. Кто-то просто очень давно учился и уже не понимает проблем начинающих. Кому-то сразу и всё было понятно (большинство, конечно, выберет это вариант! :).
Какой бы ни была причина, суть не меняется. Большое количество контента в сети не даёт понимания материала.
Штука, про которую ты хотел написать, судя по контексту, называется "контейнер инъекции зависимости" (Dependency Injection Container). Хорошо бы подучить матчасть, чтобы понимать зачем оно надо и какие проблемы решает.
IoC - это "принцип инверсии управления (Inversion of Control). Опять таки хорошо бы почитать что это и зачем оно надо.
Вот пояснение о инверсии зависимости с сайта всё тех же «мелко-мягких»:
Зависимость в приложении должна быть направлена в сторону абстракции, а не на детали реализации. При написании большинства приложений направление зависимостей времени компиляции задается в сторону времени выполнения.
Я понимаю о чём речь, но до сих пор читаю такие тексты с усилием. Когда начинал разбираться в теме – это был просто шум. Есть люди, которые сразу и легко такое понимают, но я, к сожалению, не из таких. Поэтому нужны хорошие примеры с плавным погружением в проблему и предоставлением инструментов для решения. А таких в сети хрен целых и ноль десятых.
Вообще подобные рекомендации очень похожи на классическое «учи матчасть». Отправлять учить матчасть – святое дело для каждого, кто разобрался в теме :). Но это так не работает. Я читал Троелсена по рекомендациям, смотрел и читал множество материалов в сети на разных языках, покупал в складчину переводы по разным темам. К сожалению, подавляющее их большинство являются копией содержания популярных книг с полным сохранением сложности формулировок. Мой наставник верно подметил, что с таким же успехом можно учить французский язык по словарику. Владеющему языком словарик сильно помогает, а начинающим такой словарик будет почти бесполезен.
Обе темы не для начального уровня изучения, а уже после того, как осилишь интерфейсы и полиморфизм.
Много раз такое слышал – но это совет, который не решает вопроса. Не понял тему – читай предыдущую. Так вопросов по предыдущей теме и не было (!!!). Снова попадаем в рекомендацию «учи матчасть».
Сейчас же материалов по программированию в интернете полно - бери да учись. И видео, и блоги, и официальная документация. Всё бесплатно. Да вот взять хотя бы документацию от мелко-мягких https://learn.microsoft.com/ru-ru/dotnet/core/extensions/dep... Всё по русски, с объяснением зачем оно надо и примерами.
Чтобы найти нужную статью – надо знать, что искать и уметь вычленять важное из ещё мало понятной темы (вот так задачка!).
Я преподаю компьютерную графику студентам (визуализация интерьеров в 3ds max). Они тоже задают странные (по моему мнению, конечно) вопросы.
Например, если у меня студент спрашивает, как двигать объект, то я не понимаю, почему он не написал это в гугле. Так и пиши - «как двигать объект 3ds max». Будет много видео на первой же странице. Но есть и более сложные примеры - «как сделать здание с плавно меняющимся размером окон». Такой запрос на параметрическое моделирование не выведет и ответов не даст. Хотя с моей стороны очевидно, что информация по параметрическому моделированию в сети уже есть. Её много, она на русском и бесплатна.
Программирование существенно сложнее из-за большого количества мнений. Здесь не всё так однозначно, как в теме 3d моделирования. Даже если известно, что искать. Запрос может привести тебя к тонне материала, в котором большАя часть будет копипастой из словарика, не меньшая будет не по уровню сложной (привет интерфейсы и полиморфизм, я снова иду к вам!), ещё часть будет в стиле «учи матчасть» и совсем малая будет действительно актуальной и полезной. Изучить последнее после процеживания всего остального - та ещё задачка.
Реально понимание приходит, когда ученик сталкивается с нерешаемой ранее задачей, для решения которой вводят новый инструментарий. Тогда и становится понятно на кой оно надо. Для этого важно выделить проблему и без избытка информации подвести к её решению. Но чаще предлагают найти и понять проблему самому (уже задачка). А потом с полным осознанием ситуации (с чего бы?) подобрать нужный инструментарий и решить проблему (а чего не понятно – всё же есть в сети и бесплатно). Абсурд.
Недавно смотрел, как жена игра играет в PS4. Она почти никогда не играла в видеоигры. Сидит и вообще тормозит! А всё дело в том, что для неё задачка – это найти нужную кнопку на геймпаде. Когда думаешь о таком, места на размышления о тактике или оценке поведения врага не остается. Она не видела ничего, что происходит на экране из того, что видел я.
Помните, голова учащегося плотно занята множеством других вопросов, которые кажутся специалисту элементарными, не достойными внимания или даже вовсе незаметными. Но именно из-за них очевидное и простое решение или знание просто ускользает от ученика. Даже если оно написано прямо на экране и на русском языке.
Я верю, что те люди, которые откликаются на помощь с обучением, хотят помочь. Но описанные рекомендации и советы просто не работают. Поэтому, когда тема IoC-контейнеров стала хотя бы более-менее ясна, я написал этот пост радости наполненный
...ошибками и корявым объяснением...
Потому что даже такая мелочь даётся огромным трудом и большим тоннажем перелопаченного материала. И, я надеюсь, что моё объяснение кому-то поможет так же хорошо, как помогло мне.