Category: Истории

13
Сен
2022

🪄 Из-за ненависти к Fortran создал свой язык и доказал, что программирование – это не колдовство

В небольшой статье узнаем об одном из пионеров кодинга, нидерландском ученом Эдсгере Дейкстра, доказавшим всему миру, что программирование – это не фантастика, а интеллектуальное ремесло.

Рождение программиста

Эдсгер Вибе Дейкстра, уроженец голландского Роттердама, появился на свет в 1930 году в семье ученых: отец был химиком, мать – математиком. Они привили мальчику любовь к точным наукам и после окончания школы он стал студентом Лейденского университета, поступив на отделение, где готовили математиков и физиков-теоретиков.

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

«… передо мной стоял трудный вопрос – либо прекратить программировать и стать респектабельным теоретическим физиком, либо все-таки завершить начатое мной обучение с минимальными усилиями и стать… вот только кем? Программистом? Но разве это респектабельная профессия? Ведь пока неизвестно, что такое программирование? В чем должен был состоять тот солидный объем знаний, который позволил бы считать программирование научной дисциплиной?»

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

Дейкстра был творческим разработчиком и внес в кодерские постулаты несколько глобальных вещей. Он является одним из основоположников концепции структурного программирования – то есть методологии, при которой написание кода ведется небольшими блоками. А еще в конце 60-х он в пух и прах разнес целесообразность использования goto в одной из своих статей, называвшейся: Goto considered harmful («Оператор Goto считается вредным»). В результате всех этих действий был внедрен совершенно новый подход к разработке, предотвращающий появление «спагетти-кода», при котором программа пишется пошагово и состоит из ветвлений, циклов и подпрограмм.

Развитие никому неизвестной науки


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

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

Поэтому в 1958 году небольшое сообщество программистов, в состав которого входил Эдгар, находясь в Цюрихе на очередной из технических конференций, решило разработать альтернативу FORTRAN – Алгол.

Язык получился довольно изящный, поскольку его разработка велась с присущими академической среде требованиями четкости и доказуемости. Главной задачей Дейкстры было создание компилятора нового языка. И поскольку он считал, что люди побыстрее должны уйти от ненавистного Fortrana, максимально не приспособленного под психологию человека, придумал себе челлендж в виде отказа от бритья, пока все не будет готово. Результатом этого испытания стали шестинедельная борода и язык Алгол-60, ставший впоследствии крепким фундаментом для многих современных языков программирования.

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека программиста»

Гений программирования

Гениальный программист вел достаточно аскетическую жизнь и был по-хорошему «чудаковат». Он не пользовался благами цивилизации, в его квартире не было телевизора и телефона, он не смотрел художественные фильмы. Ему нравилось писать от руки, о чем красноречиво говорит довольно внушительный каталог его научных работ. К сожалению, детально разобрать их в нашей небольшой статье не получится. Скажем только, что это был ученый с большой буквы, внесший огромный вклад в развитие программирования, как науки.

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

Давайте вспомним эти мудрые фразы вместе:

  1. «Студентов, ранее изучавших Basic, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации».
  2. «Если отладка – процесс удаления ошибок, то программирование должно быть процессом их внесения».
  3. «Тестирование программ может служить для доказательства наличия ошибок, но никогда не докажет их отсутствия».

Сами его высказывания были не тщеславным желанием программиста блеснуть остроумием – их можно было назвать концентрированным выражением опыта, тонкой интуиции и аналитического ума. Он был ревностным приверженцем идеи безболезненного программирования и жестко реагировал на несовершенные и откровенно плохие разработки аппаратов и систем. Его современники вспоминали недоумение Дейкстры, когда ему сказали, что советское правительство решило копировать зарубежные образцы вычислительной техники, чтобы перевести на них всю советскую промышленность. А когда ученый узнал, что для клонирования выбрали модель IBM/360 (прообраз советской ЕС ЭВМ) – он назвал это решение «величайшей победой Запада в Холодной войне».

***

Боялся знаменитый голландец только лишь того, что программирование станет тривиальным процессом, занятием, доступным каждому. «Это обречено на провал», – говорил ученый о таком исходе. Интересно, как бы он оценил теперешнюю ситуацию в IT?

Материалы по теме

05
Авг
2022

⚠️💻 10 самых известных ошибок в коде в истории программирования

«Библиотека программиста» полистала ИТ-летописи и нашла для вас 10 самых известных ошибок в истории кодинга.

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

1. Ошибка 2000 года


Более двух десятилетий назад, в канун нового 2000 года, весь развитый мир охватила паника из-за проблемы способной привести к сбоям в работе компьютеров, падению самолетов, прекращению работы медицинского оборудования и разрушению глобальной финансовой системы.

Суть проблемы заключалась в том, что большинство устаревших информационных систем, созданных еще в 70-х и 80-х, использовали только две цифры для исчисления года. Это значит, что часы внутри микропроцессоров различного аппаратного ПО регистрировали 1999 год как «99», основываясь на ошибочном предположении разработчиков прошлого, что мы всегда будем жить в 20-м веке и цифра «19» в обозначении года никогда не изменится.

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

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

2. Терак-25


Плохой код на самом деле может убить. Такая катастрофа произошла с аппаратом лучевой терапии Therac-25, произведенным компанией Atomic Energy of Canada, ставшего причиной гибели не менее шести пациентов. Расследование выявило недоработку системы, вызвавшую передозировку радиацией. Связано это было с трудностью проведения автоматизированных тестов такого специфического программного обеспечения. И поэтому машина, призванная помочь людям, стала машиной для убийств из научной фантастики. Этот случай заставил разработчиков ПО медицинской отрасли крайне ответственно подходить к тестированию такого оборудования.

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека программиста»

3. Сеть AT&T выходит из строя


15 января 1990 года около 50 процентов мобильной сети AT&T вышло из строя. За девять часов простоя более 75 миллионов звонков остались без ответа. И хотя в первоначальных отчетах следствия по этому делу значилось хакерская атака, на самом деле, виновником сего происшествия стало стандартное обновление ПО. Ошибка всего в одной строке кода стоила компании огромных денег. Все организации, целиком зависящие от наличия и качества связи, выставили AT&T иски с внушительными суммами. К примеру, крупнейший авиаперевозчик American Airlines, понес колоссальные финансовые убытки из-за того, что получил наполовину меньше звонков своих клиентов из-за сбоя. Авария 1990 года до сих пор служит прекрасным примером важности тестирования программного обеспечения и служит напоминанием о неразрывной связи между технологиями и экономической деятельностью большинства компаний.

4. Досрочное освобождение заключенных


В 2005 году в США штате Мичиган произошел сбой тюремной программы, отвечающей за расчет срока наказания заключенных, в результате чего более 20 заключенных досрочно вышли на свободу. Программа ошибочно посчитала смягчающий коэффициент и снизила срок пребывания отбывающих наказание людей в несколько раз. Ошибку в коде заметили не сразу, а лишь по прошествии некоторого времени. И поэтому меру пресечения счастливчикам никто не пересчитывал. Среди них, к слову, не было матерых гангстеров и маньяков. В основном это были мелкие правонарушители, отбывавшие срок за неуплату алиментов, махинации с налогами и незаконное хранение психотропов.

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

5. Взрыв Ariane 5


Случай произошел 4 июня 1996 года при первом запуске Ariane 5 — одной из самых надежных беспилотных ракетных установок, целью которой было изучение взаимодействия между солнечным ветром и магнитосферой Земли. Через 37 секунд после старта ракета, вылетевшая с космодрома, находящегося на берегах Французской Гвианы, развернулась на 90 градусов и всего через несколько секунд превратилась в огромный огненный шар.

Специальная группа прочесала место происшествия, собирая обломки, чтобы попытаться выяснить, что произошло. Через некоторое время техническая комиссия установила, что авария была вызвана программным сбоем.

Отказ системы произошел из-за полной потери информации о точности наведения ракеты и ориентации ее в пространстве, поступающей в центральный процессор. Потеря — следствие ошибки проектировщиков ПО и вызвана она была некорректным преобразованием 64-битного числа с плавающей запятой в 16-битное целое число.

К слову, целочисленное переполнение является широко распространенной ошибкой в ​​​​компьютерном программировании.

6. Ошибка Paypal


Что бы вы сделали, если бы PayPal случайно зачислил на ваш счет 92 квадриллиона долларов? Крису Рейнольдсу, 56-летнему американцу, продающему автозапчасти на eBay, не пришлось долго об этом думать. Ведь он даже не успел ощутить себя первым в мире квадриллионером и самым богатым человеком в мире, так как ошибка была устранена в течение нескольких минут. Поэтому, прежде чем мужчина начал мечтать о новом кадиллаке и золотой карте члена королевского яхт-клуба, сумма на его счету вернулась к привычному балансу. Конечно, стоило бы потребовать с компании хотя бы часть этой суммы за моральный ущерб, но, видимо, шок от увиденного не позволил ему сделать это.

7. Калькулятор Windows


Эта ошибка, существующая в большинстве версий Windows (кроме Windows 10), которую вы сможете проверить самостоятельно.

Для этого нужно:

  1. Открыть калькулятор Windows и ввести 4.
  2. Извлечь из этого числа квадратный корень и получите 2.
  3. Вычесть из него 2 и вместо нулевого результата в разных версиях Windows вы увидите разные результаты.

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

Microsoft признала эту ошибку в приложении калькулятора и исправила ее в Windows 10.

8. Проблема 2038 года


Ошибка 2038 будет вызвана использованием 32-разрядных процессоров в 32-разрядных системах. Проще говоря, 19 января 2038 года наступит в 03:14:07. Компьютеры, которые все еще используют 32-разрядные системы для управления датой и временем, не смогут справиться с этим изменением. Как и в случае с ошибкой 2000 года, компьютеры не смогут отличить 2038 год от 1970 года.

Однако волноваться не стоит: почти все современные процессоры в настольных ПК имеют 64-битные системы с 64-битным программным обеспечением и в 2038 году само существование 32-битных систем будет под вопросом.

9. Видео Gangnam Style «сломало» YouTube


Счетчик YouTube ранее использовал 32-битное целое число для определения максимального количества просмотров видеоролика, и равно оно было 2 147 483 647.

Однако корейская поп-группа PSY, выложившая на сервис свой клип с зажигательной песней Gangnam Style благополучно его сломала, превысив допустимую планку.

«Когда мы его делали, никогда не думали, что какое-нибудь видео посмотрят столько раз, но это было до Gangman Style», — написал на своей странице в сети один из разработчиков портала.

Клип PSY опубликовали 15 июля 2012 года и к концу мая 2014 года он стал единственным видеороликом, которой просмотрели больше 2 млрд раз.

В настоящее время YouTube использует 64-битное целое число для счетчика видео, что означает, что максимальное количество просмотров видео составляет 9,22 квинтиллиона.

10. Синий экран смерти


BSOD или «Синий экран смерти» — жаргонное название фатальной системной ошибки Windows, показывающей системный сбой, при котором операционка достигала состояния, в котором она больше не могла надежно работать. Как правило, вызывалась она в Windows 95-98 после неожиданного завершения важного процесса или общего сбоя оборудования. Старожилы наверняка помнят этот баг, который довольно часто возникал на заре становления ИТ-культуры.

16 марта 2000 года Microsoft выпустила обновление для системы безопасности, устраняющее эту неполадку, однако и сейчас на форумах изредка можно встретить сообщение от пользователей об этой проблеме.

***

Людям свойственно совершать ошибки. Однако, будьте внимательны — всегда нужно помнить, что даже одна плохо написанная строчка кода может привести к печальным последствиям. Удачи!

Материалы по теме

03
Авг
2022

🎮 5 главных игровых консолей из далекого прошлого

Сделали обзор самых популярных ретро-консолей прошлого для всех, кто помнит, что это такое.

За внимание теперешних геймеров на современном рынке игровых консолей бьются не на жизнь, а насмерть Xbox и PlayStation. И уже мало кто помнит на чем играли раньше и когда все это началось. «Библиотека программиста» решила немного поностальгировать и сделала обзор «вымерших» игровых приставок, выпускавшихся до начала нового тысячелетия. Поехали!

Atari VCS (2600)

Приставка Atari VCS (2600)
Приставка Atari VCS (2600)

В восьмидесятых годах двадцатого столетия для большинства граждан развитого мира слово «Atari» стало синонимом слова «видеоигра». Компания предоставила возможность простым гражданам управлять пикселями на экранах своих телевизоров с помощью кнопок и вращающихся во все стороны тумблеров. Такого изобретения свет доселе не видывал, если не считать игровые автоматы в казино Лас-Вегаса, созданные еще в начале семидесятых. Первая такая консоль, созданная Atari, обладала 8-битным процессором MOS Technology 6507, имеющим частоту 1.19 МГц, ОЗУ — 128 байт, с максимальным разрешением экрана 160 х 192 пикселя и изначально предназначалась для игры в Pong (зарекомендовавшей себя в индустрии игровых автоматов) — упрощенных экшн-игр и грубых симуляторов гонок. Набор гейм-системы состоял из главного консольного блока с двумя джойстиками, картриджа с игрой (Combat 1977 – 1982, Пакман 1982 – 1992) и коробки со шнурами и разъемами. Помимо стандартных джойстиков к ней можно было подключить световой пистолет, специальную клавиатуру, руль и трекбол.

По дизайну основная консоль была похожа на деревянную панель с принтом и больше напоминала предмет мебели, нежели компьютер. И если бы не слот для картриджа, переключатели сверху и сзади устройства и штекер ТВ/видеокабеля, она и вовсе не походила бы на цифровое устройство.

К модели 2600, созданной в 1977 году, изначально было выпущено девять игровых картриджей:

  1. Air-sea battle (упрощенная версия морского боя).
  2. Basic Math (простейший калькулятор).
  3. Black Jack (карточная игра).
  4. Fight (битва квадратиков).
  5. Indy 500 (гонки).
  6. Star ship (стреляющий космический корабль).
  7. Street racer (еще одни гонки).
  8. Surround (змейка).
  9. Video Olympics (набор игр из популярной аркадной серии Pong от Atari с отскакивающим от предметов шариком).

Игровая приставка Atari снискала популярность у простых граждан и имела бешеный успех до тех пор, пока в 1983 году на сцену не вышел Nintendo.

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

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека программиста»

Dendy

Приставка Dendy
Приставка Dendy

В нашей стране про появление восьмибитной игровой консоли Nintendo Entertainment System (NES), вышедшей в Японии в 1983 году, узнали лишь в начале девяностых, когда ее популярность во всем остальном мире пошла на спад. При этом отечественные геймеры увидели приставку только в виде его подпольного тайваньского брата, названного Dendy со слоном на логотипе. Стоила такая игровая система по тогдашним меркам немало – около $100, однако это не помешало ей стать самой культовой консолью в России.

К слову сказать, Dendy был не единственным клоном Nintendo — нелегальные тайваньские заводы производили также консоли под марками: Lifa, UFO, Kenga, Liko и Subor. Наверняка у кого-то из читателей было что-то из этого.

Игры для для Dendy в большинстве случаев также были пиратскими копиями NES с большим количеством различных багов, но это не мешало юзерам наслаждаться ими в полной мере. Давайте перечислим некоторые из них:

  1. Super Mario Bros (игра-легенда до сих пор в книге рекордов Гиннеса, как самая продаваемая в мире. Цель игры — пройти по грибному королевству и победить черепашьего короля, убивая по пути различных черепах и сов.
  2. Contra (игра жанра «беги и стреляй», выпущенная японской компанией Konami).
  3. Battletoads (файтинг с лягушками-бойцами).
  4. Tiny Toon (видеоигра по мотивам одноименного сериала о приключениях мультяшек).
  5. Street fighter (еще одна игра-файтинг с множеством различных персонажей).

Так же как и NES, Dendy была оснащена 8-битным процессором Motorola 6502 с тактовой частотой 1.79 МГц, ОЗУ— 2 Kбайта и разрешением экрана — 256×240.

Найти рабочую оригинальную версию этой штуки в нашей стране сложно, а вот различных копий консоли довольно много (однако почти все с «тюльпанами», не поддерживаемыми ни одним современным телевизором). А вот цена оригинальной японской консоли на Ebay составляет $134.

Sega Mega Drive (Genesis)

Приставка Sega Mega Drive (Genesis)
Приставка Sega Mega Drive (Genesis)

В 1988-1889 годах произошел переход эры игровых консолей на новый уровень — в это время в Японии увидела свет 16-битная игровая приставка Sega Mega Drive и ее американский клон, называвшийся Genesis.

Консоль произвела фурор на рынке и в первый же год было продано более 30 млн экземпляров во всем мире. После NES и Dendy графика завораживала, а стереозвук из наушников впечатлял. В России же она появилась в начале девяностых в виде своего китайского клона с 16-битным процессором Motorola 68000 с частотой 7.6 МГц, ОЗУ с видеопамятью было по 64 Кб. Также здесь присутствовали FM-синтезатор Yamaha YM2612 с программируемым генератором звука Texas Instruments SN76489, отвечающими за звуковое сопровождение игр.

Игры все так же загружались с картриджей. Самыми популярными среди них в то время были:

  1. Earthworm Jim (веселая история про похождения червяка Джима).
  2. Dune (культовая стратегия, одна из основоположников жанра о битве кланов, добывающих специи на планете Арракис).
  3. Sonic the Hedgehog (веселая игра про скоростного мультяшного бегуна).
  4. Mortal Kombat (легендарный файтинг по мотивам известного одноименного фильма).
  5. Rock N’ Roll Racing (гоночная аркада, выпущенная малоизвестной в то время компанией Blizzard).

Приобрести оригинальную Sega Mega Drive гораздо проще, чем ее 8-битных собратьев, ведь она продается почти на всех современных маркетплейсах.

Nintendo 64 (N64)

Приставка Nintendo 64 (N64)
Приставка Nintendo 64 (N64)

N64 была третьей домашней консолью Nintendo созданной и продаваемой в период с 1996 по 2001 год. Первоначально называвшийся Nintendo Ultra Famicom, проект дважды менял свое название перед выпуском. Сначала он был Ultra 64, а в конце разработки просто Nintendo 64. Это была последняя игровая консоль Nintendo, в которой использовались картриджи, а не Mini DVD. Консоль стала первой 64-битной игровой приставкой, имеющей процессор с тактовой частотой 93.8 МГц, способный полноценно воспроизвести трехмерную графику. Также здесь стоял 64-разрядный сопроцессор SGI «Reality Co-Processor», обрабатывающий графику и звук, поддерживающий глубину цвета в 16 млн оттенков и разрешение экрана 640×480. При этом производители рассчитывали на массового покупателя и старались уложиться по себестоимости в $250. При таком раскладе она была обречена на успех и снова вышла в лидеры.

Среди популярных игр для N64 можно выделить:

  1. Legend of Zelda: OoT (трехмерная игра-фэнтези про приключения рыцаря по имени Link).
  2. GoldenEye 007 (шутер от первого лица о приключениях агента 007).
  3. Pokemon Stadium (битва покемонов).
  4. Donkey Kong (игра-бродилка про любопытную гориллу и ее друзей).
  5. Wave Race 64 (гонки на водных мотоциклах).

Купить такую оригинальную консоль можно на ebay. Цены начинаются с 90$.

Dreamcast

Приставка Dreamcast
Приставка Dreamcast

Шестое поколение консолей отсеяло с игрового рынка большинство производителей, однако Sega все еще не сдавалась. Компания создала новую приставку под названием Dreamcast (к слову, она оказалось последней приставкой перед ее уходом с рынка консолей, после этого в этой индустрии остались только Sony, Nintendo и Хbox от Microsoft).

Особенностью Sega Dreamcast был встроенный модем на 56 кбит/с, поскольку ее разработчики делали ставку на онлайн-игры. Система была оснащена 32-разрядным RISC-процессором Hitachi SH-4, работающим на частоте в 200 МГц. Также здесь был графический процессор NEC PowerVR2, с частотой 100 МГц, предоставляющий эффекты с трилинейной фильтрацией, затенением Гуро, пространственным сглаживанием и рельефным текстурированием.

У Dreamcast было 16 МБ оперативки, 8 МБ для хранения текстур и 2 МБ для звука. Игры запускались уже с диска, имевшего собственный формат GD-ROM. Однако признания общественности модель не снискала и поэтому все усилия компании слабо окупились (было реализовано только 8 млн приставок).

Но все же на ней можно было поиграть в такие игрушки, как:

  1. Sonic Adventure (все та же старая добрая игра про шустрого ежика).
  2. Crazy Taxi (автосимулятор таксиста).
  3. Worms Armageddon (смертельная битва червей).
  4. Grand Theft Auto 2 (одна из первых частей популярной игры в жанре action-adventure).

Купить эту консоль можно на ebay, где цены на нее стартуют от 100$.

***

Надеюсь, вы вместе с нами погрузились в приятные воспоминания прошлого и получили заряд хорошего настроения. Удачи!

Материалы по теме

14
Июн
2022

🔇 Молчание интервьюера или 10 неочевидных фактов об ИТ-собеседованиях

Предлагаем по-другому взглянуть на вершителей судеб человеческих, выносящих свой суровый приговор неуспешным кандидатам на ИТ-собеседованиях.

Что нам известно о процессе найма специалистов в цифровой индустрии? Давайте вспомним:

  1. Чтобы найти хорошую работу, нужно пройти 40 собеседований.
  2. Собеседование проводит человек, закончивший с отличием высшую академию интервьюеров.
  3. Интервьюеры — жестокие люди, призванные уничтожить всех соискателей на вакантное место еще на старте.
  4. Простому смертному никогда не сдать собес с первого раза!

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

1. Интервьюеры не читают резюме


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

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

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

2. Интервьюеры тоже нервничают


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

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

3. Настройка и подготовка


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

При этом не бойтесь задавать уточняющие вопросы, объяснять что-то своими словами или размышлять вслух — так вы не потеряете внимание интервьюера и оставите о себе хорошее впечатление. Такое собеседование должно быть похоже на двусторонний обмен мнениями. Однако трещать без остановки тоже не стоит — иначе ваш оппонент от вас быстро устанет.

4. Коммуникация — ключевой фактор

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

5. Просить помощи — не стыдно


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

6. Идеального решения не существует

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

7. Если у человека нет опыта, это сразу заметно


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

***

Если хочешь подтянуть свои знания по алгоритмам, загляни на наш курс «Алгоритмы и структуры данных», на котором ты:

  • углубишься в теорию структур данных;
  • научишься решать сложные алгоритмические задачи;
  • научишься применять алгоритмы и структуры данных при разработке программ.

8. На собеседовании можно гуглить


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

9. Когда интервьюер что-то набирает во время разговора — он делает заметки


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

10. Большинство интервьюеров хотят, чтобы кандидат оказался успешным


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

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

***

Что означает молчание интервьюера?


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

***

Не стоит бояться собеседований, ведь это всегда новый опыт, который потихоньку прокачивает уровень вашей подготовленности к непредвиденным обстоятельствам. Удачи!

Материалы по теме

27
Май
2022

🏴‍☠️ История цифрового взлома: 10 самых известных хакеров всех времен

Борьба за справедливость, жажда наживы или просто for fun? Рассказываем о десяти самых громких именах в истории цифрового взлома.

История цифрового взлома

До 1995 года, когда на экраны вышел фильм «Хакеры» с Анджелиной Джоли в главной роли, в нашей стране почти никто не знал значения этого слова. Это и немудрено, ведь компьютеры в то время были в диковинку, поэтому сложный процесс взлома никому неизвестных иностранных корпораций был похож на фантазии очередного писателя-фантаста. Однако, по ту сторону океана мир хакерства зародился еще в начале 1970-х после популяризации первых ПК.

Это произошло, когда американские правительственные учреждения, впервые начав использовать доселе неизведанные новые технологии, заказали первый в истории пентест (анализ защищенности системы) своего программного обеспечения. Для такого тестирования была собрана первая в истории Tiger team (сейчас так называют группу этичных хакеров), собравшая в себе несколько групп специалистов-технарей. Это были первые взломщики ПО – далекие предки современных хакеров.

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

1. Аарон Шварц

Аарон Шварц
Аарон Шварц

Аарон Шварц – молодой программист, принявший участие в создании социальной сети Reddit, привлек к себе внимание своей активной позицией в отношении принципов открытой науки и свободного интернета. Устав безрезультатно бороться с режимом, в сентябре 2010 года Шварц начал активно действовать и скачал около 5 миллионов научных статей из онлайн-библиотеки JSTOR через аккаунт Массачусетского технологического института (MIT). Эти его манипуляции не остались незамеченными и превратились в два федеральных пункта обвинения в мошенничестве с использованием электронных средств связи, штрафом в миллион долларов и 50 годами тюремного заключения.

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

2. Кевин Поулсен

Кевин Поулсен
Кевин Поулсен

Еще подростком Кевин взломал ARPANET – компьютерную сеть Пентагона. Однако служба безопасности минобороны, поймав парня, решила отпустить его с предупреждением, ввиду отсутствия нанесенного ущерба. Но Поулсен продолжил практиковаться и через десять лет после этого совершил еще одну хакерскую атаку на правительственные ресурсы и, чтобы избежать ареста – ушел в подполье, откуда продолжал взламывать государственные объекты. Через несколько лет его все же задержали и приговорили к пяти годам лишения свободы с лишением права пользования компьютером и интернетом в течение трех лет после освобождения. Выйдя на свободу, Кевин решил заняться журналистикой и в настоящий момент он активно пишет для популярных изданий Wired и The Daily Beast.

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека хакера»

3. Майкл Калс

Майкл Калс
Майкл Калс

В 2000-е годы Майкл прославился серией распределенных DDoS-атак в различных корпоративных сетях. Он использовал несколько университетских компьютеров, чтобы уничтожить ведущую в то время поисковую систему Yahoo, а вскоре после этого атаковал Dell, eBay, CNN и Amazon. Последствия этих нападений были шокирующими и стали неожиданной новостью для всей корпоративной Америки, потрясенной тем, как легко можно закрыть предприятия стоимостью в миллиарды долларов. Его действия спровоцировали ряд изменений в американском законодательстве, направленных на борьбу с киберпреступностью.

Сегодня Майкл работает этичным хакером, продвигая пентестирование кибербезопасности и тренинги по повышению осведомленности для защиты компаний от онлайн-угроз.

4. Джинсон Джеймс Анчета

Джинсон Джеймс Анчета
Джинсон Джеймс Анчета

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

Применяя такой подход в 2005 году, Джинсон атаковал почти полмиллиона машин, используя созданную таким образом сеть, для получения прибыли путем продажи доступа к ней рекламным компаниям и другим хакерам. За свои преступления Анчета был приговорен к пятилетнему тюремному сроку и штрафу в размере 75 000 долларов и стал первым кто, попал в тюрьму за использование ботнета.

5. Мэтью Беван и Ричард Прайс

Джинсон Джеймс Анчета
Джинсон Джеймс Анчета

Эта команда британских хакеров прославилась взломом военных сетей в конце 1990-х годов. Они едва не начали глобальный конфликт, когда просочились в базу данных Корейского института атомных исследований в поисках секретных сведений об их военной системе. Хотя Беван утверждал, что искал информацию об НЛО – ему никто не поверил. Проведенная Беваном и Прайсом серия взломов передовых военных сетей показала всему миру уязвимость этих строго засекреченных технологий.

6. Альберт Гонсалес

Альберт Гонсалес
Альберт Гонсалес

Альберта Гонсалеса, которого еще в школе называли прожженым компьютерным гиком, арестовали возрасте 22 лет из-за истории с кражей информации с дебетовых карт одного американского банка. Однако, вместо тюрьмы ему предложили сотрудничество с секретной службой и работу на правительство. Здесь он успешно работал несколько лет, пока опять не перешел на темную сторону. В начале 2000-х он организовал атаку на американскую транснациональную корпорацию дешевых универмагов TJX, в результате которой со счетов компании было украдено около 256 миллионов долларов. За крупнейшее за всю историю взлома пластиковых карт и мошенничество в 2010 году он был приговорен к 20 годам заключения в федеральной тюрьме.

7. Адриан Ламо

Адриан Ламо
Адриан Ламо

Адриан привлек внимание общественности к своей персоне после взлома системы управления контентом Генеральной прокуратуры США и добавлением фальшивой цитаты генерального прокурора Джона Эшкрофта. Он нередко находил ошибки в безопасности организаций и зачастую информировал о них компании. В списке взломанных им корпораций такие гиганты, как Citigroup, Bank of America и Cingular. Адриан постоянно менял дислокацию, выходя в интернет из самых разных мест (кафе, библиотеки, кинотеатры и др.) поэтому заработал себе прозвище «Бездомный Хакер». Осудили же его за взлом сети The New York Times. В ему назначили несколько лет заключения под стражей и штрафу в размере почти 70 000 долларов. Умер известный хакер в 2018 году при странных обстоятельствах.

8. Гэри Маккиннон

Гэри Маккиннон
Гэри Маккиннон

В 2002 году Гэри получил известность в мире компьютерных взломов, совершив «крупнейший военный компьютерный взлом всех времен». Этот программист-энтузиаст из северного Лондона взломал несколько серверов флота военно-воздушных сил и Министерства обороны США, а также 16 компьютеров НАСА, тем самым нанеся ущерб государственным системам на сумму около 700 000 долларов. Несмотря на все это, он так и не был осужден за преступление, поскольку Великобритания заблокировала его экстрадицию в Соединенные Штаты, где ему грозит до 70 лет тюремного заключения.

9. Джулиан Ассанж

Джулиан Ассанж
Джулиан Ассанж

Одна из самых приметных фигур в мире взлома, показавший всему миру, какое влияние на мир может оказать человек, способный достать и обнародовать даже самую защищенную информацию. Еще в подростковом возрасте он под ником «Mendax» проник в ряд защищенных систем, включая Пентагон и NASA. За это Ассанж получил небольшой штраф и уверенность в том, что сможет сделать это еще раз, что впоследствии и случилось. Многие в мире с готовностью назвали бы Ассанжа одним из крупнейших хакеров всех времен, принимая во внимание огромное количество секретных документов и шокирующих разоблачений, которые он с завидной постоянностью представлял на суд широкой публике с помощью созданного им сайта Wikileaks.

В 2019 году Ассанжа задержали силовые структуры Великобритании, а в начале этого года стало известно о его экстрадиции в США, где ему грозит пожизненное заключение.

10. Кевин Митник

Кевин Митник
Кевин Митник

Кевин начал заниматься хакерством в раннем возрасте. Он попал в поле общественного внимания еще в 1980-х годах после того, как взломал базу данных Командования воздушно-космической обороны Северной Америки (NORAD). Затем, несколько лет спустя, в 1989 году он проник на сервера Digital Equipment Corporation (DEC), где скопировал себе код их программного обеспечения. Это привело к его аресту и осуждению, но после освобождения он продолжил свою хакерскую деятельность и взломал систему голосовой почты Pacific Bell – просто чтобы доказать, что он это может. В его биографии есть еще несколько темных пятен, связанных со взломом таких компаний, как IBM, Nokia, Motorola, однако это все в прошлом. Теперь Кевин пишет книги. У него новый имидж защитника конфиденциальности. Его последнее произведение под названием «Искусство быть невидимым» написано простым языком и научит основам безопасности и анонимности в сети любого обывателя.

***

Киберпреступность – бич современного цифрового общества. Ведь благодаря повальной компьютеризации всех сфер жизнедеятельности человека риск взлома и кражи пользовательских данных на сегодняшний день – огромный. Поэтому соблюдайте осторожность при работе в сети и применяйте для работы специально созданный и качественный софт для защиты от хитрых зловредов. Удачи!

Материалы по теме

12
Май
2022

👨‍💻 Как грамотное программирование научит вас писать качественный код

Кажется довольно очевидным, но код пишется не только для компьютеров: он пишется и для людей. Упущение этого факта может обернуться дальнейшими проблемами. Рассказываем, что такое грамотное программирование и как писать качественный код.

21
Апр
2022

💼 10 самых страшных ошибок рекрутера, так сильно раздражающих ИТ-специалистов

Узнаем, что не стоит делать рекрутеру при найме айтишников: самые распространенные ошибки при найме на работу.

Одна из самых горячих перепалок в профессиональных социальных …

28
Мар
2022

👨‍💻👩‍💻 6 причин, почему вам стоит изучать программирование в 2022 году

Давно хотели заняться программированием, но все не хватало времени и сил – сейчас самое время начать двигаться в этом направлении. Рассказываем, почему вам все-таки стоит изучать компьютерные науки в 2022 году.

💻 Про технологии

Очевидность глобальной цифровизации планеты уже ни у кого не вызывает сомнений. И даже прожженный гуманитарий хоть раз, да задумывался о работе в технологической индустрии. Оно и понятно, ведь на сегодняшний день нет ни одной сферы экономики, где не работают ИТ-специалисты. И это факт! Вы можете сказать, что программистов сейчас развелось огромное количество и для всех может не хватить работы. Однако, тут с вами не соглашусь не только я, но и тысячи работодателей, ежечасно публикующих вакансии по поиску недостающих бизнесу разработчиков. Спрос рождает предложение. Это я к тому, что увеличилось не только численность программистов, но и программ, сервисов, приложений и прочих продуктов, нуждающихся в обслуживании и доработке. А в реалиях теперешнего времени, учитывая различного рода ограничения, блокировки и пандемию – изучение программирования стало еще более актуальным занятием. Ведь надо же кому-то развивать технологическую отрасль страны и работать над импортозамещением зарубежных цифровых продуктов.

🔮 Мифы

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

На самом же деле вам не придется вычислять сложные логарифмы и транспонировать матрицу. И математика вам нужна будет только в десяти процентов случаев, если вы, например, решили заняться Data Science или gamedev-oм (там вам могут понадобиться знание тригонометрии и решения дифференциальных уравнений). Эта история больше про логику, аналитический склад ума и реализацию смелых идей с помощью цифровых инструментов и специального ПО.

Почему я все-таки должен изучать компьютерные науки?

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

🤯 Развивает логику и творческие способности

Что бы вы ни создавали: приложение, сайт или компьютерную игру – вы здорово тренируете свои творческие способности, прокачиваете свой интеллект и стимулируете выработку нужных нейросвязей в головном мозге. Так что, если вы начнете действовать прямо сейчас – наверняка раскроете скрытый потенциал своих умственных способностей.

💵 Ваши старания окупятся

Чем большим количеством навыков вы овладели – тем больше будут стоить ваши услуги. Тут главное – относиться к обучению серьезно: не лениться и не пускать все на самотек. При должном усердии шанс устроиться на высокооплачиваемую работу и стать большим специалистом своего дела возрастает в разы. Конечно, первое время после окончания обучения, вам придется работать за еду, но по-другому не получится. Вы должны четко определить себе конечную цель и идти к ней, невзирая на сложности.

🗣️ Отлично развивает коммуникативные навыки

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

  1. Четко и понятно формулировать мысли.
  2. Обретете навыки убеждения и аргументации.
  3. Овладеете переговорными приемами и техниками.
  4. Научитесь слушать и управлять эмоциями.
  5. Приобретете навыки владения голосом и речью.

⏱️ Научитесь экономить время себе и людям

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

🧑‍🎓 Это развивает полезные привычки

Изучение любого языка программирования – это долгий кропотливый процесс. При этом у вас не выйдет освоить все, несколько раз почитав перед сном книгу или посмотрев пару лекций на YouTube. Здесь нужна система, иначе ничего не получится. Для того чтобы самостоятельно написать простую полезную программу (не Hello world!) необходимо заниматься этим несколько часов в день на протяжении длительного периода. Без силы воли здесь никак! Также все это здорово дисциплинирует обучающегося и помогает мыслить структурно и стратегически.

🥬🥕🥦 Это полезно для здоровья

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

Так что не давайте своему мозгу скучать и почаще активизируйте мыслительные процессы. Но не забывайте про отдых, чтобы не перегореть на старте.

🤷 Мне не дано

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

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

Зачастую предрасположенность просто отговорка для тех, кому не так сильно нравится программирование, чтобы еще тратить на него какие-то силы и средства. А может, они сильно прикипели к текущей низкооплачиваемой работе и не хотят съезжать с нагретого местечка? А бывают консерваторы, которые вообще не хотят ничего менять в жизни. Каждому свое и осуждать их не стоит. Но как известно, «под лежачий камень вода не течет». И все, что вы делаете сейчас, обязательно принесет плоды в будущем. Поэтому наберитесь терпения и медленно, собрав волю в кулак – двигайтесь вперед к поставленной цели. Не сомневайтесь, все вам будет по силам.

Однако тут надо помнить о том, что изучать довольно объемный материал необходимо постепенно – не нужно переходить к ООП сразу после того, как вы узнали, что такое переменная.

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

Однако гениев – единицы, а работать кому-то надо. Главное – не спешить делать все вдумчиво и качественно, и вы обязательно станете большим специалистом своего дела.

***

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

***

Войти в IT проще с Proglib! Начните обучение востребованным профессиям вместе с нами.

«Библиотека программиста» продолжает выпускать познавательный контент, чтобы вы оставались на плаву и не забывали получать новые знания.

Больше полезной информации вы найдете в Телеграм-канале нашей онлайн-школы proglib.academy.

По промокоду PROGLIB вы можете получить скидку 20% от стоимости любого нашего курса. Выбрать направление и воспользоваться промокодом можно на сайте.

23
Дек
2021

💰 «Утром деньги, вечером стулья»: куда вложить 1000, 50 000 и 100 000 рублей?

В нынешних реалиях, когда даже при просмотре видеороликов на YouTube включается реклама торговли на биржах, в трейдинге и быстром заработке заинтересован каждый второй. Сколько и куда вкладывать? Какие стратегии подойдут новичку? Советами д…

01
Ноя
2021

🕵 10 самых опасных компьютерных вирусов нового века

Список наиболее опасных вирусов, нанесших в XXI веке значительный урон пользователям по всему миру.

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

CryptoLocker


CryptoLocker Ransomware был выпущен в сентябре 2013 года. Вирус распространялся посредством электронной почты. Стоило пользователю открыть письмо, как прикрепленная к нему программа автоматически запускалась и зашифровывала все файлы на ПК. Чтобы вернуть контроль над ситуацией, жертва должна была заплатить кругленькую сумму в биткоинах в обмен на возможность доступа ко всем документам. После уплаты денег пользователь должен был получить закрытый ключ для восстановления доступа к файлам. Однако люди не знали, что после заражения файлы теряются навсегда.

Чтобы избежать заражения вирусом CryptoLocker нужно:

  • Обновить антивирусное программное обеспечение.
  • Игнорировать подозрительные электронные письма с вложениями и не нажимать на случайные нераспознанные ссылки.
  • Регулярно создавать резервные копии файлов.

К похожим опасным штаммам вымогателей также относятся вирусы Doppel Paymer и Bitpaymer от Evil Corp.

Zeus Gameover


Zeus впервые был обнаружен в 2011 году. Это приложение представляет собой разновидность вредоносного программного обеспечения, нацеленного на операционную систему Microsoft Windows. Два основных метода заражения – спам-сообщения и скрытые загрузки. Основная цель Zeus Gameover – получить доступ к конфиденциальным реквизитам банковского счета жертвы и списать с него все средства. Вирус может обходить защиту централизованных серверных систем и сканировать личную информацию пользователя. Пользователи даже не могут отследить каналы, по которым уходят их украденные данные. Также в некоторых случаях Zeus может загрузить программу-вымогатель, шифрующую файлы и требующую денег в обмен на их разблокировку.

Это зловредное приложение, как и рассмотренный ранее вирус CryptoLocker, создал российский хакер Евгений Богачев, за поимку которого, в феврале 2015 года ФБР предложило рекордное вознаграждение в размере 3 миллионов долларов.

Самый простой способ избавиться от вируса Zeus – использовать современное антивирусное программное обеспечение.

PlugX


Вредоносное ПО под названием Plug X – это троян с функцией удаленного доступа (RAT), также известный как «Korplug». Впервые он был обнаружен в 2012 году. Зловред поражал в основном государственные организации и распространялся через email и спам-кампании. Атака PlugX начинается с фишингового письма, содержащего вредоносное вложение. Как правило этот специально созданный вредоносный документ использует уязвимость в программах Adobe Acrobat Reader или Microsoft Word. При последующем расследовании и детальном изучении зловреда специалистами по кибербезопасности было установлено, что PlugX – тщательно подготовленная и хорошо продуманная программа, которая содержит несколько шпионских модулей для выполнения разного рода задач.

В июле 2016 года японское туристическое агентство JTB Corp пострадало от утечки данных, в результате которой было скомпрометировано почти 8 миллионов пользовательских записей. Инцидент произошел в результате запуска вредоносного документа из фишингового письма, присланного одному из сотрудников компании. PlugX установил предназначенный для кражи пользовательской информации троян и получил контроль над файлами за считанные секунды.

Почти все современные антивирусные программы смогут найти и обезвредить это вредоносное ПО.

Stuxnet


Червь Stuxnet появился в сети в 2010 году и первоначально был нацелен на ядерные объекты Ирана. Вирус уничтожил более 1000 центрифуг на иранском предприятии по обогащению урана в Натанзе, филиала крупной компании Foolad Technic. Stuxnet распространяется через USB-накопители и компьютеры с ОС Windows. В основе троянской программы Stuxnet лежит поиск конкретной модели программируемого логического контроллера (ПЛК) производства Siemens. Это небольшие промышленные системы управления, выполняющие всевозможные автоматизированные процессы, например, на химических заводах, в производственных цехах, на нефтеперерабатывающих заводах, а также на атомных электростанциях. Эти ПЛК управляются компьютерами, и это основная цель червя Stuxnet. Сообщалось, что червь уже заразил более 50 000 компьютеров, а немецкая компания Siemens сообщила о 14 зараженных системах управления, которые находились в основном в Германии.

Mydoom


Первая версия червя MyDoom, появилась 26 января 2004 года и распространялась по электронной почте и через одноранговую сеть. Программу написали в России на языке C++. Она создает бэкдор (дефект алгоритма, намеренно встроенный в него разработчиком) в операционной системе компьютера жертвы, а потом запускает механизм типа «отказ в обслуживании» (DDoS), За очень короткий промежуток времени червь быстро наводнил просторы интернета, и в 2004 году примерно 16 – 25% всех электронных писем были заражены MyDoom. Файл-носитель червя весит всего несколько десятков килобайт и содержит в себе следующую строку: «sync-1.01; andy; I’m just doing my job, nothing personal, sorry». При заражении червь модифицирует операционку, блокируя доступ к сайтам антивирусных компаний, новостным лентам и различным разделам портала Microsoft, на который он в феврале того же года совершил DDoS‑атаку.

Sasser и Netsky


Sasser и Netsky были созданы семнадцатилетним немцем по имени Свен Яшан. Эти два червя ведут себя по-разному, однако сходство в коде заставило экспертов по безопасности полагать, что оба они написаны одним человеком. Sasser не остановить: заразив компьютер, он начинает искать другую уязвимую систему, сканируя случайные IP-адреса. Хотя он не причиняет ущерба данным, он ответственен за большое количество DDoS-атак и существенно замедляет работу в сети. В 2004 году Sasser фактически остановил треть почтовых отделений на Тайване, закрыл 130 отделений финского банка и вынудил отменить несколько железнодорожных и трансатлантических рейсов.

Netsky ведет себя иначе. Он распространяется через электронную почту и при попытке открыть какой-нибудь файл выводит на экран сообщение об ошибке: «The file could not be opened!» Червь копирует вредоносные файлы в каталог Windows и прописывается в автозапуске системного реестра. Еще одна интересная его особенность – при инфицировании он удаляет из системы вирусы Mydoom и Bagle.

CodeRed


Червь Code Red был обнаружен двумя сотрудниками eEye Digital Security Марком Майффретом и Райаном Перме. Они назвали найденную вредоносную программу в честь любимой газировки Code Red Mountain Dew. Появившаяся в 2001 году, она была нацелена на компьютеры с установленным веб-сервером Microsoft IIS. Проникая в компьютер, Code Red делает сотни копий всех данных и в конечном итоге потребляет так много ресурсов, что система не справляется и выходит из строя. Затем запускается алгоритм атаки “отказ в обслуживании” и открывается удаленный доступ к инфицированному серверу через бэкдор.

Самой известной кибер-атакой Code Red была атака на веб-сайт Белого дома. В том же 2001 году красный червь заразил более 250 000 компьютерных систем и, по оценкам экспертов, это привело к потере производительности и колоссальному ущербу в размере 2 миллиардов долларов.

Для того чтобы обезопасить госучреждения и простое население от этой вредоносной программы, Microsoft разработала «патч», предназначенный для защиты компьютеров именно от «Code Red». Его можно загрузить с домашней страницы веб-сайта Microsoft (www.microsoft.com).

Nimda


Nimda впервые появилась 18 сентября 2001 года и быстро распространилась по Интернету. Как только вредоносная программа попала в сеть, ей потребовалось всего 22 минуты, чтобы достичь первой строчки в списке зарегистрированных кибератак. Основная цель – создать бэкдор в операционной системе жертвы и предоставить злоумышленнику полный доступ к машине. В 2001 году Nimda вызвала сбои во всех вновь примкнувших к всемирной паутине сетей, а по данным Кооперативной Ассоциации Анализа Интернет-данных, это вредоносная программа заразила около 160 000 операционных систем .

ILOVEYOU


5 мая 2000 г. тысячам пользователей сети были разосланы электронные письма с одной фразой в теме: «ILOVEYOU». К письму был прикреплен файл под названием «LOVE-LETTER-FOR-YOU.txt.vbs». Открытие приложенного к письму файла вызывало немедленное исполнение программы, и злоумышленники получали полный доступ к системе и системному реестру. ILOVEYOU считается одной из самых опасных вредоносных программ, когда-либо созданной человеком. Ей удалось нанести ущерб устройствам по всему миру на сумму около 10 миллиардов долларов, заразив примерно 10% всех компьютеров на планете. Ситуация была такая напряженная, что многие правительства и крупные корпорации отключили свою почтовую систему, чтобы предотвратить заражение.

Чтобы защитить себя от вирусных атак, таких как ILOVEYOU, крайне необходимо установить надежную антивирусную программу.

Melissa


Mellisa распространялась под видом обычного текстового документа, который при открытии передавался 50 основным контактам электронной почты жертвы. В документе содержалась способная заинтересовать пользователя информация: от паролей для доступа к платным сайтам до ссылок на популярные мультсериалы. Программа не была создана с целью кражи денег или информации, но тем не менее нанесла довольно большой ущерб. Более 300 корпораций и государственных учреждений сильно пострадали от этого вируса, в том числе ИТ-гигант Microsoft, который несколько раз останавливал работу из-за перегрузки электронной почты. Зловред сгенерировал огромный интернет-трафик и замедлил работу и без того перегруженных серверов. Хотя его локализовали в течение нескольких дней, ущерб уже был нанесен. По самым скромным подсчетам, около 80 миллионов долларов было потрачено на очистку и устранение урона, нанесенного программой.

Заключение

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

***

Если вы только начинаете путь в профессии, обратите внимание на «Факультет информационной безопасности» образовательной онлайн-платформы GeekBrains. Под руководством опытных экспертов из ведущих технологических компаний вы получите там много практики по разным направлениям: тестам на проникновение, Python, реверс-инженирингу, безопасности сетей и криптографии. Успешно завершившим курс студентам выдается диплом о профессиональной подготовке, а специалисты платформы помогают им с поиском работы.

19
Окт
2021

📊 Кого (не) берут в IT? Результаты опроса «Библиотеки программиста»

В сентябре мы провели опрос среди тех, кто когда-либо искал первую работу в ИТ-сфере. Каким образом и с какой эффективностью начинающие специалисты (не) справляются с этой задачей?

В опросе приняло участие более 470 человек. Пунктуация и орфография пользовательских отзывов сохранены.

Подробности доступны по ссылке.

Сколько вам лет?


Типичному айтишнику 20-35 лет.

Из какого вы города?


Почти четверть – 23.1% – проживает в Москве, 14.9% из Санкт-Петербурга и 6.6% из Минска.

Ваш коммерческий опыт в IT


  • 25% с опытом от 1 года до 3 лет включительно.
  • 24.4% с опытом до года включительно.
  • 24.4% ищут работу в данный момент впервые.
  • 12.8% с опытом от 3 года до 6 лет включительно.
  • 10.9% с опытом свыше 6 лет.
  • 2.5% еще учатся в вузе.

Как вы учились программировать?


  • 86.3% пользовались во время обучения открытыми источниками (книги, YouTube, StackOverflow).
  • 30.4% хватило профильного образования.
  • 32.9% прошли платное обучение онлайн.
  • 13.7% учились платно оффлайн.
  • 12% ходили на профильные конференции.
  • 9.9% помог ментор.
  • 7% участвовали в хакатонах.
Платные курсы, темболее онлайн малоэффективны. Единственный плюс это ритм и оплата которая заставляет тебя не бросить. Учиться лучше самому, иногда брать уроки у ментора или репетитора. Ходить на соревнования. Сталкиваться с проблемами. И да математику знать надо, и базовый cs . В 2021 году без этого навряд ли что то получиться … Если ты не фронтенд
29 лет, платные курсы, стажировка, Data Science

Как вы искали или ищете первую работу?


  • 79.2% ищут на профильных сервисах (hh, superjob и т. д.)
  • 36.8% – в телеграм-каналах.
  • 27.6% – по знакомству
  • 18.7% берут после стажировки на позицию джуна.
  • 5.3% – помогла карьерная поддержка курсов
  • 0.8% – отправили оффер после хакатона.
Ходил по собеседованиям, делал тестовые задания, в результате взяли в компанию после собеседования, куда меня порекомендовал знакомый.
41 год, учился самостоятельно, Fullstack
Обучался на курсах крупной компании при университете. После окончания курсов прошёл собеседование и попал на позицию джуна. Теперь самому приходится проводить собеседования. Соискателям на позицию джуна не хватает базовых знаний из computer science, в основном их кругозор ограничивается знанием базового API фреймворков.
25 лет, курсы при компании, С#
Лет 7-8 назад решила координально поменять специальность, уйти из строительства. Пошла готовиться туда, что больше на слуху было – разработка web-приложений. За пол года 1 приглашение на собеседование для стажировки и все. Так делать нельзя, когда меняешь специальность. Нужно изучать рынок и смотреть реально, где есть шансы, а не ломиться туда, куда все ломяться. Как итог, пересмотрев, что я действительно знаю уже нормально, что есть ещё на рынке – переделала свое резюме под разработчика баз данных. Как итог – 3 собеседования, 3 предложения на работу. Сейчас я занимаюсь больше аналитикой данных и доросла до тимлида.
33 года, платные онлайн-курсы, аналитик

Участвовали ли вы в стажировках?


  • 24.9% не проходили стажировки и не понимают, как о них узнавать.
  • 23.9% участвовали в стажировке в офисе.
  • 13.5% не имеют стажировки в своем городе.
  • 13.3% участвовали в отборе, но не прошли стажировку.
  • 11.4% стажировались по удаленке.
При поиске первой работы самым сложным оказалось попасть на собеседование. Компании не очень интересует 30+ летний джун без опыта работы и профильного образования. Решил получить работу через стажировку и это был правильный выбор, но понадобилось довольно много времени.
3 года, стажировка, Frontend
Могу поделиться, что если сейчас нет спешки пилить какие-то рокет-сайнс задачи, то я с большей вероятностью возьму стажера из мгу/бауманки, чем мидла из рынка знания у стажеров, после профильных курсов из вуза очень хорошие и они быстро растут.
27 лет, профильное образование, курс от МГУ и IT-компании, Go

Были ли трудности в составлении резюме?


  • 44.6% справились сами.
  • 29.9% взяли шаблон из интернета.
  • 13.5% не поняли, как его составить.
  • 6.7% помогли на курсах.
Важно публиковать свои сертификаты о прохождении курсов, описывать свои проекты, не писать о скиллах, которых не имеешь.
21, платные курсы, Data Science

Сколько прошло собеседований до первого предложения о работе?


  • 61.6% прошли от 1 до 5 собеседований.
  • 18.3% – от 6 до 10 собеседований.
  • 10.3% получили оффер без собеседования.

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

Таблица 1. Количество человек, получивших первый оффер без профильного образования

Получили оффер без собеседования 1-5 6-10 11-20
Платные курсы с ментором, без стажировки 2 (2 из них по знакомству) 1
Платные курсы с ментором, со стажировкой 4 10 (1) 4
Платные курсы без ментора, без стажировки 2 (1) 25 (2) 6 1
Платные курсы без ментора, со стажировкой 1 14 1
Самостоятельное обучение без стажировки 6 (3) 35 (2) 5 2
Самостоятельное обучение со стажировкой 3 (1) 10 (1) 2

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

Таблица 2. Количество человек, получивших первый оффер при наличии профильного образования

Получили оффер без собеседования 1-5 6-10 11-20
Платные курсы с ментором, без стажировки 1 (1 из них по знакомству)
Платные курсы с ментором, со стажировкой 1 (1)
Платные курсы без ментора, без стажировки 1 (1) 2
Платные курсы без ментора, без стажировки 7
Самостоятельное обучение без стажировки 2 (1) 25 (3) 8 1
Самостоятельное обучение со стажировкой 3 (1) 19 5 2

Люди с профильным образование чаще выбирают путь самоучки со стажировкой или без нее.

Итог:

  • Респонденты без профильного образования чаще покупают курсы, чем респонденты с профильным образованием.
  • Большинство учится самостоятельно.
  • Стажировка сокращает срок получения первого оффера.
  • Не имей сто рублей, а имей сто друзей.
В хорошую IT-компанию в возрасте 35+ лет без опыта в IT без знакомств устроиться датасайенттстом практически нереально
38 лет, проходил платные оффлайн-курсы, после 21-40 безрезультатных собеседований работу в DS не нашел
На все мои отклики по вакансиям не последовало никакой реакции. Думаю, сочетание возраста, отсутствия образования и опыта играет свою фатальную роль.
40 лет, проходил платные оффлайн-курсы по аналитике, ни на одно собеседование не пригласили
До сих пор не нашел работу. Думаю причина в отсутствии профильного образования и в возрасте.
45 лет, учится самостоятельно, мобильная разработка
Откликнулся на запрос hr. Пошел на собес. После собеса на следующий день предложили оффер. Я в шоке и не верю этому, и не поверю, пока не начну работать в компании. Естественно сначало испытательный срок.
37 лет, платные онлайн-курсы

С каким проблемами при собеседовании вы столкнулись?


  • 65.8% не знали ответы на некоторые вопросы.
  • 39.5% слишком волновались.
  • 21.9% не решили несколько алгоритмических задач.
  • 17.9% – проблем не было, все прошло гладко.
  • 16.7% не решили логические/математические задачи.
  • 14.3% – возникли сложности с базами данных.
  • 4.2% не смогли ответить ни на один вопрос нормально.
  • 1.6% опоздали на собеседование
Первую работу джуна нашел, когда мне было 32 года. Это было сложно психологически. Но работодатели в целом благосклонно относились.
Платные оффлайн-курсы, Java
В основном соискателям не хватает критического/аналитического мышления. Почти никто не читал Рихтера (если говорить о .NET) на самом базовом уровне, хотя мы и не задаём вопросов про модель памяти и отличия семафоров/мютексов.
29 лет, стажировка, C#
Мне было 20 лет и работа нужна была срочно: я согласилась на первое предложение, полученное через друга. В этой компании я занималась совсем не тем, чем мне хотелось, и, несмотря на то, что я сделала для компании очень много, в ней мне постоянно говорили, что я не найду новую работу и никто такую меня не возьмёт. Мне понадобилось пять лет, чтобы взять себя в руки, преодолеть страх собеседований, и устроиться наконец на работу, которая стала настоящим стартом моей карьеры, как разработчика на C++. С первого собеседования!
28 лет, хватило профильно образования, самоучка
По опыту прохождения и проведения собеседований, могу сказать, что никогда не стоит сильно занижать свою стоимость после пары провальных хитрых вопросов.
26 лет, платные оффлайн-курсы, PHP
Советы:1. Пересмотрите основные вопросы по вашему профилю в интернете, 70% такие же или схожие. Так же на собеседованиях часто просят решить несложную задачу, поэтому желательно также порешать частые задачи из интернета.

2. Прежде чем пойти на собеседование в компанию/команду/проект которые понравились, сходите на пару собеседований в схожие компании, узнаете чего не хватает. Станет гораздо проще после подготовки с собеседований.

3. Просите развёрнутый фидбек. Без него – никуда

24 года, платные оффлайн-курсы, С++

В какой области IT вы хотите найти работу или работаете?


  • 14.2% – разработка на Java.
  • 12.1% – разработка на C#.
  • 11.6% – Frontend-разработка.
  • 9.1% – Data Science.
  • 8.7% – разработка на Python.
  • 7.8% – разработка на PHP.
  • 7.8% – мобильная разработка.
  • 4.4% – тестирование ПО.
  • 4.4% – аналитика.
  • 3% – GameDev.
  • 2.1% – DevOps.

Что повышает шансы на успех?

  • стажировка;
  • профильное образование;
  • платные курсы с ментором;
  • «живой» Гитхаб, близкий к бизнесу проект;
  • знание не только фреймворков, но и математики (Data Science);
  • исследование рынка: учить то, что востребовано.
  • возраст до 35 лет;
  • знакомства.
***

Удачи в поиске работы! Дорогу осилит идущий.

Материалы по теме:

30
Сен
2021

🕸 7 технологий веб-разработки, на изучение которых я зря потратил время

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

Перевод …

27
Сен
2021

🎥 ТОП-10 фильмов и сериалов последних лет про современные технологии

Есть мнение, что после культовых «Хакеров», «Джони Мнемоника» и первой «Матрицы» больше не снимали хороших фильмов на околоайтишную тематику. Так ли это? Попробуем разобраться в обзоре лучших кинокартин о современных технологиях, вышедших з…

21
Сен
2021

📖 ТОП-10 книг об ИТ не только для айтишников

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

31
Авг
2021

🗣 «Свою первую работу по тестированию я нашел случайно»

Порог входа в сфере тестирования ПО довольно низок, но стать высококлассным инженером по Quality Assurance непросто: Вячеслав Зимин рассказал нашему корреспонденту о своем пути в профессию.

Где вы учились и как решились пойти в тестирование?

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


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


Как вы нашли первую работу?

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

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

В то время никакие сертификаты для трудоустройства не требовались. Даже когда я сам через несколько лет принимал людей на работу, мы рекомендовали литературу и выдавали тестовые задания во время собеседований. Это только последние несколько лет наличие сертификата стало для работодателя одним их критериев первоначального отбора, поскольку оно подтверждает серьезность намерений кандидата. Поскольку многие рассматривают тестирование как временную работу, чтобы войти в сферу IT, работодатели с каждым годом повышают планку.

Какие знания умения и навыки вам потребовались на позиции джуниора?

В первую компанию (как оказалось, это был стартап) только с общим представлением о профессии и с невероятным желанием работать в этой сфере. Может быть именно этот факт зацепил моего работодателя. В команде я был единственным тестировщиком, и все знания пришлось добывать самому. Отчасти мне помогла книга “tестирование dot com”. Еще я много общался с программистами, получал от них фидбек и смотрел, как сделать свою работу и процесс лучше и эффективнее. Каждый день читал форумы и статьи, чтобы понять все нюансы работы и выстроить правильный процесс тестирования.

Инструментов тестирования в компании тоже не было, все делали либо в чате, либо в документах Google. Я самостоятельно познакомился с Testlink (инструмент для хранения тест-кейсов), установил и начал в нем работать.

Легко ли вам было с начальной позиции перейти к уровню middle?

В этом стартапе я проработал примерно год. Потом у компании дела пошли хуже. Новых продуктов не было, а старые не приносили должного дохода, поэтому сократили почти всю команду и оставили только несколько сильных программистов. В это время открылась вакансия тестировщика в крупной компании Social Quantum, и я решил попробовать свои силы там. В этот раз предварительного тестового задания не было, и меня пригласили сразу на собеседование. Вернее, их было два. Сначала собеседование с hr, где спрашивали теорию, а потом пригласили в офис на второе собеседование. Тут уже были практические вопросы и задания, т.е. меня попросили оформить баг-репорт и написать тест-кейс.

С тестовыми заданиями я справился успешно, и меня пригласили опять же на позицию джуна. В компании тогда еще не было своего отдела тестирования, но была команда на аутсорсе и все тест-кейсы были уже в инструменте Testlink (с которым я так удачно познакомился на предыдущей работе). Именно в этой компании началось мое карьерное развитие.

Когда мы только развивали тестирование, то не пользовались какими-то сложными техническими инструментами. По мере развития самой команды и тестирования в компании мы постепенно расширяли и техническую экспертизу. Мы тестировали игры, и по сути не было какого-то адекватного API – пришлось выкручиваться и пробовать реализовать end-to-end-тесты. Было перепробовано много инструментов и один из них мне запомнился: я его долго пытался приноровить к специфике тестирования игр – это TestComplete. К сожалению, он нам не подошел, и мы решили остановиться на скрипте по распознаванию изображений Sikuli. Именно тогда мы и стали развивать автоматизацию в компании.

Что касается инструментов ручного тестирования, то в ходу у нас были вполне стандартные Charles и Android SDK. В ручном тестировании каких-то специальных инструментов мы не использовали. Была админка игры и прямые руки тестировщика.

В этой компании я проработал лет 5 или 6. Хотя у нас и не было четкой градации по должностям, но точно могу сказать, что вырос за тот год из джуна в миддл-позицию. Еще через год я прошел курс тест-аналитика и стал уже лидом небольшой команды. Еще через год мы с руководителем отдела решили сделать внутренние курсы по тестированию. У меня было достаточно опыта и педагогическое образование, к тому же я постоянно обучался, так что особых проблем с созданием первого собственного курса не было. Плюс за все эти годы работы тестировщиком мое желание преподавать никуда не делось. И это как раз была отличная возможность соединить два любимых занятия: преподавание и тестирование.

Легко ли со средних позиций перейти к уровню senior QA и что для этого нужно?

Все зависит от самого человека, от его желания, мотивации и стремления. У меня был случай, когда сотрудник за год упорной работы перешел из джуна на позицию синьора, но он выкладывался по полной. И конечно же дело тут не ограничивается только хард-скиллами. Для меня senior QA – это не только сильный технический специалист, но и самостоятельный сотрудник, который может сам решать проблемы, организовывать свое время, расставлять приоритеты в работе и так далее. Тот человек, которому дал сложную задачу, и он ее выполнит в оговоренное время. При этом ты не переживаешь, что что-то может пойти не так.

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

Если инженер по QA уровня middle считает себя готовым к переходу в высшую лигу, как проверить, что он не ошибается?

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

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

Как самому сотруднику проверить, что он не ошибается и готов к переходу?

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

Что потребуется изучить и какие навыки наработать, чтобы выйти на уровень senior?

Для позиции senior QA надо разделять направления и специализации. Если мы говорим про мобильное тестирование, опытный специалист должен знать основную базу того, с чем он работает. Как минимум это особенности тестирования мобильных устройств и операционных систем. У него должен быть уверенный опыт с инструментами тестирования мобильных приложений. Он должен знать и разбираться в таких вещах как Android SDK и XCode. Кроме того, будет плюсом если он знает про работу с эмуляторами и имеет опыт в автоматизации. Хорошо знает тестирование API, его особенности, умеет работать с инструментами тестирования API и разбирается в клиент-серверной архитектуре. Для веб-тестирования сюда же можно включить API и клиент серверную архитектуру, хорошее знание протоколов и запросов, знание HTML, CSS, DevTools.

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

Такой специалист должен идеально знать как составлять тест-кейсы, чек-листы, баг-репорты. Разбираться в терминологии тестирования, знать процессы тестирования и в целом процессы разработки ПО. Знать и уметь работать с основными инструментами (Bug Tracking System, Test Management System) и конечно иметь опыт в тестировании – обычно от 3 лет и выше. Также в некоторых компаниях синьор может выдавать фидбек младшим специалистам и быть для них наставником. В этом случае ему потребуется развивать и софт-скиллы.

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

Как у вас родилась идея создать собственное сообщество?

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

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

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


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

Что в тестировании самое важное?

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

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

***
Реклама
Если вы только задумались о карьере в Quality Assurance или ручные тесты вам уже не в диковинку, стоит обратить внимание на курс автоматизации тестирования на Python от образовательной онлайн-платформы GeekBrains. Практикующие специалисты помогут вам освоить основы профессии и техники тест-дизайна, а также научат писать автотесты на Python. Успешно завершившие курс студенты получат диплом о профессиональной переподготовке и добавят в портфолио 4 проекта, а площадка поможет им с трудоустройством.

30
Авг
2021

🗣 «Учиться придется интенсивно и постоянно»

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

Что подвигло вас заняться программированием?

Мобильной разработкой я занимаюсь около полутора лет. Раньше работала ассистентом руководителя в IT-компании. К решению стать разработчиком я пришла в 32 года: захотелось освоить востребованную техническую специальность и сменить работу. Меня очень вдохновила история хорошего знакомого, который примерно в этом же возрасте с нуля начал осваивать Android-разработку, а спустя 4 года получил предложение о работе в лондонском офисе компании Google, где и трудится по сей день.

Я стала самостоятельно изучать язык программирования Java по вечерам после работы и в выходные, писала свои небольшие консольные приложения. Позже я начала осваивать язык Kotlin и мобильную разработку; свой код я выкладывала в открытый репозиторий на GitHub. Мне повезло: в моем окружении много программистов, поэтому было к кому обращаться за советом и помощью. Свои пет-проекты я показывала коллегам, просила проверить код и указать на недочеты. Это очень помогло.

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

Почему вы выбрали именно мобильную разработку?

Это очень интересная и перспективная сфера программирования. Мобильные приложения затрагивают почти все сферы человеческой жизни: с их помощью можно оплачивать товары и услуги, играть, отслеживать прогресс в занятиях спортом, изучать иностранные языки и другие предметы, знакомиться с новыми людьми и т.д. Я, например, активно пользуюсь мобильным приложением Stepik для изучения программирования. Приложения очень упрощают современную жизнь, делают ее более комфортной, и мне очень хотелось принимать участие в разработке таких продуктов.

Что нужно знать человеку, который решил заняться мобильной разработкой?

Первое и самое важное, что нужно усвоить – учиться придется интенсивно и постоянно. Обучение не заканчивается ни после получения предложения о работе, ни после прохождения испытательного срока. Программист всегда занимается самообразованием. Конкуренция среди начинающих разработчиков очень высока, а технологии активно развиваются. Нужно следить за трендами. Тот, кто перестает изучать новшества IT-сферы, становится менее востребованным на рынке труда. К примеру, еще несколько лет назад во многих занимающихся мобильной разработкой компаниях писали код только на языке Java, а сейчас, если открыть любой сайт по поиску вакансий, можно увидеть, что хорошее знание языка Kotlin – обязательное требование для Android-разработчика.

Второе – нужно изучать английский язык. На англоязычных ресурсах очень много информации по Android-разработке. Пример – сайт developer.android.com, где содержится вся актуальная справочная информация.

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

Какими ресурсами для обучения вы пользуетесь?

Я пользовалась следующими ресурсами:


Java

  • Книга «Изучаем Java» серии Head First. Авторы: К. Сьерра, Б.Бейтс. Я очень люблю все книги этой серии за доступный игровой стиль изложения. В книге «Изучаем Java» доступно изложены понятия об основных свойствах объектно-ориентированного программирования, синтаксисе языка Java, работе с многопоточностью, дженериках, лямбда-выражениях и пр.
  • Видеокурс «Java. От простого к сложному». Автор: Александр Васько. 106 лекций отменного качества в записи.

Kotlin

  • Книга «Kotlin» серии Head First. Авторы: Дэвид Гриффитс и Дон Гриффитс. Отличное пособие для начинающих изучать язык Kotlin. Как и во всех книгах этой серии, материал изложен увлекательно и доходчиво.

  • Сайт kotlinlang.ru содержит много полезной информации о синтаксисе языка Kotlin, функциях и лямбда-выражениях, корутинах (сопрограммах) и т.д.

Android

  • Книга «Программирование для Android» серии Head First. Авторы: Дэвид Гриффитс и Дон Гриффитс. В этой книге объясняются ключевые концепции: основные компоненты Android-приложения, работа с базой данных, проектирование интерфейсов и другие важные вещи. Есть множество заданий для самопроверки, примеры кода на языке Java.

  • Книга «Android для профессионалов. 4-е издание». Авторы: К. Марсикано, Б. Гарднер, Б. Филлипс, К. Стюарт. Это – новейшее издание книги, вышедшее на русском языке в ноябре 2020 года. Я бы рекомендовала ее всем начинающим разработчикам, желающим писать Android-приложения на языке Kotlin.

Авторами книги поэтапно объясняется создание нескольких разных приложений. Среди прочего, рассказывается о модульном тестировании. Очень доступно объясняются концепции различных архитектурных шаблонов. Освещается актуальный стек технологий: Room и LiveData (для работы с базой данных), ViewModel (для сохранения состояния интерфейса при вращении экрана), WorkManager (для планирования фоновой работы) и т.д. Я бы рекомендовала не просто читать книгу, а внимательно переписать все приложения вслед за автором. Подробнее о книге можно прочитать на Хабре.

Алгоритмы

  • Книга «Грокаем алгоритмы». Автор: А. Бхаргава. Мне очень понравился доступный и легкий стиль, в котором написана эта книга. Простым языком объясняются сложные для меня, гуманитария, вещи: О-нотация, хеш-таблицы, поиск в ширину, жадные алгоритмы, динамическое программирование и т.д.

  • Также полезно будет прочесть книгу «Алгоритмы» под авторством С. Дасгупта, Х. Пападимитриу, У. Вазирани. Сейчас я открыла для себя еще один труд, посвященный алгоритмам: «Структуры данных и алгоритмы в Java». Автор – Р. Лафоре. Насколько я знаю, последняя книга рекомендована для подготовки к собеседованию на стажировку в Яндексе.
  • Курс лекций «Алгоритмы. Теория и практика. Методы». Курс бесплатный и доступен по ссылке: https://stepik.org/course/217/syllabus.
  • Продолжение: «Алгоритмы. Теория и практика. Структуры данных». Курс доступен по ссылке: https://stepik.org/course/1547/syllabus.

Авторы этих курсов рекомендуют сначала посмотреть курс про методы и только потом переходить ко второму – про структуры данных.

Шаблоны проектирования

  • Книга «Паттерны проектирования. Юбилейное издание» серии Head First. Авторы: Э. Фримен, Э. Робсон.

Многие программисты решают похожие задачи, и вместо того, чтобы изобретать велосипед, можно использовать готовый шаблон проектирования (singleton, factory и т.д.). Мой знакомый из Google считает, что эту книгу нужно обязательно прочесть каждому разработчику.

Каким было Ваше первое мобильное приложение?
Мое первое опубликованное в Google Play приложение было написано на простом шаблоне-конструкторе AppsGeyser вообще без использования кода и выложено еще до того, как я глубоко погрузилась в изучение мобильной разработки. Это – викторина с вопросами по семи книгам о Гарри Поттере. Мне было интересно разобраться, как зарегистрировать аккаунт разработчика, как работать в консоли и готовить приложение к публикации. Все эти навыки мне потом пригодились. Позже я сделала викторину с теми же вопросами, но уже на языке Kotlin.

Что следует изучать начинающему Android-разработчику?

Несмотря на то, что полтора года назад я начала изучение программирования с языка Java, и на Kotlin перешла через некоторое время, сейчас, в 2021 году, я бы советовала сразу учить Kotlin. В компаниях используются разные стеки технологий, но в целом требования к начинающим разработчикам похожи: важно знать синтаксис языка программирования, коллекции, разбираться в теме многопоточности, уметь работать с запросами в сеть, знать систему контроля версий Git и т.д. Чтобы узнать, какие конкретно технологии необходимо изучать, достаточно зайти на любой сайт по поиску работы, найти актуальные вакансии и посмотреть, что требуют работодатели.

Почему вы советуете начинать изучение программирования сразу с Kotlin, а не с Java?

Я считаю, что выбирая язык программирования нужно ориентироваться на требования рынка труда. Конечно, неплохо сначала хорошо освоить Java, а потом переходить на Kotlin. Но сейчас все больше занимающихся мобильной разработкой компаний ведут свои проекты на Kotlin и от разработчиков требуют хорошего знания этого языка. Если начинающий программист не хочет растягивать поиск первой работы на длительное время, лучше, наверное, сразу начинать с изучения Kotlin.

Нужны ли начинающему разработчику знания алгоритмов?

Я считаю, что навыки решения алгоритмов, безусловно, надо развивать и оттачивать каждому разработчику. Чтобы набить руку в решении алгоритмических задач, отлично подходят следующие ресурсы: leetcode.com и www.hackerrank.com. Я стараюсь ежедневно разбирать хотя бы одну задачу, однако на первых порах можно поставить цель: освоить основные актуальные технологии, используемые в мобильной разработке, и найти первую работу, а после – тренировать навыки решения алгоритмов.

Что еще можно посоветовать начинающему Android-разработчику?
Заводить полезные контакты: создать профиль на LinkedIn и подписаться на телеграм-канал @Android Broadcast. Там публикуются интересные новости мобильной разработки и вакансии для Android-разработчиков. Много полезного я почерпнула для себя и на канале «Мобильный разработчик», который ведет Алексей Гладков, руководитель мобильной разработки в компании «Леруа Мерлен».

***

Основная проблема, с которой сталкивается начинающий Android-разработчик – это отсутствие четкого плана обучения и ментора. Если вы только начинаете свой путь в профессии, стоит обратить внимание на курс факультета Android-разработки образовательной онлайн-платформы GeekBrains. Под руководством преподавателей из крупнейших российских технологических компаний вы сможете освоить языки Java и Kotlin, разработаете свое приложение и опубликуете его в Google Play. Вас ждут: практика на реальных кейсах и командная разработка с другими студентами. Первые 6 месяцев обучения – бесплатно!

27
Авг
2021

🔄 Из метрологов в сетевые архитекторы: рассказ сисадмина-самоучки

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

Сегодня я хочу поделиться личным опытом, связанным с сменой сферы деятельности. До недавнего времени я занимался метеорологическими испытаниями, но в какой то момент решил сменить сферу деятельности в корне – с метролога на системного администратора. Мой опыт в IT заключался в переустановке операционной системы Windows, драйверов и прикладных программ. О Linux я тогда ничего не слышал и был очень далек от UNIX-систем в целом. Однако давайте обо всем по порядку…

Моя карьера началась сразу после окончания мной средней школы. Устроился на работу охранником в мебельный магазин. Параллельно поступил на учебу в профессионально-техническое училище по направлению мастер по ремонту и обслуживанию компьютеров. В те далекие 2005-2006 годы нас обучали азам на устаревших еще на тот момент Pentium 1-го и 2-го поколений. Как вы уже успели догадаться, это не дало никакого эффекта. На лекциях была одна лишь история компьютеризации.

Первый компьютер я приобрел на кровно-заработанные деньги в середине 2008-го (на тот момент мне было 19 лет). На тот момент интернет (не смеяться) у нас был DIAL-UP соединением со скоростью передачи данных 5 кбит/с. Да, страна в которой я родился и вырос, далеко не передовая в плане IT-развития, но этого не я выбирал…


После приобретения первого компьютера (не помню уже точной комплектации, но процессор там был двухъядерным от AMD, 2 ГБ RAM, 521 ГБ HDD и VGA 512 МБ при 128-битной шине) увлекся игровой инфраструктурой. Сутками зависал перед монитором. Насытившись играми, увлекся прошивкой телефонов, а именно модели Sony Ericsson C902, которой на тот момент владел. Начал устанавливать кастомные прошивки, доступные на просторах интернета (и это с интернетом всего лишь на 5 кбит/с). После начал писать свою прошивку, пользуясь всего лишь Блокнот из Windows XP. Нас в школе на уроках информатики учили Pascal, как передовому на тот момент языку программирования.

Часть вторая

После карьера отдалила меня от новинок в мире IT-индустрии. Работал в ненормированном режиме в геологической экспедиции. В разъездах проводил 70% каждого месяца. Дальше работал в типографии дизайнером, после устроился метрологом в государственном надзорном органе. Тут и началась моя история в мире IT. Поскольку я немного разбирался в компьютерах, меня загрузили сразу серверным и сетевым оборудованием допотопной IT-инфраструктуры организации.

Я не стал бы делать неоплачиваемую работу, но тяга к IT взяла верх (на тот момент мне уже было 29 лет). Я начал как губка впитывать всю доступную на просторах интернета информацию, благо на тот момент у нас была уже приличная скорость интернет-соединения по выделенному каналу. Зависал на работе до полуночи, изучая новое для себя направление.

Часть третья

Изучив и пощупав администрирование серверов на Windows с технологиями виртуализации, я продолжил изучение кластеризации и отказоустойчивости. Благо в наше время на просторах интернета очень много информации по любому вопросу в сфере IT. Построил кластер на базе Vmware, организовал отказоустойчивость fault tolerance, организовал систему хранения на жестких дисках серверов кластера, используя технологии Vmware vSAN.


Освоившись с серверами на Windows, я начал изучать Linux и настроил корпоративную электронную почту на основе решений с открытым исходным кодом. Также построил систему мониторинга zabbix и сбор логов с последующим их анализом на базе ELK (Elasticsearch, Logstash и Kibana).

После мне предложили работу в IT-компании. Чуть менее года ушло, чтобы достичь должности старшего специалиста по кибербезопасности и возглавить бригаду архитекторов серверной и сетевой инфраструктуры.

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

В планах заняться программированием. Достичь уровня full stack developer, после чего будет можно утвердиться в профессии инженера DevOps.

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

***

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

Реклама
Стать квалифицированным сетевым инженером достаточно сложно. Работодатели все чаще ищут профессионалов с универсальными навыками, а крупные компании обычно требуют высшее образование в области компьютерных наук, информационных систем или компьютерной инженерии. Если у вас нет ученых степеней в этой области – не страшно! Теперь можно изучить все необходимое при помощи практикующих наставников-профессионалов факультета «Сетевой инженер» образовательной онлайн-платформы GeekBrains. Здесь вы освоите сетевые технологии с нуля, получите диплом о профессиональной подготовке и сможете начать карьеру на уровне настоящего боевого джуна. Получите необходимые знания по администрированию сетей, закрепите их на практике, а также пополните портфолио двумя самостоятельными проектами.

16
Авг
2021

🐧 Терминал для тестировщика: консольные команды Unix/Linux, которые нужно знать наизусть

С тобой сложно, но без тебя невозможно. Посвящается текстовой консоли, работе в командной строке и причинам, по которым эту премудрость стоит освоить начинающему инженеру по Quality Assurance.

Первые шаги: 40 основных команд

Мое знакомство с терминалом началось немного раньше чем путь в тестирование. Скорее всего с установки системы на спор, а потом как-то прижился Linux, и сейчас винда вызывает некоторое подвисание.

Толчок в развитии дала статья «40 основных команд» и книга Скотта Гараннемана «Linux/ Необходимый код и команды. Карманный справочник» (в магазинах доступно ее 2-е издание).


Нагугилшь команду, а перейти в нужную папку забудешь. Или перепутаешь направление dd (команда поблочного переноса данных) и все, здравствуй вечер переустановки системы и потеря данных. Справочники – это хорошо, но основы работы в командной строке Unix/Linux нужно знать наизусть.

У меня получился примерно такой список необходимых внутренних команд оболочки Bourne shell (командные процессоры sh, bash и т.д.) и внешних утилит. Вызываются они одинаково:

  • Навигация по каталогам и файлам: cd, ls, pwd.
  • Работа с файлами и каталогами: rm, mv, cp, mkdir, cat, more, grep, sort, touch, tail, head, less, find.
  • Повышение привилегий: su, sudo.
  • Управление правами: chmod, chown, chgrp.
  • Текстовые редакторы: vi, vim, nano.
  • Архивация и разархивирование: tar, unzip, zip.
  • Установка программ: apt, yum.
  • Информация о командах: man, опция -h (–help).
  • История ранее выполняемых команд: history.
  • Работа с сетью: curl, ping, nslookup, netstat, wget, telnet, ifconfig, ip, ss.
  • Информация о системе и процессах: top, du, df, ps.
  • Управление процессами: kill.

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

Совершенствуем чтение логов

Первое, для чего тестировщик откроет терминал и начнет в нем работать – это логи (от англ. logs – файлы журналов, обычно текстовые). Потому что об аргумент «у меня все работает» разбиваются все доводы и с таким трудом найденные шаги воспроизведения. Можно достать файл целиком с помощью WinSCP и приложить его к багу, но не факт, что его откроют (и хорошо еще, если правильно настроено порционирование логов и файл весит не так уж и много).

Начать можно с простого. Команда tail показывает окончание файла (аналогично команда head читает данные с начала), а если добавить ключ -n, то можно увидеть заданное количество строк:

        tail -n 300 console.log
    

С ключом -f команда будет показывать дозапись в файл в реальном времени:

        tail -f console.log
    

Команда tail помогает, если ошибка произошла только что и ее найти в последних строках, или она воспроизводится прямо сейчас. Если нужно просмотреть весь журнал и найти определенные события (строки по шаблону), можно воспользоваться командой grep:

        grep -i ‘error’ console.log
# где i - регистронезависимый поиск

    

В данном случае будут найдены все строки в которых есть строка ‘error’ без зависимости от регистра. У команды гораздо больше возможностей, чем я показала. Про grep можно писать отдельную статью. Вот вариант поиска классов, логи которых включены на уровне DEBUG и сортировка их с помощью утилиты sort (один из примеров, который понадобился в реальной работе):

        grep DEBUG console-main.log | grep -oP '[a-z\.]+\.[A-Z][a-zA-Z0-9]*' | sort | uniq -c
    

Третий способ чтения логов – команда less. Работа в ней схожа с работой в редакторе vim, но с возможностью только чтения и поиска по файлу:

        less console.log # откроет файл на просмотр.

# Для навигации можно и нужно пользоваться клавишами:
#	Shift+g - для перемещения в конец файла
#	Shift+f - для перехода в режим чтения дозаписи файла
#	/ + “text” - для поиска значения вниз от курсора
#	? + “text” - для поиска значений вверх от курсора
#	Q - выход

    

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

Спасаем показ: подключаемся к базе данных

Рано или поздно в жизни тестировщика наступает сдача проекта. Бессонные ночи, правки на прод за час до релиза, написание ПМИ и постоянный перетест. И вот уже почти конец, остался показ.

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

В системе объект должен был двигаться по определенному жизненному циклу. Пользователь нажал кнопку, и ничего не произошло. Даже в логах не отобразилась никакая информация. Показ встал. Действовать нужно быстро, иначе не засчитывалась защита. Под рукой только терминал. Выход из такой ситуации достаточно прост:

        psql -h localhost -U <user>
#	где psql - утилита для работы с бд постгрес
#	     h - хост подключения к бд
#	     U - пользователь для подключения к бд

    

А дальше найти селектом нужный объект и посмотреть, был ли переход объекта. Оказалось, что кнопка не была нажата, и показ продолжился в штатном режиме.

Ошибка не на нашей стороне: связанность, курлы и интеграции

Тестирование интеграций – одна из самых интересных в сфере Quality Assurance. Поиск возможных ошибок всегда усложняется тем, что не понятно, на чьей они стороне, есть ли связанность и на тот ли тестовый стенд настроено каждое приложение.

Прежде чем перейти к собственно тестированию, я провожу проверку связности.

Начнем с проверки сетевой доступности сервиса, с которым вы интегрируетесь (действия производятся с машины, на которой поднят интегрирующийся сервис):

        ping <host>
    

Пинг проходит, значит на той стороне как минимум поднят стенд (противоположный результат ни о чем не говорит, поскольку пакеты ICMP может резать сетевой экран – прим. ред.). Теперь нужно проверить, открыты ли нужные порты:

        telnet <ip> <port>
# Например:
telnet checkip.dyndns.org 80

    

Если соединение открыто, остается последний шаг перед началом тестирования интеграции. С помощью утилиты curl проверить возможность представленного в спецификации запроса:

        
curl <host>| jq # jq для структурированного просмотра ответа, если используется формат json

    

Например:

        curl 'https://proglib.io/api/paging/live'| jq
    

Ответ 200, значит можно приступать к тестированию. Минимальные условия для проверки выполнены.

Перезагрузка приложений и изменение настроек

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

В проектах настройки лежат в файлах application.properties (конфигурация приложения может описываться в самых разных файлах и даже с использованием языков разметки – прим.ред.). Чтобы найти их и открыть файл, воспользоваться командой locate:

        locate application.properties
    
Команда locate проводит поиск в специальной базе данных (не стоит путать ее с сервером SQL), которая периодически обновляется через планировщик. Для немедленного обновления нужно запустить команду updatedb с администраторскими полномочиями (su, sudo).

После нахождения пути, по которому лежат настройки, их можно открыть в vim или в другом текстовом редакторе:

        vim <path>/application.properties

    

После изменения и сохранения :wq настроек, нужно перезагрузить приложение. Рестарт приложения в Linux обычно выполняется командой (если в нем реализована вся необходимая обвязка, иначе придется убивать процессы с помощью kill и запускать программу заново – прим. ред.):

        sudo systemctl restart <serviceName>.service
    

После рестарта лучше смотреть логи, поскольку изменение настроек может так критично повлиять на приложение, что оно не запустится. Также нужно посмотреть статус приложения спустя несколько минут после рестарта:

        sudo systemctl stаtus <serviceName>.service
    
Прим. ред.
Этот метод сработает, если в приложении реализована вся скриптовая обвязка, в противном случае воспользуйтесь командой ps.


Приложение должно быть запущено, иначе лучше вернуть старые настройки и заново его рестартовать.

Нужно ли это тестировщику?

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

Удачи в обучении!

05
Авг
2021

🎮 Путь в профессию: младший игровой программист дает советы новичкам

Артём Драпун – младший программист в белорусской IT-компании, занимающейся аутсорсингом в сфере игрового ПО. Он попал в профессию сравнительно недавно, что делает его опыт современным, а значит и повторимым.

01
Авг
2021

👨‍💼 Путь в профессию: интервью с тимлидом

Сегодня на вопросы proglib отвечает Алена Новикова – руководитель группы разработки. Алена работает в ИТ уже 17 лет, преимущественно занимается интеграцией и бекендом.

Как вы пришли в программирование?

Я впервые увидела компьютер в 10 классе у одноклассника. Тогда это была редкость, не каждый мог себе позволить купить комп. Мы играли в “Need for Speed”, и я помню, как пиксельные листья разлетались по обочине. Это было круто! Это вам не “Змейка” на бейсике в школе. В общем, пришлось обмануть маму, что на экономиста я не прошла по входным баллам, чтобы учиться на “Вычислительных машинах”. Тогда никто не верил, что айтишники будут всем нужны. Училась программировать я все равно сама, институтская программа была слабая.

С третьего курса стала подрабатывать в КБ. Писала систему управления матценностями для завода.

Потом поработала в ИТ-отделе на металлургическом предприятии пару лет и переехала в Москву. Нашла работу в интеграторе. Стала погружаться в дивный новый мир корпоративных систем. Веду проекты на Java для микросервисов и серверного кода, а также на SQL и python для обработки данных.

Когда случился переломный момент (переход от программирования к управлению)?

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

Ваш первый опыт. Было страшно управлять командой?

Безумству храбрых поем мы песню. Было непонятно, что надо делать. Никто не объяснял. Постепенно разобралась, как происходит разработка, стала много общаться как посредник между заказчиком и командой. У меня был классный архитектор, и я училась у него управлению процессом. А управлению людьми училась просто “на живом материале”, других вариантов не было.

Как изменились ваша заработная плата и рабочий график?


Зарплата стала расти скачками: на 25% в первый год как минимум, и потом каждые два года я получала новую позицию и новые деньги. Хотя я не карьерист вообще и все эти загоны по карьере не люблю.

Я фанат своей работы. Я стала работать до часу ночи, а в семь подъем и опять работать или учиться. Потому что не сразу пришло понимание, что все эти митинги, которые заняли мой день – и есть теперь моя работа. А не программирование. Я пыталась быть полноценным участником разработки, так что жестко перерабатывала. Со временем научилась правильно планировать нагрузку.

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

Я стала архитектором через пару лет работы тимлидом. Я учила отдельно TOGAF, проектировала системы. Потом перешла в другую компанию тоже на позицию лида, параллельно работаю на фриланс и для стартапов. Это хобби. В стартапах есть элемент неожиданности и драйв. Ну и команды каждый раз новые, разноуровневые. Мой лид неоднократно намекал мне на полный переход в менеджмент, но я не могу перестать кодить. Как следствие, я работаю и учусь 70-80 часов в неделю, развиваюсь технически. Сейчас я имею хороший уровень SQL, средний Java и Python. Конечно, детали забываю, но ежегодно устраиваю себе марафон: беру какой-нибудь курс и повторяю на нем язык.

Реально ли вернуться из тимлидов в программисты (скажем в сеньоры)? Обязательно быть сеньором, или тимлидом может стать и средний разработчик?

Вообще уровень технических знаний не так важен, как опыт работы и смелость. Не такая бесшабашная смелость, которая граничит с инфантильностью, а уверенность, когда принимаешь решение за себя и за других. Еще важно понимать, а что вообще команда делает и зачем нужен проект. Мыслить не в стиле «я имплементирую микросервис на Spring Boot», а в стиле «я автоматизирую операцию получения данных для портала заказчика». Кроме этого нужно внимательно слушать людей в команде.

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

Я пробовала дауншифтить и переходила на работу программистом, но меня все равно вынесло в управление. Потому что мне больше всех надо, и мне нравится организовывать процесс.

Как вам удается выстраивать отношения в команде? Как поддерживать авторитет, если ты не самый лучший специалист?


Я не устанавливаю авторитет. Наверное, я даже не понимаю, что конкретно это значит. Но постепенно создается доверие ко мне, как к человеку, которые может разруливать разные ситуации, регулировать нагрузку, расставлять приоритеты. Я никогда не делаю вид, что я умнее, чем я есть. Если не поняла, прошу мне объяснить. Мой прокачанный скил – управление. Вот в нем я точно лучший специалист в своей команде. Технику я подтягиваю под каждый проект. Что-то знаю как джун, что-то как синьор. Меня это не беспокоит. Мне есть кого спросить.

Вы теряли свои позиции? Хотелось все бросить? Как справляетесь с профессиональным выгоранием?

Периодически хочется послать все куда подальше, но быстро остываю. Чаще всего кризис бывает из-за внешнего давления и несправедливости мира. Когда архитектор выворачивает мое решение мехом внутрь, или проектный менеджер пытается впихнуть невпихуемое. В команде встречаются сложные люди, но я понимаю: я получаю зарплату за то, что они хорошо делают свою работу. То есть какими бы эти люди не были, именно они и делают проект, а я просто им помогаю. Я выгорала пару раз, потом научилась сбрасывать пар. Уезжаю раз в месяц на выходные куда-нибудь, провожу время в одиночестве и мне нормально.

Что самое лучшее в работе тимлида?

Самое классное – это люди. Люди очень интересные. Все время у них учусь. У них всегда есть другое видение ситуации, своя точка зрения. Инсайты бывают часто. Внезапно осознаешь, что парился по какой-то ерунде, а важно вовсе не это.

Драйвит управление процессом разработки сложных решений. Я вижу каждую систему от момента, как подписан контракт, до выхода в продакшен. Это дает ощущение силы, чувствуешь мощность своей команды. Каждый выход в прод, когда все постпрод-проблемы уже отгромыхали – это победа.

Что самое сложное в работе тимлида?

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

Люди идут к лиду, потому что это точка опоры. У меня иногда не хватает энергии.

Я исключала ребят из команды дважды за 10 лет. Причина была одинаковая оба раза: невыполнение поставленных задач и обман со сроками. Оба раза сеньорные люди не хотели делать рутинные задачи, а креативных задач не было. Человек может просто сказать: “Извини, мне не интересно, я ухожу”. Это принимается, это хороший вариант. А может тянуть неделями и кормить завтраками. Каждый раз это было тяжело, потому что команда – это единый организм: плохо одному, трясет всех.

Какие навыки нужно развивать будущему тимлиду?

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

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

Чему вы учитесь сейчас? Есть какие-то планы развития?

Да, конечно учусь. Второе высшее получаю – международный менеджмент. Постоянно смотрю курсы по софтскиллам на coursera и masterclass, читаю книги по межкультурным коммуникациям, управлению разработкой и тимбилдингу. Планирую посетить конференцию в Екатеринбурге, там будет интересная секция по управлению разработкой.

Параллельно продолжаю учить python, много пишу сейчас на нем, но это не основное занятие. Платят мне не за программирование. Тимлиду платят за ответственность.

***
Реклама
Чтобы научиться управлять разработкой, создавать команду и планировать нагрузку стоит пройти новый курс для middle- и senior-разработчиков, планирующих стать руководителями команд образовательной онлайн-платформы GeekBrains. Учебная программа подготовлена совместно с компанией AGIMA, а преподаватели курса – действующие тимлиды и их руководители. Они управляют проектами, запускают их в продакшен, управляют командами и разработкой. За 6 месяцев вы научитесь выстраивать отношения с командой и вести полный цикл разработки. Успешно завершившие обучение выпускники получат диплом о профессиональной переподготовке и будут приглашены на собеседование в компанию AGIMA.

31
Июл
2021

👨‍💼 Путь в профессию: интервью с разработчиком 1С

Кто такой разработчик 1С? Какие еще профессии есть в мире 1С? Как стать программистом 1С? Каковы достоинства и недостатки этой профессии? На эти и другие вопросы корреспонденту «Библиотеки программиста» ответил Александр Андреев.

Кто такой разработчик 1С?

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

Иногда программистов 1С называют “недопрограммистами”, потому что когда мы общаемся напрямую с заказчиком, то получаем пожелания и абстрактные идеи. Уже затем программист составляет задание и выполняет его. Иными словами, программист 1С – это такой материализатор желаний заказчика. Отсюда следует, что разработчику 1С обязательно нужно хорошо разбираться в предметной области. Например, если он ведёт разработку бухгалтерии, то нужно иметь бухгалтерское образование или хотя-бы закончить курсы бухгалтеров.

Если это производство, нужно знать его технологию и этапы, иметь представление о методах оптимизации. Также очень часто программисту 1С приходится решать задачи бизнеса. Формулировка задачи может звучать так: навести порядок на складе, привести к минимуму задержку ввода документов, увеличить производительность цеха и т.п. Сама среда программирования 1С довольно проста, да и код пишется на русском языке. Лично мое мнение таково: разработчик 1С – это НАДпрограммист.

Какие еще профессии есть в мире 1С?

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

Теперь рассмотрим, что делает каждый из них:

  • Методист хорошо разбирается в предметной области и владеет программой, но не программирует. По программированию он имеет поверхностные знания и отвечает обычно за поддержку пользователей, а также за их обучение.
  • Тестировщик работает в паре с программистом и тестирует созданные продукты. В последнее время все переходят на автотесты.
  • Архитектор, как и методист, должен хорошо разбираться в предметной области. Он может иметь опыт программирования, может не иметь, но базовое понимание обязательно. Главная его функция – архитектор отвечает за работоспособность всего продукта и взаимодействие с остальными системами.

Почему в 1С код пишется на русском языке?

На момент создания программы 1С в первой половине 90-х годов существовало две точки зрения относительно дальнейшего развития софта. Первая: все программы, в том числе и пользовательский интерфейс, нужно создавать на английском языке. Вторая: все программы нужно создавать на русском языке. Время показало, что пользовательский интерфейс должен быть на русском, а сам код – на английском языке.

Кстати, код в 1С можно писать на двух языках – русском и английском.

В чем секрет популярности 1С?

Это вопрос на миллиард, ведь простого ответа на него не существует. Лично я думаю так: многие предприятия, фирмы и крупные компании используют именно программу 1С, потому что она максимально адаптирована под российские реалии, и на текущий момент продукты фирмы 1С – это большие возможности по развитию бизнеса и гибкая адаптация за счет большого количества разработчиков.

Как стать разработчиком?

В основе должен быть интерес к программированию. Хотя профессия разработчика 1С предлагает много интересных задач, будет и скучная рутинная работа. Если вы не получаете удовольствия от процесса написания программ, нужно серьезно подумать о выборе профессии.

Каковы достоинства и недостатки профессии?


Для меня главное достоинство – это возможность работать удаленно, что помогает человеку реализовать самые смелые желания. Вы можете переехать в любую точку мира или на всё лето уехать на море. Один мой коллега всё лето 2017 года провёл в Таиланде. Работая удалённо, конечно.

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

С чего начался ваш путь в программисты?

Лет в семь я для себя решил, что моя жизнь будет связана с техникой. В моём детстве все читали книги, и я в том числе. Выбор определила “Энциклопедия профессора Фортрана” – качественно, доступно и интересно написанная книга для детей. Затем, лет в тринадцать – кружок информатики в школе и в доме школьника. Хочу поблагодарить учителей и передать им привет – Пронину Виктору Петровичу и Языковой Любови – здоровья им крепкого на долгие годы!

Как вы стали 1С-разработчиком?

В 2003 году я рассматривал для себя два варианта: 1С и сайты в соотношении 80/20. Честно признаюсь, создание сайтов мне не очень нравилось. К тому же мне было понятно, что именно нужно сделать, чтобы пойти работать программистом 1С. Я закончил курсы бухгалтеров, курсы по программированию 1С, и проштудировав объявления о вакансиях в местной газете, устроился работать в городское управление ЖКХ. Зарплата там, конечно, была минимальная.

Сколько нужно отработать, чтобы стать хорошим специалистом?


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

Как постоянно поддерживать уровень?

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

Как остаться хорошим специалистом после 10 лет в отрасли?

Чтобы быть постоянно в теме, необходимо каждый день начинать изучать все с нуля. За 10 лет отрасль IT изменится очень сильно, и если вы перестанете ежедневно развиваться, смотреть информацию про новинки и тренды, ваши знания устареют и станут никому не нужны. Если только вы не писали мировую платежную систему, и стоимость ее внедрения не превышает нескольких десятков миллиардов долларов. Я, например, начинал с 1С 7.7, затем начинал заново с 1С 8.0 и 8.1. Сейчас работаю с 8.3, а когда выйдет 8.4 или 8.5, все начнется сначала.

Многие говорят: «Вот как это ужасно, в IT все устаревает, а врачам ничего не нужно учить заново!»

Я считаю, что это очень хорошо: работа не успевает наскучить, нужно постоянно держать себя в форме – нельзя просто что-то изучить и почивать на лаврах.

Что самое интересное в вашей работе?

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

Сколько вы зарабатываете?

Такой нескромный, но всем очень интересный вопрос. Моя зарплата – это шестизначное число. В целом зарплата по отрасли составляет от 100 000 до 300 000 руб. 200 обычно получает ведущий программист или начальник отдела. Конечно на рынке есть как крупные фирмы, где зарплата больше 300, так и различные муниципальные организации, где порой платят меньше 20 000. Выбирает каждый для себя.

Вы давно работаете удалённо?

В целом три года. Я работал на удаленке с 2016 по 2018 год и снова вернулся в 2020-м. Только второй заход я уже планировал основательно: купил дом в пригороде и переехал из города в деревню. Завел собаку, котов. Даже пробовал кур держать, но с ними у меня как-то не заладилось. Зато с удаленной очень всё прекрасно!

Как стать разработчиком 1С с нуля?
Всё гениальное просто: новичкам я рекомендую закончить курсы по программированию, получить сертификат 1С, идти работать в фирму франчайзи.

Что вы посоветуете тем, кто уже отработал 3 – 5 лет?

А тут ещё проще: если на одном месте, то я рекомендую сменить работу или пойти на руководящую должность, попробовать начать обучать. У каждого свои амбиции: кому-то и двадцать лет в одной поре – норм, а кто-то через год уже устал, заскучал и хочет чего-нибудь остренького.

Что стоит изучать будущему разработчику 1С?

Дерзайте! Для начала необходимо закончить курсы по программированию, затем получить сертификат 1С:Специалист по платформе и по какой-либо конфигурации. Обычно начинают с Бухгалтерии или УНФ, также востребованы специалисты по 1С:ERP. На этапе, когда уже получил сертификат по платформе, стоит начинать искать работу. Лучше идти работать в фирму франчайзи – это очень хорошая прокачка уровня программиста. В среднем зарплата начинающего программиста – около 50 000 руб. В регионах чуть ниже, в столице чуть выше, но тенденция последних 5 лет показывает, что зарплаты в регионах и столице почти сравнялись.

Реклама
Если вы только собираетесь всерьёз осваивать профессию, обратите внимание на курс факультета 1С-разработки образовательной онлайн-платформы GeekBrains. Он подойдет не только новичкам, но и пользователям системы, а также начинающим программистам. За 8 месяцев практикующие профессионалы подготовят вас к экзаменам «1С: Профессионал» и «1С: Специалист», а опытные HR-менеджеры помогут вам составить резюме и найти первую работу. Успешно завершившие курс студенты добавят в портфолио несколько кейсов и получат диплом о профессиональной переподготовке.

31
Июл
2021

👨‍💼 Путь в профессию: интервью с разработчиком 1С

Кто такой разработчик 1С? Какие еще профессии есть в мире 1С? Как стать программистом 1С? Каковы достоинства и недостатки этой профессии? На эти и другие вопросы корреспонденту «Библиотеки программиста» ответил Александр Андреев.

Кто такой разработчик 1С?

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

Иногда программистов 1С называют “недопрограммистами”, потому что когда мы общаемся напрямую с заказчиком, то получаем пожелания и абстрактные идеи. Уже затем программист составляет задание и выполняет его. Иными словами, программист 1С – это такой материализатор желаний заказчика. Отсюда следует, что разработчику 1С обязательно нужно хорошо разбираться в предметной области. Например, если он ведёт разработку бухгалтерии, то нужно иметь бухгалтерское образование или хотя-бы закончить курсы бухгалтеров.

Если это производство, нужно знать его технологию и этапы, иметь представление о методах оптимизации. Также очень часто программисту 1С приходится решать задачи бизнеса. Формулировка задачи может звучать так: навести порядок на складе, привести к минимуму задержку ввода документов, увеличить производительность цеха и т.п. Сама среда программирования 1С довольно проста, да и код пишется на русском языке. Лично мое мнение таково: разработчик 1С – это НАДпрограммист.

Какие еще профессии есть в мире 1С?

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

Теперь рассмотрим, что делает каждый из них:

  • Методист хорошо разбирается в предметной области и владеет программой, но не программирует. По программированию он имеет поверхностные знания и отвечает обычно за поддержку пользователей, а также за их обучение.
  • Тестировщик работает в паре с программистом и тестирует созданные продукты. В последнее время все переходят на автотесты.
  • Архитектор, как и методист, должен хорошо разбираться в предметной области. Он может иметь опыт программирования, может не иметь, но базовое понимание обязательно. Главная его функция – архитектор отвечает за работоспособность всего продукта и взаимодействие с остальными системами.

Почему в 1С код пишется на русском языке?

На момент создания программы 1С в первой половине 90-х годов существовало две точки зрения относительно дальнейшего развития софта. Первая: все программы, в том числе и пользовательский интерфейс, нужно создавать на английском языке. Вторая: все программы нужно создавать на русском языке. Время показало, что пользовательский интерфейс должен быть на русском, а сам код – на английском языке.

Кстати, код в 1С можно писать на двух языках – русском и английском.

В чем секрет популярности 1С?

Это вопрос на миллиард, ведь простого ответа на него не существует. Лично я думаю так: многие предприятия, фирмы и крупные компании используют именно программу 1С, потому что она максимально адаптирована под российские реалии, и на текущий момент продукты фирмы 1С – это большие возможности по развитию бизнеса и гибкая адаптация за счет большого количества разработчиков.

Как стать разработчиком?

В основе должен быть интерес к программированию. Хотя профессия разработчика 1С предлагает много интересных задач, будет и скучная рутинная работа. Если вы не получаете удовольствия от процесса написания программ, нужно серьезно подумать о выборе профессии.

Каковы достоинства и недостатки профессии?


Для меня главное достоинство – это возможность работать удаленно, что помогает человеку реализовать самые смелые желания. Вы можете переехать в любую точку мира или на всё лето уехать на море. Один мой коллега всё лето 2017 года провёл в Таиланде. Работая удалённо, конечно.

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

С чего начался ваш путь в программисты?

Лет в семь я для себя решил, что моя жизнь будет связана с техникой. В моём детстве все читали книги, и я в том числе. Выбор определила “Энциклопедия профессора Фортрана” – качественно, доступно и интересно написанная книга для детей. Затем, лет в тринадцать – кружок информатики в школе и в доме школьника. Хочу поблагодарить учителей и передать им привет – Пронину Виктору Петровичу и Языковой Любови – здоровья им крепкого на долгие годы!

Как вы стали 1С-разработчиком?

В 2003 году я рассматривал для себя два варианта: 1С и сайты в соотношении 80/20. Честно признаюсь, создание сайтов мне не очень нравилось. К тому же мне было понятно, что именно нужно сделать, чтобы пойти работать программистом 1С. Я закончил курсы бухгалтеров, курсы по программированию 1С, и проштудировав объявления о вакансиях в местной газете, устроился работать в городское управление ЖКХ. Зарплата там, конечно, была минимальная.

Сколько нужно отработать, чтобы стать хорошим специалистом?


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

Как постоянно поддерживать уровень?

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

Как остаться хорошим специалистом после 10 лет в отрасли?

Чтобы быть постоянно в теме, необходимо каждый день начинать изучать все с нуля. За 10 лет отрасль IT изменится очень сильно, и если вы перестанете ежедневно развиваться, смотреть информацию про новинки и тренды, ваши знания устареют и станут никому не нужны. Если только вы не писали мировую платежную систему, и стоимость ее внедрения не превышает нескольких десятков миллиардов долларов. Я, например, начинал с 1С 7.7, затем начинал заново с 1С 8.0 и 8.1. Сейчас работаю с 8.3, а когда выйдет 8.4 или 8.5, все начнется сначала.

Многие говорят: «Вот как это ужасно, в IT все устаревает, а врачам ничего не нужно учить заново!»

Я считаю, что это очень хорошо: работа не успевает наскучить, нужно постоянно держать себя в форме – нельзя просто что-то изучить и почивать на лаврах.

Что самое интересное в вашей работе?

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

Сколько вы зарабатываете?

Такой нескромный, но всем очень интересный вопрос. Моя зарплата – это шестизначное число. В целом зарплата по отрасли составляет от 100 000 до 300 000 руб. 200 обычно получает ведущий программист или начальник отдела. Конечно на рынке есть как крупные фирмы, где зарплата больше 300, так и различные муниципальные организации, где порой платят меньше 20 000. Выбирает каждый для себя.

Вы давно работаете удалённо?

В целом три года. Я работал на удаленке с 2016 по 2018 год и снова вернулся в 2020-м. Только второй заход я уже планировал основательно: купил дом в пригороде и переехал из города в деревню. Завел собаку, котов. Даже пробовал кур держать, но с ними у меня как-то не заладилось. Зато с удаленной очень всё прекрасно!

Как стать разработчиком 1С с нуля?
Всё гениальное просто: новичкам я рекомендую закончить курсы по программированию, получить сертификат 1С, идти работать в фирму франчайзи.

Что вы посоветуете тем, кто уже отработал 3 – 5 лет?

А тут ещё проще: если на одном месте, то я рекомендую сменить работу или пойти на руководящую должность, попробовать начать обучать. У каждого свои амбиции: кому-то и двадцать лет в одной поре – норм, а кто-то через год уже устал, заскучал и хочет чего-нибудь остренького.

Что стоит изучать будущему разработчику 1С?

Дерзайте! Для начала необходимо закончить курсы по программированию, затем получить сертификат 1С:Специалист по платформе и по какой-либо конфигурации. Обычно начинают с Бухгалтерии или УНФ, также востребованы специалисты по 1С:ERP. На этапе, когда уже получил сертификат по платформе, стоит начинать искать работу. Лучше идти работать в фирму франчайзи – это очень хорошая прокачка уровня программиста. В среднем зарплата начинающего программиста – около 50 000 руб. В регионах чуть ниже, в столице чуть выше, но тенденция последних 5 лет показывает, что зарплаты в регионах и столице почти сравнялись.

Реклама
Если вы только собираетесь всерьёз осваивать профессию, обратите внимание на курс факультета 1С-разработки образовательной онлайн-платформы GeekBrains. Он подойдет не только новичкам, но и пользователям системы, а также начинающим программистам. За 8 месяцев практикующие профессионалы подготовят вас к экзаменам «1С: Профессионал» и «1С: Специалист», а опытные HR-менеджеры помогут вам составить резюме и найти первую работу. Успешно завершившие курс студенты добавят в портфолио несколько кейсов и получат диплом о профессиональной переподготовке.

30
Июл
2021

💻 «Тыжпрограммист, почини мне кофеварку!» – 13 мифов о программистах и программировании

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

27
Июл
2021

💐 Как я провел комплексную автоматизацию тепличного хозяйства: предметная область для IT-менеджеров

Мой опыт внедрения IoT в отечественном аграрном секторе. Роутеры, контроллеры, рассада и теплицы с вайфаем в чистом поле на юге России. Много красивых фоток.

У нас было 2…

18
Июл
2021

🗣 «Я программист от макушки до кончиков пальцев», – интервью с Seniour Software Engineer C#

Покупали в интернете пиццу или суши? Скорее всего ресторан получил ваш заказ через WebOrders. Корреспондент «Библиотеки программиста» поговорил о применимости и перспективах C# с Владимиром Каратаевым, разработчиком сервиса.

Герой интервью пишет программное обеспечение для доставки продуктов из ресторанов и кафе под брендом r_keeper Delivery. Сервис WebOrders – одно из его детищ – предоставляет API для доступа к кассовым серверам и CRM ресторанов. С его помощью разработчики интернет-магазинов и мобильных приложений подключаются к множеству заведений по всей стране и получают доступ к экосистеме r_keeper.


Расскажите о своей работе? Много ли вам приходится кодить?

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

Я работаю в команде программистов бэкенда, и кодирование – это существенная часть моей работы.

Командная работа, в отличие от индивидуальной, требует уделять немало времени взаимодействию с коллегами. Ежедневные совещания, встречи в течение дня, согласования и обсуждения – это обязательная, и весьма важная часть работы. Если вы не обговорили какой-то аспект, кажущийся вам незначительным, и закодировали на своё усмотрение, то есть немаленький шанс, что этот код придется выбросить из-за этого “незначительного” момента. Это вам он неважен, а для руководителя может оказаться ключевым.

В итоге само кодирование занимает 60 – 70% времени.

Остальное время уходит на:

  • краткое письменное описание и формализацию задачи,
  • разбиение на подзадачи и формирование тикетов,
  • планирование спринта,
  • утрясание с коллегами рабочих моментов по программным контрактам, функциям API,
  • сопровождение тестирования (подготовка плана тестирования, помощь тестировщику в настройке, разъяснении непонятных моментов, доработки),
  • демонстрацию завершенной и протестированной работы руководителям,
  • техническую поддержку (если три линии поддержки не смогли помочь клиенту, то задача попадает к разработчику),
  • работу со службой безопасности, если она выявила в работе сервиса уязвимости.

Почему вы выбрали именно это направление?

Я «заболел» программированием в 6-7 классе школы. После уроков я с такими же «страдальцами» бегал в класс информатики и просил учителя хотя бы посидеть за компьютером. Программировать нас тогда ещё только учили.

Именно поэтому у меня за плечами такой большой бэкграунд из вороха различных технологий я преподавал в университете информатику, программировал ERP на крупнейшем складе в России: в ваших авто наверняка есть детали с этого склада; разрабатывал САПР для электроэнергетики: почти все диспетчерские в России работают на этом ПО, так что свет в ваших домах это и мой труд тоже; сейчас разрабатываю микросервисы в сфере HoReCa ПО для ресторанов.

Я не выбирал этот путь осознанно, по каким-то критериям – он (путь) сам меня нашёл, целиком захватил и увлёк.

Долго ли пришлось идти к нынешнему уровню? Это было трудно?

В целом на уровень ведущего разработчика можно выйти за 3 – 5 лет работы программистом. При наличии соответствующих личных качеств можно стать тимлидом. И это трудно.

Например, строитель или токарь отработал свои 8 часов и далее занимается личной жизнью, о работе не думает. А тут порой решение задачи спать не дает: полночи мозг остыть не может, продолжая искать решения. И нередко добровольно, без всякой дополнительной оплаты, остаёшься поработать ещё, чтобы доделать задачу, пока мысль не ушла. Кроме того, отрасль так динамично меняется, что надо всегда дополнительно заниматься самообразованием. За свой счёт, в свободное от работы время.

Например, я прошёл такой путь: Assembler, программирование микроконтроллеров, Turbo pascal, Delphi, СУБД (Interbase, Firebird, MS SQLServer, Postgresql, Clickhouse, SQLite), Java, и, наконец, C#, Python.

И «бег» продолжается: сейчас присматриваюсь к Golang, Kotlin, Rust. Изучаю обработку больших данных, машинное обучение… много чего ещё. И всё для того, чтобы оставаться на современном уровне, поддерживая актуальность и ценность своих знаний и опыта на рынке труда.

Сложно ли учить С# с нуля новичку в программировании или программисту на другом языке?

Я изучал и использовал много различных языков программирования, так что могу сравнивать. У C# невысокий порог вхождения. Очень важный момент: у C# прекрасный инструментарий для разработки. Достаточно зайти на сайт, скачать и установить Visual Studio, и вы сразу всё получаете «из коробки», в готовом к работе виде.

Нажав пункт меню «новый проект» вы получите рабочую заготовку из простейшей программы “Hello word”. Запускайте, смотрите, как работает, модифицируйте и обучайтесь!

Ссылки на обучение приведены на приветственной странице в Visual Studio.

На первое время можно не задумываться про парадигмы программирования и обучаться, используя процедурный подход. Для сравнения, Python требует установить кроме самого языка отдельно среду разработки и настроить переменные окружения, а заготовки “Hello world” вам никто не предоставит.

Я думал о том, с чего лучше начинать программировать. И Python, и C# – хороший выбор. Они несложны при изучении базовых конструкций языка программирования и широко используются профессиональными программистами.

С чего бы вы посоветовали начинать изучение C# новичку?

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

Эта подготовка даётся в ВУЗах. Раньше она была и в школе, но сейчас фактически убили предмет. Надежда только на ВУЗовскую подготовку.

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

Сколько занимает путь от практиканта до полноценного боевого джуна в вашей команде? А от джуна до мидла и сеньора?

Я не советую идти работать практикантом. Надо работать 8 часов, а когда ещё учится программированию? Лучше полгода подучиться и пойти работать джуном. Далее 2-3 года надо не просто работать джуном, а продолжать обучение, чтобы выйти на уровень мидла.

Еще 2-3 года уйдут до уровня сеньора. Но тут уже надо больше вникать в специфику самой отрасли, для которой вы делаете разработку, чем в программирование. Например, делаете САПР в электроэнергетике – разберитесь в типах коммутационных аппаратов. Кодите для ресторанов – изучайте ресторанное дело.

Итого, выход на верхнюю планку ценного специалиста у вас займет около 5 лет, не считая ВУЗовской подготовки.

Что самое важное и сложное в изучении С#?

Сам язык прост. Не тратьте много сил на изучении его языковых конструкций. Существенно сложнее освоить фреймворки, например, asp.net для разработки бэкендов интернет-сервисов. Тут уже надо знать интернет-технологии: что такое аутентификация, и чем она отличается от авторизации, http-протокол, почти всегда требуется работа с СУБД.

Это титанический объём информации, но без этих знаний сложно понять, почему asp.net устроен именно так и научиться эффективно его использовать.

Используйте последние версии фреймворков, библиотек и сред разработки и развертывания. Пока вы будете их изучать, они войдут в мэйнстрим. Обратите внимание, надо обязательно участвовать в проектах open source на GitHub. Это полезно во всех отношениях:

  • Поможете хорошему делу.
  • Найдёте интересную нишу для себя.
  • Научитесь работе с инструментарием разработки: трекер, система контроля версий, автотестирование, CI (continuous integration – постоянное, «на потоке» тестирование и деплой всего, что выкладывается).
  • Научитесь общаться в команде, освоите жаргон.
  • Поймёте и примете инженерную культуру разработки кода.
  • Почувствуете чем дышит отрасль, какие технологии являются мэйнстримовыми.
  • Наработаете себе базу проектов для резюме.

Что еще нужно знать джуну?

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

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

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

Знание фреймворков, библиотек и прочего от джунов не требуется: на месте изучат, освоят. Главное, чтобы была вышеперечисленная начальная подготовка.

В части структур данных надо уметь работать с массивами, знать что такое списки и словари, их плюсы и минусы, древовидные структуры данных. Понимать, в каком случае что надо использовать. Из алгоритмов нужно знать: виды сортировки, поиск по массивам данных, работу с древовидными структурами данных (поиск, обход).

Как вы думаете, программисту нужно профильное высшее образование?

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

Куда податься свежеиспеченному джуну? В каких компаниях нужны С# разработчики?

Без опыта работы рассчитывать на приличные деньги не стоит. Надо браться за любую работу. C# любят на заводах и промышленных предприятиях за то, что на нём можно быстро делать пользовательские интерфейсы для ОС Windows. В игровой индустрии царит Unity, использующий C#. Виден явный тренд на более широкое использование C# в бэкендах интернет-сервисов, в банковском ПО. Хотя, конечно же, Java тут абсолютный лидер.

По разным рейтингам язык программирования C# является одним из мэйнстримовых, ведущих языков. Спрос на программистов C# высок: рекрутеры постоянно бомбят предложениями, а вакансии не закрываются месяцами. Это сказывается на уровне зарплат. По моим личным наблюдениям больше C# получают только программисты Java. Разница не сильная, но вполне видимая.

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

Каковы ваши планы на будущее?

Я технарь, программист от макушки до кончиков пальцев – забыл уже, когда был просто программистом. Более 15 лет я работаю как ведущий программист, синьор, тимлид, техлид – я выполнял много ролей внутри разных команд.

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

Чтобы поддерживать уровень своей ценности для бизнеса, я постоянно наблюдаю, изучаю, пробую и внедряю новые технологии.

Сейчас я вижу, что актуальной остаётся работа с огромными объёмами данных (big data). Это связано с текущим трендом на IoT. IoT сейчас бурно, взрывообразно развивается. Посмотрите – все крупные экосистемы (Мэйл, Сбер, Яндекс, МТС, Google, Amazon, Xiaomi, Apple) имеют в своем составе технологии для работы с умными домами и датчиками. Есть голосовые помощники, которые позволяют управлять устройствами с помощью голоса.

Эти системы состоят из отдельных программных модулей: кирпичиков, которые удобно и быстро можно интегрировать с помощью Python. Он же используется в машинном обучении. Учите Python, как вспомогательный язык, служащий для высокоуровневой интеграции разнородных систем. Для написания облачных микросервисов я рекомендую изучать Java, C#; для пользовательских интерфейсов – HTML и Javascript. Такой стек инструментария разработчика сейчас актуален, и пока не видно тенденций на изменение такого расклада.

***
Реклама
Если вы только начинаете путь в профессии, обратите внимание на курс «Разработка на C#» образовательной онлайн-платформы GeekBrains. Он охватывает все необходимые новичку темы от основ программирования и алгоритмов до публикации готового программного обеспечения. Изучается также работа с базами данных, бэкенд и фронтэнд, протоколы взаимодействия и даже основы архитектуры. Имеющие некоторый опыт программисты смогут попробовать новые фреймворки и современные технологии, а также расширить портфолио, познакомившись с основами разработки корпоративных приложений.

06
Июл
2021

👨‍💼 Тимлид из народа: как жить дальше?

Зачастую история успеха звучит так: «он пришел простым разработчиком, а вырос до руководителя департамента разработки». Кажется, будто человек сделал головокружительную карьеру – ему достается почет, уважение и непыльная работа руководителя. Разбираемся, так ли это на самом деле.

До тех пор пока у тебя есть план, и ты его придерживаешься – все будет хорошо. Главное убедить всех вокруг, что этот план сработает.
Василий Семенов, руководитель направления разработки ЦК SAP.

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


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

Новоиспеченный тимлид «из народа» должен следить за происходящим и отвечать за результаты команды перед руководством. Он должен, если кто-то не справляется, взять и спасти ситуацию. Теперь он отвечает не за качество своего кода, а за качество кода других программистов.

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

Стать тимлидом – это всегда открытие новой главы карьеры, когда личный успех заменяется успехом команды.

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

Обязанности и навыки тимлида


Деловая коммуникация и межличностное общение

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

Если нужных навыков делового общения у вас нет, на помощь придут книги:

  • Максим Батырев, «45 татуировок менеджера». Основанная на личном опыте книга российского руководителя. Название каждой главы – «татуировка», которая осталась с ним навсегда, и обязательно рассказано – почему.
  • Максим Батырев, «Сложные подчиненные. Практика российских руководителей». Еще одна книга того же автора, основана на выводах из реальных кейсов бизнеса. Каждая глава рассказывает про свой тип сотрудников.
  • Деннис Шервуд, «Системное мышление для руководителей: Практика решения бизнес-проблем». Книга о работе бизнеса в целом и о связях между всеми элементами этой цепочки. О системном мышлении и системном подходе к совершенствованию бизнес-моделей.
  • Бен Хоровиц, «Мы – то, что мы делаем». Рассказы о корпоративной культуре на ярких примерах.
  • Фонс Тромпенаарс и Пит Хэйн Кеберг, «100 ключевых моделей и концепций управления».
С самого начала моей карьеры, каждый раз после прочтения книг/курсов я старался сделать выжимку из материала и поделиться новым с людьми, которые меня окружали. Я понимал, что получаю многократный профит: растут мои технические знания, растет уровень окружающей меня команды, растут навыки общения, растет авторитет у других сотрудников.
Василий Семенов, руководитель направления разработки ЦК SAP.

Ресурсное планирование и экспертиза вместо написания кода

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

Еще одна важная проблема – ресурсное управление. Вы всегда должны понимать, кто и чем занят, когда освободится и на что способен тот или иной специалист. Эта проблема часто решается не за один год: упорядочить потоки задач, выработать унифицированный список требований, объяснить постановщикам важность ТЗ, настроить работоспособное планирование – все требует времени и неоднократного повторения.

Контроль эмоционального состояния коллектива

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

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

За годы работы я понял что большая часть проблем кроется в отсутствии нормальной коммуникации между людьми. Часто необходимо просто правильно обозначить точки соприкосновения и работа налаживается.
Василий Семенов, руководитель направления разработки ЦК SAP.

Управление общими процессами и формирование единого вектора развития

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

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

Борьба с профессиональным выгоранием


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

Сложнее всего терять кадры, особенно тех специалистов, на которых вы рассчитывали, кого развивали, и с кем обсуждали свои планы. Вы обязаны балансировать между эффективным для выполнения запланированного объема работ (а иногда и незапланированного) составом команды и бюджетом, выделенным на развитие и поддержку команды.

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

Будь открытым и честным перед собой и своими сотрудниками. И тогда они тебя выручат в трудный момент.
Василий Семенов, руководитель направления разработки ЦК SAP.

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

Однако кто бы не пришел на позицию тимлида, он должен учиться. Учиться смотреть на бизнес-процессы с другой точки зрения, учиться расширять границы, учиться общаться, слышать и слушать.

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


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

***

Образовательная платформа Skillbox проводит набор на курс «Профессия TeamLead». За 6 месяцев действующие тимлиды российских технологических компаний дадут слушателям необходимые для успешной карьеры теоретические знания и практические навыки. Вы поймете, чем команда разработки отличается от других команд, как ее развивать и оценивать, а также какие soft skills нужны современному тимлиду и как быстро их развить.