Результаты во всех областях были бы невозможны без мощного развития информационных технологий. Целые армии инженеров-электронщиков и программистов день за днем работают над дальнейшим улучшением компьютеров, улучшая уже знакомые им функции, а также внедряя и распространяя совершенно новые.
Досягаемость компьютеров значительно расширяется. Это требует все больше и больше программной работы. В результате его стоимость достигает более 90% от общей стоимости компьютерной техники — и их доля продолжает расти, а профессия программиста сегодня стала одной из самых популярных.
Какие качества вам необходимы, чтобы стать признанным профессионалом в этой сфере? Чему будут учить в вузах? Что нужно освоить самостоятельно?
Часто говорят, что компьютерный энтузиаст, прочитав несколько книг по проблемам программирования, успешно пишет несколько программ на одном или двух языках. После этого он считает себя профессионалом в этой сфере и задается вопросом: чему еще он может его научить?
Где и чему учат
Остановимся на специальности «Прикладная математика», поскольку она дает общие теоретические основы программирования, широкую математическую основу для решения поставленных задач, а другие специальности еще формируют специалистов по их автоматизации. По окончании обучения студент получает квалификацию «инженер-математик». Студенты изучают практически все распространенные языки программирования (высокого и низкого уровня), обращают внимание на специальные языки (предназначенные для решения узкопрофильных задач), а также знакомятся с готовыми программными пакетами, которые в дальнейшем можно использовать самостоятельно разработки (системная графика, СУБД, САПР и т д и т д.). Изучение этих тем развивает системное мышление, позволяет оценить проблему в целом и выбрать лучший вариант ее решения, применив все полученные навыки.
Этапы работы
1. Любой процесс программирования начинается с постановки задачи.
хорошо, когда программист — сотрудник крупной компании или член группы разработчиков, таких же профессионалов, как он, а задачу ему дает коллега. Они будут говорить на одном языке и быстро поймут друг друга. Но если вам нужно общаться с клиентом в одиночку, то нужно готовиться к длительной работе. Очень часто заказчик не может четко объяснить, чего он хочет от новой программы, что в ней должно быть и как это должно выглядеть на экране и в печатном документе. И наоборот, очевидное для покупателя даже не приходит в голову программисту. Итак, на данном этапе последний должен выступать в какой-то мере в роли психолога, поскольку необходимо прояснить все непонятные вопросы, а потребитель, которому они уже понятны, просто не считает нужным подробно останавливаться на их — и это раздражает, когда непонятная формулировка уточняется снова и снова. Кроме того, если люди ошибаются, остальная работа будет потрачена зря. Этап завершается подготовкой технического задания, в котором очень подробно описывается вся последующая работа программиста.
На этом этапе программисту часто приходится быстро овладевать предметной областью, о которой он или она раньше только слышал. Сегодня нужно рисовать географические карты, завтра моделировать биологические процессы, послезавтра — автоматизировать учет и т.д. Да, выпускники профильных вузов чаще занимаются узкопрофильными задачами, которыми сейчас почти все имеет специализацию в области информационных систем и автоматизации в конкретной области. Но неизвестно, где ему придется работать дальше. Поэтому человек, готовящийся стать программистом, должен уметь быстро находить нужную информацию в книгах.
здесь важно, чтобы это не сработало, как в известном анекдоте:
2. Далее следует определить, какая техника понадобится для автоматизации поставленной задачи.
возможно, мощности имеющегося у заказчика оборудования недостаточно для нормальной работы программы. Поэтому необходимо дать рекомендации по покупке новых компьютеров с необходимыми характеристиками. Потому что, даже если вы закончили учебу давным-давно, вам нужно быть в курсе всего, что происходит в области информационных технологий, которая обновляется со скоростью, невиданной в других областях. Таким образом, на первый план выходит непрерывное самообразование.
3. Все вопросы прояснены – можно приступать, собственно, к написанию программы.
Этот процесс требует смирения и предельной точности. Компьютерные команды сформулированы абсолютно полно и четко. Машины могут делать только то, что им говорят, и поэтому отдаваемые им приказы не должны содержать ни малейшей двусмысленности. Поэтому этот этап начинается с разработки алгоритма, который определяет всю последовательность действий машины. При этом хорошо продумайте все возможные сценарии развития событий, опишите все возникающие ситуации: для этого заранее была тщательно изучена тематическая область. Чем больше алгоритм отслеживает стандартные и нестандартные ситуации, тем лучше программа будет работать в будущем и не выйдет из строя ни в одном «удобном» (непреднамеренном.
Помимо стандартных математических методов, чтобы рационально написать алгоритм, необходимо применить все свои навыки логического мышления, выработанные годами для решения математических задач. Почему все? Ведь вы не только сами решаете проблему, но и планируете такую последовательность команд, которая позволит компьютеру самостоятельно искать решение в каждом конкретном случае.
При этом программист определяется с языком программирования, если это еще не было сделано до него. Разные языки адаптированы для решения разных задач и имеют свои преимущества и недостатки. Получив представление о них в процессе обучения, специалист должен выбрать оптимальный вариант как для себя, так и для других (программа может быть изменена и доработана другим человеком) — а также, чтобы не забыть о возможности технологии.
4. После написания программы начинается, как ни странно, самый трудоемкий этап – ее отладка.
В 90% случаев программа не будет работать должным образом. Непременно произойдет что-то неожиданное — и чтобы понять, в чем проблема, вам придется десятки раз пройти все шаги шаг за шагом, задав различные начальные условия, в лучшем случае выявляя неожиданные ситуации, а в худшем — решение ошибки эта проблема. Человек, занимающийся такой работой, должен обладать завидной усидчивостью, терпением и спокойствием. Если у вас нет этих качеств, подумайте, стоит ли вам посвятить себя программированию. Ведь вам будет очень сложно довести дело до конца. Или вы остановитесь в своей профессиональной деятельности на мелких задачах, с которыми, конечно, тоже нужно справляться — однако они не вызовут интереса уму и не принесут большой материальной отдачи.
5. Пусть все шаги успешно сделаны – останется последний: объяснить заказчику, что написанная программа – как раз то, что тот хотел.
В лучшем случае, если вы разобрались с постановкой задачи и на всех этапах работы связались с клиентом (или с диспетчером задач), комментариев будет мало. Небольшие доработки — и программа готова.
В худшем случае… Придется набраться спокойствия и терпения и, набравшись горького опыта, начинать заново. При условии, что они хотят иметь с вами дело.
Итак, если вы решили, что программирование — дело вашей жизни, то МИРЭА, МГИЭМ и другие вузы ждут вас. Но не забывайте, что вы можете стать только хорошо оплачиваемым профессионалом и вам придется учиться всю оставшуюся жизнь (или, по крайней мере, до пенсии).