Программирование: работа, увлечение, образ жизни

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

Дмитрий Леонидович ЧЕРНООКИЙ, ведущий инженер службы информационных технологий ЧУП "Запад-Транснефтепродукт".Насколько разнообразные точки зрения о мире программирования и людях, увлеченных таинственной сферой компьютерных программ соответствуют действительности, а также о многом другом мы решили поговорить со специалистом. Наш собеседник – Дмитрий Леонидович ЧЕРНООКИЙ, ведущий инженер службы информационных технологий ЧУП «Запад-Транснефтепродукт».

– Если идти с самого начала, как и когда началось ваше увлечение компьютером?

– Еще в школе, примерно в 8 или 9 классе. Тогда в новинку были и компьютеры, и программируемые калькуляторы. Вычислительная техника только входила в обиход. Интересно отметить, что в то время представление о компьютерах отличалось от того, которое существует сейчас. Тогда компьютеры не обладали высоким быстродействием и тем более мультимедийными возможностями. Они не могли выступать в роли домашнего центра развлечений, как в наше время. А первый компьютер ДВК (диалоговый вычислительный комплекс), за которым мне довелось поработать, даже не имел возможности отображать графику. Поэтому компьютер того времени представлялся машиной, способной решать разные математические и физические задачи, и совершенно не подходил на роль устройства для создания развлечений.

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

В моем случае это переросло в увлечение и стало моей профессией.

– На ваш взгляд, программистом может стать любой человек?

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

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

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

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

– Дмитрий Леонидович, насколько верно ироничное утверждение, что «программист два часа пишет программу, чтобы за час решить задачи, которые без программы он сделал бы за десять минут»?

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

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

– Для вас работа заканчивается по выходу из здания или продолжается дома?

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

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

– Извините, что задаю такой обывательский вопрос: за что программисты получают такие высокие зарплаты?

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

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

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

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

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

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

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

– Что необходимо программисту для комфортной работы?

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

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

– «Если бы учителем был я…», то с чего бы вы посоветовали начать детям, заинтересовавшимся программированием?

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

– В Мозырском клубе юных пожарных, где учат спортивному программированию, довелось услышать такое мнение одного из воспитанников: «Надо сразу настроиться на то, что в течение первых двух лет обучения у тебя не будет никаких побед и наград, только ежедневная многочасовая работа…»

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

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

– Программист и здоровье – насколько это совместимые вещи?

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

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

– Программисты за короткое время успели обзавестись приличным набором профессиональных шуток. У вас есть любимый анекдот?

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

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

– У нас всегда существует определенный стереотип на тему, как должен выглядеть человек той или иной профессии. Дмитрий Леонидович, вы, глядя на себя и на своих коллег со стороны, можете подтвердить или опровергнуть правильность стереотипного представления о программисте?

– То есть работает ли у нас небритый и неряшливо одетый IT-специалист, как принято изображать на карикатурах?

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

Дмитрий КУЛИК