Написание ПО для АСУТП как работа для студента младших курсов

30 Июл
2012

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

Сперва я хотел бы поделиться «опытом» и личными ощущениями от работы конкретно в этой компании, дабы никого не обидеть.

Собственно говоря, на саму эту вакансию я вышел через знакомых. Заинтересовался — компания уже определенное время существует и активно участвует в автоматизации предприятий добывающей сферы (нет, не той; рудодобыча, в основном).
Собеседование по всей строгости я бы завалил однозначно, но сказалась нехватка кадров у них и моё природное обаяние. Половина ответов «нет, не знаю», «что-то слышал», «впервые слышу». Странно, конечно, но меня взяли. Хорошо хоть, что учусь быстро.
Сперва занимался всякими мелочами, параллельно разбираясь с IDE и языками. Ну там модули проекта в правильном порядке пересобрать, что-то где-то разобрать и подкомментировать и тому подобное. Параллельно смотрел код, пытался что-то понять.
Через пару недель дали тестовое задание — написать ПО, реализующее работу клапана в одной из самых простых конфигураций ( 2 входа — «открыт»-«закрыт»; 2 выхода — «открыть»-«закрыть»). Уже тогда стали ясны определенные тонкости.
Еще через пару месяцев дали мелкий, но все-таки собственный проект. Который уже делался вдвоём — я (ПО ПЛК) и SCADA-программист.
За ним через месяц безделья последовал крайний на текущий момент проект, который уже вполне серьезен (3 SCADA-программиста и я). Почти на порядок возросло количество сигналов, по сравнению с предыдущим (уже около трёх сотен, если не больше). Сложность возросла тоже примерно на порядок.
Особой радости добавило то, что вот этот вот последний проект делался в сжатые сроки, в незнакомом IDE, на незнакомых контроллерах и во время сессии (последнее — чуть больше месяца из 3.5, которые длится проект).

Под бездельем подразумевается сравнительно бесцельное изучение кода коллег, написание VBA-скриптов для генерации документов по другим проектам и т.п.

За указанный выше срок были:
— В той или иной степени освоены три принципиально разных IDE
— Более-менее изучены 5 языков программирования, которые слава богам в этих IDE одинаковы (IL особо не трогал, каюсь)
— Как маленький бонус — определенное количество практики по VBA в пределах Word\Excel


Прочитали Вы историю или нет — далее я хотел бы отметить те плюсы\минусы\тонкости, которые я нашел наиболее существенными.

Плюсы.
1. Проекты реально интересные. Мучиться от бесполезности своего труда не приходилось.
2. Низкий порог вхождения.
3. Возможность пообщаться с реальным железом, заодно и развлечься с поиском максимально короткого алгоритма\представления данных (памяти-то иногда не хватает, как ни старайся).
4. Развитие общей предусмотрительности и возможностей по предвидению различных нештатных ситуаций не только на автоматизируемых объектах, но и в более повседневных моментах.
5. Достаточно гуманное вхождение в принципы коллективной разработки (правда, со своей спецификой)
6. В IDE встречаются очень и очень приятные функции с точки зрения удобства разработки.


Минусы.
1. Никаких ООП, никакого тебе неявного преобразования типов, никаких указателей и динамических массивов, не говоря уже о чем-то более сложном. С одной стороны — так понятнее код и нет связанных с этими элементами ошибок, с другой — иногда этого очень не хватает.
2. Сложность сильно варьируется в зависимости от проекта — сказать, что тебя ожидает, находясь в самом начале работы над проектом, можно только с достаточно большой погрешностью. И это без учета изменений, вносимых «сверху».
3. Сложность проекта сильно зависит от «железа» (и, как следствие, IDE) — в IDE от Siemens’a после IDE от Schneider’a работать совсем не радостно.
4. Субъективный. Обязательное комментирование кода и данных чуть ли не построчно.
5. Субъективный 2. Отвыкаешь от ООП и иже с ним. Жалею.


Тонкости.
1. Платят объективно мало. Черт побери, за работу над последним из проектов я получал 350$ в месяц. При зарплате в McDonald’s за половину ставки в 450$. Но здесь возможно еще и то, что начальство тоже люди, которые не на всё успевают реагировать, поэтому к минусам это не отношу; разберемся. Default city, да.
2. Ответственность. Чаще всего именно программистам приходится отвечать за косяки проектировщиков, которые допускают ошибки там, где их сложно допустить, находясь в здравом уме. Именование сигналов, допускающее двоякое толкование, относится сюда же.
3. Консервативность. Игроки на всём этом рынке давно известны и особо не меняются, как и подходы к разработке. С равной вероятностью относится как плюсам, так и к минусам.
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх