Как стать автором
Обновить
11
0

Пользователь

Отправить сообщение

Дефицит есть, а денег не дают. Почему?

Время на прочтение27 мин
Количество просмотров292K

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

Читать далее
Всего голосов 618: ↑603 и ↓15+588
Комментарии1205

Дефицит специалистов не только в IT — он везде. Но денег не платят

Время на прочтение17 мин
Количество просмотров199K

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

Читать далее
Всего голосов 440: ↑424 и ↓16+408
Комментарии1017

Excelsior JET прекращает разработку своего AOT-компилятора после 18 лет работы

Время на прочтение1 мин
Количество просмотров21K
Те, кто следит, что происходит с платформой Java, вероятно, в теме, что есть очень интересный AOT-компилятор для Java, разработанный российской компанией из Новосибирска. Это один из тех проектов, которыми можно гордиться.
Читать дальше →
Всего голосов 56: ↑55 и ↓1+54
Комментарии39

Король разработки

Время на прочтение15 мин
Количество просмотров210K


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

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

Недавно у него дела пошли в гору, и там где нормальные люди радуются и расцветают, этот парень, кажется, совсем съехал с катушек. Мы с ним как следует выпили, и он рассказал мне много искреннего дерьма, которое, честно, я бы хотел расслышать обратно.
Читать дальше →
Всего голосов 375: ↑315 и ↓60+255
Комментарии667

Вопросы для собеседования бэкенд-разработчика

Время на прочтение16 мин
Количество просмотров188K
Этот список появился как личная памятка по темам, которые я обсуждал с коллегами и друзьями и в которых хотел разобраться поглубже…

Я не большой любитель задавать технические вопросы на собеседованиях: по мне так лучше посидеть с кандидатом (или кандидаткой) за клавиатурой над каким-то реальным кодом, реальной проблемой — и целый день заниматься парным программированием, желательно поочерёдно с остальными членами команды. Но я считаю, что некоторые технические вопросы могут быть хорошей отправной точкой для начала увлекательного и приятного разговора и позволят глубже узнать друг друга.

В этом репозитории собран ряд вопросов, связанных с серверной частью, которые можно использовать при проверке потенциальных кандидатов. Ни в коем случае не рекомендуется задавать все вопросы одному кандидату: это займет несколько часов и вообще не имеет смысла, потому что они охватывают слишком широкий спектр тем. Никто не может знать всего. Выберите наиболее актуальный раздел и самые интересные вопросы, чтобы развернуть беседу.
Читать дальше →
Всего голосов 83: ↑61 и ↓22+39
Комментарии274

Основы Docker за Х часов и Y дней

Время на прочтение8 мин
Количество просмотров162K

0. Вступление


Цель данной статьи собрать в небольшую кучку основную информацию, минимально достаточную для того, чтобы начать работать с докер на ежедневной основе и удалить с рабочей машины локально установленные apache, mysql, virtualenv, python3, mongodb, memchaced, redis, php5, php7 и весь остальной зоопарк, который мы используем при разработке, и который зачастую еще и конфликтует между собой от версии к версии.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии16

Используйте Stream API проще (или не используйте вообще)

Время на прочтение7 мин
Количество просмотров180K

С появлением Java 8 Stream API позволило программистам писать существенно короче то, что раньше занимало много строк кода. Однако оказалось, что многие даже с использованием Stream API пишут длиннее, чем надо. Причём это не только делает код длиннее и усложняет его понимание, но иногда приводит к существенному провалу производительности. Не всегда понятно, почему люди так пишут. Возможно, они прочитали только небольшой кусок документации, а про другие возможности не слышали. Или вообще документацию не читали, просто видели где-то пример и решили сделать похоже. Иногда это напоминает анекдот про «задача сведена к предыдущей».


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

Читать дальше →
Всего голосов 71: ↑71 и ↓0+71
Комментарии50

Путешествие за бугор и обратно: как не надо устраиваться работать за рубежом

Время на прочтение11 мин
Количество просмотров216K

Тема трудовой эмиграции в IT-сообществе — одна из любимых. Кто не задумывался о том чтобы уехать туда где трава зеленее? Интернет кишит различными success story. Я же хочу показать, как вашу success story может испортить неудачный выбор места работы.


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


image
Читать дальше →
Всего голосов 414: ↑403 и ↓11+392
Комментарии1266

10 шагов по решению задач в программировании

Время на прочтение8 мин
Количество просмотров85K


Перевод статьи Валинды Чен.

Это сборник советов для разработчиков-новичков, которые смотрят на пустой экран и не знают, с чего начать. Нередко можно услышать от молодых разработчиков, работающих над решением каких-то задач в программировании, что они не уверены, за что нужно хвататься. Ты понимаешь саму задачу, логику, основы синтаксиса и так далее. Если ты видишь чей-то код, или тебе кто-то помогает, то можно всё сделать самому. Но бывает, что ты не уверен в своих силах, или поначалу тебе трудно реализовать свои мысли в коде, несмотря на то, что ты знаешь синтаксис и логику. Под катом — несколько советов по решению этой проблемы, которые помогут вам в повседневной работе.
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии5

