Skip to content

kakoi-to-pirat/software-engineer-guide

Repository files navigation

Software engineer guide

Telegram: @piratestories | Книги

  1. Приобретите навык слепой печати
  2. Изучите базовые принципы работы операционных систем: абстракции (процессы, потоки, файлы, сокеты, память), механизмы (создание, управление, открытие, запись, распределение), реализации (алгоритмы LRU, EDF)
  3. Научитесь работать с unix shell: навигация, файловая структура, grep, streams, pipes, I/O ...
  4. Изучите основы сетей: глобальные и локальные сети, белые и серые IP-адреса, NAT, DHCP-сервер и подсети, маршрутизация, команды для анализа сети, UDP и TCP
  5. Изучайте vi*, emacs/spacemacs (cheat sheet)
  6. Практикуйтесь в навыках программирования: решайте СИКП, решайте задачи
  7. Изучайте структуры данных и алгоритмы: очередь, стэк, куча, деревья, хэш-таблицы, алгоритмы сортировки/поиска
  8. Изучайте разные языки программирования: python, ruby, clojure, elixir, javascript
  9. Изучайте разные парадигмы программирования: functional, oop, logical
  10. Изучайте DevOps: docker, kubernetes, ci/cd, 12factor
  11. Изучайте database: sql, dml, dql, ddl, NoSql
  12. Изучайте фундаментальные вещи, характерные для web: http, browser, event loop, web API, html/css/js
  13. Учитесь правильно писать тесты (функциональные, интеграционные, e2e)
  14. Учитесь правильно профилировать свое приложение
  15. Учитесь правильно пользоваться стандартами и экосистемой своего языка: code style, linters, testing, code formating, best practices, standard libraries
  16. Изучайте процессы: Agile, Kanban
  17. Будьте профессионалом