Несколько лет назад, когда я искал путь от программиста 1С до Java-разработчика, я блуждал в темноте, пытаясь найти дверь, в существовании которой я не был уверен.
Я пытался найти истории успеха, но кроме пары комментариев ничего не загуглил.
Мир Java казался огромным, а количество фреймворков было бесконечным.
Было совершенно непонятно: чему учить, чему не учить, что нужно в работе и чем никто не пользуется.
Если вы хотите изучить Java, потеряться в бесконечных названиях технологий и фреймворков и хотите знать, какие из них вам стоит изучить, а какие игнорировать — эта статья для вас!
Некоторые первоначальные предположения
- в этой статье мы не будем обсуждать вопрос «почемуЭ», мы обсудим только «какЭ».
Если вы пришли сюда, вы знаете, почему.
- Я никогда не получал образования, каким-либо образом связанного с IT, поэтому мои рекомендации — это рекомендации от человека и для человека, который на момент начала изучения Java никогда не писал ничего, кроме 1Са.
Если у вас есть высшее образование в области разработки программного обеспечения, некоторые рекомендации могут оказаться излишними.
- Я попытаюсь нарисовать картину, отражающую некую среднюю вакансию.
Естественно, если вы хотите пойти в какое-то узкое, специфическое направление вроде больших данных или, наоборот, встраиваемых, вам лучше узнать об этом направлении больше.
Плохие новости
Во-первых, если вы решили предать 1С и перейти на Java-разработку, не ждите, что путь будет легким и быстрым.Скорее всего, при должном старании вы потратите минимум полгода на подготовку плюс минимум год на то, чтобы выбраться из джунглей.
Во-вторых, будьте готовы, что если вы сейчас топ-1Сник, ваш доход, скорее всего, восстановится, когда вы станете уверенным посредником.
Как правило, для этого требуется не менее 2-3 лет практики, но в конечном итоге все зависит от вас.
В-третьих, не ждите, что ваш первый опыт будет кому-то здесь интересен.
У вас может быть 100 500 успешных проектов и вся стена увешана сертификатами 1С — это никому не будет интересно.
Ты будешь джуниором, с тобой будут разговаривать как джуниор, и у тебя будут задачи как у джуниора.
Но здесь есть ложка меда: даже если вы не топовый 1Сник, в вопросах SQL вы, скорее всего, конкурируете со Senior Java-разработчиками.
Еще пара очень избитых советов, которые вы уже слышали три десятка раз, но поверьте, они работают на 100%:
- Тратить 1 час каждый день гораздо лучше, чем тратить 7 часов раз в неделю.
Если ты решил пойти, иди.
Никаких оправданий.
Каждый день.
Ладно, можешь отдохнуть в воскресенье.
- Если ваш английский из заметок Vel, улучшите его! Это навык, который вам пригодится: мало того, что почти все, что вы сможете прочитать, будет на английском языке, вам еще и код на нем придется писать! Скорее всего, первое, что вам понадобится, это навыки чтения и понимания прочитанного.
Вы можете воздержаться от слушания и разговора.
Подготовка.
Основы языка Вам следует выбрать язык.
В Интернете много статей со сравнительными характеристиками.
Также вы можете ввести в поиск хх названия языков - посмотрите, насколько вам понравится то, что вы там увидите.
Обратите внимание не только на сумасшедшие зарплаты и пиво по пятницам, но и на количество вакансий, а главное, на количество вакансий, на которые готовы занять юниоры.
Я выбрал Яву.
Все дальнейшие рекомендации будут даны в этом контексте, если вы выбрали другой язык – многое из написанного здесь может потерять смысл, но общие идеи вы почерпнуть сможете.
Наверное, стоит посмотреть в сторону PHP, потому что Битрикс и переход на него могут оказаться проще с точки зрения административного барьера (1С там, 1С здесь, какая разница?.
), а также с точки зрения отсутствия каких-либо потоков и ссылки на методы в языке (хотя они дико крутые).
Если вы также выберете Java, не беспокойтесь о Java EE, вам понадобится только Java SE. Что такое Java ME и Java FX вообще лучше не знать) Итак, с чего начать? Не советую бежать покупать двухтомник Хорстмана и тысячестраничную «Весну 5 для профессионалов» и пытаться все это запомнить.
Даже если рассказать все это наизусть, знания, не подкрепленные практикой, исчезнут очень быстро.
Начните с онлайн-платформ для обучения программистов.
Я решил JavaRush. Я наверное достиг 15 уровня.
Это заняло где-то 1-2 месяца (возможно вру насчет цифр, это было очень давно) Тогда доберитесь до HackerRank. Пусть вас не пугает его название — там вы можете выбрать уровень сложности и на самом простом уровне вам будут предложены задания уровня инвертировать линию.
Убедитесь, что задачи среднего уровня (medium, 30 баллов) решаются без проблем.
Хотя система оценок иногда дает сбой и бывают задачи на 30 баллов, проще решить что-то сложное на 60 баллов, но в принципе вы должны справиться.
Это займет вас еще на 1-2 месяца.
Теперь пришло время прочитать Хорстмана.
Имейте в виду, что это хорошая книга, но она охватывает Java целиком (только язык, а не фреймворки) и даже те его части, которые практически не используются.
Моя рекомендация: в первом томе забудьте о разделах, связанных с пользовательским интерфейсом, и обо всем втором томе.
А еще, если будет тяжело, пропустите многопоточность и вторую половину дженериков в первом томе — этого могут не знать даже мидлы, но джуниорам это не страшно.
Также важно не попасться в ловушку версий: книга под названием Java 2 — древняя.
Вам нужна версия 1.8 или 9. Или посмотрите на дату публикации: подойдет 2015 год и позже.
Надеюсь, что, читая Хорстманна, вы не откажетесь от HackerRank, возможно, даже решите пару задач со счетом 80-100. В общем, выше 60 баллов идти не нужно, потому что там начинается не столько прикладное программирование, сколько «искусство ради искусства».
Но если ты чувствуешь себя сильным, иногда принимай это посильнее, это не повредит. А еще, имейте в виду, что большая часть сложных задач — это классические алгоритмические задачи, которые можно загуглить: смысл упражнений на хакерранке не в том, чтобы придумать с нуля уже давно изобретенный алгоритм, а в том, чтобы узнать о самом существование алгоритма и реализовать его.
Продолжение подготовки.
Рамки, инструменты и практики.
После всего этого вы почти готовы идти на собеседование.
Осталось совсем немного:
- Еще раз обратите внимание на коллекции и сложность поиска в них.
Все говорят на эту тему.
Не пытайтесь выучить все: лучше хорошо знать базовые коллекции (ArrayList, LinkedList, HashSet, HashMap, может даже TreeMap), чем знать три десятка, но только верхние.
Те.
вы должны понимать, как коллекция работает внутри.
На ютубе есть хороший канал, где для юниоров всё разжевывают. Именно так, как вам нужно.
При вводе в поиск «урок по java коллекции» первая ссылка на него.
Также есть видео под названием «Что нужно знать перед собеседованием».
Не обязательно знать непосредственно все, что там перечислено, вы еще джуниор, на мой взгляд, если вы освоите 2/3 тем, то будет ок.
- что такое Spring (нужен Spring Core и Spring Boot) — там много практики, но 95% практики использования не сложнее, чем Haloworld. Вы должны понимать базовые понятия, например, что такое IOC и зачем он вообще, и уверенно освоить 1-2 метода объявления и внедрения bean-компонентов (не xml).
Возможно, вам также стоит попробовать сделать несколько REST-сервисов на Spring Web: в этом нет ничего сложного, но определенное преимущество будет.
- как писать тесты (посмотрите JUnit и Mockito) — в 1С в принципе нет такой практики, как написание тестов.
В Java код без тестов не является кодом, поскольку код считается сломанным, пока не появятся доказательства обратного.
Мне кажется хорошей идеей (хотя я этого не делал) каким-то образом привязывать проекты к работе.
Может быть, просто полностью переписать задачу, которую вы выполняете в 1Се, на Java, может быть, сделать себе какого-нибудь помощника по деятельности 1Се.
Например, если вы создаете REST-обмен с поставщиком на 1Ce, реализуйте сторону поставщика на Java для проверки функциональности 1Ce: просто принимайте запросы и помещайте их куда-нибудь.
Все ваши домашние проекты должны создаваться с помощью Maven, а версии — с помощью Git. Это всего лишь инструменты; как только вы к ним привыкнете, вы перестанете их замечать.
В качестве среды разработки советую взять Idea; по моим наблюдениям, им сейчас пользуются почти все.
Бесплатной версии вам должно хватить.
Если вы не ограничены в деньгах, вы можете посетить курсы по разработке Java. Я считаю, что базовый курс проходить не стоит, так как все, что там будет объяснено, не стоит тратить время и деньги.
Пройдите курс по Spring Core или JUnit: с одной стороны вы получите знания, пообщаетесь с будущими коллегами, с другой — вам 3 дня не будут рассказывать, что такое цикл.
Где-то посередине вам нужно прочитать теорию программирования.
Вас обязательно спросят про SOLID и выкройки.
Паттерны (они же шаблоны дизайна) - вещь очень интуитивно понятная, хотя в Википедии они описаны так, что ногу сломаешь, лучше прочитать не такие уж и заумные статьи .
На мой взгляд достаточно следующего набора: Интерфейс, Конструктор, Прототип, Синглтон, Декоратор, Прокси.
Пойдем в соцзащиту!
Работодатели Есть несколько основных типов работодателей, о которых вам следует знать.Первый — кузовщики.
Они аутстафферы.
Самые известные представители: Luxoft и EPAM. Они нанимают людей, а потом перепродают их всяким Сбербанкам.
Бодишоперы размещают своих сотрудников прямо в офисе заказчика и они практически неотличимы от сотрудников заказчика.
Зачастую уровень требований там ниже, а зарплата выше.
Но работать вы будете еще и черт знает в каких условиях: это не самые привлекательные проекты, под которые конечный заказчик не сможет нанять разработчиков с рынка, они будут очень мало знать о трудовом кодексе, да и вы сами не будете полноценным человеком.
полноправный сотрудник, где вы будете работать (всякие вкусности и корпоративы пройдут мимо вас).
Но это не то, что вам нужно, не так ли? Аутсорсеры — это компании, которые нанимаются конечными заказчиками, но объектом продажи там являются не люди, как кузовщики, а реализация поставленных задач.
Такие люди, как правило, стараются держать разработчиков подальше от заказчика и сосредоточиться на новых проектах.
Это очень достойное место для работы, но с таким опытом, как ваш, попасть туда будет непросто, но не невозможно.
Продуктовые компании — это конторы вроде Яндекса и, прости господи, Касперского, которые продают свой код как конечный продукт, как коробку.
Бытует мнение, что здесь лучше всего работать: зарплаты большие, льгот много, задачи интересные, коллектив профессиональный.
Когда вы слышите о бесплатном английском и пиве по пятницам, скорее всего, речь идет о них.
Далее идут банки и страховые компании.
Здесь все может быть совсем по-другому: как правило, в банках огромное пугающее наследие, в которое никто не хочет идти, и новомодно-стильные молодежные проекты, в которых вакансии как-то еще заполняются.
Вы понимаете, вы в первой группе.
Хотя, иногда их самомнение может зашкаливать, типа «критически важная система — не место джуниорам».
Не обращайте на них внимания, не все такие.
Естественно, этот список не полностью описывает весь рынок труда; есть еще всякие стартапы, ритейл и много-много других.
Прежде всего, не лгите о своем опыте.
Поверьте, даже если на техническом собеседовании вас «случайно» примут за мидла, на работе вы все равно будете джуниором.
Поэтому не стоит выдумывать в резюме, что вы уже 15 лет работаете Java-разработчиком, пользуясь тем, что в названии вашей предыдущей должности не было упоминания о 1С.
Но можно предпринять некоторые шаги для преодоления кадрового барьера.
Не хвастайтесь своим прошлым.
На последних паре мест работы можно просто написать «Программист» или «Разработчик», а буквы «1С» закопать где-нибудь в описании.
Лидера команды этим не обманешь, но HR может на это купиться.
Во-вторых, было бы ошибкой держать будущего работодателя в неведении относительно того, как вы занимались самообучением.
Полгода подготовки напишите отдельным местом работы (оно должно быть в самом верху), причем период пересекается с последним местом работы.
Назовите это «Java-разработчик», место работы — «самообучение» или «домашние проекты» и перечислите опробованные вами технологии.
Дайте мне ссылку на ваш профиль на hackerrank. В-третьих, придумайте убедительную причину, почему вы хотите перейти на Java. Я не советую вам говорить «Мне надоело нянчиться с бухгалтерами» или «Я не хочу, чтобы моя зарплата рухнула вместе с курсом рубля», и уж тем более «Я хочу выбраться из этой передряги».
.
”.
Лучший подход — развивать тему: мол, ты там уже все видел — нужно двигаться дальше.
Четвертое: вы юниор и таких как вы, каждый год выпускников институтов выходит гораздо больше, чем вакансий для юниоров.
При этом выходцы из учреждений без семей и детей готовы жить на работе и жить на работе и им не надо платить ипотеку.
Хорошо, у вас есть опыт, но он не имеет значения и не будет иметь большого значения.
Из этого следует, что нельзя завышать ожидаемую зарплату.
Если вы не можете прожить на июньскую зарплату, подработка 1Snick за четверть зарплаты — хороший вариант на первый год. Зайдите в социальные службы, запомните вопросы, найдите на них ответы, затем снова идите в социальные службы.
На мой взгляд, 1-2 технических собеседования в неделю — приемлемый уровень, чтобы успеть переварить полученный опыт и не слишком затягивать поиск.
Работаю июньским
Самое главное здесь – лидер Тима.Вам нужно было встретиться с ним на техническом совещании и «он должен был выбрать вас, а вы должны были выбрать его» (с).
Очень важно чувствовать эту химию.
Это человек, каждое слово которого в ближайшие несколько лет вы должны прислушиваться, помнить и воплощать в жизнь.
Этот человек перенесет вас к вершинам Java-разработки и посвятит в самые глубокие нюансы этого волшебства.
И от него зависит, может быть, даже больше, чем от вас, насколько крутым разработчиком вы станете и как быстро.
Так вот, мой юный ник в 1С, если раньше ты знал «зачемЭ», то теперь ты знаешь и «какЭ».
Путь в тысячу миль начинается с одного шага.
Действуй! Теги: #Карьера в IT-индустрии #java #смена профессии #1с
-
Обзор Acer Travelmate-Tm6493-6495
19 Oct, 24 -
Как Сэкономить На Мобильной Разработке?
19 Oct, 24 -
Взлет И Падение Водопада
19 Oct, 24 -
2^74207281-1 - Простое Число
19 Oct, 24