Собеседование для фронтенд-разработчика на JavaScript: самые лучшие вопросы

Время на прочтение9 мин
Количество просмотров211K
Недавно мне довелось побывать на встрече участников проекта FreeCodeCamp в Сан-Франциско. Если кто не знает, Free Code Camp — это сообщество, нацеленное на изучение JavaScript и веб-программирования. Там один человек, который готовился к собеседованиям на позицию фронтенд-разработчика, попросил меня подсказать, какие вопросы по JavaScript стоит проработать. Я немного погуглил, но не смог найти подходящего списка вопросов, на который я бы мог дать ссылку и сказать: «Разбери эти вопросы и работа твоя». Некоторые списки были близки к тому, что мне хотелось найти, некоторые выглядели очень уж простыми, но все они были либо неполными, либо содержали вопросы, которые вряд ли кто станет задавать на реальном собеседовании.

image
Читать дальше →
Всего голосов 58: ↑41 и ↓17+24
Комментарии118

Искусство командной строки

Время на прочтение15 мин
Количество просмотров249K


Вот уже как неделю английская версия the art of command line висит в секции trending на Github. Для себя я нашел этот материал невероятно полезным и решил помочь сообществу его переводом на русский язык. В переводе наверняка есть несколько недоработок, поэтому милости прошу слать пулл-реквесты мне сюда или автору оригинальной работы Joshua Levy вот сюда. (Если PR отправите мне, то я после того, как пересмотрю изменения отправлю их в мастер-бранч Джоша). Отдельное спасибо jtraub за помощь и исправление опечаток.

Enjoy!
Всего голосов 127: ↑122 и ↓5+117
Комментарии143

10 шагов для защиты вашего WordPress блога

Время на прочтение6 мин
Количество просмотров63K
Административная зона любого веб-приложения давно стала излюбленной мишенью для хакеров и её безопасность чрезвычайно заботит разработчиков. Это касается и WordPress — при сустановке нового блога система создает аккаунт администратора с уникальным случайно сгенерированным в реальном времени паролем, чем блокирует всеобщий доступ к настройкам системы, контролируя его c помощью страницы авторизации.

Эта статья сфокусирована на вопросах усиления безопасности WordPress — как административной панели, так и настроек блога, подразумевая все содержимое папки «wp-admin», которое отображается только после авторизации. Мы сознательно выделили фразу "после авторизации" — вы должны четко осознавать, что только один простой запрос отделяет «злого хакера» и админку всего вашего блога или сайта! А последняя защищена настолько сильно, насколько мощный пароль вы выбрали.

gilt-zu-schuetzen-administrationsbereich-in-wordpress

Чтобы в разы усложнить задачу взломщиков, мы предлагаем набор операций, которые вы можете выполнить вручную. Эти решения не гарантируют 100% защиту, но с их помощью вы заметно улучшите безопасность вашего блога.
Читать дальше →
Всего голосов 57: ↑47 и ↓10+37
Комментарии51

Ещё 10 уловок для защиты Wordpress'a

Время на прочтение6 мин
Количество просмотров66K

На сегодняшний день Wordpress как никогда популярен. Блоги, мини-сайты, а то и целые порталы — всё это строится на основе такого удобного движка-конструктора как Wordpress. Но за удобностью и лёгкостью освоения кроются, прежде всего, вопросы, связанные с безопасностью вашего сайта. Большая распространённость — большее внимание злоумышленников.

В этой статье описаны десять простых уловок, которые позволят сделать ваш сайт на Wordpress’e ещё более защищённым и позволят спокойнее спать по ночам.
Читать дальше →
Всего голосов 95: ↑84 и ↓11+73
Комментарии73

Зачем нам нужен понятный язык?

Время на прочтение7 мин
Количество просмотров9.2K
Зачем нам нужен понятный язык? Откуда вообще взялось это явление? Что такое «plain language» в мире и кто поддерживает это движение? На все эти вопросы я постараюсь ответить в этой заметке.

Предысторию вы можете прочитать в прошлой публикации на Хабре, где был рассказ про алгоритмы, используемые для оценки читабельности текстов. Эта заметка должна была быть в вводной к той, о технологиях.
Читать дальше →
Всего голосов 18: ↑13 и ↓5+8
Комментарии9

WordPress для параноиков, часть 1

Время на прочтение9 мин
Количество просмотров62K
Итак, если вы счастливый владелец nginx, знатный параноик и за каким-то чертом решили поставить wordpress, то… Первое, что пришло в голову — это «надо ограничить сему творению свободу!».

Настройки учетной записи, как и настройки php5-fpm, я опущу, так как у каждого свои тараканы, а кто-то вообще на apache запускает. Но вот общие для Wordpress я опишу в этой части. Напишу о том, что сделал, что получилось и почему.
Читать далее
Всего голосов 55: ↑49 и ↓6+43
Комментарии10

Про Selenium и один «велосипед»

Время на прочтение26 мин
Количество просмотров69K
Всем привет!

Я бы хотел рассказать о проблемах, с которыми я сталкивался в процессе освоения Selenium WebDriver, c их решением и тем, как эти решения, в принципе, можно использовать. Все это представлено в виде прототипа фрэймворка, ссылка на который будет в конце статьи.

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

План моей статьи следующий:

1. Капитан очевидность, вместо вступления.
2. Немного о себе, надо представиться…
3. Почему Selenium?
4. О Page Object…
5. Не баг, а фича!
6. И снова про логгинг и отчетность.
7. А разве нет аналогов?
8. Обещанные ссылки.
9. В заключение.


Итак, поехали!
Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии28

Интроверты в IT. Как использовать особенности своего характера для достижения целей

Время на прочтение13 мин
Количество просмотров105K
Несколько лет назад я работал сценаристом обучающих курсов. Однажды утром, начальник встретил меня с лицом «нам надо поговорить».

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

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



Читать дальше →
Всего голосов 73: ↑61 и ↓12+49
Комментарии64

Случайность в автотестах

Время на прочтение5 мин
Количество просмотров17K

Введение


Когда несколько лет назад я написал свой первый автотест, он выглядел следующим образом. В цикле 100 раз доставал из базы случайного пользователя, проводил над ним требуемую операцию и проверял, что результат меня устраивает. Это казалось достаточно логичным: не могу же я проводить тест на одном пользователе, этого недостаточно, это ничего не докажет.

С тех пор прошло значительное время, я успел поработать над несколькими разными проектами на разных языках и даже сменить команду. Сегодня я могу с уверенностью сказать: вы не должны использовать случайность в своих автотестах, кроме случаев, которые будут оговорены отдельно. И я расскажу почему.
Читать дальше →
Всего голосов 63: ↑51 и ↓12+39
Комментарии31

Неотзывчивый дизайн

Время на прочтение6 мин
Количество просмотров38K
dead pixel Я дизайнер с более чем пятилетним опытом работы как в качестве офисного работника, так и в качестве свободного фрилансера. Буду рад поделиться некоторым своим опытом и подходом к работе с менеджерами или клиентами. Дело в том, что дизайн всегда субъективен. Один и тот же дизайн может вызывать и восхищение, и отторжение. Нередко это порождает немало трудностей для дизайнера, работающего над проектом в котором количество людей чье мнение нужно учесть, превышает одного человека. Попробую объяснить почему, а так же расскажу о некоторых техниках и приемах, которые могут сделать работу дизайнера менее напряженной и более позитивной.
Читать дальше →
Всего голосов 42: ↑36 и ↓6+30
Комментарии19

Управление зависимостями в сложной Agile-среде

Время на прочтение12 мин
Количество просмотров18K
Перевод статьи «Dependency Management in a Large Agile Environment».

Краткий обзор


Департамент разработки Salesforce.com включает в себя более 30 Scrum-команд, совместно работающих над общим кодом в одной и той же ветке системы контроля версий. Статья описывает методы, используемые salesforce.com для масштабирования Scrum-подхода и для управления межкомандными взаимосвязями.

1 Введение


В октябре 2006 года начался грандиозный переход отдела разработки (R&D) salesforce.com от модели водопада к гибким методологиям, основанных на Scrum. На тот момент прошло 10 месяцев с предыдущего мажорного релиза, а дата выпуска нового переносилась уже пять раз. Многих расстраивало, что продукт выпускается редко и с серьёзными опозданиями. Мы не стали дожидаться завершения релиза, реорганизовали существующие команды в Scrum-команды и с помощью процессов Scrum выпустили релиз в феврале 2007 года. С тех пор, используя наш новый гибкий подход, мы выпустили уже пять мажорных релизов (длительностью в 3-4 месяца) нашего набора SaaS приложений и платформы Force.com. Каждый из них состоялся точно в запланированный день.

Во время реорганизации мы следовали рекомендациям Scrum для отдельных команд, но не обращали особого внимания на взаимодействие между командами. Формируя команды, мы стремились минимизировать зависимости между ними, однако код не изменился в одночасье, так что сохранилось немало взаимосвязей. Довольно скоро мы внедрили Scrum-of-Scrum meetings. Эти встречи помогали обсуждать проблемы и состояние дел, но одних только собраний было недостаточно. Работая над последними пятью релизами, мы опробовали и отшлифовали дополнительные подходы, улучшающие взаимодействие команд. Далее в статье мы расскажем о некоторых трудностях с управлением зависимостями и о том, как мы преодолели эти проблемы.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии0
1

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность