Как выглядит процесс обучения? Детсад, школа, университет и эпизодические курсы повышения квалификации, да и то не у всех. До конца жизни человек идет на том багаже знаний, который набрал в начале. Сейчас есть запрос на то, чтобы процесс обучения стал постоянным. Нужно поменять специализацию – пожалуйста. Нужно усилиться – пожалуйста. Делать это виртуально может быть проще и удобнее, ведь нет никаких барьеров. При этом качественные знания можно получить бесплатно. Представляю 8 платформ, на которых можно учиться на русском языке без бюджета.
Артем Целовальников @SlazZy
ruby developer
Как технологии украли время на креативность
3 min
15KRecovery Mode

Оригинал: How Technology Has Hijacked Our Creative Spaces
Нам в буквальном смысле надо давать себе отдых от технологий, чтобы освободить разум.
Недавно я поняла, что креативные идеи посещают меня в то время, когда… Интернет отключен, а Wi-Fi не доступен. Или когда я иду выгуливать собаку и забываю смартфон. Или когда я еду домой, а батарея смартфона разряжена.
Да, конечно. Я прекрасно понимаю, что это далеко не новость. Или, может кто-то об этом еще не знает? Что касается меня, то это умозаключение открыло глаза на многое. Я никогда не хотела считать, что современные технологии — что-то, что может мешать мне быть креативной. Наоборот, я всегда думала, что технологии помогают креативности. Я могу читать интересные статьи, где и когда хочу. Я могу продуктивно использовать каждую минуту свободного времени. Всего пару нажатий на экран смартфона, и я могу получить доступ к нескончаемым запасам информации и знаний.
Но что толку? Какой смысл напичкивать себя информацией, если времени ее переработать и усвоить все равно нет?
+24
Типичные взаимные блокировки в MS SQL и способы борьбы с ними
11 min
111KЧаще всего deadlock описывают примерно следующим образом:
Процесс 1 блокирует ресурс А.
Процесс 2 блокирует ресурс Б.
Процесс 1 пытается получить доступ к ресурсу Б.
Процесс 2 пытается получить доступ к ресурсу А.
В итоге один из процессов должен быть прерван, чтобы другой мог продолжить выполнение.
Но это простейший вариант взаимной блокировки, в реальности приходится сталкиваться с более сложными случаями. В этой статье мы расскажем с какими взаимными блокировками в MS SQL нам приходилось встречаться и как мы с ними боремся.

Процесс 1 блокирует ресурс А.
Процесс 2 блокирует ресурс Б.
Процесс 1 пытается получить доступ к ресурсу Б.
Процесс 2 пытается получить доступ к ресурсу А.
В итоге один из процессов должен быть прерван, чтобы другой мог продолжить выполнение.
Но это простейший вариант взаимной блокировки, в реальности приходится сталкиваться с более сложными случаями. В этой статье мы расскажем с какими взаимными блокировками в MS SQL нам приходилось встречаться и как мы с ними боремся.

+20
Почему не нужно учиться программировать
3 min
36KСегодня существует множество возможностей научиться программировать. Но нужно ли всем уметь программировать? В этой статье мы постарались обобщить основные положения противников подобного подхода.
+17
Как не угробить архитектуру сразу же? Видео с лекции Евгения Кривошеева
1 min
60KВсем привет!
Две недели назад в Москве прошла очередная встреча CodeFreeze. Нашим гостем стал Евгений Кривошеев, признанный российский эксперт в области архитектуры программных систем, консультант из Scrumtrek/Skilltrek. Евгений прочитал офигеннейшую лекцию по архитектуре, как он любит и умеет.

В рамках этой встречи Евгений предложил обсудить последовательность решений, критичных для архитектуры любой системы. Выстраданная последовательность действий такова:
Две недели назад в Москве прошла очередная встреча CodeFreeze. Нашим гостем стал Евгений Кривошеев, признанный российский эксперт в области архитектуры программных систем, консультант из Scrumtrek/Skilltrek. Евгений прочитал офигеннейшую лекцию по архитектуре, как он любит и умеет.

В рамках этой встречи Евгений предложил обсудить последовательность решений, критичных для архитектуры любой системы. Выстраданная последовательность действий такова:
- Точки зрения на систему, или Почему мы слепнем при проектировании
- Адресация ключевых рисков, или Гордыня убивает
- Учитываем контекст, или Как не долбиться в закрытую дверь
+40
10 лучших советов о деньгах, от человека, который уже стал миллионером
2 min
13KTranslation
Полгода назад мы с женой решили превратить наш летний дом в Северной Джорджии в основное жилье.
Мы решили сделать несколько изменений, чтобы в доме можно было жить круглый год.
Однажды утром, когда я выходил из машины, трое рабочих оторвались от дел и уставились на меня.
Я остановился и спросил, все ли нормально, когда один из мужчин сказал: «Это нечестно. У вас есть этот прекрасный дом и красивая машина, а мы здесь горбатимся за зарплату чуть больше минимальной».
Я подошел к этому мужчине, и мы проговорили о создании богатства больше часа. Я рассказал ему, что жизнь не всегда была так хороша, и что в какой-то момент у меня было долгов на пятьдесят тысяч долларов, и я понятия не имел, как из этого выбраться. Мужчина пожал мою руку, и поблагодарил за то, что я поделился с ним своими знаниями.
Сегодня утром я снова собирался сесть в свою машину. Мужчина за рулем грузовика, проезжающего по улице, остановился около моего дома и прокричал: «Мистер Зиболд, я последовал вашему совету, и начал собственное дело. На меня работает пять человек, и бизнес быстро растет. Мы с семьей испытываем такую свободу, о которой раньше не могли и мечтать».
Он продолжил: «Пожалуйста поделитесь своей мудростью и с другими!»
Крайне тронутый тем, сто мужчина последовал моему совету и изменил свою жизнь к лучшему, я в свою очередь, последую его совету, и поделюсь с вами ключевыми тезисами того, что я рассказал ему полгода назад.
1. В рыночной экономике любой может зарабатывать столько, сколько хочет.
2. Ваше прошлое, уровень образования или IQ не имеют значения, когда дело доходит до зарабатывания денег.
Мы решили сделать несколько изменений, чтобы в доме можно было жить круглый год.
Однажды утром, когда я выходил из машины, трое рабочих оторвались от дел и уставились на меня.
Я остановился и спросил, все ли нормально, когда один из мужчин сказал: «Это нечестно. У вас есть этот прекрасный дом и красивая машина, а мы здесь горбатимся за зарплату чуть больше минимальной».
Я подошел к этому мужчине, и мы проговорили о создании богатства больше часа. Я рассказал ему, что жизнь не всегда была так хороша, и что в какой-то момент у меня было долгов на пятьдесят тысяч долларов, и я понятия не имел, как из этого выбраться. Мужчина пожал мою руку, и поблагодарил за то, что я поделился с ним своими знаниями.
Сегодня утром я снова собирался сесть в свою машину. Мужчина за рулем грузовика, проезжающего по улице, остановился около моего дома и прокричал: «Мистер Зиболд, я последовал вашему совету, и начал собственное дело. На меня работает пять человек, и бизнес быстро растет. Мы с семьей испытываем такую свободу, о которой раньше не могли и мечтать».
Он продолжил: «Пожалуйста поделитесь своей мудростью и с другими!»
Крайне тронутый тем, сто мужчина последовал моему совету и изменил свою жизнь к лучшему, я в свою очередь, последую его совету, и поделюсь с вами ключевыми тезисами того, что я рассказал ему полгода назад.
1. В рыночной экономике любой может зарабатывать столько, сколько хочет.
2. Ваше прошлое, уровень образования или IQ не имеют значения, когда дело доходит до зарабатывания денег.
+2
Сложно о простоте Go
10 min
29KЧитая о языке Go, вы часто будете слышать слово “простота”. Но разные люди трактуют это слово по разному, особенно в контексте разработки ПО, а многие, зачастую, даже не осознают, почему это вообще используется, как характеристика языка. В этой статье мы попытаемся концептуально подойти к вопросу “сложности” и “простоты” в разработке ПО, и посмотрим, почему и зачем язык Go поставил простоту как краеугольный камень своего дизайна.


+16
Бизнес-кейс. Чудесное воскрешение Marvel (часть 1)
6 min
13K
Вообще, метод кейсов (Case study, Case method) — это метод ситуационного анализа, техника обучения, использующая описание реальных экономических, социальных и бизнес-ситуаций. На протяжении длительного времени занимает ключевую позицию в управленческом образовании. Метод был впервые применён в Гарвардской бизнес-школе (Harvard Business School) в 1924 году.
Краткое описание
В декабре 1996 года Marvel Comics, одна из самых старых компаний издателей комиксов, объявила о банкротстве. Команда Marvel Entertainment LLC, ранее Marvel Enterprises and Toy Biz, Inc. (американская компания индустрии развлечений, образованная от слияния «Marvel Entertainment Group, Inc.» и «Toy Biz, Inc.» в 1998 году), известная своей вселенной супер-героев, включающей Человека-паука, Халка, Людей Икс и Железного человека, должна пересмотреть свою маркетинговую стратегию. Как Marvel удалось пройти путь от банкротства до продажи Disney за $4 млрд? Было ли возрождение Marvel просто случайностью? Какие маркетинговые стратегии позволили Marvel повторить свой успех? Как пришлось изменить свою бизнес-модель?
+12
+20
На пути к правильным SQL транзакциям (Часть 2)
7 min
57KВ предыдущей части были рассмотрены основы уровней изоляции транзакций. Здесь я постараюсь копнуть чуть глубже и рассказать при помощи каких инструментов MS SQL Server реализует уровни изоляции.
Как вы могли видеть в предыдущем разделе, существует два способа поддержания изоляции:
- Основанный на блокировке ресурсов
- Основанный на создании версионной копии ресурсов.
Режимы, основанные на создании копии данных, достаточно просты для понимания и думаю не требуют особого внимания. При желании углубиться в детали их реализации, я могу предложить обратиться к не плохому описанию на MSDN. Я же хочу рассмотреть, как реализован механизм, основанный на блокировках.
+20
На пути к правильным SQL транзакциям (Часть 1)
6 min
152KTutorial
Мне часто приходилось сталкиваться с тем, что люди прекрасно понимают, что такое транзакции в базе данных и для чего они нужны, но при этом не всегда умеют ими правильно пользоваться. Безусловно, для достижения 80-го уровня сакрального знания нужно иметь не один год опыта и прочесть множество толстенных книг по SQL. Поэтому в этой статье я даже не буду пытаться описать всё, что может быть связано с транзакциями в MS SQL. Я хочу затронуть один простой, но очень важный вопрос, который разработчики часто упускают из вида – уровни изоляции транзакций.
Несмотря на то, что тема очень проста, во многих источниках она освящается плохо – информации либо очень мало, либо очень много. Т.е. прочитав 5-6 кратких теоретических определений невозможно их применить на практике. Для уверенного понимания предмета статьи нужно обращаться к специализированной литературе, но там информации на столько много, что далеко не каждый может уделить необходимое время для её усваивания.
Сегодня я хочу поделиться своим простым рецептом, который помог мне раз и на всегда запомнить особенности уровней изоляции транзакций и по сей день помогает без проблем принимать взвешенные решения о выборе необходимого уровня.
+22
Использование монад в С++. Часть 1: монада списка
10 min
34KTutorial
Translation
Часть 1
Часть 2
Иногда программисты на С++ просят привести пример задачи, которая не может быть решена без использования монад. Начнём с того, что этот вопрос неверен сам по себе — это всё-равно, что спрашивать, существует ли задача, которая не может быть решена без циклов. Очевидно, если в вашем языке есть поддержка оператора goto, вы можете обойтись без использования операторов цикла. Что монады (и циклы) могут сделать для вас, это упростить ваш код и помочь лучше его структурировать. Как использование циклов превращает спагетти-код в нормальный, так и использование монад может превратить ваш код в императивном стиле в декларативный. Эта трансформация может помочь легче писать, понимать, поддерживать и расширять ваш код.
Ну и вот вам задачка, которая может попасться на собеседовании. Она не совсем тривиальна, возможно несколько подходов к решению и лучший из них не сразу очевиден — как-раз то, над чем стоит подумать.
Вам предлагается следующий пазл:
Каждая буква соответствует цифре от 0 до 9. Нужно написать программу, которая подберёт такие соответствия, чтобы написанная операция сложения была верной. Перед тем, как продолжить чтение статьи — подумайте минутку, как бы вы решили эту задачу?
Часть 2
Иногда программисты на С++ просят привести пример задачи, которая не может быть решена без использования монад. Начнём с того, что этот вопрос неверен сам по себе — это всё-равно, что спрашивать, существует ли задача, которая не может быть решена без циклов. Очевидно, если в вашем языке есть поддержка оператора goto, вы можете обойтись без использования операторов цикла. Что монады (и циклы) могут сделать для вас, это упростить ваш код и помочь лучше его структурировать. Как использование циклов превращает спагетти-код в нормальный, так и использование монад может превратить ваш код в императивном стиле в декларативный. Эта трансформация может помочь легче писать, понимать, поддерживать и расширять ваш код.
Ну и вот вам задачка, которая может попасться на собеседовании. Она не совсем тривиальна, возможно несколько подходов к решению и лучший из них не сразу очевиден — как-раз то, над чем стоит подумать.
Вам предлагается следующий пазл:
s e n d
+ m o r e
---------
m o n e y
Каждая буква соответствует цифре от 0 до 9. Нужно написать программу, которая подберёт такие соответствия, чтобы написанная операция сложения была верной. Перед тем, как продолжить чтение статьи — подумайте минутку, как бы вы решили эту задачу?
+37
Почему программировать так тяжело?
7 min
132KTranslation
Привет, Хабр!
В феврале мы публиковали перевод крутой статьи "Почему научиться программировать так чертовски тяжело?", которую теперь показываем новичкам. Да, научиться программировать – это целая история, длинная, с кучей разных этапов, с эмоциональными взлетами и падениями. Мы все через это проходили (или еще проходим – так держать!).
К сожалению, нет такого момента, когда можно встать и заявить, что «я закончил обучение и теперь я программист!». Учиться придется всю жизнь, и всю жизнь вы будете встречать неведомые проблемы, сталкиваться с совершенно непонятными ситуациями и спрашивать «какого хрена?!» даже будучи профессиональным программистом с многолетним стажем.
Сегодня мы публикуем перевод заметки «Почему программировать так тяжело?». Тем, кто еще изучает основы программирования и разработки будет полезно узнать, что их ждет в будущем. А опытным разработчикам будет просто приятно взглянуть на реальность и покивать головой.

Много лет назад я думал, что программировать легко, но прошли годы, и я понял, что это не так. Всё из-за неверного восприятия того, что я считал программированием и того, какую работу выполняет программист.
Вначале я думал, что программировать – это только указывать компьютеру, что делать, эта часть процесса относительно лёгкая. После двадцати с лишним лет опыта, я действительно пришёл к выводу, что эта часть программирования достаточно лёгкая.
В феврале мы публиковали перевод крутой статьи "Почему научиться программировать так чертовски тяжело?", которую теперь показываем новичкам. Да, научиться программировать – это целая история, длинная, с кучей разных этапов, с эмоциональными взлетами и падениями. Мы все через это проходили (или еще проходим – так держать!).
К сожалению, нет такого момента, когда можно встать и заявить, что «я закончил обучение и теперь я программист!». Учиться придется всю жизнь, и всю жизнь вы будете встречать неведомые проблемы, сталкиваться с совершенно непонятными ситуациями и спрашивать «какого хрена?!» даже будучи профессиональным программистом с многолетним стажем.
Сегодня мы публикуем перевод заметки «Почему программировать так тяжело?». Тем, кто еще изучает основы программирования и разработки будет полезно узнать, что их ждет в будущем. А опытным разработчикам будет просто приятно взглянуть на реальность и покивать головой.

Много лет назад я думал, что программировать легко, но прошли годы, и я понял, что это не так. Всё из-за неверного восприятия того, что я считал программированием и того, какую работу выполняет программист.
Вначале я думал, что программировать – это только указывать компьютеру, что делать, эта часть процесса относительно лёгкая. После двадцати с лишним лет опыта, я действительно пришёл к выводу, что эта часть программирования достаточно лёгкая.
+57
Какой язык программирования будет наилучшим для изучения в 2015 году?
5 min
205KTranslation
Вот уже несколько лет я слежу за статистикой в языках программирования. Существует большое количество источников данных, включая репозитории кода, обсуждения вопросов и ответов, предложения работы, упоминания в социальных медиа, посещения страниц с учебными материалами, просмотры обучающих видео, опросы разработчиков и др. Данные публиковались в разные периоды времени, никакие из них не могут считаться абсолютно точными, везде содержатся недочёты, но они могут быть полезны для выявления трендов в индустрии.
+22
Введение в магию шаблонов
5 min
29KTutorial
Шаблоны в С++ являются средствами метапрограммирования и реализуют полиморфизм времени компиляции. Что это такое?
Это когда мы пишем код с полиморфным поведением, но само поведение определяется на этапе компиляции — т.е., в противовес полиморфизму виртуальных функций, полученный бинарный код уже будет иметь постоянное поведение.
Это когда мы пишем код с полиморфным поведением, но само поведение определяется на этапе компиляции — т.е., в противовес полиморфизму виртуальных функций, полученный бинарный код уже будет иметь постоянное поведение.
-3
7 тенденций веб-дизайна в ближайшем будущем
5 min
79KTranslation
Многие статьи пытаются рассказать о том, что сейчас в веб-дизайне считается крутым. Я попытаюсь зайти за очевидные рубежи и сделать предсказания на эту тему.
Мы забыли, как раньше было сложно прокручивать страницы. Приходилось тащить курсор к правому краю, чтобы пользоваться такой древней штукой, как полоса прокрутки. Если вы тогда уже были профессионалом, вы могли использовать колесо мышки, клавиши курсора или трекпад – но в этом вы обгоняли большинство пользователей.

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

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

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

