Мой путь

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

Но в последних классах (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 разных задач. Потому что (сюрприз) повторение - мать учения.
  • Коммуникации. Аутичных программистов больше не нанимают. Индустрия взрослеет, всё меньше стоящих дел можно сделать в одиночку.
  • Смелость в принятии рисков.
  • Лёгкость на подъём.
  • Слепая печать:)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Интервью

Алексей Перевертайлов : Благо мы с тобой знакомы лично, сразу перейдём на "ты" и менее формальный формат беседы. Первый вопрос - когда ты уехал из России и каковы были мотивы такого, в общем-то серьёзного и у многих людей требующего долгих раздумий шага?


Андрей Шулинский : У моего отъезда довольно долгая история. Решение было принято после печально известного банковского кризиса 1998 года. По ряду причин иммиграционный процесс сильно затянулся, интервью я прошел в ноябре 2001 года, в декабре 2002-го получил визу. Срок её действия истекал в феврале следующего года, так что сразу же поехал в Канаду на пару недель, оформил там необходимые документы и вернулся в Москву. Окончательно же перебрался на новую родину в октябре 2003 года.
Из-за чего я сменил среду обитания? Наверное, ничего нового не скажу. Надеялся на лучшие профессиональные перспективы. Всегда сильно не любил многие особенности российской жизни: бытовое хамство, грязь, нестабильность. Упомянутый кризис был для меня очень сильным ударом, прекрасные иллюзии разбились вдребезги... Я также очень люблю путешествовать, что гораздо проще делать с канадским паспортом.


Алексей Перевертайлов : Сразу ли тебе удалось найти работу? Какие вообще были предложения, которые ты рассматривал, и какие требования предъявлялись к претендентам?

Андрей Шулинский : Первый контракт получил уже в ноябре 2003-го. Помог мой друг. Проект был небольшим, но достаточно интересным и очень помог как психологически, так и профессионально. "Размял мускулы" перед более серьезной работой, которая нашла меня в конце января 2004 года.
Требования, за исключением пресловутого североамериканского опыта, вполне обычные - в двух словах, "знание предмета". :-) К сожалению, многие компании и рекрутеры действительно не любят работать с недавно прибывшими, другие же, напротив, пользуются готовностью новых эмигрантов согласиться на любые условия. Не скажу, что это повсеместная практика, но встречается не так уж и редко.
Меня чаша сия минула, хотя уже был готов идти сканировать документы. Вообще, я всегда себя готовил к тому, что будет непросто и, возможно, придется заниматься не самым любимым делом. Подавал резюме на все позиции, которым оно хоть сколько-то соответствовало.


Алексей Перевертайлов : Программистом какой сферы ты являешься? Какие дипломы и сертификаты у тебя есть?

Андрей Шулинский : Я - типичный прикладной программист/аналитик/архитектор широкого профиля. Закончил кафедру системного программирования ВМК МГУ, но в жизни не написал ни одной строки "системного" кода. :-) Раньше писал на С++, несколько лет назад перешел на Java. Долго работал в банковской сфере, потом была пара телекоммуникационных проектов. В Канаде сначала делал систему хранения и обработки документов для маркетинговой компании со звучным именем Арнольд . Сейчас работаю в фирме "Новатор" , занимаюсь созданием Java-версии "движка" для сайтов, занимающихся онлайновыми розничными продажами.
Диплом у меня один. Получен в 1996 году на факультете вычислительной математики и кибернетики Московского государственного университета. Перед отъездом сдал экзамен Sun Certified Java Programmer, 1.4. Планировал получить остальные сертификаты этой линии, но работаю много, и найти на это время никак не удается.



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

Андрей Шулинский : В первую очередь, .NET и J2EE. А что ты думал услышать? ;-) Эти 2 платформы закрывают собой небо... Впрочем, судя по объявлениям на посвященным поиску работы сайтам, до сих пор есть определенный спрос на знатоков С++, Cobol, Perl. Бывают нужны - и даже очень - узкие специалисты, знающие какой-нибудь "навороченный" SAP. Но, разумеется, основную массу программеров и прочих сениор девелоперов составляют "джависты" и "дотнетчики". :-)


Алексей Перевертайлов : По своему опыту, расскажи - есть конкуренция между программистами внутри компании? Есть ли какие-то жёсткие правила? За что могут уволить? Есть ли карьерный рост? Сверхурочная работа бывает и если да - как оплачивается? Ты работал программистом в России, можешь сравнивать, поэтому такой вопрос: какие ты заметил отличия в профессиональных требованиях и организации рабочего процесса дома и за границей? Тяжело ли тебе было находить общий язык с руководителем проекта?


Андрей Шулинский : В тех компаниях, где мне довелось поработать, явной конкуренции aka "соцсоревнование" не было. :-) Но при этом действует простой закон: если хорошо работаешь - заметят и оценят. По крайней мере, со мной было именно так. И зарплату повышали, и более интересную работу доверяли.
Уволить, конечно, могут. В основном, это бывает связано с проблемами компании (сокращение штатов) или с явным несоответствием возможностей человека занимаемой должности. Столь не любимый многими испытательный срок бывает полезен. Так что не стоит слишком сильно преувеличивать свои возможности на интервью. Бывают также случаи увольнения из-за противозаконной деятельности сотрудника.
К вопросу о жестких правилах - не стоит хранить на жестком диске рабочего компьютера гигабайты детского порно - могут наказать. Все контракты содержат более-менее стандартные пункты о неразглашении информации, интеллектуальных правах компании на ваш код (сомнительный актив, ИМХО:-)). Часто запрещают переходить в компании, работающие в той же отрасли, подрабатывать на стороне. Степень подобной паранойи зависит от многих факторов. Крупные банки и прочие "крутые" компании заставляют подписывать списки на 8 листов. Но ведь то же самое есть и в России, просто здесь, думаю, несколько строже следят за выполнением этих условий.
Профессиональные требования в Торонто и Москве одинаковые. Подозреваю, что они совпадают с требованиями лондонских и токийских фирм и близки к парижским запросам. Разница - во Франции может понадобиться французский язык. Именно может, а не должен - я общался с рекрутерами, набиравшими людей для работы в компании, находящейся в Лионе. Я честно признался, что не владею французским языком даже со словарем. "А, там весь документооборот на английском", - было мне ответом. :-)
Организация рабочего процесса очень сильно зависит от людей, ведущих проект. Если они поставили дело хорошо с самого начала и не позволяют проекту пойти вразнос даже при авралах, то работа идет достаточно гладко. Иначе - привычный бардак. Уважаемые читатели, вероятно, уже догадались, что бывает чаще. :-)
С руководителями проектов пока ни разу не было проблем. Я всегда легко находил общий язык с людьми - как в России, так и в Канаде. Вы наверняка обратили внимание, как часто я повторяю слова "так же", "одинаково", "нет разницы". Действительно, я обнаружил, что россияне и канадцы не так сильно отличаются друг от друга, как принято считать. Безусловно, трудности перевода существуют. Но, как и в одном замечательном фильме, они большей частью связаны с индивидуальными особенностями людей, а не с "цивилизационными" различиями. Вот такое у меня сложилось "ИМХО". :-)


Алексей Перевертайлов : Программисты в Канаде - высокооплачиваемая профессия по отношению к другим? Если сравнить это соотношение с Россией - где лучше работать программистом (по финансовой выгоде)?

Андрей Шулинский : Да, до сих пор зарплаты выше средних. Конкуренция стала больше, но платят по-прежнему неплохо. Впрочем, это лишь субъективное мнение, а я в Канаде меньше двух лет. :-)


Алексей Перевертайлов : Как думаешь, где легче повысить свой профессиональный уровень - дома или за рубежом? Это вообще зависит как-то от страны (или же скорее зависит от конкретного человека)?

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


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

Андрей Шулинский : Скажем так - большая часть программ или куплена, или получена бесплатно. :-) Иногда народ ставит что-то добытое нелегально, но это делается именно для ознакомления - если недоступна пробная версия. Компании же либо запрещают использовать пиратское ПО вообще, либо заставляют подписать документ, по которому ты сам несешь ответственность за содержимое жесткого диска.
Используются же самые разные приложения. IDE: Eclipse, IDEA, NetBeans. Средства работы с базами данных: DbVisualizer, Aqua Data Studio. Код и документы хранятся в CVS. Из покупного имел дело с WebSphere. Знакомые все лица, не так ли? :-) И, конечно, .NET - там есть решения на все случаи жизни.


Алексей Перевертайлов : Можешь припомнить какие-нибудь смешные или курьёзные случаи на работе?

Андрей Шулинский : Пожалуйста. Только что начальник спрашивает одного из коллег, давно ли тот обновлял код. "Э-э-э.... дня три назад..." - грозный взгляд - "м-м-м... может быть два" - грозный взгляд - тишина - я подсказываю: "один, иначе сделка сорвется" - обстановка разряжается. :-)


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

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


Алексей Перевертайлов : Каково твоё отношение к сообществу Open Source?

Андрей Шулинский : Разумеется, положительное. Считаю труд этого сообщества огромным благом для прогресса вообще, и основной причиной успеха Java-технологий в частности - что тоже явно идет на пользу индустрии. Вряд ли иначе можно было бы успешно конкурировать с известным монстром. :-) Безусловно, в использовании Open Source продуктов есть определенный риск. В то же время многие такие решения имеют прекрасную репутацию, находятся на рынке много лет - и вам совершенно не обязательно досконально знать их "внутренности". Общество поможет решить практически любую проблему, что делает далеко не всякая коммерческая служба поддержки.


Алексей Перевертайлов : Как ты относишься к патентному праву в области программного обеспечения? Душит ли оно прогресс? Какие ты видишь оптимальные механизмы защиты инноваций в сфере программного обеспечения?

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


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

Андрей Шулинский : Тестирование, только тестирование - и еще раз тестирование! Считаю модульное тестирование ("unit testing") ключевым инструментом обеспечения безопасности кода. Как правило, все занимающиеся разработкой ПО компании пытаются создать и поддерживать в актуальном состоянии набор тестов. К сожалению, это редко удается - в основном, по причине жестких сроков сдачи проектов. А ведь долгосрочный эффект от грамотного тестирования трудно переоценить. В результате и к определенной дате из-под рук ваятелей выходит отнюдь не Галатея, и доводка приложения до сколько-нибудь стабильного состояния затягивается надолго, вызывая стресс у всей команды.
Также очень важны дисциплина кодирования и построение хорошей архитектуры. Лично я многое почерпнул из книг Мартина Фаулера (Martin Fowler) и Рода Джонсона (Rod Johnson).


Алексей Перевертайлов : Ну и напоследок такой вопрос - если была бы гипотетическая возможность начать всё с начала - ты всё равно бы стал программистом?

Андрей Шулинский : Да. Именно специальность помогла мне практически безболезненно переехать в другую страну, преодолеть обычные эмигрантские психологические и материальные проблемы. Моя квалификация и профессионализм востребованы, к моему мнению прислушиваются коллеги, я здесь свой, хоть пока знаю английский язык хуже Java. :-) Кроме того, я очень люблю свою работу. Все, кто занимался программированием, наверняка помнят моменты, когда она - программа - начинает работать так, как ты задумал. Я до сих пор в такие мгновения по-настоящему счастлив.
И еще. Я очень благодарен своим родителям за огромную помощь в выборе профессионального пути и становлении на нем. Не каждому удается найти _свое_ дело. Без их участия вряд ли это получилось бы и у меня.
P.S. Конечно, помогло и то, что я такой умный и красивый. :-)


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

Андрей Шулинский : Спасибо, удачи тебе лично и Ф-Центру в целом. :-)

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

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

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

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

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

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

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

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

А что дальше

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

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

Сейчас

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

Менторство

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

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

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

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

Вопросы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

— Что за врач?

— Педиатр.

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

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

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

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

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

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

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

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

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

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

— Во сколько?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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