Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #71, ОКТЯБРЬ 2006 г.

special faq

 

Спецвыпуск: Хакер, номер #071, стр. 071-088-1


НА ВОПРОСЫ ОТВЕЧАЕТ ДРУГ И ЗАЩИТНИК МЫШЕЙ КРИС КАСПЕРСКИ АКА МЫЩЪХ

Q:

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

A:

Важен не сам язык, а мысли, которые этим языком выражают. Практически любую алгоритмическую задачу можно решить на любом языке (за какое время и с какой эффективностью — это уже другой вопрос), поэтому неважно, с какого языка начинать, - все равно за время его изучения он успеет устареть. И следует выбирать тот язык, для изучения которого есть хорошие учебники по программированию, а так же знакомые специалисты, способные проконсультировать и помочь, если вдруг что-то пойдет не так, ведь язык — это не только способ записи алгоритма, но еще и средство общения! В этом качестве языку Си нет равных, и de facto он стал международным стандартом типа английского. Знать его нужно не только затем, чтобы на нем программировать, но и чтобы понимать листинги, приведенные в книгах, посвященных сетевым протоколам или устройству осей. Visual Basic – de facto стандарт в области макроязыков на платформе Windows, и без его знания невозможно эффективно работать с Microsoft Visual Studio. Но Basic совершенно чужд миру UNIX, где ведущую роль играют Perl, AWK и другие скриптовые языки. Если человек может решить свою задачу на языке Х, переход на другой язык для него не будет проблемой.

Q:

Стоит ли хвататься за новые технологии типа .NET или посоветуешь держаться старых?

A:

Отечественная система образования до безобразия консервативна и крайне неохотно реагирует на новые технологические веяния и прорывы, поэтому в 99% случаев выпускник ВУЗа к реальной работе не готов и ему следует еще учиться и учиться. А все потому, что у нас традиционно учили фундаментальным основам, а вот американцы, напротив, делают упор на конкретное практическое применение. Девушки, окончившие 2-недельные курсы по Visual Basic'у, составляют определенную конкуренцию специалистам, знающим Си++, потому что они в курсе того, какие есть библиотеки и как ими пользоваться, но создать их самостоятельно не в состоянии. Все, что они могут — это сложить готовые компоненты воедино (а другого зачастую и не требуется). Алгоритмически-ориентированный программист готов запрограммировать что угодно, но... он совершенно не в курсе, какие существуют библиотеки, и не умеет с ними работать. Поэтому при решении типовых задач наиболее конкурентоспособным оказывается программист, идущий в ногу с прогрессом и осваивающий новые библиотеки и framewaork'и по мере их появления, а вот при решении нетипичных задач программисты, знающие фундаментальные основы, получают огромное преимущество. Некоторые ухитряются совмещать оба качества, но это удается лишь немногим.

Q:

Насколько важно знать ассемблер?

A:

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

Содержание  Вперед на стр. 071-088-2