Эта тенденция продолжится, поскольку мобильных устройств становится больше. На современных сайтах меньше мест для кликов, и больше прокрутки. Меньше ссылок, больше кнопок, больших кликабельных областей и высоких страниц, которые надо прокручивать.
+25
Разработка ММО РПГ – практическое руководство. Сервер (часть 2)
14 min
25K- Реализация AI: как сделать максимально просто?
- RPC клиент-сервер: json или бинарная «самопальщина»?
- Асинхронные сокеты или многопоточная архитектура?
- Кеширование объектов на уровне приложения или больше памяти для СУБД?
- Работа с БД без Reflection API: действительно ли это так сложно?
Сегодня мы продолжим рассматривать архитектуру и особенности реализации игрового backend'а на С++ для онлайн игры на примере ММО РПГ «Звездные Призраки». Это вторая часть статьи про сервер, начало можно прочитать здесь.
+10
Go как язык для обучения программированию
5 min
29Ktl;dr: Go достаточно многословный и строгий язык программирования с очень предсказуемой и стремительной кривой обучения, что делает его крайне удачной технологией для обучения программированию новоприбывших!
Я только приехал из штатов, после Google Code-In 2014 Grand Prize Trip, отдохнувший и веселый. Какое-то время думал написать отчет о том, чем призеры там занимались, как нас приняли в Mountain View и обо всем этом, но в какой-то момент понял, что все это совершенно бесполезно. Совсем недавно я по воле случая должен был помочь своему товарищу с домашкой по информатике (там было что-то вроде selection sort). Реализация требовалась на паскале, а я паскаль знаю очень плохо, как впрочем и другие неактуальные, по большей мере, языки программирования, вроде Ada.

+20
Обработка строк в Java. Часть I: String, StringBuffer, StringBuilder
8 min
462KTutorial
Вступление
Что вы знаете о обработке строк в Java? Как много этих знаний и насколько они углублены и актуальны? Давайте попробуем вместе со мной разобрать все вопросы, связанные с этой важной, фундаментальной и часто используемой частью языка. Наш маленький гайд будет разбит на две публикации:
Реализация строк на Java представлена тремя основными классами: String, StringBuffer, StringBuilder. Давайте поговорим о них.
+12
Руководство по оптимизации сайтов для начинающих. Часть 1
4 min
16KTranslation
Оптимизация веб-сайтов, известная под именем А/Б тестирование набрала популярность в качестве рабочей техники для многих команд, создающих сайты. Но до сих пор по ней слишком мало всеобъемлющих книг, статей или обучающих материалов, направленных на одиночных разработчиков, стремящихся ввести эту технику у себя в организации.
В первой части руководства я представлю подробную инструкцию по тому, как построить, настроить и улучшить эту технику для своего использования.
Это метод экспериментов, проверяющих, какой дизайн лучше подходит для вашего сайта. Идея проста:
создать несколько вариантов дизайна страницы или части страницы вашего сайта
разделить трафик сайта так, чтобы каждый посетитель видел либо текущую версию (контрольная группа), либо один из новых вариантов
отслеживать, какая из версий показывает лучшие результаты, при помощи специальных показателей
Показатели выбираются так, чтобы непосредственно отражать ваши бизнес-цели. Они могут включать количество товаров, купленных на сайте; количество людей, подписавшихся на рассылку; количество людей, просмотревших видео с инструкцией. Иногда показатели называют конверсией – это процент посетителей, совершивших нужное действие по отношению к общему числу посетителей.
В первой части руководства я представлю подробную инструкцию по тому, как построить, настроить и улучшить эту технику для своего использования.
Основы: что такое оптимизация веб-сайтов?
Это метод экспериментов, проверяющих, какой дизайн лучше подходит для вашего сайта. Идея проста:
создать несколько вариантов дизайна страницы или части страницы вашего сайта
разделить трафик сайта так, чтобы каждый посетитель видел либо текущую версию (контрольная группа), либо один из новых вариантов
отслеживать, какая из версий показывает лучшие результаты, при помощи специальных показателей
Показатели выбираются так, чтобы непосредственно отражать ваши бизнес-цели. Они могут включать количество товаров, купленных на сайте; количество людей, подписавшихся на рассылку; количество людей, просмотревших видео с инструкцией. Иногда показатели называют конверсией – это процент посетителей, совершивших нужное действие по отношению к общему числу посетителей.
+2
Information
- Rating
- Does not participate
- Location
- Тула, Тульская обл., Россия
- Date of birth
- Registered
- Activity