Written by Rende11
on
on
List
А что учить то?
Этот вопрос рано или поздно задают себе (и не только) все начинающие программисты. Конкретного ответа, “серебрянной пули”, идеального рецепта нет. Основные критерии для меня это интерес и востребованность на рынке. Писать на Erlang интересно, но слабо востребованно, на 1С - Битрикс работает куча сайтов и интернет-магазинов, но лезть в эту трясину совсем не хочется. По этой теме мне очень понравилось видео от Senior Software Vlogger. Для себя я выделил несколько категорий в которых я хочу развиваться в текущий момент.
Backend
- PHP - хорошо востребован, но не сильно привлекателен.
- NodeJS - работы меньше, но язык более приятный (в особенности cтандарт ES6), так же есть потенциальная возможность использовать один язык на сервере и клиенте.
Frontend
- Bootstrap - инструмент для тех кто не знает верстку и CSS, но хочет чтобы страницы выглядели удобоваримо.
- React - концепция “реактивного” подхода - если элемент изменился - простро рисуем его новую версию, забывая про старое состояние.
Utils
- Docker - запускаем процессы в изолированном окружении
- Ansible - система управления конфигурацией, полезно даже если у вас нет серверов, а просто своя рабочая машина. Позволяет удобно разворачивать рабочее окружение.
Brain
Этот раздел подразумевает языки и концепции которые они привносят
- Erlang/Elixir - Модель акторов - легковесные изолированные процессы, которые общаются посредством передачи сообщений.
- Clojure - Лисп с доступом к Java-платформе, имеющий примитивы для работы с многопоточностью. Код как данные и данные как код, отлично пишутся макросы.
- Haskell - Ленивыевычисления и явное выведение типов.
Base
- OS - понимать принципы работы операционных систем очень важно, возможно это не понадобится сейчас, но это решит много вопросов и проблем в дальнейшем.
- SICP - книга/курс который рекоммендуют все. Это программу преподавали в MIT.
- Automatic programming - парадигма программирования. Представляем сложное поведение в виде конечного автомата.
- Algoritms - поиск и сортировка… и немного деревьев… Алгоритмы не самое важно, важнее распознавать их в реальном мире.
General concepts
- Rails Guide - рельсы славятся скоростью разработки на них, так же многие языки позаимствовали этот framework
Books
- Программист фанатик
- Hexlet books - эти ребята плохого не посоветуют