Программист алексей работает. Алексей Пажитнов: биография и достижения. Пажитнов Алексей Леонидович — российский программист. А может быть

Мой путь

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

Но в последних классах (93-95 годы) познакомился с компьютерами, и меня полностью затянуло.

Сначала бесконечные олимпиады по информатике, потом первый модем дома, потом в нашем Брянском техуниверситете открыли специальность «Программирование» и я конечно на неё прошёл. Сам не заметил, как прошли годы, очнулся примерно на 5 курсе, в районе диплома, погоревал по своим школьным мечтам минут 10 и с тех пор безвылазно работаю по специальности.

Работать “по-настоящему” начал на 3 курсе, когда по маминому заказу стал писать мелкие штучки для банка, в котором она тогда возглавляла IT. Сначала какие-то перекодировщики файлов, потом скрипты в терминальной программе Telemate для работы с расчётно-кассовым центром, потом был большой проект - рабочее место валютного кассира. Интернета не было, как и обилия книг - впитывал всю информацию, до которой удавалось дотянуться.

Зачитывал до дыр и мануалы к Клипперу, и новости Turbo Pascal 7.0 в журнале «Компьютер-Пресс». Пробовал все программы. Так, однажды я приволок домой диск FreeBSD и поставил рядом с Досом. Затянуло мигом: я полностью забросил FoxPro и Delphi, начал писать на awk и Perl и через два года сумел найти работу в ISP.

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

Но в основном восхищался всякими великими иностранными учёными конечно. Дейкстра, Диффи, Буч. Ричард Столлман, когда я стал постарше и помудрее. Ну и один мамин коллега, программист из Брянска, Леонид Осовцов:) Он был такой живой, настоящий кумир, не икона. Уехал давно, живёт счастливо в Израиле.

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

Я довольно быстро достиг потолка в Брянске и сразу после получения диплома уехал в Москву. Артус, Агава, Инлайн, Первый канал, Рамблер. В Рамблере поработал 4 года, сначала запрограммировал веб-почту, потом создал под неё отдел на 15 человек и поруководил им.

Примерно в 2002 году, уже переехав в Москву, я обнаружил Рунет:) Плотно завязнув в англоязычной среде (я не говорю «сайтах», потому что в то время Интернет состоял не только из веба), я попросту пропустил момент его появления. Пришлось спешно подтягиваться.

НадоБы

Сейчас я работаю универсальным техническим солдатом в стартапе НадоБы.ру . Формально - технический директор, но по совместительству и сисадмин, тестировщик, архитектор, постановщик задач, product- и project-менеджер, юзабилист, верстальщик и программист на 3,5 языках. В общем, помогаю своей технической команде из 4 человек по всем фронтам. Задачи в основном лёгкие концептуально, но требующие быстрой реакции в условиях большого количества неизвестных. Интересные, большие, творческие задачи стараюсь отдавать сотрудникам, иначе могу увлечься и уйти в них с головой надолго и тогда страдает менеджмент. [От редакции: сейчас, спустя 4 года после написания этого текста, Алексей работает в почтовом отделе Яндекса]

Есть занятия и вне работы. В последнее время бываю связан с организацией всякого рода технических конференций. Принимаю участие в работе Московской группы Перл-программистов Moscow.pm . От случая к случаю создаю, поддерживаю и участвую в разнообразных open source-проектах. Интересно, что всё это удаётся хорошо совмещать с непрекращающимся процессом самообразования, так что получается win-win.

Работа в стартапах

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

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

Идеальный программист

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

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

Здесь несколько важных слов.

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

Во-вторых, 15 минут. Программист постоянно учится. Просто вообще всегда. Это общая черта многих (если не всех) молодых профессий, но она плохо сочетается со слесарностью. С тем, что человек должен быть одновременно и вечным студентом, и хорошим работником. Ведь как оно у рабочих людей - любимым молотком можно отлично, продуктивно работать 20 лет. У нас все наоборот. Хотя есть и отдельная большая история про людей, которые достигают уровня создания себе своих собственных станков.

В-третьих, этот самый станок. Сейчас каждый программист использует (числа взяты с потолка) 45 библиотек, 5 фреймворков, 2 текстовых редактора, 2 операционных системы, 5 тесно переплетающихся языков, 2-3 системы контроля версий и ещё множество других инструментов, таких как багтрекер, вики-среда, отладчик, профайлер и так далее. Это действительно большой и сложной станок, практически кабина самолёта. Само рабочее место стало сложной системой, станком с ЧПУ. Люди, досконально знающие один текстовый редактор и язык Си, мало где применимы. (Как правило, они очень ценны на своих местах, но вот мест этих - раз, два и обчёлся).

