chore: redraw backend roadmaps with our editor (#5917)

* Migrate backend roadmap

* Update frontend roadmap

* Fix typo in backend roadmap

* Remove local caching of progress

* Update migration count
pull/5921/head
Kamran Ahmed 4 months ago committed by GitHub
parent 0064d04ff4
commit 5b108f1fd2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 3215
      src/data/roadmaps/backend/backend-beginner.json
  2. 6639
      src/data/roadmaps/backend/backend-forkable.json
  3. 20616
      src/data/roadmaps/backend/backend.json
  4. 5
      src/data/roadmaps/backend/backend.md
  5. 11
      src/data/roadmaps/backend/content/101-basic-frontend/100-html.md
  6. 14
      src/data/roadmaps/backend/content/101-basic-frontend/101-css.md
  7. 13
      src/data/roadmaps/backend/content/101-basic-frontend/102-javascript.md
  8. 11
      src/data/roadmaps/backend/content/101-basic-frontend/index.md
  9. 9
      src/data/roadmaps/backend/content/102-os-general-knowledge/100-terminal-usage.md
  10. 10
      src/data/roadmaps/backend/content/102-os-general-knowledge/101-how-oss-work-in-general.md
  11. 8
      src/data/roadmaps/backend/content/102-os-general-knowledge/102-process-management.md
  12. 13
      src/data/roadmaps/backend/content/102-os-general-knowledge/103-threads-and-concurrency.md
  13. 17
      src/data/roadmaps/backend/content/102-os-general-knowledge/104-basic-terminal-commands.md
  14. 9
      src/data/roadmaps/backend/content/102-os-general-knowledge/105-memory-management.md
  15. 7
      src/data/roadmaps/backend/content/102-os-general-knowledge/106-interprocess-communication.md
  16. 9
      src/data/roadmaps/backend/content/102-os-general-knowledge/107-io-management.md
  17. 15
      src/data/roadmaps/backend/content/102-os-general-knowledge/108-posix-basics.md
  18. 8
      src/data/roadmaps/backend/content/102-os-general-knowledge/109-basic-networking-concepts.md
  19. 10
      src/data/roadmaps/backend/content/102-os-general-knowledge/index.md
  20. 9
      src/data/roadmaps/backend/content/103-learn-a-language/108-cpp.md
  21. 10
      src/data/roadmaps/backend/content/104-version-control-systems/100-basic-usage-of-git.md
  22. 29
      src/data/roadmaps/backend/content/116-search-engines/index.md
  23. 12
      src/data/roadmaps/backend/content/118-containerization/100-docker.md
  24. 14
      src/data/roadmaps/backend/content/118-containerization/103-kubernetes.md
  25. 11
      src/data/roadmaps/backend/content/119-graphql/100-apollo.md
  26. 8
      src/data/roadmaps/backend/content/119-graphql/101-relay-modern.md
  27. 11
      src/data/roadmaps/backend/content/119-graphql/index.md
  28. 10
      src/data/roadmaps/backend/content/120-graph-databases/100-neo4j.md
  29. 3
      src/data/roadmaps/backend/content/123-scalability/100-mitigation-strategies/index.md
  30. 0
      src/data/roadmaps/backend/content/acid@qSAdfaGUfn8mtmDjHJi3z.md
  31. 0
      src/data/roadmaps/backend/content/apache@jjjonHTHHo-NiAf6p9xPv.md
  32. 0
      src/data/roadmaps/backend/content/architectural-patterns@tHiUpG9LN35E5RaHddMv5.md
  33. 0
      src/data/roadmaps/backend/content/authentication@PY9G7KQy8bF6eIdr1ydHf.md
  34. 1
      src/data/roadmaps/backend/content/aws-neptune@5xy66yQrz1P1w7n6PcAFq.md
  35. 0
      src/data/roadmaps/backend/content/backpressure@JansCqGDyXecQkD1K7E7e.md
  36. 1
      src/data/roadmaps/backend/content/base@QZwTLOvjUTaSb_9deuxsR.md
  37. 0
      src/data/roadmaps/backend/content/basic-authentication@yRiJgjjv2s1uV9vgo3n8m.md
  38. 0
      src/data/roadmaps/backend/content/bcrypt@dlG1bVkDmjI3PEGpkm1xH.md
  39. 0
      src/data/roadmaps/backend/content/bitbucket@Ry_5Y-BK7HrkIc6X0JG1m.md
  40. 0
      src/data/roadmaps/backend/content/browsers-and-how-they-work@P82WFaTPgQEPNp5IIuZ1Y.md
  41. 0
      src/data/roadmaps/backend/content/building-for-scale@SHmbcMRsc3SygEDksJQBD.md
  42. 0
      src/data/roadmaps/backend/content/c@rImbMHLLfJwjf3l25vBkc.md
  43. 0
      src/data/roadmaps/backend/content/caching@ELj8af7Mi38kUbaPJfCUR.md
  44. 0
      src/data/roadmaps/backend/content/caddy@Op-PSPNoyj6Ss9CS09AXh.md
  45. 0
      src/data/roadmaps/backend/content/cap-theorem@LAdKDJ4LcMaDWqslMvE8X.md
  46. 0
      src/data/roadmaps/backend/content/cassandra@gT6-z2vhdIQDzmR2K1g1U.md
  47. 0
      src/data/roadmaps/backend/content/cdn@Nq2BO53bHJdFT1rGZPjYx.md
  48. 0
      src/data/roadmaps/backend/content/ci--cd@mGfD7HfuP184lFkXZzGjG.md
  49. 0
      src/data/roadmaps/backend/content/circuit-breaker@spkiQTPvXY4qrhhVUkoPV.md
  50. 0
      src/data/roadmaps/backend/content/client-side@KWTbEVX_WxS8jmSaAX3Fe.md
  51. 0
      src/data/roadmaps/backend/content/containerization-vs-virtualization@SGVwJme-jT_pbOTvems0v.md
  52. 0
      src/data/roadmaps/backend/content/cookie-based-auth@ffzsh8_5yRq85trFt9Xhk.md
  53. 0
      src/data/roadmaps/backend/content/cors@LU6WUbkWKbPM1rb2_gEqa.md
  54. 1
      src/data/roadmaps/backend/content/couchdb@qOlNzZ7U8LhIGukb67n7U.md
  55. 0
      src/data/roadmaps/backend/content/cqrs@u8IRw5PuXGUcmxA0YYXgx.md
  56. 0
      src/data/roadmaps/backend/content/csp@HgQBde1zLUFtlwB66PR6_.md
  57. 0
      src/data/roadmaps/backend/content/data-replication@wrl7HHWXOaxoKVlNZxZ6d.md
  58. 0
      src/data/roadmaps/backend/content/database-indexes@y-xkHFE9YzhNIX3EiWspL.md
  59. 0
      src/data/roadmaps/backend/content/design-and-development-principles@9Fpoor-Os_9lvrwu5Zjh-.md
  60. 0
      src/data/roadmaps/backend/content/dns-and-how-it-works@hkxw9jPGYphmjhTjw8766.md
  61. 0
      src/data/roadmaps/backend/content/domain-driven-design@BvHi5obg0L1JDZFKBzx9t.md
  62. 1
      src/data/roadmaps/backend/content/dynamodb@dwfEHInbX2eFiafM-nRMX.md
  63. 0
      src/data/roadmaps/backend/content/elasticsearch@NulaE1isWqn-feYHg4YQT.md
  64. 0
      src/data/roadmaps/backend/content/event-sourcing@wqE-mkxvehOzOv8UyE39p.md
  65. 0
      src/data/roadmaps/backend/content/failure-modes@GwApfL4Yx-b5Y8dB9Vy__.md
  66. 0
      src/data/roadmaps/backend/content/firebase@RyJFLLGieJ8Xjt-DlIayM.md
  67. 0
      src/data/roadmaps/backend/content/functional-testing@NAGisfq2CgeK3SsuRjnMw.md
  68. 0
      src/data/roadmaps/backend/content/git@_I1E__wCIVrhjMk6IMieE.md
  69. 0
      src/data/roadmaps/backend/content/github@ptD8EVqwFUYr4W5A_tABY.md
  70. 0
      src/data/roadmaps/backend/content/gitlab@Wcp-VDdFHipwa7hNAp1z_.md
  71. 0
      src/data/roadmaps/backend/content/go@BdXbcz4-ar3XOX0wIKzBp.md
  72. 0
      src/data/roadmaps/backend/content/god-design-patterns@6XIWO0MoE-ySl4qh_ihXa.md
  73. 0
      src/data/roadmaps/backend/content/graceful-degradation@G9AI_i3MkUE1BsO3_-PH7.md
  74. 0
      src/data/roadmaps/backend/content/graphql@zp3bq38tMnutT2N0tktOW.md
  75. 0
      src/data/roadmaps/backend/content/grpc@J-TOE2lT4At1mSdNoxPS1.md
  76. 0
      src/data/roadmaps/backend/content/hateoas@dLY0KafPstajCcSbslC4M.md
  77. 0
      src/data/roadmaps/backend/content/how-does-the-internet-work@yCnn-NfSxIybUQ2iTuUGq.md
  78. 0
      src/data/roadmaps/backend/content/https@x-WBJjBd8u93ym5gtxGsR.md
  79. 0
      src/data/roadmaps/backend/content/influx-db@XbM4TDImSH-56NsITjyHK.md
  80. 0
      src/data/roadmaps/backend/content/instrumentation@4X-sbqpP0NDhM99bKdqIa.md
  81. 0
      src/data/roadmaps/backend/content/integration-testing@381Kw1IMRv7CJp-Uf--qd.md
  82. 0
      src/data/roadmaps/backend/content/internet@SiYUdtYMDImRPmV2_XPkH.md
  83. 0
      src/data/roadmaps/backend/content/java@ANeSwxJDJyQ-49pO2-CCI.md
  84. 0
      src/data/roadmaps/backend/content/javascript@8-lO-v6jCYYoklEJXULxN.md
  85. 0
      src/data/roadmaps/backend/content/json-apis@sNceS4MpSIjRkWhNDmrFg.md
  86. 0
      src/data/roadmaps/backend/content/jwt@UxS_mzVUjLigEwKrXnEeB.md
  87. 0
      src/data/roadmaps/backend/content/kafka@VoYSis1F1ZfTxMlQlXQKB.md
  88. 0
      src/data/roadmaps/backend/content/learn-about-apis@EwvLPSI6AlZ4TnNIJTZA4.md
  89. 0
      src/data/roadmaps/backend/content/loadshifting@HoQdX7a4SnkFRU4RPQ-D5.md
  90. 0
      src/data/roadmaps/backend/content/long-polling@osvajAJlwGI3XnX0fE-kA.md
  91. 0
      src/data/roadmaps/backend/content/lxc@31ZlpfIPr9-5vYZqvjUeL.md
  92. 0
      src/data/roadmaps/backend/content/mariadb@tD3i-8gBpMKCHB-ITyDiU.md
  93. 0
      src/data/roadmaps/backend/content/md5@jWwA6yX4Zjx-r_KpDaD3c.md
  94. 0
      src/data/roadmaps/backend/content/memcached@xPvVwGQw28uMeLYIWn8yn.md
  95. 0
      src/data/roadmaps/backend/content/message-brokers@nJ5FpFgGCRaALcWmAKBKT.md
  96. 0
      src/data/roadmaps/backend/content/microservices@K55h3aqOGe6-hgVhiFisT.md
  97. 0
      src/data/roadmaps/backend/content/migration-strategies@f7iWBkC0X7yyCoP_YubVd.md
  98. 0
      src/data/roadmaps/backend/content/mongodb@28U6q_X-NTYf7OSKHjoWH.md
  99. 1
      src/data/roadmaps/backend/content/monitoring@QvMEEsXh0-rzn5hDGcmEv.md
  100. 0
      src/data/roadmaps/backend/content/monolithic-apps@Ke522R-4k6TDeiDRyZbbU.md
  101. Some files were not shown because too many files have changed in this diff Show More

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,4 +1,5 @@
---
renderer: 'editor'
jsonUrl: '/jsons/roadmaps/backend.json'
pdfUrl: '/pdfs/roadmaps/backend.pdf'
order: 2
@ -7,7 +8,7 @@ briefDescription: 'Step by step guide to becoming a backend developer in 2024'
title: 'Backend Developer'
description: 'Step by step guide to becoming a modern backend developer in 2024'
hasTopics: true
isForkable: true
isForkable: false
tnsBannerLink: 'https://thenewstack.io?utm_source=roadmap.sh&utm_medium=Referral&utm_campaign=Alert'
question:
title: 'What is Backend Development?'
@ -18,7 +19,7 @@ question:
A backend developer focuses on creating and maintaining the server-side components of web applications. They are primarily tasked with developing server-side APIs, handling database operations, and ensuring that the backend can manage high traffic volumes efficiently. Key responsibilities include integrating external services such as payment gateways and cloud services, and enhancing the performance and scalability of systems. This role is crucial for processing and securing data, serving as the backbone that supports frontend developers in delivering a seamless user experience.
dimensions:
width: 968
height: 2583.2
height: 3500
schema:
headline: 'Backend Developer Roadmap: What is Backend Development?'
description: 'Learn what backend development is, what backend developers do and how to become one using our community-driven roadmap.'

@ -1,11 +0,0 @@
# HTML
HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript.
Visit the following resources to learn more:
- [@article@W3Schools: Learn HTML](https://www.w3schools.com/html/html_intro.asp)
- [@opensource@Interactive HTML Course](https://github.com/denysdovhan/learnyouhtml)
- [@video@HTML Full Course - Build a Website Tutorial](https://www.youtube.com/watch?v=pQN-pnXPaVg)
- [@video@HTML Tutorial for Beginners: HTML Crash Course](https://www.youtube.com/watch?v=qz0aGYrrlhU)
- [@feed@Explore top posts about HTML](https://app.daily.dev/tags/html?ref=roadmapsh)

@ -1,14 +0,0 @@
# CSS
CSS or Cascading Style Sheets is the language used to style the frontend of any website. CSS is a cornerstone technology of the World Wide Web, alongside HTML and JavaScript.
Visit the following resources to learn more:
- [@article@W3Schools — Learn CSS](https://www.w3schools.com/css/)
- [@article@freeCodeCamp — Responsive Web Design](https://www.freecodecamp.org/learn/2022/responsive-web-design)
- [@article@Learn to Code HTML & CSS](https://learn.shayhowe.com/html-css/building-your-first-web-page/)
- [@article@What The Flexbox!](https://flexbox.io/)
- [@video@CSS Crash Course For Absolute Beginners](https://www.youtube.com/watch?v=yfoY53QXEnI)
- [@video@HTML and CSS Tutorial](https://www.youtube.com/watch?v=D-h8L5hgW-w)
- [@video@CSS Masterclass - Tutorial & Course for Beginners](https://www.youtube.com/watch?v=FqmB-Zj2-PA)
- [@feed@Explore top posts about CSS](https://app.daily.dev/tags/css?ref=roadmapsh)

@ -1,13 +0,0 @@
# JavaScript
JavaScript allows you to add interactivity to your pages. Common examples that you may have seen on the websites are sliders, click interactions, popups and so on.
Visit the following resources to learn more:
- [@roadmap@Visit Dedicated JavaScript Roadmap](/javascript)
- [@article@W3Schools – JavaScript Tutorial](https://www.w3schools.com/js/)
- [@article@The Modern JavaScript Tutorial](https://javascript.info/)
- [@article@Exploring JS: JavaScript books for programmers](https://exploringjs.com/)
- [@video@JavaScript Crash Course for Beginners](https://youtu.be/hdI2bqOjy3c?t=2)
- [@video@Build a Netflix Landing Page Clone with HTML, CSS & JS](https://youtu.be/P7t13SGytRk?t=22)
- [@feed@Explore top posts about JavaScript](https://app.daily.dev/tags/javascript?ref=roadmapsh)

@ -1,11 +0,0 @@
# Basic Frontend Knowledge
As a backend developer, you may not need to have proficient knowledge of the frontend stack but you should at least have some basic understanding of HTML, CSS and JavaScript.
Visit the following resources to learn more:
- [@article@W3Schools: Learn HTML](https://www.w3schools.com/html/html_intro.asp)
- [@article@W3Schools: Learn CSS](https://www.w3schools.com/css/)
- [@article@W3Schools: JavaScript Tutorial](https://www.w3schools.com/js/)
- [@article@Articles about Frontend Development](https://thenewstack.io/category/frontend-dev/)
- [@feed@Explore top posts about Frontend Development](https://app.daily.dev/tags/frontend?ref=roadmapsh)

@ -1,9 +0,0 @@
# Terminal usage
Terminals, also known as command lines or consoles, allow us to accomplish and automate tasks on a computer without the use of a graphical user interface.
Visit the following resources to learn more:
- [@article@Command line crash course](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line)
- [@video@Basic Terminal Usage - Cheat Sheet to make the command line EASY](https://www.youtube.com/watch?v=jDINUSK7rXE)
- [@article@50+ Linux Commands You Must Know](https://www.digitalocean.com/community/tutorials/linux-commands)

@ -1,10 +0,0 @@
# Operating Systems
An operating system is a main program on computer, that governs all other applications. It allows you to use browsers, play games, print documents, launch your favorite program.
Visit the following resources to learn more:
- [@article@Operating System - Overview](https://www.tutorialspoint.com/operating_system/os_overview.htm)
- [@article@Operating System Concepts](https://codex.cs.yale.edu/avi/os-book/OS10/index.html)
- [@video@Operating System Basics ](https://www.youtube.com/watch?v=9GDX-IyZ_C8)
- [@feed@Explore top posts about Open Source](https://app.daily.dev/tags/open-source?ref=roadmapsh)

@ -1,8 +0,0 @@
# Process Management
Process management involves various tasks like creation, scheduling, termination of processes, and a deadlock. Process is a program that is under execution, which is an important part of modern-day operating systems. The OS must allocate resources that enable processes to share and exchange information. It also protects the resources of each process from other methods and allows synchronization among processes.
Visit the following resources to learn more:
- [@article@Operating System: Process and Process Management](https://medium.com/@akhandmishra/operating-system-process-and-process-management-108d83e8ce60)
- [@article@Process Management in OS: PCB in Operating System](https://www.guru99.com/process-management-pcb.html)

@ -1,13 +0,0 @@
# Threads and Concurrency
A thread is the smallest unit of processing that can be performed in an OS. In most modern operating systems, a thread exists within a process - that is, a single process may contain multiple threads.
Concurrency refers to the execution of multiple threads at the same time. It occurs in an operating system when multiple process threads are executing concurrently. These threads can interact with one another via shared memory or message passing. Concurrency results in resource sharing, which causes issues like deadlocks and resource scarcity. It aids with techniques such as process coordination, memory allocation, and execution schedule to maximize throughput.
Visit the following resources to learn more:
- [@article@What’s the Diff: Programs, Processes and Threads](https://www.backblaze.com/blog/whats-the-diff-programs-processes-and-threads/)
- [@article@Concurrency in Operating System](https://www.javatpoint.com/concurrency-in-operating-system)
- [@video@Intro to Processes & Threads](https://www.youtube.com/watch?v=exbKr6fnoUw)
- [@video@Introduction to Concurrency](https://www.youtube.com/watch?v=iKtvNJQoCNw)
- [@video@Concurrency, Threading and Parallelism Explained](https://www.youtube.com/watch?v=olYdb0DdGtM)

@ -1,17 +0,0 @@
# Basic Terminal Commands
Working within the terminal is common practice for any Backend Developer and there are many commands and utilities that can help you achieve your tasks more efficiently.
The best way to learn these commands is to practice them in your own machine/environment. Specifically, these are related to Linux commands/utilities which are the most prevalent in the market.
To understand these commands, read through the manual pages by using `man` command e.g. `man grep`, `man awk` etc.
After enough exposure and practice to these commands, it will become easier to use these in practice
Visit the following resources to learn more:
- [@article@40 Basic Linux Commands](https://www.hostinger.com/tutorials/linux-commands)
- [@opensource@A collection of modern/faster/saner alternatives to common unix commands](https://github.com/ibraheemdev/modern-unix)
- [@article@Command Line Tutorial](https://www.learnenough.com/command-line-tutorial)
- [@article@Commandline Challenge](https://cmdchallenge.com/)
- [@video@The 50 Most Popular Linux & Terminal Commands (with timestamps)](https://www.youtube.com/watch?v=ZtqBQ68cfJc)

@ -1,9 +0,0 @@
# Memory Management
The term Memory can be defined as a collection of data in a specific format. It is used to store instructions and process data. The memory comprises a large array or group of words or bytes, each with its own location. The primary motive of a computer system is to execute programs. These programs, along with the information they access, should be in the main memory during execution. The CPU fetches instructions from memory according to the value of the program counter.
To achieve a degree of multiprogramming and proper utilization of memory, memory management is important. There are several memory management methods, reflecting various approaches, and the effectiveness of each algorithm depends on the situation.
Visit the following resources to learn more:
- [@article@Demystifying memory management in modern programming languages](https://dev.to/deepu105/demystifying-memory-management-in-modern-programming-languages-ddd)

@ -1,7 +0,0 @@
# Interprocess Communication
Interprocess communication (IPC) refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data
Visit the following resources to learn more:
- [@video@Interprocess Communication - Neso Academy](https://www.youtube.com/watch?v=dJuYKfR8vec)

@ -1,9 +0,0 @@
# I/O Management
One of the important jobs of an Operating System is to manage various I/O devices including mouse, keyboards, touchpad, disk drives, display adapters, USB devices, Bit-mapped screens, LED, Analog-to-digital converter, On/off switch, network connections, audio I/O, printers, etc.
Visit the following resources to learn more:
- [@article@Operating System - I/O Hardware](https://www.tutorialspoint.com/operating_system/os_io_hardware.htm)
- [@article@IO Management](https://www.omscs-notes.com/operating-systems/io-management/)
- [@video@Basics of OS (I/O Structure)](https://www.youtube.com/watch?v=F18RiREDkwE)

@ -1,15 +0,0 @@
# POSIX Basics
POSIX (Portable Operating System Interface) is a family of standards for maintaining compatibility between operating systems. It describes utilities, APIs, and services that a compliant OS should provide to software, thus making it easier to port programs from one system to another.
A practical example: in a Unix-like operating system, there are three _standard streams_, `stdin`, `stdout` and `stderr` - they are I/O connections that you will probably come across when using a terminal, as they manage the flow from the **standard input** (stdin), **standard output** (stdout) and **standard error** (stderr).
So, in this case, when we want to interact with any of these streams (through a process, for example), the POSIX operating system API makes it easier - for example, in the `<unistd.h>` C header where the stdin, stderr, and stdout are defined as `STDIN_FILENO`, `STDERR_FILENO` and `STDOUT_FILENO`.
POSIX also adds a standard for exit codes, filesystem semantics, and several other command line utility API conventions.
Visit the following resources to learn more:
- [@article@POSIX standard by IEEE](https://pubs.opengroup.org/onlinepubs/9699919799/)
- [@article@Summary of some POSIX implementations](https://unix.stackexchange.com/a/220877)
- [@article@A guide to POSIX](https://www.baeldung.com/linux/posix)

@ -1,8 +0,0 @@
# Basic Networking Concepts
Computer networking refers to interconnected computing devices that can exchange data and share resources with each other. These networked devices use a system of rules, called communications protocols, to transmit information over physical or wireless technologies.
Visit the following resources to learn more:
- [@article@What is Computer Networking?](https://aws.amazon.com/what-is/computer-networking/)
- [@feed@Explore top posts about Networking](https://app.daily.dev/tags/networking?ref=roadmapsh)

@ -1,10 +0,0 @@
# General Knowledge
Operating System is a program that manages a computer’s resources, especially the allocation of those resources among other programs. Typical resources include the central processing unit (CPU), computer memory, file storage, input/output (I/O) devices, and network connections.
Visit the following resources to learn more:
- [@article@What is an operating system?](https://edu.gcfglobal.org/en/computerbasics/understanding-operating-systems/1/)
- [@article@Operating System summary](https://www.guru99.com/os-tutorial.html)
- [@video@Operating Systems: Crash Course Computer Science #18](https://www.youtube.com/watch?v=26QPDBe-NB8&ab_channel=CrashCourse)
- [@video@Introduction to Operating System](https://www.youtube.com/watch?v=vBURTt97EkA&list=PL9hkZBQk8d1zEGbY7ShWCZ2n1gtxqkRrS&index=1)

@ -1,9 +0,0 @@
# C++
C++ is a powerful general-purpose programming language. It can be used to develop operating systems, browsers, games, and so on. C++ supports different ways of programming like procedural, object-oriented, functional, and so on. This makes C++ powerful as well as flexible.
Visit the following resources to learn more:
- [@article@Learn Cpp](https://learncpp.com/)
- [@article@C++ Reference](https://en.cppreference.com/)
- [@feed@Explore top posts about C++](https://app.daily.dev/tags/c++?ref=roadmapsh)

@ -1,10 +0,0 @@
# Git
[Git](https://git-scm.com/) is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Visit the following resources to learn more:
- [@video@Git & GitHub Crash Course For Beginners](https://www.youtube.com/watch?v=SWYqp7iY_Tc)
- [@article@Learn Git with Tutorials, News and Tips - Atlassian](https://www.atlassian.com/git)
- [@article@Git Cheat Sheet](https://cs.fyi/guide/git-cheatsheet)
- [@feed@Explore top posts about Git](https://app.daily.dev/tags/git?ref=roadmapsh)

@ -1,29 +0,0 @@
# Search Engines
Search engines are an essential part of any web application, responsible for providing efficient and relevant search results for users. They store and retrieve data based on unique indexes, which allow for fast and accurate searches. As a backend developer, understanding search engines functionalities, and how to integrate them into your web application, is crucial.
## Types of Search Engines
There are two primary types of search engines:
1. **Full-text search engines**: These are specifically designed for searching and analyzing text documents. They can efficiently index large volumes of text and provide relevant results based on keywords or phrases. Popular full-text search engines examples include **Elasticsearch**, **Solr**, and **Amazon CloudSearch**.
2. **Database search engines**: Database engines are built-in features of most databases. They provide search capabilities within the data stored in the database. Examples include **MySQL FULLTEXT search** and **PostgreSQL Full-Text Search**.
## Key Concepts
When dealing with search engines, it's important to understand these key concepts:
- **Indexing**: The process of analyzing and storing data in an optimized format for fast search and retrieval.
- **Tokenization**: Breaking text into individual words or terms (also known as tokens), for efficient indexing and searching.
- **Querying**: The act of searching the indexed data by asking a specific question or requesting information based on keywords or phrases.
- **Relevance scoring**: A score assigned to each search result that indicates how closely it matches the query, based on algorithms and relevance models.
## Integration
To integrate a search engine into your web application, you would typically follow these steps:
1. **Choose the search engine**: Identify the search engine that best suits your application's needs, considering factors such as scalability, performance, and ease of integration.
2. **Index your data**: Analyze and store your data using the chosen search engine. This process may involve creating an index, specifying fields, and defining how the data should be tokenized and analyzed.
3. **Implement search functionality**: Develop the backend code for handling search requests, such as sending queries to the search engine and parsing the responses. Additionally, make sure to handle user inputs, like keywords, phrases, and filters.
4. **Display search results**: Design the frontend of your application to show search results in a user-friendly manner, including pagination, sorting, and filters.

@ -1,12 +0,0 @@
# Docker
Docker is a platform for working with containerized applications. Among its features are a daemon and client for managing and interacting with containers, registries for storing images, and a desktop application to package all these features together.
Visit the following resources to learn more:
- [@article@Docker Documentation](https://docs.docker.com/)
- [@article@What is Docker | AWS ](https://aws.amazon.com/docker/)
- [@video@Complete Docker Course - From BEGINNER to PRO!](https://www.youtube.com/watch?v=RqTEHSBrYFw)
- [@video@Docker Tutorial](https://youtu.be/3c-iBn73dDE)
- [@video@Docker simplified in 55 seconds](https://youtu.be/vP_4DlOH1G4)
- [@feed@Explore top posts about Docker](https://app.daily.dev/tags/docker?ref=roadmapsh)

@ -1,14 +0,0 @@
# Kubernetes
Kubernetes is an [open source](https://github.com/kubernetes/kubernetes) container management platform, and the dominant product in this space. Using Kubernetes, teams can deploy images across multiple underlying hosts, defining their desired availability, deployment logic, and scaling logic in YAML. Kubernetes evolved from Borg, an internal Google platform used to provision and allocate compute resources. (similar to the Autopilot and Aquaman systems of Microsoft Azure)
The popularity of Kubernetes has made it an increasingly important skill for the DevOps Engineer and has triggered the creation of Platform teams across the industry. These Platform engineering teams often exist with the sole purpose of making Kubernetes approachable and usable for their product development colleagues.
Visit the following resources to learn more:
- [@official@Kubernetes Website](https://kubernetes.io/)
- [@official@Kubernetes Documentation](https://kubernetes.io/docs/home/)
- [@video@Kubernetes Crash Course for Absolute Beginners](https://www.youtube.com/watch?v=s_o8dwzRlu4)
- [@article@Primer: How Kubernetes Came to Be, What It Is, and Why You Should Care](https://thenewstack.io/primer-how-kubernetes-came-to-be-what-it-is-and-why-you-should-care/)
- [@article@Kubernetes: An Overview](https://thenewstack.io/kubernetes-an-overview/)
- [@feed@Explore top posts about Kubernetes](https://app.daily.dev/tags/kubernetes?ref=roadmapsh)

@ -1,11 +0,0 @@
# Apollo
Apollo is a platform for building a unified graph, a communication layer that helps you manage the flow of data between your application clients (such as web and native apps) and your back-end services.
Visit the following resources to learn more:
- [@article@Apollo Website](https://www.apollographql.com)
- [@article@Official Docs](https://www.apollographql.com/docs/)
- [@video@Official YouTube Channel](https://www.youtube.com/c/ApolloGraphQL/)
- [@video@GraphQL With React Tutorial - Apollo Client](https://www.youtube.com/watch?v=YyUWW04HwKY)
- [@feed@Explore top posts about Apollo](https://app.daily.dev/tags/apollo?ref=roadmapsh)

@ -1,8 +0,0 @@
# Relay Modern
Relay is a JavaScript client used in the browser to fetch GraphQL data. It's a JavaScript framework developed by Facebook for managing and fetching data in React applications. It is built with scalability in mind in order to power complex applications like Facebook. The ultimate goal of GraphQL and Relay is to deliver instant UI-response interactions.
Visit the following resources to learn more:
- [@official@Official Website](https://relay.dev/)
- [@official@Introduction to Relay modern](https://relay.dev/docs/)

@ -1,11 +0,0 @@
# Graphql
GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.
Visit the following resources to learn more:
- [@official@Introduction to GraphQL](https://graphql.org/learn/)
- [@article@The Fullstack Tutorial for GraphQL](https://www.howtographql.com/)
- [@article@GraphQL Tutorials](https://odyssey.apollographql.com/)
- [@video@GraphQL Course for Beginners](https://www.youtube.com/watch?v=ed8SzALpx1Q)
- [@feed@Explore top posts about GraphQL](https://app.daily.dev/tags/graphql?ref=roadmapsh)

@ -1,10 +0,0 @@
# Neo4j
Neo4j AuraDB is a fast, reliable, scalable, and completely automated Neo4j graph database, provided as a cloud service.
Visit the following resources to learn more:
- [@article@Official Website](https://neo4j.com/)
- [@article@Official Docs](https://neo4j.com/docs/)
- [@video@Neo4j (Graph Database) Crash Course](https://www.youtube.com/watch?v=8jNPelugC2s)
- [@feed@Explore top posts about Neo4j](https://app.daily.dev/tags/neo4j?ref=roadmapsh)

@ -1,3 +0,0 @@
# Mitigation Strategies
This section is mainly relevant to the cloud design patterns that help you build scalable solutions. Have a look at the [Cloud Design Patterns](https://learn.microsoft.com/en-us/azure/architecture/patterns/) docs by Microsoft and this video covering [the throttling, retry and circuit breaker patterns](https://www.youtube.com/watch?v=0HoTGgb5oFg)

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save