Azerbaycan developerin ən böyük və ən faydalı yol xəritəsi © DevHub
Repo hələ də demo versiyasındadır və daim yenilənir və tərcümə olunur. Əgər nəsə əlavə və dəyişiklik təklifiniz olsa burda yaza bilərsiz.
Hər bir developer bilməlidir ↑
Kitablar ↑
Ən yaxşısı və vacib kitablar istənilən istiqamətdəki proqramçılar üçün.
-
Həyat:
-
Kompüter arxitekturası:
-
Proqramlaşdırma:
-
Əməliyyat sistemləri:
-
İnsanlar:
İngilis dili ↑
Niyə - ən yaxşı kurslar, arayış və təlim materiallarının əksəriyyəti ingilis dilində mövcuddur. Əgər çətinliklər yaranarsa, ingilis dilini bilməklə ümumdünya şəbəkəsində cavab tapmaq şansı daha yüksəkdir.
- Resurslar:
- Duolingo
- Lingualeo
- Babadum
- Anki və kartlar 4000 Essential English Words (all books) [en-en] M4R4M
- English e-Reader адаптированные книги на английском
- British council очень много полезной и структурированной информации для изучения
- Jazz chants тренировка темпа и скорости речи, чтобы звучать более естественно
- Engoo Daily news səviyyəsinə görə ingilis dilində məqalələr
- YouGlish Youtube-da bir sözün və ya qısa sözün tələffüzünü axtarın
Kompüter arxitekturası ↑
Məqsəd - kompüterlərin konseptual quruluşu ilə tanış olmaq.
Linux Bash əmr xətti ↑
Məqsəd əməliyyat sistemlərinin necə işlədiyini başa düşməkdir. Əsas rəhbərliyi öyrənin.
- Resurslar:
Məlumat strukturları ↑
Məlumat strukturları — kompüter texnologiyasında eyni tipli və / və ya məntiqi əlaqəli məlumatların çoxunu saxlamağa və emal etməyə imkan verən proqram təminatı. Məlumat müxtəlif yollarla təqdim edilə bilər. Hansı məlumatın olduğundan və bununla nə edəcəyinizdən asılı olaraq, bir təqdimat digərlərindən daha yaxşı olacaqdır.
Heç olmasa əsas səviyyədə alqoritmlər ilə tanış olmağınız tövsiyə olunur. Məlumat quruluşları alqoritmlərdən istifadə edildiyi üçün alqoritmlər məlumat strukturlarından istifadə etməklə həyata keçirilir.
-
Anlamaq:
- Siyahıları
- Hash-masa
- Yığın
- Növbə
- Graflar
- Bağlı siyahı
- Ağaclar
- İkili axtarış ağacı
-
Məqalələr:
-
Kitablar:
HTML & CSS ↑
-
Anlayışları öyrənin:
- Верстка
- HTML 5
- İşarələmə
- Semantika
- Üslublar
- Animasiya
-
Sənədləşmə, kurslar:
Obyekt yönümlü proqramlaşdırma ↑
-
Anlayışları öyrənin:
- Klass
- Obyekt
- Məlumat mücərrədliyi
- Encapsulation
- Vərəsəlik
- Polimorfizm
-
Kitab:
Funksional proqramlaşdırma ↑
- Anlayışları öyrənin:
- Məlumat mücərrədliyi
- Təmiz funksiyalar
- Rekursiya
- Qısa dövrələr
- Dəyişməz obyekt
Versiyaya nəzarət sistemləri ↑
-
Anlayışları öyrənin:
- Filiallar
- Birləşmə
- Münaqişələr və onların həlli
- Layihə versiyaları, teqlər
-
Kurs:
-
Kitab:
HTTP protokolu ↑
Цель - понять, как браузер взаимодействует с веб-сервером.
-
Anlayışları öyrənin:
- User-agent
- DNS
- Отличия HTTP 2.0 от версий 1.x
- Тело HTTP-запроса
- Передача данных
- Отправка форм
- Transfer-Encoding
- Перенаправления
- Базовая аутентификация
- Cookies
-
Məqalələr:
-
Kurs:
Testlər ↑
-
Виды тестов:
- Блочное тестирование (модульное, unit testing)
- Интеграционное тестирование
- Системное тестирование
-
Изучить методологии:
- Разработка через тестирование (TDD)
- разработка, основанная на функционировании (BDD)
-
Məqalələr:
Veb təhlükəsizliyi ↑
- Zəiflik:
- SQL injection
- XSS
- İstifadəçiyə səhvlərin nümayişi
- İstifadəçi üçün sistem performans məlumatlarının mövcudluğu
- Sessiyanın oğurluqu
Vaxtın idarə olunması ↑
Vaxtın idarə olunması - технология организации времени и повышения эффективности его использования.
Методы:
- Метод «Помидора»
- Метод Парето
- Метод «Альп»
- Матрица Эйзенхауэра
Можно использовать один или несколько методов или разработать свой метод. Главное, чтобы он был удобен и реально приносил пользу.
- Məqalələr:
Back-end developerin yol xəritəsi ↑
Алгоритмы ↑
-
Познакомиться с алгоритмами:
- Сортировки
- Поиска в строке
- Обхода и поиска в структурах данных
- На графах
-
Məqalələr:
-
Kitablar:
-
Resurslar:
Server proqramlaşdırma dilləri ↑
Məqsəd bir neçə server proqramlaşdırma dilini mənimsəməkdir.
Bir dildə dayanmaq lazım deyil, 'beynin JAVA' görə ya da obiri səbəblərə görə - proqramlaşdırma dilinizdən kənarda düşünə bilməzsiz.
Şüar: bir dildə proqramlaşdırmaq yox, dili istifadə etməklə proqramlaşdırmaq.
-
Server dillərin nümunələri:
- PHP
- Python
- Ruby
-
Məqalələr:
- Verilənlər tipi
- Funksional proqramlaşdırma
- Obyekt yönümlü proqramlaşdırma
- Testlər
Proqramlaşdırma paternələri ↑
-
Aşağıdakı paternələrin növləri ilə tanış olun:
- Creational pattern
- Structural pattern
- Behavioral pattern
-
Məqalələr:
-
Video:
Proqramlaşdırma prinsipləri ↑
-
Prinsiplərlə tanış olun:
- DRY
- KISS
- YAGNI
- SOLID
-
Məqalə:
Daimi ifadələr ↑
-
Anlayışları öyrənin:
- Xəsislik
- Gruplama
-
Məqalələr:
SQL ↑
-
Anlayışları öyrənin:
- DDL, DML, DQL
- Verilənlər bazası cədvəllərinin yaradılması və silinməsi
- Qeyd əlavə edilməsi, yenilənməsi və silinməsi
- Sxem (SCHEMA)
- Baxış (VIEWS)
- WHERE
- LIMIT, OFFSET
- ORDER BY
- GROUP BY
- JOIN
-
Məqalələr:
Проектирование баз данных ↑
-
Anlayışları öyrənin:
- Нормализация
- Денормализация
- Связи
-
Məqalələr:
Фреймворки ↑
Для разных языков программирования существуют разные фреймворки, не нужно изучать всё сразу, необходимо взять несколько фреймворков за основу.
-
PHP фреймворки:
-
Python фреймворки:
-
Ruby фреймворки:
-
Məqalələr:
Пакетный менеджер ↑
-
Список пакетных менеджеров:
-
Məqalələr:
Устройство веб-серверов и способы взаимодействия ↑
-
Anlayışları öyrənin:
- HTTP
- NGINX
- APACHE
- Треды
- Worker
- CGI
- FastCGI
- event Loop
-
Məqalələr:
Развертывание проектов ↑
-
Anlayışları öyrənin:
- Деплой
- Миграции
- Релизы
- Еnvironment
- Непрерывная интеграция (CI)
-
Məqalələr:
- Версионная миграция структуры базы данных: основные подходы (habrahabr)
- Нумерация версий ПО для новичков и не только (habrahabr)
- Automated git deployments from Bitbucket
- How to use Vagrant for local web development
- Vagrant для малышей, или как на Windows легко получить настроенный сервер для разработки веб-приложений
Front-end developerin yol xəritəsi ↑
JavaScript ↑
-
Познакомиться с такими понятиями как:
- Переменные
- Типы данных
- Функции
- РеKursия
- Замыкания
- Область видимости
- Объекты
- События
- DOM
-
Документации, книги:
Адаптивный/отзывчивый веб-дизайн ↑
-
Anlayışları öyrənin:
- Адаптивный веб-дизайн
- Отзывчивый веб-дизайн
- Media queries
- Mobile first
- Graceful degradation
- RESS
-
Məqalələr:
JavaScript библиотеки ↑
Цель - познакомиться с наиболее популярными библиотеками JavaScript. Знать где и когда их применять.
Список библиотек:
- jQuery
- ReactJS
- Underscore - набор полезных функций
- Modernizr - обнаруживает HTML5 и CSS3 функции в браузере пользователя
- Babel - компилятор для написания JavaScript следующего поколения
- Three - 3D
- WOW - анимация при прокрутки страницы
- Moment - Работа с датой и временем
- Mocha - написание тестов
Список наиболее популярных библиотек есть на Javascripting
Препроцессоры CSS ↑
-
Anlayışları öyrənin:
- Переменные
- Миксины
- Функции
- Импорт
- Минификация
-
Список препроцессоров CSS:
-
Məqalələr:
Сборщик проектов ↑
Сборщик проектов — небольшое приложение, которое используется для автоматизации скучных и рутинных задач, которые приходится постоянно выполнять в процессе разработки проекта. Такие задачи включают в себя, к примеру, запуск модульных тестов, конкатенацию файлов, минификацию, препроцессинг CSS.
-
Сборщики проектов:
-
Məqalələr:
Пакетный менеджер ↑
-
Список пакетных менеджеров:
-
Məqalələr:
CSS фреймворки ↑
-
Список фреймворков:
-
Məqalələr:
JavaScript фреймворки ↑
Существуют разные фреймворки, не нужно изучать всё сразу, необходимо взять несколько фреймворков за основу.
Список фреймворков:
Одностраничное приложение ↑
Одностраничное приложение или SPA (single page application) - сайт или веб-приложение, использующий единственный HTML-документ как оболочку для всех веб-страниц и организующий взаимодействие с пользователем через динамически подгружаемые HTML, CSS, JavaScript, обычно посредством AJAX.
-
Изучить:
- JavaScript фреймворки
- Роутинг
- Шаблонизатор
- API, например REST
- AJAX
-
Məqalələr: