Какой язык учить 1с нику
Моя история начинается с того, что на 3 курсе обучения на геолога-бакалавра я увлекся программированием.
Мне стало ясно, что я нашел дело своей жизни. После 4 курса, как только диплом был на руках, я тут же подал его в другой институт на программиста-магистра. Поступил и теперь учусь на первом курсе.
Здесь я немного разочаровался в преподавании, часов мало и учат очень поверхностно. Сам в свободное время изучаю Python. Еще я хотел бы параллельно работать по профессии, чтобы набить руку и получить опыт.
Но, к сожалению, у нас в Казани я пока не могу найти работу программистом с моим уровнем знаний. Только стажером-1С. Хотел бы узнать ваше мнение, господа, что для меня будет полезней?
1) Работать программистом-1С, хотя в будущем я хочу быть питонистом?
2) Или же не работать и посвящать свободное время изучению питона? Но без опыта же никто не хочет брать на работу!
Замечательный по уровню провокативности вопрос для 1С-холиваров :)
Экзистенциальный кризис автора понятен, но его не решить вопросами в интернете.
Тут у меня не будет "серебренной пули", а просто немного здравого смысла.
Мне даже браузер подчеркивает слово "питонистом" - видимо хочет заменить его на более значимое "пианистом". Быть питонистом - это ни о чем! Это отсутствие профессии и борьба с индусами за дешевые заказы на апворке по решению домашек для школяров-недоучек. На самом деле люди стремятся стать научными сотрудниками, которые используют Python в научных расчетах. А еще люди становятся крутыми админами, которые пишут обслуживающие скрипты на Python или правят результаты работы криворуких контрибуторов ихнего ПО. Еще люди могут становится веб-разработчиками и пилить проекты на Django. Куда мысль веду понятно?
2) Или же не работать и посвящать свободное время изучению питона? Но без опыта же никто не хочет брать на работу!
А с опытом эникейного мальчика-на-побегушках возьмут?
Не знаю какие у автора увлечения, но если экономика и теория управления предприятием не входит в их число, то заниматься 1С будет крайне скучно! А вот если вам нравится генетика и биоинформатика в целом, то могу порекомендовать обратить внимание на проект Rosalind, где даются базовые знания по Python и далее с его помощью решаются довольно увлекательные задачи. Я на этом проекте немного прокачался (после своего решения объязательно в обсуждении задач смотреть опыт других участников) и далее с легкостью писал свои скрипты под Ubuntu.
1с - отдельная сфера, не связанная с другими областями программирования.
Лично я (мое сугубо субъективное мнение) 1с'ников вообще за программистов не считаю.
Если хотите программировать, учите питон. Недостаток опыта можно клмпенсировать собственными проектами. Начните с самых простых. Поделитесь ими на github. В it компаниях ценятся кандидаты, у которых есть собственный репозиторий на github. Да, вам придется изучить систему контроля версий git. Очень полезный инструмент в разработке. Освоить можно за пару-тройку дней.
Есть на ютубе полезный канал для новичков, называется SHIFU.
Посвящен развитию программиста как специалиста.
Выпал мне в рекомендациях этот shifu. честно, канал ни-о-чем. Лично я бы посоветовал новичкам вообще не тратить время на просмотр этого контента. Автор, отвечая на вопросы, просто жуёт воду, да ещё и нередко со своей «однобокой» колокольни.
Константин Нагибович, Ну для меня это IT-специалист, занимающийся автоматизацией бухгалтерии.
Ну или Продвинутый бухгалтер, который умеет писать макросы
dableproger, если смотреть с этой точки зрения смотреть, то питонисты - это циркачи, которые работают со змеями. Точно, циркачи из летающего цирка Монти Пайтона - инфа из Википедии. Верняк!
То о чем вы говорите - это 1С Бухгалтерия 6 из 90-х. И тогда "программистами 1С" действительно были продвинутые бухгалтера, которые умели писать макросы. Но уже в 90-х появились более полноценные 7.5/7.7, а в нулевых началась линейка платформы 8.х
Если не хотите смешить людей, то пора попрощаться с ракушкой и выйти в реальный мир. Не знаю, посмотрите что ли ролики на Ютубе как там в мире 1С сейчас все устроено.
Любой опыт всегда пригодится.
И чем он ближе к желаемому - тем больше и пригодится, априори.
------
1С - это очень и очень разная квалификация.
"Программистами 1С" называют и реальных программистов,
и мальчиков-на-побегушках-настрой-принтер-установи-картридж.
Ну исторически так сложилось.
Если вы реально будете программировать - а программирование там вполне себе серьезное: есть где развернуться и с оптимизацией запросов к базам данных и пр.
Те кто пишут иное:
Идиоты или просто не в теме
Ну например, они встречались только с одним аспектом по обслуживанию 1С, не относящимся к программированию - с ребятами которые бегают обновляют штатные конфигурации, а не занимаются программированием.
Никаких таких сверхумных экономических или бухгалатерских знаний не требуется. Весь учет построен на здравом смысле. Было 3 яблока, купили 2 яблока, продали 4 яблока, осталось 1 яблоко.
Спец. термины типа дебет, кредит, сальдо, проводка - программисту 1С нужны даже не каждый месяц, не то что каждый день. Да и учатся они за 15 минут. Бояться этого не стоит.
Отлично развивает навыки общения с заказчиком, постановку задачи.
Отлично развивает навыки оптимизации запросов, работы с типовыми алгоритмами.
Принципиальное отличие в 1С следующее:
Все эти так называемые "настоящие программисты" вместо того, чтобы решать конкретную прикладную проблему - тратят свое время в том числе и на общеупотребимую обвязку: логи, БД, GUI. В 1С это все уже реализовано и жестко зашито. Тебе не нужно тратить время на это.
Ты будешь тратить время на решение программным путем конкретной проблемы клиента.
Очень способствует развитию навыков системного анализа.
Народ. Вот занимаясь 1с, какой язык программирования можно дополнительно выучить чтобы и к 1с польза была, ну там dll всякие и т.п., и при случае соскочить с 1с можно было. 1с ограничена в масштабах страны и бывших стран союза. А хочется программировать на мировом уровне. Ну востребованность на рынке вакансий тоже важна.
1с нику сначала нужно научиться пользоваться поисковыми сервисами интернет, чтобы узнать, на этом форуме подобные темы обсуждаются по 5 раз в год. за 15 лет накопились десятки. и десятки+1 ничего нового не откроет. даже с учетом стремительного развития ит.
(0) Устройся в компанию 1С, избавь их там от копи-пасты:
(0)Java самый полезный язык программирования сейчас для программиста 1с. Потому что это для него страховка и гарант не отставать от мировых технологий.
(16)+ Это примерно как Java и Kotlin.
Да Kotlin сильно лучше но хз когда еще на него окончательно перейдут.
(20) В эпоху перемен бесполезно учиться в инженерном ВУЗе.
Точнее чтобы работать в быстро пока еще развивающейся и меняющейся ИТ отрасли.
(23) есть мнение, что 1с переползает на нативные внешние компоненты, и классическим ВК не так долго жить осталось
(22) Если человек не страдал херней 10 лет в школе то "умения учиться самому" у него уже есть.
Не вижу смысла тратить 5 и более лет на то же самое и кучу всякой хрени ненужной фактически.
(28) ВУЗ хотя бы основы заложит какие-то, то уже такие "программисты" появляются, что ни Булеву алгебру не знают, ни конструкции алгоритмов не понимают (циклы, условия).
Я потыкал java, прочитал книгу Шилдта Основы Джава там 600 или 800 листов. Я подумал твою ж мать, и это только основы?! А сколько надо будет прочитать и узнать, чтобы начать на нем зарабатывать, года 2, а чтобы хорошо зарабатывать от 5-10 лет. Это если ты будешь заниматься только джавой. А тебе ведь еще и одинэсить надо? В случае с Си++ умножай этот срок еще на 2. Сишники они там все гики и задроты. Короче самый короткий путь в программирование на ином это питон. Одинэсник на нем программировать начинает уже через 30 минут, как он его увидел. У него большая инфраструктура и сообщество. Подходит вообще для всего, для веба, бигдат, для нейросетей и вообще куда не ткни везде питон.
(30) +1
И вообще не понимают что такое граф, дерево, что такое класс и объект и т.п.
Дадут хотя бы базовую терминологию и объяснят что какой термин обозначает.
(37) есть целая секта ненавистников ООП, какой уж там класс и объект. и все ВУЗ заканчивали
(35) мне ява очень хорошо зашла, после. рукалицо. vb6!
(33) Зато учился в нормальном лицее в котором и освоил перечисленное в (30)
Все прочее для работы освоил самостоятельно.
(39) а чего тебя в вижуал бейсик потянуло? Кстати, а чем он так плох? Есть мнение, что 1С это переведенный вижуал бейсик.
Джава хороший язык, просто учить долго. Конечно, если бы вернуть лет 20 назад, я бы ушел на джаву и остался бы на ней навсегда.
(54) А нафиг она нужна? Этот еще одна войнушка ит компаний по переделу каких нибудь рынков. Какой смысл в ней участвовать рядовому программисту? Пусть майкрософт бабло оплачивают, за то что бы ее учили, тогда смысл есть. Кроме того у микрософта есть excel и access с которыми вижуал бейсик на прямую ассоциируются и я даже в начале 2000х видел учетные системы на их основе. И где теперь эти системы?
(21) Что-то я не наблюдаю значительных изменений в ИТ. Количественных - ну да, есть. А принципиально новых технологий - нет.
Соответственно, у меня не возникает вопроса "какой бы язык освоить". Мне похер на чём писать. Будет надо - освою.
(11) угу. Только вот под java столько всевозможных технологий и фреймворков, что там чуть ли не на каждом новом проекте будешь переучиваться на новый стек технологий. Слышал, крупные интеграторы типа Epam так и работают - в начале каждого нового проекта натаскивают джавистов на новые технологии. Так что толку от этих "современных" технологий может быть не много, сегодня изучишь, попользуешь, а завтра она тебе больше не пригодится.
(60) как-минимум в наличии готовых фреймворков. Под java уже целую вселенную написали, под котлин же очень мало готового
(57)Ну я бы и не советовал изучать все фремворки. Но вот изучить сам язык программирования Java, который достаточно редко меняется. изучить основные патерны проектирования. изучить инструменты, с которыми работает Java и какой-нибудь поплуряный фреймворк поглядывать типа Spring. Главное ведь это опыт участия в живых проектах, а такого и в 1с предостаточно.
ну сделаешь один проект на Java в команде и считай работу найдешь.
(65) много чего нет, но написано over дохрена всего. Java 20 лет была на волне энтерпрайза. Практически любой сервисный механизм написан на java во множестве вариаций. Нет только конкретных bussines-rules, но их и не может быть, ибо в каждом монастыре свой устав
(68) Павел когда будет ветка, "Как просрать кредитных 100 000 на курс джава дивилопера с трудоустройством и так никуда и не устроится"?
Хороший одинэсник может писать на чем угодно. Куда есть возможность перейти без существенного падения уровня достатка - то и учить
(75) Не не может, мой программист недавно рыдал когда переписывал код, который я написал на java 6 лет назад когда бросил 1с. А я туда даже боялся лезть ))
(77) Все верно, чем лучше 1Сник, тем хуже он будет писать на нормальных языках. 1Сные привычки устойчивы, пару лет придется их изживать.
(75) Писать на чем угодно может не только хороший одинэсник, но и плохой одинэсник. Потому, что одинэсник такая скотина, которая сама во всем разберется без участия тренеров, коучей, преподавателей. Научится программировать легко, трудно научится программировать хорошо. А вот с этим как раз проблема, потому что одинэсная платформа решает 100500 задач за одинэсника и одинэсник занят решением только учетных задач. В других языках, по другому, поэтому одинэсник из одинэса пойдет только в охранники. Если конечно, не будет изучать другие технологии паралельно, вместо того чтобы в интернете зависать.
(0) чтобы начать мыслить более масштабно с минимальными затратами, можно начать паралелльно решать задачки на питоне
Так это же хорошо. Одинэсник средней руки это программист и бизнес-аналитик в одном флаконе. Для мелких и средних организаций, в которых 1с как рыба в воде, самое то. Ты просто не видел, какие ленивые эти тру-программисты, ничего не хотят знать кроме своего тру-программирования
Я бы, если бы хотел что-нит кроме 1С поучить/попрограммировать, наверное надо было бы взяться бы за что-нибудь бы типа непроцедурного.
(83) 1С программист + недобухгалтер + бизнес аналитик = 0.х.й десятых в других языках программирования. На нас просто всю дорогу бизнес катается и бухгалтера. А по факту этот опыт бизнес анализа + учета, для программиста просто потеря времени.
(88) Как ты на фиксе цены поднимешь? Ну и как то так исторически сложилось, что 1С это нищебродская система, где 1С специалист - это пахарь, жнец, на дуде игрец. Хотя последнее время лично я таки вижу тенденцию к разделению на руководителя, архитектора, поддержку-консультанта, аналитика, программиста. Но постоянно вижу и другое, где ищут типа РП, но по факту кодер, аналитик, надсмотрщик над другими, ну и так далее. Даже на мисте такая вакуха проскакивала. Но я про другое. Платформа решает за одинэсника кучу прикладных задач, которые нужно уметь решать в других языках/платформах. И одинэсник их решать не умеет, поэтому опыт одинэсничания в других языках и тем более других странах не востребован. И одинэсник вне среды 1С, может рассчитывать только на должность охранника, ну или как максимум джуна.
(87) почему потеря? Раз деньги платят за работу и за эти деньги работают - значит, в общем-то все честно.
Ну да, гипотетически можно зарабатывать больше. Но статистически чаще бывает, что зарабатывают гораздо меньше на более тяжелой работе, а бывает, что и вовсе сидят без работы. Так что все относительно. Рабочих мест в гугле точно на всех не хватит %))
(95) разговор идет в контексте других языков программирования. Опыт общения с бухами, навык поиска глюков в 1С, сидения в переговорках на прямую никак не поможет в других языках программирования. Может быть как то косвенно, но напрямую никак.
(0) Наверное так, раз тебе нужна востребованность в мире: 4/5/6/и любая фигня касательно веба (даже если это CCS - ка бэкграунд к языку может стать плюсом)
Попробуем через голосование определить мнение нашего сообщества выраженную в процентном соотношении.Какой второй язык программирования или какая технология является для 1С программиста наиболее полезными для дальнейшего развития и профита в целом.
>UML, IDEF, ARIS и т.п.
речь про ЯП. причем тут нотации для моделирования?
Я всё таки за Битрикс, пока.Учитывая как мои знакомые сейчас продают проект за проектом в целом, даже обходя команды программистов,которые профессионально используют RubyOnRails ,я считаю это всё таки круто.
1. 1с-битрикс (похапе) - одобряю
2. Бухучет не язык программирования. А предметную область знать обязательно.
1. Си шарп - одобряю
3. Ява - нафига
4. си, си++ - ты что, красноглазик?
5. Мобайл дев на 1С - надо
6. Яваскрипт - надо
7. Делфи - забудь как страшный сон
(8) с этим и залететь можно
нарисуй мне пример из uml - диаграмму последовательности или активности в рамках любого процесса в 1с
(8) Этим не кого не удивишь
мой выбор Java если пойдет то энтнрпрайз если нет в мобильные разработчики пойду.
>А предметную область знать обязательно.
1с-ники лелеют мысль что они понимают в работе предприятии больше технологов. или владельца фсфр выше базового
А если изучать Java то 1Сник деклассируется и удаляется из бурлящего котла жизни 1С в поисках абстракций.
(4) ты сам придумал про язык программирования :).
1.В заголовке темы такой детали нет.
2. в пункте 8 вообще стоит БУХУЧЕТ
3. остальное тут в вперемешку как среды разработки и ЯП.
Очень интересно как ТС собрался учить любой язык отличный от 1С, не выучив сначала аглицкий?
js/nodejs + по мелочи html/css
(20) ну ключевые слова и конструкции знает наверное. Хотя конечно, без английского сложнее, мануалы там всякие читать.
(20) букварь можно на русском найти
имена переменным - чтобы Sclad не писать - гуглопереводчик
(22) любой язык уже давно фня, вот постоянно учть разные новые фреймворки это млин, особенно когда мануалов почти нету и вперед общаться с разрабами
Как вы уже знаете, согласно последним мировым тенденциям, язык ассемблера снова входит в 10-ку самых популярных языков программирования.
(28) >> Некоторые примитивные операции, описываемые в языках высокого уровня одной строкой, здесь могут вызывать настоящую головную боль у программиста;
(28) и ещё
>> Большинство используемых машин просто не нуждается в таком примитивном языке, как ассемблер;
(28) это временное явление микропроцессоров для умных вещей, скоро вместо ардуинки будет нечто другое (аналог малинки-апельсинки) и ассемблер того
(33)+ не забываем что скоро любой проц будет многоядерным по дефолту, а многопоточность могут использовать только предназначенные для этого языки или с доработками под это (сча нету универсального asm'а)
(34) Ну так она на С потому и программируется, что С умеет с железом работать и лучше всего это получается как раз с помощью ассемблерных вставок. Как думаешь, на чем написаны в С, все подключаемые модули?
Всё в кучу намешали.
Почему Битрикс Пхп написали. Можно же не ограничиваться одним битриксом, если ты пхп разработчик
Вообще был несколько раз в конторах по разработке ПО, атмеосфера,рабочая обстановка,условия гораздо лучше и приятнее чем в обчных конторах темболее во фране.
(43) Неожиданно "обычных контор" (куда нужны 1С-ники) или франей на порядки больше чем "контор по разработке ПО" с атмосферой и(или) рабочей обстановкой и условиями
Суть что устроится не по 1С сложнее слегка, намного проще выучить 1С на сравнимом уровне и тогда никаких проблем получать столько же или даже больше и работать в лучших условиях. Вероятность этого больше.
(45) получать столько же, а еще сопли всем вокруг вытирать и нянькой бегать. А еще на тебя будут спихивать всю неведомую остальным хню, которая хоть как-то близко связана с ПК %)
(24) >> Как показывает практика, другие языки хотят изучать те 1С-ники которые в 1С не шарят нифига.
Да нет. Некоторые учат как раз для того, что бы расширить возможности 1С. Кои не слишком велики, а так же что бы отвлечься от 1С и получать удовольствие от программирования на других языках.
Топовый разработчик на 1с не нужен.
Нужен внедренец, руководитель, но не разработчик.
Даже архитекторы 1С, 80% времени занимаются не разработкой а написанием ТЗ
почти сразу понимаешь, что нужен бух. учет (за него голосую). а далее, учить доп. язык на свое усмотрение - я бы выбрал Java.
(50) >> Даже архитекторы 1С, 80% времени занимаются не разработкой а написанием ТЗ
Это потому что они архитекторы, а не разработчики. Топовые разработчики как раз таки 90% времени и больше кодят.
(52) это кодеры 90% кодят, разработка это проектирование,кодирование,тестирование,документирование, внедрение итд. В средних и мелких конторах на фикси, как правило именно разработчики работают (всё в одном)
Выбираю Js+html+css(front-end)
Автору к сведению, js уже давно себя и на сервере прекрасно чувствует, уточнение в скобочках лишнее.
(57) Да сейчас и сервер давно себя нормально в браузере ощущает с IndexedDB + Application Cache + Service Workers
Я склоняюсь к пунктам (6) Js+html+css(front-end) + (2) 2. 1С -Битрикс(php)
Java конечно модно, энтерпрайзно. Но вы реалные вакансии на нее видели, куда может устроиться программист. Там только требования каких то заоблачных Синьоров и самих вакансий то раз-два и все. Не вижу смысла тратить на Java время, впрочем, как и на весь стек Microsoft.
А вот веба (js + php) просто завались. Это как то пореальнее и поближе к народу.
В силу своей молодости ещё достаточно девственен, но уже успел зат0000ть всех. Люто, бешено ненавидим линуксоидами.
Разберемся более детально .
За 8 пункт как правило будут голосовать те люди, которые не имеют высшего профильного образования, но каким-либо образом оказавшиеся в сфере 1С. Бух. учет - это не язык программирования
Php - периодически возникают вопросы взаимодействия php и 1C. Довольно перспективное направление
C, C++, Delphi - разработчику 1С может пригодиться только для анализа кода старых приложений. Часто возникают задачи типа - "У нас это раньше работало на С++ (Dephi), хотим все это дело перенести на 1С"
Android - является неоспоримым плюсом возможность взаимодействия 1С с мобильными устройствами, перспективно
Из указанных направлений я бы выбрал мобильную разработку. Хотя знание С++, Delphi является также неоспоримым плюсом. Также отдельно я бы вынес взаимодействие 1С + СУБД (Postgres, Oracle, MySQL) - это является большим плюсом
Я бы, конечно, проголосовал за Swift + Objective-C (перспективно, высокооплачиваемо, конкуренции относительно немного), но такого варианта нет. А так, Java)
Я бы добавил в Вэбу Angular 2 и TypeScript
(67) Эх, значит я не нормальный человек. Ни разу Java не понадобилась.
(0) Настоящий одинесник тупо рубит бабло не отвлекаясь на всякие явы с ангулярами. Презренные хомячки микрософта и прочих гуглов, которые бесконечно мастурбируют на модные фрейворки не одинесники, а жалкие гермафродиты, не имеющие твердого, желто-красного стержня.
+ пхп добавил бы в кучу, но не обязательно битрикс
(70)(71) Чисто технически, они написаны на Электроне, а вот какой внутри фреймворк хз, может быть вообще никакого.
ввиду особенностей 1сного языка единственным вменяемым альтернативным вариантом будет только какой-нить ассемблер (хоть контроллеры, хоть что).. а то мне тут попадаются хомячки у которых весьма смутное понятие о программировании вообще и программят они как по шопингу в торговом центре - то туда забегут, то сюда метнутся, тот тут пожуют, то это выкинут, то накупят ненужного.
(77)как минимум shadow dom для таких приложений обязательно к использованию (иначе все будет тормозить), а это значит какой то фреймворк да используется
Здравствуйте, какие языки нужны программисту 1С?
Уже чуть больше года работаю инженером 1С. Немного знаю и учу язык программирования 1С.
Так вот вопрос, какие языки кроме самого языка 1С нужны программисту, чтобы полноценно создавать обработки любой сложности, а также интегрировать 1С с другими программами учёта?
Средний 6 комментариев
Ярослав Иванов, да вы просто шовинист, батенька. Человек, возможно, хочет стать штатным сотрудником 1Ci, где все пишут исключительно на английском, а поддержка согласно языка региона сопровождения.
Мурад Новрузов, и у вас? Пока поток запросов были из Казахстана и Таджикистана. Хорошо, что и у вас идет развитие в данном направлении.
Хотя большинство "программистов 1С" не знает ни одного языка программирования кроме 1С и их все устраивает. Выбор за вами.
Спасибо огромнейшее за развернутый ответ
С Web проблем не будет =)
Хочется изучить всё, ибо если человек выбрал профессию, он должен быть в этом хорош. Времени вроде хватает ) Года так за 3-5 можно я думаю изучить основу всего перечисленного.
А почему программист 1С в кавычках?))
Мурад Новрузов, это отсылка к понятию адинэсник, которым называют человека, который научился делать в 1С самые простые вещи и после этого гордо называет себя программистом, даже не зная базовой теории по предметной области. Такие люди создают негативный образ наших коллег, который является отторгающим для студентов, которые только выбирают свой путь.
Несколько лет назад, когда я искал пути из программистов 1С в Java developer'ы — я бродил впотьмах, пытаясь нащупать дверь, в существовании которой был не уверен. Я пытался найти истории успеха, но кроме пары комментариев ничего не нагуглил. Мир Java выглядел огромным, а количество фрэймворков бесконечным. Было совершенно непонятно: что учить, что не учить, что нужно в работе, а что никто не использует. Если ты хочешь в Джаву, теряешься в бесконечных названиях технологий и фрэймворков и хочешь узнать какие же из них надо изучать, а на какие не обращать внимания — эта статья для тебя!
Некоторые начальные допущения
- в этой статье мы не будем обсуждать вопрос «зачем?», будем только — «как?». Если ты сюда пришел — ты сам знаешь зачем.
- я никогда не получал образования как-то связанного с ИТ, поэтому мои рекомендации — это рекомендации от человека и для человека, который на момент начала изучения Java никогда ни на чем кроме 1Са не писал. Если у тебя диплом по разработке ПО — часть рекомендаций может быть лишней.
- я постараюсь нарисовать картину, отражающую какую-то среднестатистическую вакансию. Естественно, если ты хочешь в какое-то узкое, специфичное направление вроде big data или наоборот embedded — тебе лучше узнать об этом направлении подробнее.
Во-первых, если ты решил предать 1С перейти в Java разработку — не жди, что путь будет легкий и быстрый. Скорее всего, при должном усердии, ты потратишь никак не меньше полугода на подготовку, плюс никак не меньше года, чтобы вылезти из джунов.
Во-вторых, готовься, что если ты сейчас топовый 1Сник — твой доход скорее всего восстановится когда ты станешь уверенным middle'ом. Как правило, это не меньше 2-3 лет практики, но в конечном счете все зависит от тебя.
В-третьих, не жди, что твой 1Сный опыт тут кому-то интересен. У тебя может быть 100500 успешных проектов и вся стена в 1Сных сертификатах — это никого интересовать не будет. Ты будешь джуном, с тобой будут разговаривать как с джуном и у тебя будут задачи как у джуна. Но тут есть ложка меда: даже если ты не топовый 1Сник, в вопросах SQL, скорее всего, ты потягаешься с Senior Java developer'ами.
Еще пара очень заезженных советов, которые ты уже слышал три десятка раз, но поверь мне, они работают на 100%:
- Тратить 1 час каждый день — это намного лучше чем тратить 7 часов раз в неделю. Если ты решил идти — иди. Без отговорок. Каждый день. Ладно, в воскресенье можешь отдохнуть.
- Если ё инглиш из нот вэл — улучшай его! Это тот навык, который тебе пригодится: мало того что почти все, что ты сможешь прочитать, будет на английском, так тебе еще и код на нем писать! Скорее всего, первое что тебе потребуется — это навык чтения и понимания прочитанного. С listening и speaking можешь повременить.
Подготовка. Основы языка
Тебе стоит выбрать язык. В интернете куча статей со сравнительными характеристиками. Также, можешь вбить названия языка в поиск hh – посмотри, насколько тебе понравится то, что ты там увидишь. Обращай внимание не только на бешеные зарплаты и пиво по пятницам, но и на количество вакансий, а главное на количество вакансий, на которые готовы взять джуна.
Я выбрал Java. Все дальнейшие рекомендации будут даны в этом контексте, если ты выбрал другой язык — значительная часть написанного тут может потерять смысл, но общие идеи ты можешь почерпнуть. Вероятно, тебе стоит посмотреть в сторону PHP, ибо Битрикс и переход на него может оказаться проще в плане административного барьера (там 1С, тут 1С, какая разница. ) и в плане отсутствия в языке всяких стримов и метод-референсов (хотя они дико кайфовые).
Если ты тоже выберешь джава — не забивай себе голову Java EE, тебе нужна только Java SE. Что такое Java ME и Java FX вообще лучше не знать )
Итак, с чего же начать? Я не советую тебе бросаться покупать двухтомник Хорстманна и тысяче страничный «Spring 5 для профессионалов» и пытаться все это вызубрить. Даже если ты расскажешь все это наизусть — знания не подкрепленные практикой выветрятся очень быстро. Начни с онлайн площадок по обучению программистов. Я решал JavaRush. Дошел наверно до 15 уровня. Это заняло около 1-2 месяцев (с цифрами могу что-то наврать, дело было давно)
Затем принимайся за HackerRank. Не пугайся его названия — там можно выбрать уровень сложности и на простейшем тебе будут предлагать задачи уровня инвертировать строку. Добейся, чтобы задачи среднего уровня (medium, баллов на 30) решались без проблем. Хотя система оценок иногда дает сбой и бывают такие задачи на 30 баллов, что проще какой-нибудь hard на 60 баллов решить, но в основном ты должен справляться. Это займет тебя еще на 1-2 месяца.
Теперь пора читать Хорстманна. Имей ввиду, что это хорошая книга, но она покрывает Java целиком (только язык, не фреймворки) и даже те ее части, которые почти нигде не используются. Моя рекомендация: в первом томе забей на разделы связанные с UI и на весь второй том. И еще, если будет туго, в первом томе пропусти многопоточность и вторую половину дженериков — этого могут не знать даже мидлы, для джуна не страшно. Еще важно не попасть в ловушку версий: книга, которая называется Java 2 — это древность. Тебе нужна версия 1.8 или 9. Или ориентируйся на дату издания: 2015 год и позже подойдут.
Я надеюсь, во время чтения Хорстманна ты не бросишь HackerRank, может, даже решишь пару задачек баллов на 80-100. В целом, больше 60 баллов подниматься не нужно, потому что там начинается не столько прикладное программирование, сколько «искусство ради искусства». Но если ты чувствуешь в себе силы — иногда бери hard, лишним это не будет. И еще, имей ввиду, что большинство сложных задач — это классические алгоритмические задачи, которые ты можешь гуглить: смысл упражнений на хакерранке не в том чтобы придумать с нуля алгоритм, который уже давно придуман, а в том чтобы узнать о самом существовании алгоритма и реализовать его.
Продолжение подготовки. Фреймворки, инструменты и практики.
После всего этого, ты почти готов пойти на собеседование. Осталось совсем чуть-чуть:
- еще раз обрати внимание на коллекции и на сложность поиска в них. Эту тему мусолят все. Не пытайся узнать все подряд: лучше хорошо знать базовые коллекции (ArrayList, LinkedList, HashSet, HashMap, может еще TreeMap), чем знать три десятка, но «по верхам». Т.е. ты должен понимать, как коллекция работает внутри. Есть хороший канал на ютубе, там все разжёвывают для джунов. Прямо так, как тебе и нужно. Вбиваешь в поиск «урок по java коллекции» — первая ссылка на него. Там же есть видео под названием «что нужно знать перед собеседованием». Ты не должен знать прямо все что там перечисляют, ты все-таки джун, на мой взгляд, если ты осилишь 2/3 тем — будет ок.
- что такое спринг (тебе нужен Spring Core и Spring Boot) — там понаверчено немало, но 95% практики использования — не сложнее хэловорлда. Ты должен понимать базовые концепции, вроде того что такое IOC и зачем это вообще и уверенно владеть 1-2 способами объявления и инжекции бинов (не xml). Возможно, тебе стоит еще попробовать сделать несколько REST-сервисов на Spring Web: там нет ничего сложного, но будет определенный плюс.
- как писать тесты (посмотри на JUnit и Mockito) — в 1Се в принципе нет такой практики как написание тестов. В Java код без тестов — это не код, потому что код считается нерабочим, до тех пор пока нет доказательств обратного.
Все твои домашние проекты должны собираться Maven'ом и версионироваьтся Git'ом. Это просто инструменты, стоит набить руку — и уже перестаешь их замечать. В качестве среды разработки советую тебе взять Idea, по моим наблюдениям ее сейчас используют почти все. Бесплатной версии тебе должно хватить.
Если ты не стеснен в средствах — можешь посетить какие-нибудь курсы по Java разработке. Я считаю, что базовый курс брать не стоит, поскольку все что там будут объяснять не стоит того, чтобы тратить на это время и деньги. Возьми курс по Spring Core или JUnit: с одной стороны ты получишь знания, пообщаешься с будущими коллегами, с другой — тебе не будут 3 дня разжевывать, что такое цикл.
Где-то между делом, надо почитать теорию программирования. Тебя обязательно спросят про SOLID и паттерны. Паттерны (они же шаблоны проектирования) — это весьма интуитивно-понятные вещи, хотя на Википедии описаны так, что чёрт ногу сломит, лучше читать не настольно заумные статьи. На мой взгляд, хватит такого набора: Интерфейс, Билдер, Прототип, Синглтон, Декоратор, Прокси.
Идём на собес!
Есть несколько основных типов работодателей, о которых тебе стоит знать.
Первый — это бодишоперы. Они же аутстаферы. Самые известные представители: Luxoft и EPAM. Они нанимают людей, а потом перепродают их во всякие Сбербанки. Бодишоперы сажают своих сотрудников прямо в офис заказчика и их почти нельзя отличить от сотрудников заказчика. Зачастую, уровень требований там ниже, а зарплата выше. Но и работать ты будешь в не бог весть каких условиях: это не самые привлекательные проекты, на которые конечный заказчик не смог набрать разрабов с рынка, про трудовой кодекс они будут знать весьма отдаленно, а сам ты не будешь полноправным сотрудником там, где ты будешь работать (всякие плюшки и корпоративы будут проходить мимо тебя). Но тебе же не это надо?
Аутсорсеры — это конторы, которые нанимают конечные заказчики, но предмет продажи там — не люди, как у бодишоперов, а реализация задач. Такие, как правило, стараются держать разрабов подальше от заказчика и занимаются новыми проектами. Это весьма достойное место работы, но туда с таким опытом как у тебя попасть будет не просто, но не невозможно.
Продуктовые компании — это конторы типа Яндекса и, прости господи, Касперского, которые продают свой код как конечный продукт, как коробку. Бытует мнение, что тут работать лучше всего: зарплаты большие, плюшек много, задачи интересные, коллективы профессиональные. Когда ты слышишь про бесплатный английский и пиво по пятницам — скорее всего это про них.
Дальше идут банки и страховые. Тут может быть все сильно по-разному: как правило, в банках есть огромное страшное легаси, на которое никто не хочет идти и новые-модные-стильные-молодежные проекты, на которых вакансии еще как-то закрываются. Сам понимаешь, тебе в первую группу. Хотя, иногда их самомнение может зашкаливать, типа «mission-critical система — не место для джунов». Не обращай на них внимания, такие далеко не все.
Естественно, этот список не описывает полностью всего рынка труда, есть еще всевозможные стартапы, retail и много-много кого.
Во-первых, не надо врать про опыт. Поверь, даже если тебя «случайно» примут за мидла на тех.интервью — в работе ты все равно будешь джуном. Поэтому в резюме не стоит выдумывать, что ты уже работал Java developer'ом 15 лет, пользуясь тем, что в названии твоей предыдущей должности не было упоминания 1С. Но кое-какие ходы, для преодоления HR-барьера, предпринять можно. Не выпячивай свое 1Сное прошлое. На паре последних мест работы можешь написать просто «Программист» или «Developer», а буквы «1С» закопай куда-нибудь в описание. Тим-лида ты этим не проведешь, но HR может купится.
Во-вторых, было бы ошибкой держать твоего будущего работодателя в неведении о том, как ты занимался самоподготовкой. Напиши полгода подготовки как отдельное место работы (оно должно быть в самом верху), с пересечением по сроку с последним местом работы. Назови это «Java developer», место работы — «самоподготовка» или «домашние проекты» и перечисли технологии, которые ты попробовал. Дай ссылку на профиль на хакерранке.
В-третьих, придумай убедительную причину почему ты хочешь в Джаву. Не советую говорить «надоело нянчиться с бухгалтерами» или «не хочу, чтобы моя зарплата обрушилась вместе с курсом рубля» и тем более «хочу свалить из этой грё. ». Лучше всего заходит тема с развитием: мол, там уже все повидал — надо двигаться дальше.
В-четвертых: ты джун и таких как ты, каждый год из институтов выпускают сильно больше, чем есть вакансий джунов. При этом те, кто из институтов — без семьи и детей и готовы жить на работе и жить работой и им не надо платить ипотеку. Ок, на твоей стороне опыт, но это не релевантный опыт и его не будут рассматривать как большую ценность. Из этого следует, что тебе нельзя задирать ожидаемую зп. Если ты не можешь прожить на зарплату джуна — подрабатывать 1Сником на четверть ставки — неплохой вариант на первый год.
Ходи по собесам, запоминай вопросы, находи на них ответы, затем опять ходи по собесам. На мой взгляд, 1-2 тех.интервью в неделю — приемлемый уровень, чтобы и успевать переваривать полученный опыт и не слишком затягивать поиски.
Работа джуном
Самое важное тут — это Тим лид. Ты должен был познакомиться с ним на тех.собесе и «он должен был выбрать тебя и ты должен был выбрать его» (с). Очень важно почувствовать эту химию. Это человек, каждое слово которого в следующие несколько лет, ты должен слушать, запоминать и выполнять. Этот человек будет тащить тебя к вершинам Java разработки и посвящать тебя в самые глубокие нюансы этой магии. И от него, может быть даже больше чем от тебя самого, зависит, насколько крутым разрабом ты станешь и как скоро.
Итак, мой юный 1С-ник, если раньше ты знал «зачем?», то теперь еще знаешь «как?». Путь в тысячу миль начинается с одного шага. Дерзай!
Читайте также: