. 10 лучших сайтов для изучения программирования ⁠ ⁠
10 лучших сайтов для изучения программирования ⁠ ⁠

10 лучших сайтов для изучения программирования ⁠ ⁠

Советую как можно меньше уделять внимание всяким обучающим видео и видеокурсам. Очень долго и безрезультатно. Вводный курс в язык вполне себе обеспечивает гугл и stackoverflow. Если нужны глубокие знания то техническая литература, и несколькими книжками не обойтись. По практике советую http://www.codingame.com/games , хорошие подборки разных алгоритмов разбитых по уровням сложности. Без книжки по дискретной математики дальше начального уровня не уйдете, но и этого достаточно будет чтоб потренироваться базовым вещам по типу сортировок, переборов, простых графов и т.д.

P/s а еще есть большое подозрение что автор очень далек от программирования, потому что топ неважненький. P/p/s удачи начинающим.

Господам, желающим программировать "для себя":1. Остановите свой выбор на Python 3, он прост в освоении и покроет 95% ваших нужд.2. Вам подойдет этот учебник http://rutracker.org/forum/viewtopic.php?t=4819630 3. Сайты, перечисленные выше, вам вряд ли помогут, а вот какой-нибудь задачник - очень даже.4. Даже не думайте когда-либо устраиваться работать программистами за зарплату.

Господам, желающим работать программистами за зарплату:1. Начните с четырехтомника Кнута.*

*в противном случае коллеги убьют вас когда-нибудь

CodeCombat даже запускать не стоит..Когда они начинали - было нормальное и обучение и пвп, но теперь у них донат рушит всё - хотите что-то выучить, кроме хождения вверх/вниз, хотите больше интересных уроков и примеров, хотите узнать хотя бы как создать переменную на этом языке - а вот хрен вам - заплатите 5$.

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

добавлю от себя1. http://www.sql-ex.ru/ запросы sql. есть своя БД для тестов.

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

В следующем посте показана линейка одежды, которая поможет вам не "засветиться" на фотографиях:

Чтобы получить больше информации www.penpaland.blogspot.com.br

Регулярно посещаю livecodingtv .Кто не в курсе, это сайт где люди стримят свою работу по IT профессии. По аналогии как твич для геймеров, так лайвкод для программистов. Основное содержание сайта, это стримы экрана будничных задач специалистов (например написание angular приложения). Часто они под музыку и без комментариев, но они очень ценны тем, что можно воочию увидеть будничную рутину специалиста, его рабочую среду, какие инструментами пользуется и как именно и т.д. еще можно задать вопрос и, в большинстве случаев получить грамотный ответ. Есть и стримы раскрывающие тематические вопросы, что ближе к обучению и уже схоже с видео сериями на ютубе, но происходят в режиме онлайн (есть записи) и, что более важно, видно как решается задача по настоящему.

Докину: "Yii2 для Блондинок и Чайников":

Статья неплохая , но как же вы забыли про агрегатор онлайн курсов https://tutortop.ru/ , тоже много полезной информации и кейсов

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

Техлитература и гайды смогут вывести вас максимум на junior и то вряд ли. Всё зависит от целей. Если что-то создать для себя, то пожалуйста, но здесь и нет речи про коммерческие разработки.

Если хотите сразу подняться сильно и быстро, то лучше что-то из этих курсов выбрать https://kursfinder.ru/category/programming/ , там полно подборок по разным тематикам и уровням сложности, заодно указаны цены.

Самый фундамент лучше получить из книги - книга обычно хорошо раскладывает по полочкам, дает нужную теоретическую базу, задает правильную последовательность. Я редко дочитываю техническую литературу до конца, до практики - так как и читаю для базы и теории. А вот всякие среды разработки, фреймворки, новые инструменты мне хорошо заходят по небольшим видеоурокам. Еще по видеоурокам хорошо делать первую практику - понятно что откуда скачивается, откуда берется. Есть андройд-приложение с бесплатными видеокурсами по программированию. Много курсов на русском языке, есть фильтр по языкам программирования. Называется itVideo - https://play.google.com/store/apps/details?id=ru.polina.itvi. А вот уже вопросы, которые в процессе разработки возникают - хорошо закрываются либо документацией либо ответами с сервисов "вопрос-ответ"

Ответ на пост «Хобби программиста»⁠ ⁠

Это чисто профессиональное, не только у программистов.

Бывает и у меня: делаю ножи по 8-10 часов в день, задолбало в край, и, чтобы отвлечься, включаю ютьюб и смотрю, как кто-то другой делает ножи.

Особенно люблю х*рососить видосы пакистанцев и индусов. Наконец, я понял чувства программистов, которые смотрят видосы индусов с их говнокодами.

Ответ EminSTX в «Правда ли, что 25-летний студент Джордж Данциг случайно решил две нерешённые математические задачи?»⁠ ⁠

Тоже похвастаюсь личным достижением.

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

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

Так вот, чтоб проверить мои технические навыки, ещё до найма остальной команды, мне дали задачку, которая на первый взгляд показалась мне не сильно сложной, о чём на первом митинге и заявил. Скептическое хмыканье разработчиков на той стороне списал на их недоверие ко мне лично (потому что моя техническая область слегка отличалась от того, что требовалось по проекту).

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

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

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

Закончилось всё типично. За 2 года моя команда исправила все ключевые недочёты, которые канадцы не могли исправить 10 лет. И проект передали индусам, а нас расформировали. :)

P.S. И да, именно на этом проекте я и словил в итоге микроинсульт, о котором раньше рассказывал: "Одеоаняню одеянеянеягедья"

Ответ на пост «Правда ли, что 25-летний студент Джордж Данциг случайно решил две нерешённые математические задачи?»⁠ ⁠

Когда я пришел в свою компанию, тут стояли несколько "неразрешимых" ИТ задач. Одна была существенной и сильно влияла на производительность. Мне (на тот момент перспективному Junior) поручили с ней разобраться. Сказали, что это так, мини-тестик на мою профпригодность. И всё - обо мне практически забыли. Я сидел совсем один, пока все вокруг бегали, работали, сдавали проекты. У меня был такой мандраж, что я даже уволиться хотел, потому что неделю не получалось даже понять старый код и продвинуться. Но время шло и мне стало все понятнее и понятнее. Через 2 месяца. пристыженный, красный я подошел к своему шефу и продемонстрировал исправленный и оптимизированный код, который в 10 раз быстрее. Старая процедура на стандартном массиве данных шла 39 секунд, моя - около 4 секунд. Он сначала посмеялся, поверить не мог. Говорит, это легаси код, который даже создатель не мог улучшить и сказал, что нереально сделать быстрее. И сказал мне, что я что-то упустил и поэтому быстрее. Чтобы я ещё раз проверил. Даже когда я ему показал два выходных массива, прошедших оба кода и их полную идентичность, он все равно поверить не мог. Говорит - наверное что-то из проверок упустил, поэтому так быстро, а на других массивах выявится отличие. Мой код добавили в параллельную ветку, а пускать в продакшен боялись пол года. Пол года тестов и прогонок отдела тестеров. Наконец признали, и пустили. Клиенты были очень довольны. Мне дали большую премию.

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

Программисту удалось запустить сервер Minecraft на фотоаппарате⁠ ⁠

На днях пользователь под ником Turtius опубликовал видео, на котором он смог запустить сервер Minecraft на зеркальной камере Canon SL2 и даже немного поиграть на нём. Как уточняют большинство новостных ресурсов, например PetaPixel, на камере запущен именно сервер игры, а не её клиент. Но даже для этого умельцу пришлось потратить кучу времени, чтобы воплотить задуманное в жизнь.

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

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

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

Шерлок Холмс: Череп как способ⁠ ⁠

Метод утёнка — психологический метод решения задачи, делегирующий её мысленному помощнику. Метод описан в книге «Программист-прагматик».

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

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

Аналогичный прием использовал Шерлок Холмс. До появления доктора Ватсона вместо утенка у него другом был череп. Многие наверное Шерлока посчитали странным, минимум не поняли о чем он говорит.

Скидываю интересную ссылку на видео про Шерлока с черепом и его методах по скольку не могу сразу тут добавлять видео. https://www.youtube.com/watch?v=IENyti5C_Cw&list=PLZH8x2.

Машинное обучение. Технический пост: с чего начинать и на что обратить внимание.⁠ ⁠

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

0. Как вообще изучать

1. Тематические ресурсы.

2. Техническая часть.

Как вообще изучать это дело?

Любая наука двигается людьми. Каждый учёный имеет свою область интересов, поэтому надо в первую очередь определиться, что тебе интересно. Вообще, в России самый-самый главный по машинному обучению - это Воронцов Константин Вячеславович. Он написал ряд лекций, каждая из которых от "А" до "Я" всё объясняет.

Лучше всего начать с этих лекций. Здесь затрагиваются основы основ, линейные методы классификации, немного про нейронные сети, кластеризация и регрессия. Вообще, у него есть общие лекции, на манер тех, что я привёл в пример, а есть лекции, специально посвящённые какому-то либо разделу. Например, тематическое моделирование (вопросы моделирования текстов), ансамбли алгоритмов (помогает понять, что такое случайный лес или градиентый бустинг). Эти знания помогут вам понять, что скрывается под копотом у ваших алгоритмов. Но есть и чисто научные вопросы, которые без. определённой доли усидчивости и знаний не понять.

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

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

Я походу своей деятельности занимался компьютерной лингвистикой. В компьютерной лингвистике правит бал сейчас модель word2vec. Поэтому, берём работы Tomasa Mikolova и гуглим его труды. Это даст вам необходимый минимум.

Тематические ресурсы.

Вообще, литературы по этому делу в интернете масса. Однако,что редкость, в русскоязычном сегменте есть весьма достойный сайт. Там можно найти почти всё! Вообще, такие сайты большая редкость. Думаю, что многие вспомнят хабр. Ну там. Там больше технические моменты описываются. С точки зрения программиста, хабр вещь незаменимая, но с научной. Мне попадались там действительно удачные циклы научпопа про тематическое моделирование. Если вам надо постараться смоделировать поведение пользователя, опираясь на тематики, то рекомендую их блог. На пальцах объясняют как это сделать и почему это будет работать. Результаты экспериментов прилагаются.

В последнее время, детище Грефа стало проявлять интерес к машинному обучению. Второй год подряд проводят конкурсы с очень неплохими призовыми, а результаты публикуют здесь. Также могу порекомендовать неплохую конфу "АИСТ". ВНИМАНИЕ, её результаты идут в Scopus. То есть - неплохая возможность получить публикацию в зарубежном журнале. Примите к сведению. Помимо чисто практических интересов (публикация) там проскакивают весьма и весьма интересные работы.

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

ШАД - это бренд. Я не знаю, что там проходят точно, но я уверен, что там круто. Очень круто. Поступление бесплатное, но очень трудное. Подробнее с задачами можно ознакомиться здесь. Из онлайн курсов я бы порекомендовал мониторить stepic. Там можно выцепить весьма любопытные курсы. Между прочим, с сертификатами, что весьма приятно. И бесплатно.

Техническая часть

Ну, тут всё просто. Идём и смотрим на hh/linkedin/stackoverflow что интересует потенциального работодателя.

2. Стэк: Big Data: Hadoop, Hive, Spark (для инженеров)

3. Python - просто маст хэв. Особенно его библиотеки для машинного обучения.

4. Желательно java

Если интересно для себя, то:

1. h20. Интуитивно просто и понятно. Я всегда использую для разных конкурсов :)

2. MS Azure. Детище майкрософта. Интерфейсом напоминает RapidMiner, раньше была платной, как сейчас - хз. Есть всё. В сети довольно много уроков, которые рассказывают, как этим пользоваться.

3. RapidMIner. Штука прикольная. Интерфейс довольно простой и дружелюбный. Из минусов: в бесплатной версии всего 1 гиг оперативки можно использовать, что довольно печально.

Ну вот вы натренировались, выучили всё, что можно и вам не терпится попробовать свои силы? Ну тогда вам

1. Kaggle. Самая-самая платформа для конкурсов по машинному обучению. Для сильных духом. Вообще, помимо конкурсов, можно почитать форумы, посмотреть тестовые проекты и поискать работу.

📎📎📎📎📎📎📎📎📎📎