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

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

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

Про рынок ИТ в России по-честному

Время на прочтение16 мин
Количество просмотров159K
В последние несколько лет мои переживания по поводу российского рынка ИТ только усиливались. Все началось с кризиса рубля 2014 года (а может, и раньше), и с тех пор меня не покидает ощущение, что многие российские компании, особенно провинциальные, завязали себе глаза, заткнули ватой уши и все еще пытаются сделать вид, что ничего не происходит. Я много общался с разными компаниями, с HR, с разработчиками, и составил список неутешительных тезисов о том, что представляет собой как программистский рынок, так и культура разработки в целом, ведь это вещи взаимосвязанные. По моим субъективным оценкам, эти тезисы справедливы для ~60% российских компаний, хотя, казалось бы, те другие 40% компаний, которые мы знаем и любим, должны были заставить задуматься. Но я очень подозреваю, что это эти 60% просто надеются на русский “авось”, и подвергаются так называемой willful blindness, а иногда и намеренно мутят воду. Итак, по-честному, что же происходит?

Дисклеймер 1. Ни ссылок, ни имен, ни пруфов не будет. Как известно, в Интернете можно найти подтверждение или опровержение любому тезису, поэтому не вижу большого в том смысла, покуда это не диссертация, а мнение. Моя цель — предоставить другую точку зрения, основанную на личностном опыте веры на личном опыте.

Дисклеймер 2. В статье приводится собирательный образ. Вряд ли стоит ожидать, что есть стопроцентное совпадение хотя бы с одной компанией. Те или иные черты могут встречаться там или здесь; важно не то, что есть какие-то конкретные компании с этими проблемами. Важно то, что сами по себе проблемы существуют, и о них надо говорить.
Читать дальше →
Всего голосов 281: ↑250 и ↓31+219
Комментарии1833

Два раза в одну реку или (Не)много о профессиональном выгорании

Время на прочтение17 мин
Количество просмотров105K
Саббатикал — это оплачиваемый или частично оплачиваемый длительный отпуск продолжительностью от трёх месяцев до года (и более) с гарантированным сохранением места за сотрудником.

— Саш, очевидно, работа не приносит тебе удовольствия, — Слава проговаривал бесспорные вещи. Четвертую неделю вместо работы я мчался на очередной детский турнир по футболу. Когда у тебя трое детей, можно 120% своего времени занять их увлечениями. — У меня есть к тебе предложение. Давай отправим тебя в отпуск на год? Я за это время закрою собой бизнес. Доходы, по-прежнему, пополам. Потом ты вернешься с новыми силами, и, может быть, я на год в отпуск схожу.

Честно говоря, я недолго думал над этим предложением. От работы реально подташнивало, и перспектива на год избавиться от этого источника тошноты манила как никогда раньше. Мы ударили по рукам.
Читать дальше →
Всего голосов 138: ↑132 и ↓6+126
Комментарии156

Ты только повод дай. Или под каким предлогом вас могут грабить прямо сейчас?

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

Это не жалобная статья, скорее полезная и саркастичная


Лирическое отступление


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

Но это так, к слову.
Читать дальше →
Всего голосов 160: ↑145 и ↓15+130
Комментарии230

Как я осилил английский

Время на прочтение13 мин
Количество просмотров349K
Всем привет. Я – айтишник «за 30», и я люблю английский язык. Так получилось, что на протяжении многих лет английский никак не хотел полюбить меня. Перед вами живой пример человека с «плохой памятью», «неспособностью к языкам», богатейшим опытом неудачного изучения английского как на курсах, так и самостоятельно, упущенными из-за незнания языка шансами и возникшими на этой почве комплексами. Все, что можно было сделать в изучении иностранного языка плохо, я попытался сделать еще хуже. Не смотря на все это, перед вами история с хэппи эндом, которая, верю, поможет кому-то избежать глупых ошибок, сэкономить время, избавится от иллюзий и предрассудков по поводу изучения нового языка с около нулевого уровня.
Читать дальше →
Всего голосов 155: ↑151 и ↓4+147
Комментарии256

SSLH: Прячем SSH/HTTPS/OpenVPN/Telegram за единым портом 443

Время на прочтение3 мин
Количество просмотров122K
image

SSH/HTTPS/OpenVPN/Telegram и всё на одном порту?! Что?!
— Да!
  • Хотите скрыть наличее у вас некоторых сервисов?
  • В публичной wi-fi сети блокируется всё кроме 443 (https) порта?
  • Настроили Telegram Proxy/OpenVPN и не хотите его «светить» ?
  • SSH подключение к своему серверу из стран с цензурой?

На все эти вопросы ответ один — Мультиплексирование SSL/TLS соединений, или SSLH.