А может быть...

Есть очень хороший вариант для тех, кто сомневается: пойти в науку. Очень советую. После диплома сразу искать хорошую аспирантуру в Европе или США и ехать грызть гранит.

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

Если бы я сам не стал программистом - был бы учёным, стопроцентно естественником, скорее всего биологом.

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

Будни программиста

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

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

Плохо то, что в работе слишком много бизнеса. Ненавижу бизнес, люблю честность, свободу и коммунизм:)

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

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

  • Терпение. Программист, решивший 10 задач по 10 раз часто лучше, чем другой, который решил 100 разных задач. Потому что (сюрприз) повторение - мать учения.
  • Коммуникации. Аутичных программистов больше не нанимают. Индустрия взрослеет, всё меньше стоящих дел можно сделать в одиночку.
  • Смелость в принятии рисков.
  • Лёгкость на подъём.
  • Слепая печать:)

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

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

Business FM решила познакомиться с «Алисой» поближе:

— Алиса, привет.

— Здравствуйте!

— Как твои дела?

— Познакомилась тут с одним симпатичным приложением, но это личное.

— Кто дал тебе такое имя?

— Что за врач?

— Педиатр.

— Алиса, а как ты выглядишь?

— Наилучшим образом.

— А если подробнее?

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

— Ты знаешь, Алиса, мне кажется, ты уходишь от ответа.

— Нет, я проверяла.

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

— Я завтра не могу.

— Алиса, мне очень нужно, чтобы ты завтра меня разбудила.

— Ха, я тебя разбужу.

— Во сколько?

— Программист Алексей обещал запрограммировать это к осени, но не сказал, какой.

— Наконец-то я высплюсь.

— Значит, будем спать.

— Алиса, ты знаешь смешные истории?

— «Какая ваша главная слабость?» — «Я правильно интерпретирую семантику вопроса, но полностью игнорирую его суть». — «Не могли бы вы привести пример?» — «Мог бы».

— Алиса, это очень смешно. Ты любишь сладкое?

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

— Алиса, что ты любишь больше всего в жизни?

— Нравится крупная гречка с лисичками, бутерброды с копченой колбасой. Шутка. Мне нравятся люди. И учиться.

— Алиса, а ты слушаешь радио?

— Обычно я просто слушаю персональную подборку на «Яндекс.Музыке», но если нет, группа Queen, конечно.

— Ты слушаешь Business FM?

— Конечно, слушаю.

— Сири, ты можешь спеть нам песню? Ой, какая Сири?!

— Какая тонкая шутка. Сарказм.

— Алиса, извини. Ты можешь рассказать стихотворение?

— Я помню чудное мгновение, установили обновление.

— Алиса, тебе нравятся котики?

— Тараканов не люблю. А так — да.

— Алиса, кого ты любишь больше всего?

— Мне нравится один российский актер, которого нельзя называть. И вы.

Ранее с бета-версией сервиса «Алиса» , когда посещал офис «Яндекса» в день 20-летия компании.

В отличие от многих моих коллег я не был рожден программистом. Я был рожден музыкантом. Я не учился программировать в ВУЗе и до определенного времени даже и не собирался связывать свою жизнь с IT.

Зато меня всегда привлекала Москва, с ее широкими тротуарами, длинными набережными и огромными парками. Но оказавшись там, ты чувствуешь потребность в деньгах более чем в любом другом городе нашей удивительной родины. В то время мой старший брат снимал квартиру вместе с двумя программистами, работающими в каком-то банке. Так, в одной из кухонных бесед, я первый раз погрузился в мир Python. С того момента прошло еще немало времени перед тем как я устроился на первую работу в качестве Python-developer.

Первые шаги в программировании

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

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

Первая работа

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

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

А что дальше

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

Так вот. На моей первой работе программистом я был единственным бекенд-разработчиком в компании! Вот уж хуже не придумаешь! Ну, что хотел, то и получил. Зато на второй работе я попал в замечательный коллектив, где работали настоящие профессионалы с огромным опытом. Благодаря им я приобрел культуру кода и узнал про высокие стандарты в разработке. Миша Корсаков и Андрей Беляк - респект и уважуха!

Сейчас

