Сравнительно лёгкий путь в it
Что-то во всех постах по тематике "вайти-в-айти" все пишут о стандартных и и не самых простых способах, с кучей конкурентов, каких-то курсов за деньги, с мутной перспективой успешного трудоустройства. Почему-то об этой CRM никто толком не пишет, хотя обучение работы с ней довольно простое и бесплатное (простое в сравнение с тем же Java-стэком), с низкой конкуренцией при трудоустройстве. Почти все местные компании, из-за недостатка разработчиков, обучают джунов сами.
Кратко: Salesforce.
Очень популярная в USA/Европе CRM для малого и среднего бизнеса. Популярна, как у нас 1C - вакансий в USA прям много. Уже довольно старая (больше 10 лет), проектов куча (хотя многие "после индусов"). В сравнение с проектами на Java/C# - обычно разработчики оплачиваются "вкуснее", процентов на 20 рэйты выше (по краней мере у нас). На свой кусок хлеба в любой цивилизованной стране мира заработаешь, и в ближайшие годы врядли исчезнет.
Подробнее. Нужны несколько вещей:
- в городе, где вы живёте, должна быть компания, которая работает с Salesforce (разработка). Если нет, то этот путь не имеет смысла (если вы не собираетесь переезжать конечно). Желательно сразу уточнить: набирает ли компания стажёров/джунов (как правило - да).
- английский. Чем выше уровень, тем лучше, но вообще на первое время можно пользоваться переводчиком.
- полгода или больше - нужно заниматься самообучением. Это для трудоустройства - дальше уже вам решать - хотите ли развиваться и больше з/п.
Опишу шаги, с самого нуля (мне кажется, что за полгода реально этому обучиться. Или даже быстрее, если голова хорошо соображает):
1. Перед изучением SF, надо бы узнать основы Java (backend для SF пишется на языке программирования Apex, который сам по себе написан на Java и по образу/подобию Java, какая-то древняя версия).
Для Java я советую: https://metanit.com/java/tutorial/1.1.php
Это для самых основ - установка IDE, написание hello-world, знакомство с синтаксисом, со строками, коллекциями, исключениями. Всё читать не обязательно, главы до 8-9.
2. Далее - привыкнуть писать код, на простых учебных заданиях. Есть хороший учебник по Java от Epam. Раньше был публично доступен прям на сайте, сейчас кажется нет, но PDF легко гуглится: [Блинов, Романчик - Java from Epam, 2020]. Тут в конце каждой главы даются задания, 10/20 - делаешь их, привыкаешь к написанию кода. Абсолютно всё делать/читать не обязательно - для Salesforce-разработчика это излишнее, главы до 9 достаточно. Примеры задач:
3. После прокачки основ Java - нужно базовое знание JS (JavaScript). Не обязательно глубокое, хотя бы основы - почитать какой-нибудь учебник, вроде "Head First JavaScript" (или любой другой ресурс, который покажется понятным). Это нужно для написания JS для браузера, для UI-компонентов (пригодится чуть позже).
4. HTML/CSS. Желательно научиться верстать, но опять таки - не нужен уровень гуру. Когда то раньше у этих ребят был крутой интерактивный курс (бесплатный) - прямо в бразуере верстаешь:
https://htmlacademy.ru/
Или что-то другое, что найдёте.
5.1. Наконец, можно браться за сам Salesforce. Идём сюда, создаёт бесплатный Dev-орг (ваш бесплатный облачный экземляр системы), щупаем/трогаем что это вообще такое:
https://developer.salesforce.com/signup
DEV-оргов вы можете создавать сколько угодно, кажется даже с привязкой на 1 email (username разумеется должен быть уникальным). Поставьте в свою IDE плагин для работы с SF - попробуйте стянуть код с облачного орга, создать класс/триггер, задеплоить обратно.
Для VS-Code, например (что нагуглите первое):
https://atrium.ai/resources/how-to-set-up-vs-code-for-salesforce-development/
Для Jetbrains IDEA тоже есть плагин классный, IlluminatedCloud (он дорогой, но в сети можно найти версию с таблеткой от жадности).
Код Salesforce невозможно выполнить локально - только стянуть/поправить/задеплоить обратно. Для некоторых компонентов, быстрое исправление можно написать прямо в браузере (Developer Console)
5.2. У платформы есть свой бесплатный учебный портал, с автоматической проверкой выполнения заданий. Называется "trailhead". Автоматическая проверка не очень умная, но сносная - тысячи индусов на ней научились кодить:
https://trailhead.salesforce.com/en
Тут всё на английском. Регистрируемся, выбираем "задания" с тематикой development, например:
https://trailhead.salesforce.com/content/learn/trails/force_com_dev_beginner
https://trailhead.salesforce.com/content/learn/trails/force_com_dev_intermediate
https://trailhead.salesforce.com/content/learn/trails/force_com_dev_advanced
В поиске там просто куча топиков/бэйджей по этой тематике, что найдёте - то и делайте :-) Для выполнения задач, вы создаёте небольшие временные орги-песочницы, так называемые "playground". Создаёте, стягиваете в VsCode/IDEA локально, пишете по требованиям в задании, деплоите обратно, проверяете. В чём нужно разобраться сначала (кажется для всего этого есть трэилы):
- Sobjects - поиграть с полями/типами обьектов, посоздавать свои.
- Apex (при знании Java - это проще некуда) - классы, unit-тесты, триггеры для обьектов, выполнение http-запросов (и как это протестировать в unit-тестах), ассихронный код, батчи/queue.
- Visual-Force - это уже устаревшая технология, но на старых проектах используется.
- Aura-компоненты, приложения - это также немного устаревшая вещь, но на проектах встречается.
- LWC-компоненты, приложения - это уже самое современное
- Community - это будет неплохо знать, встречается
- SFDX-CLI - придётся изучить, хотя можно и потом на реальных проектах
- ProcessBuilder/Flows - некторые заказчики требуют написание кода здесь иногда
С большего кажется для начала всё (может что-то упустил).
6. Попробуйте написать своё приложение в Salesforce по какой-нибудь тематике, и разместить на Github в public-репозиторие - со скринами, и хорошим описанием. Что-то не особо сложное - пару страниц с LWC-компонентами и какой-нибудь простой бизнес-логикой, пару-тройку Apex-классов, тестовое-покрытие в 100%. Чтобы продемонстрировать вашему потенциальному работодателю что вы лучше нулевых стажёров, которые о платформе не знаю ничего вообще.
7. Кидаете резюме, если есть тестовое-задание то без проблем пишете, подготавливаетесь к собеседованию, проходите на испытательный срок (если вы выполнили предыдущие шаги, то это не доставит сложностей - на стажёрскую/джуниорскую позицию).
Вопросы для подготовки к собесу - какие-нибудь простые, вроде этих (гуглите salesforce developer interview questions):
https://www.softwaretestinghelp.com/salesforce-developer-interview-questions/
https://www.salesforceben.com/30-salesforce-developer-interview-questions-answers/
https://www.edureka.co/blog/interview-questions/salesforce-interview-questions/
8. Типовая работа для Salesforce-разработчика: написание функционала/приложений в SF которого нет "изкоробки", интеграции с различными API, написание коде вне SF (node-js и/или SPA приложений на Vue/React) для обхода лимитов, секюрити-ревью для пакетов. Уже походу дела станет ясно куда двигаться дальше, и какие сертификаты получать.