На написание поста сподвигло участившееся в последнее время число постов и вопросов о том как бы сменить профессию на что-то более высоко оплачиваемое и менее тяжелое. Конечно на IT.
Опишу тут что такое IT в его типичном, но одновременно специфическом проявлении - 1С Предприятие. Как в него войти и какие трудности на пути.
ЛирическоеОтступление
Программист 1С самая часто встречающаяся комбинация из Программист+ЧтоТо в России. В небольших городах это может быть вообще единственный вариант.
Наверняка кто-то возразит мол по удалёнке программистам доступен весь мир и на фоне всего мира 1С не стоит даже упоминания. И это правда. Но стажеров в удалёнку не берут. Это сеньору открыт весь мир при некоторых знаниях английского. Но до уровня сеньора придется расти здесь, в своей стране и возможно в своем городе. А расти без практического опыта нереально.
КонецЛирическогоОтступления;
Чем 1С отличается от почти всех остальных языков программирования и фреймворков разработки?
Построим некоторую пирамиду языков программирования.
Расти она будет от железа в сторону бизнеса. Почему так? Потому что весь программный код выполняется на компьютерном железе и без него не существует. Компютерное железо это основа нашей пирамиды.
В то же время весь программный код существует благодаря программистам, которые хотят не только писать код, но и кушать. Но код нельзя кушать. Поэтому программисты продают свой код тому, кто дает деньги на еду. В основном это бизнес. Иногда это государство, иногда частные пожертвования, но абсолютное большинство кода пишется для удовлетворения потребностей бизнеса. На вершине пирамиды бизнес.
Итак Пирамида. Начнем с подножья
1) Железяки компьютерные неодушевленные
2) Программирование с паяльником. Без языков, в двоичном коде. Программистами этих людей назвать сложно, скорее инженерами. Но от того как именно они сложат кристаллы процессора, как сведут контакты на платах зависит то как будет программироваться следующий уровень
3) Программирование на ассемблере. Тут тоже не признаваемые программистами люди. Они напишут драйвера. Они напишут софт для микропроцессора южного моста. Они измеряют информацию битами и байтами. На этом уровне паяльник уже забыт, но появились абстракции более высокие.
4) Программисты операционных систем. Эти люди еще помнят как устроено железо но и с промышленным программированием у них много общего. Они пишут на С++ и подобном. На ассемблер уже не опускаются, оперируют более высокими понятиями.
5) Промышленные программисты. Тут основное большинство обитает. Это phyton, java, js, dot.net итд итп. Поскольку их большинство они часто считают себя единственно настоящими программистами, а остальные недостойны высокого звания. Здесь процветает ООП, принципы SOLID, чистая архитектура и вот это вот всё. Здесь редко пишут цельные программы. Обычно полируют небольшие их куски. Например оптимизируют поисковый движок для сайтов. Получить требования от бизнеса тут сложно, нужен отдельный человек который переведет хотелки бизнеса в верхнеуровневую модель работы програмного обеспечения, его называют прОдакт и еще один, который переведет верхнеуровневые требования к ПО на уровень отдельных компонентов, составит ТЗ. Это тимлид или архитектор. Затем процесс разработки по компонентам, сведение в единый продукт, тестирование как единого продукта и выдача заказчику
6) Бизнес-ориентированное программирование, в том числе 1С . Как всегда при повышении уровня здесь что-то забывается, например ООП и паттерны проектирования, а вместо них вводятся новые абстракции более высокого уровня. Здесь придется программировать такими понятиями как "Отчет" , "Документ" , "БизнесПроцесс" , "Проводка" , "ПланСчетов" итд итп. Здесь мы программируем цельную систему, не отвлекаясь на её мелкие части, принимая как есть что у нас запросы передаются в СУБД, а интерфейс отрисовывается у пользователя. Так же как промышленные программисты не отдают отдельных команд диску на перемещение головок чтобы считать файл, а используют команды операционной системы. Так и программисты 1с понятия не имеют об объектах, классах, замыканиях, интерфейсах,синглтонах итд, хотя на самом деле их используют. Используют с кучей ограничений. Так же как программист на Java не может пошевелить отдельной головкой жесткого диска, так и программист 1С не может выйти за рамки своей платформы и например сделать кнопку на экране треугольной.
Здесь задачу получают напрямую от заказчика и сдают напрямую заказчику. Без ТЗ, без продАкта, без архетиктуры, без тестстирования. Хуяк-хуяк девелопмент это базовый подход в большинстве 1С проектов.
7) Бизнес . Это вообще не программисты. Это люди которые производят, торгуют, оказывают услуги. Которые кормят всю цепочку до них, а взамен получают программные продукты
Отсюда вывод. Программисты 1С легко общаются с бизнесом, так как говорят на похожем языке. Программисты 1С способны выдать решение нужное бизнесу намного быстрее других, так как собирают его из гораздо более крупных блоков, а зачастую имеют готовое решение от вендора.
Другой вывод - программисты 1С зачастую не имеют понятия о том как на самом деле работает их код и склонны собственную некомпетентность объяснять ограничениями платформы.
У программистов 1С кратчайший маршрут в душу бизнеса и широчайшие возможности в эту душу насрать.
Там где ребята на Java будут выбирать субд, писать микросервисы, утверждать стопятнадцатый вариант ТЗ , всё тестировать и выдадут готовый продукт идеально подходящий бизнесу.. Спустя год другой после того как бизнес уже умер или кардинально изменился. Там 1Сники значительно меньшими силами уже через неделю выдают каляку-маляку на основе типового решения которую уже можно использовать, хотя и с недоделками.
Если кто знаком с миром Warhammer, то большинство 1Сников это мехи орков. Как эта пуляла стреляет не знает и сам мех, зато собирается быстро и очень дёшево.
Еще один явный плюс 1С в том, что бывших бухгалтеров, экономистов и прочих хозяйственников сюда берут так же охотно как технарей после вузов. Потому что смежная отрасль. Нужно и бухучет знать и циклы с условиями. А значит шансы сюда войти есть не только у студентов профильноых вузов, выбирающего свою первую работу (тут таких какраз меньшинство) но и тертые жизнью выпускники аграрного колледжа тут встречаются повсеместно. И неплохо работают.
Кто-то плюсом 1С называет то что не надо знать английский. Не надо, но и в других языках большинство не знает английского. Чтобы читать техническую литературу достаточно настолько хренового английского что за границей лучше молчать чем говорить. На самом деле плюс 1Са не то что код написан по-русски, а то что код написан понятно. Даже не программист читает и понимает что тут написано.
"
Для каждого Товар из Накладная.Товары цикл
Если Товар.ВидТовара = Перечисление.ВидыТовара.Услуга тогда
Товар.Себестоимость = 0;
КонецЕсли;
КонецЦикла;
"
Да, на промышленном языке тоже можно написать такой понятный код. Но в среднем проекте понятного бизнес-пользователю кода совсем немного. Зато много непонятных ему церемоний обеспечивающих архетиктуру решения.
Код написанный в 1С он почти весь состоит из бизнес-логики, а архетиктурное спрятано под капотом платформы 1С. И недоступно.
Это всё было про то куда собираемся войти. Если желание входить в ИТ через это своеобразное направление не пропало, или даже наоборот появилось - читайте как войти и почему вас тут никто не ждет.
Войти в IT
"Есть два путя"
1) Путь программиста.
* Изучаем книгу Радченко, курсы Гилева по разработке, СпецКурс Чистова на ютубе. Это не реклама а де-факто стандартные для большинства вводные курсы. Курсы либо бесплатные либо дешевые(и всегда можно найти даром). Не думайте что на дорогих курсах расскажут что-то сверх базы или вдохнут в вас радость программирования.
* Пытаемся устроится стажером во франчайзи или крупную фирму. Ну хоть куда-нибудь.
* Пытаемся сдать экзамен 1С Специалист по платформе. Это сложный экзамен, его не сдали процентов 80 работающих программистов, но сама подготовка к нему закрепляет базовые вещи. Кроме того вопросы из экзамена любят на собеседованиях.
Как что в каком порядке учить подскажет гугл по вышеназванным именам и названиям.
Теперь бочка дегтя к ложке меда. После книг и курсов вы не junior , вы trainee - стажер. До джуна вам год, а лучше два практического опыта надо заиметь.
К сожалению стажеры никому нафиг не нужны. Во-первых ему деньги плати, место в офисе дай, комп дай итд. А пользы от стажера нет.
Во-вторых чтобы из стажера вышел толк нужно ему задачи давать и смотреть результаты, а это время отнятое от работы специалиста высокого уровня. Опять затраты.
В-третьих стажер это не 100% будущий программист. Некоторые не справляются даже при полной самоотдаче и бросают попытки. Я видел пример как из 14 одновременно начавших осталось ноль. Более позитивные примеры тоже видел.
В-четвёртых обучившись стажеры обычно меняют работодателя, унося с собой знания но не принося прибыли. Те кто осиливает переход из стажеров в джуниоры, это люди априори не глупые и они быстро понимают свою ценность на рынке труда, сваливая из обучившей их компании. Вы скажете стажер стал джуном, надо поднять ему оплату до рыночной, а лучше больше, тогда он не уйдет и будет приносить пользу, возможно вырастет в сеньора. Но тут целый ряд факторов препятствует такому повышению. Затраты на обучение были? Как то надо отбить? Профессиональный рост человека виден? Безусловно, но при этом его слабые стороны тоже хорошо видны. Его адекватная оценка ниже рыночной. А в резюме он напишет только хорошее и рынок его оценит выше. Ну и последнее - работа для свежеобученного джуна может быть не интересна, или, например, находится далеко от дома и он меняет работу даже с уменьшением ЗП, ведь теперь он востребован и уверен в будущем.
Итого: Устроится стажером куда-то это само по себе чудо. На стажировке вас скорее всего никто не будет учить, задачи по профилю себе придется добывать уговорами и молитвами, а непрофильных накидают по самое немогу, от написания текстов на сайт, до установки винды. Просто чтобы как то окупать вашу зарплату уже сейчас.
Стажеров нанимают не чтобы их учить, а чтобы они занимались какой-то пакостью которую не хотят работать программисты. Либо Стажера нанимают "в помощь" имеющемуся как правило в единственном числе программисту. Просто чтобы тот не свалил на другую работу, ведь он теперь руководитель и ощущает ответственность за подчиненного. И как редчашее исключение встречаются организации действительно решившие вложиться во внутренний курс обучения и заиметь таким образом дефицитных специалистов из постоянно доступной массы стажеров. Такие встречаются редко и живут так недолго. Считают деньги, понимают что не взлетело и дальше работают как все, конкурируя за немногих спецов деньгами, проектами итд.
2) Путь консультанта
Советую тем кто приходит из смежной области , уже знаком с работой в 1С как пользователь и умеет в разговоры. Либо тем кто с программированием ну вообще никак. Но легче и понятнее тут не будет. Консультанты не глупее программистов, это не для "гумманитариев" . Тут логику включать надо постоянно и голову греть не меньше.
Для начала придется изучить предметную область и то как она отражается в типовых программах 1С.
Флагман тут ERP , по нему много курсов у Гилева и УЦ 1С
Менее востребованы, но также нужны ЗУП, БП, УТ, Документооборот
Обходить стороной УНФ, конфигурации на обычных формах, всякие отраслевые и специфические конфигурации, кроме случаев когда вас конкретно зовут работать и дают денег. Тогда можно изучать, получать стаж, а немного въехав в тему перестать углубляться и перейти на изучение типового.
Дальнейший вход в ИТ почти как у стажера программиста, кроме того факта что начинается он почти всегда с линии консультаций. Вот вам телефон, вот сто входящих звонков. На том конце трубки будут как нормальные люди так и с памятью аквариумной рыбки. Будут неадекваты. Скорее всего будет дежурство по ночам типа день через три.
Ваша цель с линии консультаций уйти на проект внедрения нового софта, по возможности ERP, так что в свободное время учимся. Вообще 1Сники всегда учатся. Те кто просто работает лет через пять теряют в доходах, а через десять могут только пенсионерить на госслужбе за смешные гроши.
На внедрениях нового софта всегда интереснее и денежнее чем на поддержке. На внедрениях можно увидеть картину в целом, наточить навыки переговоров и дальше идти либо в пафосные консалт-фирмы типа E&Y , либо возглавлять команду внедрения, либо оседать у заказчика как начальник отдела того что вы там внедряли.
О себе: тимлид команды разработки 1С, есть ряд сертификатов. Начинал как консультант по учету зарплаты, работаю с 1с 16 лет. Не Москва. Отвечу на вопросы в комментариях.