Содержимое
#вашивопросы Давно назрел вопрос. А какими навыками (имеются ввиду хардскилы) владеете лично вы, будучи разработчиком ПО? Чтобы ответ не превратился в сухое перечисление терминов, как в резюме, постараюсь не только рассказать, с какими технологиями я работаю, но и для чего они нужны. Ответ занял аж три поста. Для тех, кто только начинает и может испугаться длины списка: 90% всего перечисленного я не изучала заранее, а осваивала уже в процессе работы, когда возникала такая потребность - и всё не так сложно, как может показаться на первый взгляд. Наверно, примерно так выглядит стэк любого бэкенд-разработчика со стажем более 3-5 лет. Заранее изучить всё это достаточно глубоко вряд ли возможно, потому что настоящие знания приобретаешь только в процессе долгой работы с конкретными технологиями, пока набиваешь шишки и собираешь грабли. Поэтому не паникуйте, изучайте языки программирования и линукс, а остальное подтянется в процессе. Языки программирования Больше всего я работала с Python и сопутствующей экосредой - Django, rest framework, tornado и др - всё это используется для написания бэкенда и различных микросервисов. В меньшей мере с C#, и последние пару лет всё чаще работаю с Go - это такой легковесный язык от компании гугл. Эпизодически приходилось работать с Javascript и React - для единичных задач на фронте, с lua, PHP. Языки командной оболочки Это по сути тоже языки программирования, а нужны они для взаимодействия с операционной системой, в основном для решения задач администрирования (пример такой задачи: запускать каждый день в полночь скрипт, который удаляет ненужные файлы на диске). В Linux это, к примеру, bash. а в Windows - cmd - но он очень корявый и неудобный, поэтому когда я освоила Powershell - работа с виндой стала в разы приятнее. Операционные системы Естественно, это linux - чаще всего семейства debian (в том числе ubuntu), реже red hat (centOs). И иногда еще alpine, в случае с докером (про докер будет ниже). С Windows Server тоже приходилось работать, в дальнейшем хотелось бы такого опыта избегать. 🙂 Базы данных Больше всего я работала с PostgreSQL (бесплатная), меньше - с микрософтовской SQL Server (платная). Постгрес продолжаю нежно любить. NoSQL Я не фанат NoSQL-баз данных, и считаю, что очень и очень многие задачи успешно решаются на основе стандартных реляционных баз данных. Но одно время приходилось работать c Redis. Системы контроля версий Тут всё стандартно - git. Гит нужен для того, чтобы хранить код проекта, включая всю историю изменений. Он позволяет в любой момент отменить любые изменения и откатиться к более ранней версии. И еще он позволяет разным разработчикам одновременно менять код одной и той же программы (в разных ветках).