Делая определенные успехи на текущем и прошлом месте работы, решил целиком и полностью связать свою профессиональную деятельность с бекенд-разработкой.
В качестве основного языка выбрал PHP, в качестве СУБД - MySQL, но тут уже скорее всего будут варианты.
Из тем для изучения отметил для себя:
- Один из фреймворков на выбранном ЯП (я выбрал Yii2. Может и не лучший выбор, но мне очень удобно с ним работать)
- Тестирование
- Linux на примере Ubuntu
- Основы безопасности в веб-приложениях
- Протокол HTTP - реализация от и до, коды состояния
- Redis, в качестве основной NoSQL-СУБД
- Теория баз данных, их архитектура и проектирование
- Реализация высоконагруженных систем
- Построение REST API
Что еще можно изучить?
Какие проекты реализовать для практики?
Насколько критично знание алгоритмов?
Один из фреймворков на выбранном ЯП (я выбрал Yii2. Может и не лучший выбор, но мне очень удобно с ним работать)
Нужно быть НАД фреймворками, также как и НАД языками
Советую поработать с Симфони/Ларавел (последний должен понравиться!) и все возможные компоненты - я выбрал этот путь (но в самом начале, конечно же)
Экстремальное программирование (TDD, BDD)
На перспективу (карьерную и экспертную) -- DDD
Очереди, демоны (последние можно на др языках, ничего страшного в языках нет)
РСУБД -- ну тут без вариантов -- PostgreSQL
Devops -- ну тут сложного не так много, просто следить и пробовать новые инструменты, стараться брать в преокты из них то, что экономит силы и время или в будущем деньги
Насколько критично знание алгоритмов?
Важно вот насколько -- не задумываясь нужно реализовывать функционал, когда натыкаешься на проблему -- с меньшими затратами ресурсов и времени, если у вас хорошая выработка алгоритмов -- вы просто их перевариваете не замечая... это экономит ваши силы, время и дает прирост в скорости (в случае большой зп -- скорость заработка денег повысится)
Также и слепая печать -- быстро, моментально сделали и не потратили сил... а силы тратятся в течение дня
Максим Федоров, ну, слепая печать само собой разумеется, я давно ей владею с русской и английской раскладкой)
отмечу решением, если оформите свой ответ в качестве ответа)
leni_m, смысл вопроса в том, чтобы охватить все необходимые темы и технологии, после изучения которых можно будет называть себя Backend-разработчиком с большой буквы и успешно проходить 99% собеседований на эту должность)
Redis, в качестве основной NoSQL-СУБД - Плохая идея
Для изучения, так как планируете работать с бекендом, то очень кстати изучить основы безопастности приложения, так как это очень важный момент
Crash, Данные хранятся в памяти, это быстро но не надежно, его как правило используют при кешировании, так как там при потере данных ничего не произойдет, приложение как работало так и будет работать
Евгений Бухарев, редис очень даже хорошо умеет складывать все на диск. Если не нужна реляционная БД, то как key-value редиска может быть основным хранилицем.
Как и в memcached, всё находится в памяти. Redis сохраняется на диск, но он не сохраняет данные синхронно с тем как вы записываете их. Есть две причины из-за которых Redis в качестве главного хранилища — отстой:
— Вы вынуждены умещать все свои данные в памяти, и…
— Если сервер откажет между двумя синхронизациями с диском — вы потеряете всё что сидело в памяти.
the AOF persistence logs every write operation received by the server, that will be played again at server startup, reconstructing the original dataset.