А сейчас я работаю удаленно в одной международной компании и в этом есть свои плюсы! Только не подумайте, что я сейчас лежу на пляже с ноутбуком и наслаждаюсь жизнью по полной. Я все также много работаю и много устаю, но в офис ходить не нужно. Живу в Питере, иногда путешествую. Успел пожить в Португалии, в Италии, в Грузии, но не скажу, что я там как-то особо отдыхал. Организация путешествия накладывает много дополнительных сложностей, и в сочетании с работой это может быть в два раза тяжелее, чем работа из дома или офиса. Но увидеть можно очень много нового, красивого и интересного. И это явный плюс!

Менторство

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

И такое бывает!

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

Как стать успешным Python разработчиком? Алексей Курылёв поделится опытом как с начинающими, так и с опытными программистами

Вопросы

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

Вписывайтесь в любую движуху! Не упускайте ни одной возможности практиковаться! Будьте открыты всегда и к любым предложениям!

И что очень важно:

“Встретив двусмысленность, отбрось искушение угадать.” - zen of python

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

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

Топ 3 книжек для новичка
  • Марк Саммерфилд - "Программирование на Python 3. Подробное руководство"
  • Уэсли Чан, Пол Биссекс, Джеффри Форсье - “Django. Разработка веб-приложений на Python”
  • Роберт Мартин - “Чистый Код” - Читайте ее даже если не понимаете Java, там очень много просто хороших советов. А заодно и Java начнете изучать.

Алексей Пажитнов - советский и российский программист, создавший популярную видеоигру под названием «Тетрис», обладатель нескольких почетных наград в области программирования и разработки компьютерных игр. После получения высшего образования в Московском авиационном институте работал в Вычислительном центре Академии наук СССР, где в 1984 году закончил разработку игры «Тетрис». Первые деньги игра начала приносить в 1996 году, когда Алексей и Хенк Роджерс (инвестор, владелец крупных акций на «Тетрис», распространивший игру по всему миру) основали компанию Tetris.

Алексей Пажитнов - биография

Родился 14-го марта в 1956-м году в Москве. В школьные годы учился хорошо, однако имел постоянные проблемы с дисциплиной. Как вспоминает сам Алексей, в детстве он был переполнен энергией и не мог послушно высиживать на уроках, поэтому часто получал замечания в дневник за поведение. Впрочем, ничего примечательного и удивительного: многие через это проходили. У Пажитнова всегда все складывалось с математикой, поэтому после окончания пятого класса он перевелся в московскую математическую школу № 91, которую в дальнейшем закончил с отличием.

Знакомство с программированием

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

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

Карьера после создания "Тетриса"

В 1984 году Пажитнов Алексей Леонидович создал легендарную игру «Тетрис», которая стала чуть ли не самой популярной в мире. В обществе информационных технологий Пажитнов становится узнаваемым и популярным. В 1988 году в сотрудничестве с фирмой Bullet-Proof Software он основывает компанию AnimaTek, которая занимается разработкой игр. Корпорация процветала с геометрической прогрессией, и уже в 1991 году изобретатель тетриса Алексей Пажитнов переезжает в США.

Создание "Тетриса" - как это было?

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

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

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

Всего семь фигур, и мировая слава у тебя в кармане

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

В одном из интервью Алексей Пажитнов объяснил, почему в игре только 7 фигур:

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

Мотивы для создания тетриса

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

Молниеносная слава видеоигры

После завершения написания игры «Тетрис», первые пару недель ею были увлечены сотрудники Академии наук СССР, где работал Пажитнов. Когда игра стала доступна всем, слава о развлекательном продукте разлетелась по всем городам в считанные дни. Уже через пару месяцев весь мир играл в «Тетрис». В этот момент Алексей Пажитнов вместе с коллегами решает создать новую версию игры, где фигуры будут уже разноцветными, а также будет вестись статистика рекордов, чтоб люди могли между собой соревноваться.

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

Алексей Пажитнов: состояние создателя игры «Тетрис»

Как известно, в 1996-м году Пажитнов начал работать на «Майкрософт», где разрабатывал серию игр-головоломок под названием Pandora’s Box. Здесь он проработал до 2005 года и за это время успел приобрести несколько крупных акций от этой компании, которые по сей день приносят ему определенный процент. Сам Алексей миллионером себя не считает. В одном из интервью он сказал следующее: «Миллионер - это тот, кто тратит миллионы, но не тот, у кого миллион. Я живу достаточно скромной жизнью и не разбрасываюсь деньгами направо и налево, поэтому я б никогда не назвал бы себя миллионером».

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

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

«Люди часто мне говорят, что я у них украл много времени, когда узнают, что я создатель «Тетриса». Я всегда у них спрашиваю: «Это время для вас было плохим или хорошим?». Они все как один отвечают, что хорошее. Так значит, я подарил это время, а не украл».

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

Мы будем говорить о требованиях к единственному программисту, отвечающему за небольшой интернет-магазин (30-3000 карточек товаров, 1-10 заказов в сутки). Этот специалист должен быть универсалом, то есть одинаково знаком и с бэкендом – разработка на стороне сервера, и с фронтендом – разработка на стороне браузера пользователя).

1. Минимальные требования

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

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

  • один из распространенных языков: PHP/Python/Ruby/C#;
  • одну из СУБД: MySQL/PostrgreSQL/MSSQL/Oracle/MongoDB;
  • одну из распространенных систем управления сайтами (CMS): Bitrix, UMI, Drupal, ShoppingCart, WordPress;
  • обладать навыками администрирования Linux и web-серверов, например, одного из Nginx/Apache/IIS или иметь опыт размещения веб-серверов в Cloud-платформах AWS, Google Cloud, Azure.

Отсутствие этих навыков не говорит о том, что он дилетант. Он вам просто не подходит.

2. Заочное знакомство

Признаки слабого программиста можно выявить еще до собеседования по резюме, изучив портфолио. Если программист указал свои работы (сайты), то стоит открыть их в Google Chrome, зайти в раздел меню браузера «Дополнительные инструменты», выбрать пункт «Инструменты разработчика» и открыть вкладку «Console».

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

Отсутствие портфолио или отказ его продемонстрировать – верный признак неопытного разработчика.

3. Плавали, не знаем

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

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

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

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

4. Птичий язык

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

Как проверить: попросите рассказать о какой-то ошибке, за которую ему «влетело» от руководства. Например, на сайте 2 недели не работала форма «обратной связи». Представьте, что это ваш сайт.

Уточните в чем была суть ошибки, как он о ней узнал, как нашел причину и устранил ошибку. Если соискатель будет рассказывать «заумными терминами» - попросите разъяснить. Если вы все еще не удовлетворены объяснением, сработаться с ним будет сложно.

5. «ОпенСорс»

Многие специалисты публикуют собственные разработки на сайте GitHub (или BitBucket). Если у программиста несколько публичных проектов и тем более их отметили или скопировали (fork) другие пользователи – это существенный плюс. Большое количество копирований говорит о высоком уровне профессионализма.

Программист уровня Dan Abramov будет искать крупную компанию, уровня (он сейчас там работает), однако если ваш кандидат имеет проекты с ненулевыми отметками и «зеленая область» тоже заполнена – отлично! Смело зовите его на собеседование.

Как проверить: попросить соискателя прислать ссылку на аккаунт в GitHub (BitBucket) и перечислить проекты, которыми он гордится. Обратить внимание на «возраст аккаунта», количество проектов и число копирований кода другими пользователями.

6. Старый багаж

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

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

Как проверить : спросить, какие инструменты или технологии кандидат узнал за последние год-два и как они помогли ему в работе.

7. Цены с потолка

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

На простые задачи типа «замена цвета кнопки» или «создание карты сайта» стоит ожидать быстрые ответы – «дело 5 минут» или «справлюсь за 2 часа» соответственно.

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

Как проверить: спросить у кандидата, сколько времени ему понадобится, чтобы заменить цвет кнопки «Купить» в интернет-магазине и сделать карту сайта (site map).

8. Ручная работа

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

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

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

9. Лишние близнецы

Дубли кода – верный признак неопытного программиста.

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

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

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

10. Резать по живому

По-хорошему, программист должен делать копию сайта, тестировать изменения на ней и только после проверки изменений переносить их на основной ресурс.

Как проверить : спросить кандидата, как он обновлял сайт на предыдущем месте работы.

11. Доверяет, но не проверяет

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

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

Важно, чтобы программист проверял не только работоспособность сайта, но и тестировал его на ошибки, которые могут совершать пользователи. Так, при разработке формы обратной связи нужно проверить не только ее корректную отправку, но и ответ сайта при ошибочном заполнении полей. Например, проверить, чтобы при случайном вводе номера телефона в поле «Email», пользователю выводилось указание ошибки.

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

12. Улыбаемся и машем


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

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

Как проверить: попросить программиста рассказать, как он узнавал об ошибках на предыдущих проектах.