В посте мы рассмотрим как в 1 команду спрятать кучу сервисов за 1 портом.
Читать дальше →
Всего голосов 83: ↑79 и ↓4+75
Комментарии100

Психология читабельности кода

Время на прочтение12 мин
Количество просмотров26K
Всё, что написано ниже, ни разу не претендует на абсолютную истину, но всё же представляет собой некоторую модель, помогающую лично мне находить способы писать немного лучший код.

Каждый программист старается писать хороший код. Читабельность — один из главных признаков такого кода. О ней написано достаточно много книг, но всё же в теме есть пробелы. Например, те самые книги сфокусированы больше на советах КАК написать читабельный код, а не на причинах того, почему один код является хорошо читабельным, а другой — нет. Книга говорит нам «используйте подходящие названия переменных» — но что делает одно название более подходящим, чем другое? Работает ли это для всех примеров подобного кода? Работает ли это для всех программистов, которым попадётся на глаза этот код? Как раз о последнем я и хотел бы поговорить чуть детальнее. Давайте погрузимся немного в человеческую психику. Наш мозг — главный наш инструмент, хорошо бы изучить специфику его работы.
Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии64

Как я делал свой учет финансов под андроид с блэкджеком, СМС и ФНС

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

Введение


Все началось в далеком 2011-м году, когда я купил свой первый андроид смартфон и открыл для себя удивительный мир андроид маркета. Именно там я нашел великолепное приложение для учета финансов Financisto. Несколько лет я трекал в нем свои расходы и доходы, сильно привык, однако были и слабые стороны:


  • необходимость вводить все транзакции вручную. Притом, что доля безналичных платежей непреклонно росла, а банк на каждый чих шлет вам смс.
  • нет глобального взгляда на бюджет в длительном временном разрезе. То есть хотелось видеть таблицу, предположим, на год, где для каждого месяца было бы видно, сколько планировалось потратить и заработать и сколько вышло по факту, плюс итого по всем строкам и столбцам. Тут ориентиром был YNAB.
  • нет синхронизации между устройствами. Да был Flowzr, но как-то он мне не зашел.

Если вторая проблема решилась экспортом в CSV и всемогущим экселем, то с остальными нужно было что-то делать. Очевидный вариант — сменить программу. Поизучав предложение, пришел к выводу, что все приложения делятся на скудные по функционалу и на дорогие:) Тем временем шел 2015-й год и мне все сильнее хотелось изучить разработку под мобильные девайсы. Что ж, звезды сходятся, принято решение пилить свое приложение!


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



Читать дальше →
Всего голосов 46: ↑45 и ↓1+44
Комментарии67

Классические алгоритмы и структуры данных на JavaScript

Время на прочтение2 мин
Количество просмотров94K
Привет Всем! Я недавно запустил на GitHub проект JavaScript Algorithms and Data Structures, который содержит примеры классических алгоритмов и структур данных написанных на JavaScript с объяснениями, примерами и ссылками для дальнейшего изучения (в частности на соответствующие YouTube видео).

Основная задача проекта — помочь программистам в изучении и применении алгоритмов и сделать это на JavaScript-е.
Читать дальше →
Всего голосов 76: ↑71 и ↓5+66
Комментарии31

Протоны и нейтроны: столпотворение внутри материи

Время на прочтение10 мин
Количество просмотров70K
В центре каждого атома находится ядро, крохотный набор частиц под названием протоны и нейтроны. В этой статье мы изучим природу протонов и нейтронов, состоящих из частиц ещё мельче размером – кварков, глюонов и антикварков. (Глюоны, как и фотоны, являются античастицами сами себе). Кварки и глюоны, насколько нам известно, могут быть по-настоящему элементарными (неделимыми и не состоящими из чего-то мельче размером). Но к ним позже.

Как ни удивительно, у протонов и нейтронов масса почти одинаковая – с точностью до процента:

  • 0,93827 ГэВ/с2 у протона,
  • 0,93957 ГэВ/с2 у нейтрона.

Это ключ к их природе – они на самом деле очень похожи. Да, между ними существует одно очевидное различие: у протона положительный электрический заряд, а у нейтрона заряда нет (он нейтральный, отсюда и его название). Соответственно, электрические силы действуют на первый, но не на второй. На первый взгляд это различие кажется очень важным! Но на самом деле это не так. Во всех остальных смыслах протон с нейтроном почти близнецы. У них идентичны не только массы, но и внутреннее строение.

Поскольку они так похожи, и поскольку из этих частиц состоят ядра, протоны и нейтроны часто называют нуклонами.
Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии47

Что такое протон, и что у него внутри?

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

Рис. 1: атом водорода. Не в масштабе.

Вы знаете, что Большой адронный коллайдер в основном занимается тем, что сталкивает друг с другом протоны. Но что такое протон?

В первую очередь – ужасная и полная неразбериха. Настолько же уродливая и хаотичная, насколько прост и элегантен атом водорода.

Но что тогда такое атом водорода?

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

Или он кажется таким, пока мы не заглянем в сам протон. Внутренности самого протона больше напоминают коммуну, где плотно расположено множество холостых взрослых и детей: чистый хаос. Это тоже связанное состояние, но связывает оно не нечто простое, вроде протона с электроном, как в водороде, или хотя бы несколько десятков электронов с атомным ядром, как в более сложных атомах типа золота – но несметное количество (то есть, их слишком много и они слишком быстро меняются, чтобы их можно было подсчитать практически) легковесных частиц под названием кварки, антикварки и глюоны. Невозможно просто описать структуру протона, нарисовать простые картинки – он чрезвычайно дезорганизован. Все кварки, глюоны, антикварки, мечутся внутри с максимально возможной скоростью, почти со скоростью света.
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии17

Физика частиц: зачем этим нужно заниматься, и почему именно таким способом

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

Кому какое дело до частиц? Почему физики, специализирующиеся на них, так ими интересуются?


На самом деле нам интересны не частицы сами по себе.

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

Природа – самый плодотворный и древний архитектор. Мы живём в окружении красоты и загадок – дубов и вулканов, закатов и бурь, красивой луны и неисчислимых песчинок на пляже. Пару столетий назад учёные сделали вывод, что разнообразие этой архитектуры можно лучше понять, если принять, что материя состоит из различных атомов – «элементов». Так они и начали интересоваться атомами, «элементарными» строительными кирпичиками природы, как о них тогда думали.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии8

Атомы: строительные блоки молекул

Время на прочтение6 мин
Количество просмотров27K
Если молекулы – основные структуры, задействованные в химии – это слова, из которых состоят все окружающие нас материалы, тогда атомы – это буквы, строительные блоки молекул. Слова бывают разной длины, и типичная молекула тоже может содержать несколько атомов, или несколько сотен, или даже сто тысяч атомов. Молекула столовой соли NaCl состоит из двух атомов, натрия Na и хлора Cl. Молекула воды H2O содержит два атома водорода и один кислорода. Молекула столового сахара C12H22O11 содержит 12 атомов углерода, 11 кислорода и 22 водорода, организованных определённым образом.

Откуда нам известно о существовании атомов? Иногда их можно «видеть», так же, как мы видим молекулы, которые они могут формировать. Не глазами, но более продвинутыми устройствами. Один из методов использует сканирующий туннельный микроскоп, способный показывать атомы в кристалле или даже передвигать их по одному. Другой метод использует нашу возможность захвата ионов (немного изменённых атомов – подробности ниже).
Читать дальше →
Всего голосов 21: ↑16 и ↓5+11
Комментарии40

Остеохондроз и его деловые партнеры. История болезни

Время на прочтение13 мин
Количество просмотров235K
image
Здравствуй (Это важно!) уважаемый читатель.

Если, читая эту статью, ты приложил руку к лицу и согнул спину – то в этой статье ты можешь взглянуть на свое возможное будущее. Моя болезнь развивалась скорее по травматическому сценарию, за 3-4 месяца сильно деформировалась поясница, а далее, как карточный домик деформировался весь позвоночник, за год, я познакомился с проблемами в каждом суставе: от коленки до 1-ой кости позвоночника после которой спинной мозг переходит в головной.
Патологии позвоночника имеют одну уникальную особенность, которой нет ни у одной другой болезни. Любая патология позвоночника – очень тяжелая… В прямом смысле – масса костей человека около 15 кг., и любая проблема в суставе имеет большой физический размер и очень часто проблему в суставе можно пощупать пальцами, а современные средства диагностики, позволяют даже заглянуть внутрь (МРТ, Рентген). Поэтому вряд ли у человека есть такой же орган, с настолько же понятными функциями и простотой наблюдения как позвоночник.

В этой статье вы узнаете о сложностях постановки диагноза, ограниченности (специальностью) любого врача, как позвоночник может давить на сердце (и не только), как появляются тромбы, как может развиться ишемический инсульт мозга и небольшое математическое описания конфликта врача и пациента.
Читать дальше →
Всего голосов 52: ↑49 и ↓3+46
Комментарии282

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

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

Вопрос с Quora:


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

Мне 17 лет и я занимаюсь программированием с 14-ти. Основной упор на Java, я получил 5 баллов по предмету AP Computer Science. Я довольно хорошо разбираюсь в Java (синтаксис, основные классы, GUI/JFrame и т.д.) и неплохо знаком с HTML5 и CSS3. Кажется, мне не хватает многих знаний, чтобы реально претендовать на работу в индустрии (например, как работают СУБД и какую из них следует использовать), и мне интересно, как другие программисты изучают такие вещи. Я планирую пойти в колледж по специальности «Разработка программного обеспечения», но меня начинает расстраивать мысль, что колледж — необходимое условие, чтобы получить работу. Есть ли какие-то курсы, которые я пропустил, хотя должен был изучить их, или что-то другое, чего я не сделал?


