"Компьютерные" профессии

Моя дочь, будучи еще дошкольником, вдруг начала задаваться вопросом «Кем я стану когда вырасту?». И вот тут я задумался о том, чего сейчас хотят дети… А ведь раньше, на этот вопрос почти каждый ребенок отвечал «я буду космонавтом!», ну в крайнем случае, «пожарным!». Сейчас же порасспросив родителей и детей, я понял, что самым частым ответом стало «я буду работать на компьютере» и даже моя дочь заявила: «Когда я вырасту, то буду тоже, как папа, писать на компьютере цветные буковки».

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

И так, какие же это профессии и что они из себя представляют.

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

Не так давно все эти обязанности мог выполнять один человек, но в связи с развитием информационных технологий админу стало трудно выполнять всю работу одному, поэтому появились различные категории администраторов, такие как: 

1. Администратор веб-сервера – занимается установкой программного обеспечения, обслуживанием и поддержание в рабочем состоянии веб-серверов. Для работы такому администратору потребуются знания Unix-систем (Linux и FreeBSD), умение настраивать веб-сервер Apache и почтовые сервера (Sendmail, Exim, Postfix), которые по всему миру используются более чем на 90 % web-серверов; дополнительно помогут знания веб-сервера IIS и ОС семейства Windows Server. Обязательно глубокое понимание стека протоколов TCP/IP и модели OSI.

2. Администратор почтовых серверов - занимается поддержкой и настройкой электронной почты.
Требуется знание Windows Server или же Linux/FreeBSD, в зависимости от бюджета организации и задач, которые должна решать почта. Microsoft Exchange Server, Sendmail, Exim, Postfix, дополнительные модули для проверки на спам и вирусы, для интеграции с базами данных LDAP, MySQL, PostgreSQL, Oracle, Active Directory

Требуется знание протоколов и технологий SMTP, SSL, POP3, IMAP, DNS, Microsoft AD, протоколов TCP/IP и клиентов электронной почты MS Outlook, The Bat!, Mozilla Thunderbird, KMail, Evolution.

3. Администратор баз данных – занимается обслуживанием, резервным копированием, ускорением работы баз данных.
Нужны глубокие знания СУБД (хотя бы одной из MySQL, PostgreSQL, MS SQL, Oracle, Informix, Firebird, IBM DB2), операционной системы, на которой работает база данных (Windows Server, *nix), знание особенностей реализации баз данных, а также знание языка SQL.

4. Администратор сети - занимается проектированием и обслуживанием сетей.
Необходимы глубокие познания в области сетевых протоколов (стек TCP/IP) и их реализации, маршрутизации, реализации VPN, системах биллинга, активного сетевого оборудования, физическом построении сетей (Ethernet, Token ring, FDDI, 802.11).

5. Системный администратор малой компании (от 5 до 50 рабочих мест) – как правило, в одиночку выполняет весь круг задач по обслуживанию небольшого парка компьютерной техники и обслуживанием сети. Выполняет все обязанности, связанные с компьютерами и коммуникациями, в том числе осуществляет техническую поддержку пользователей.
Требуется знание клиентских и серверных ОС от Microsoft, офисных и бизнес приложений - Microsoft Office, 1С, умение обращаться с техникой, прокладывать локальную сеть, начальные знания баз данных.

6. Системный архитектор (или системный инженер) - занимается построением корпоративной информационной инфраструктуры. Работает, как правило, в аутсорсинговой компании либо крупной компании, корпорации.
Нужны знания распространённых ОС (Windows NT, Linux, FreeBSD, Mac OS); службы каталогов Active Directory, Lotus Domino, LDAP; распространённые СУБД, почтовые, groupware, веб-серверы, CRM, ERP, CMS, системы документооборота - связью которых в контексте бизнес-процессов и занимается.

7. Администратор безопасности сети - занимается, соответственно, проблемами информационной безопасности, документированием политик безопасности, регламентов и положений об информационных ресурсах. Работает, как правило, в аутсорсинговой компании либо крупной компании, корпорации.
Требуются знания протоколов шифрования и аутентификации и их практическом применении (VPN, RADIUS, SSL, IPsec, RAS), планировании PKI, системах контроля доступа (брандмауэры, прокси-сервера, смарт-карты, CheckPoint, SecurID), инцидентном анализе, резервном копировании.

 

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

Программистов тоже можно разделить на несколько категорий:

1. Системный программист. Это тот, кто пишет операционные системы, драйверы для видеокарты и принтера, графические движки для компьютерных игр и другие подобные вещи.
Работа системного программиста требует знания математики, физики, базовых компьютерных алгоритмов, организации современных операционных систем, драйверов, построения моделей и так далее. 
Язык программирования системщиков в 90% случаев C и C + +, гораздо реже ассемблер.

2. Прикладные программисты, которых можно подразделить на несколько категорий:

- Программист игр (компьютерные игры, на приставках, флэш-игры).

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

Программисту игр необходимо знать о начинке игр, такой как движок, модель, карта уровней, скрипты объектов и ситуаций и т.п. и базовые знания объектно-ориентированного программирование. Язык программирования – ActionScript3 (флэш).

- Программист мобильных устройств.

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

Языки программирования – Java (для большинства сотовых телефонов) и C (для iPhone и iPad).

- Прикладной программист.

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

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

Работа программиста прикладного не требует знания математики и физики, т.к. все математические функции уже написаны системными программистами и заложены во множества библиотек. Зато требуется знание всех этих библиотек и платформы.

Основные языки программирования — C#, Delphi, Java.

- Веб-программист. Ориентирован на разработку веб-приложений (программ, обеспечивающих функционирование динамических сайтов Всемирной паутины).

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

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

Основные языки программирования — C#, ASP.NET, PHP, JavaScript.

- Программист 1С, Axapta, SAP.

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

Работа программиста 1С, программиста Axapta, программиста SAP заключается в программировании на встроенным языке гигантских ERP-систем. Сюда же можно отнести программистов баз данных (Oracle, SQL), которые обычно занимаются тем же.

В задачи программиста 1С входит оптимизация готовой системы и настройка 1С непосредственно под каждое предприятие.

Язык программирования – в каждой ERP-системе свой.

3. Тестировщики и техническая поддержка (helpdesk).

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

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

Потребуется понимание принципов построения программного обеспечения и администрирования ОС.

И, пожалуй, поговорим еще об одной профессии: Веб-дизайнер.

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

Лично я для себя выбрал профессию Программист 1С, а вот что посоветовать своему ребенку я так и не решил, но думаю, что в 6 лет это и не требуется :-)