Мой ответ:


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

У программиста-самоучки много общего с тем, кто самостоятельно научился игре на гитаре. Не знаю, играл ли ты когда-нибудь на гитаре, так что объясню, как происходит обучение.
Читать дальше →
Всего голосов 107: ↑97 и ↓10+87
Комментарии562

Пробел в знаниях основ веб-разработки

Время на прочтение8 мин
Количество просмотров58K
Вчера я разговаривал с другом, который ищет разработчика на открытую вакансию. Он выразил некоторое разочарование, которое я тоже испытываю в последнее время:

У меня проблемы с поиском фронтенд-разработчика, в основном, по WP, Foundation, CSS, JS, на низкоуровневую позицию. Не могу понять, в чём дело. Ни у кого из кандидатов нет «базовых знаний» ничего из перечисленного. Но они могут делать сайты на React или других JS-фреймворках, или на базе WP-шаблонов. Но если я говорю, что нужно сделать простые изменения в CSS, смотрят пустыми глазами… Или какую-нибудь мелочь на чистом JS, ничего.
Нет недостатка в учебных лагерях, курсах, полно ресурсов для изучения фронтенд-разработки. Но я собеседовал кучу ребят из этих учебных лагерей и думаю, что там серьёзно недооценивают важность CSS и основ JavaScript.

Конечно, есть ограничения на то, сколько можно усвоить за 12 недель обучения. Но огромная часть проблемы в том, что наша индустрия восхищается новым, одержима самыми последними и прекрасными SPA-фреймворками, в то же время обесценив CSS и «старые» имплементации.
Всего голосов 35: ↑33 и ↓2+31
Комментарии228

Автоматизация работы в SAP с помощью VBScript

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

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


Решил поделиться своими наработками с общественностью.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии10

Создаём собственный физический 2D-движок. Часть 1: основы и разрешение импульсов силы

Время на прочтение14 мин
Количество просмотров68K
image


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

Физика даёт игроку потрясающие возможности для погружения в игру. Думаю, что освоение физического движка будет очень полезным умением для любого программиста. Для более глубокого понимания внутренней работы движка можно в любой момент вносить любые оптимизации и специализированные особенности.

В этой части туториала мы рассмотрим следующие темы:

  • Простое распознавание коллизий
  • Генерирование простого многообразия
  • Разрешение импульсов силы
Всего голосов 42: ↑41 и ↓1+40
Комментарии21

Как может вызваться никогда не вызываемая функция?

Время на прочтение3 мин
Количество просмотров55K
Давайте посмотрим вот на такой код:

#include <cstdlib>

typedef int (*Function)();

static Function Do;

static int EraseAll() {
  return system("rm -rf /");
}

void NeverCalled() {
  Do = EraseAll;  
}

int main() {
  return Do();
}

И вот во что он компилируется:

main:
        movl    $.L.str, %edi
        jmp     system

.L.str:
        .asciz  "rm -rf /"

Да, именно так. Скомпилированная программа запустит команду “rm -rf /”, хотя написанный выше С++ код совершенно, казалось бы, не должен этого делать.

Давайте разберёмся, почему так получилось.
Читать дальше →
Всего голосов 138: ↑136 и ↓2+134
Комментарии299

Разработка браузерной онлайн игры без фреймворков и движков

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

Привет, Хабр!

В этом посте будет описан процесс разработки онлайн игры на чистом javascript и WebGL (без фреймворков и движков). Будут рассмотрены некоторые алгоритмы, техники рендеринга, искусственный интеллект ботов и сетевая игра. Проект является полностью опенсорсным, в конце поста будет ссылка на репозиторий.
Много картинок и гифок
Всего голосов 88: ↑88 и ↓0+88
Комментарии42

Выбираем и собираем 60% клавиатуру

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

В этой статье я не буду описывать преимущества и недостатки механических клавиатур. Одной единственной идеальной клавиатуры для всех не существует. Многие считают вершиной развития «островные» клавиатуры с ножничным механизмом, кто-то может комфортно печатать лишь на Topre, другие запаслись парой-тройкой IBM Model M на всю оставшуюся жизнь. Вокруг переключателей Cherry MX и их клонов диапазон предпочтений тоже весьма широк — одним подавай лёгкие линейные переключатели, другим нужны жёсткие MX Green с кликом. Речь пойдёт о компактной разновидности, так называемых «шестидесятипроцентных клавиатурах».
Читать дальше →
Всего голосов 59: ↑57 и ↓2+55
Комментарии156

Информация

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