# Readmap de programación
## Programación básica
- [Curso de programación para principiantes - Primeros pasos](https://www.udemy.com/course/programacion-para-principiantes/?couponCode=MAYO-2024)
## Programación con JavaScript
- [Curso de JavaScript Moderno](https://www.udemy.com/course/javascript-fernando-herrera/?couponCode=MAYO-2024)
- [TypeScript](https://www.udemy.com/course/typescript-guia-completa/?couponCode=MAYO-2024) - para mejorar lo robusto de tu código
- [Comprender las estructuras de datos y algoritmos en JavaScript](https://www.udemy.com/course/estructuras-de-datos-en-javascript/?couponCode=1MAY2024) - esto es importante para mejorar la eficiencia de tu código y son temas de universidad
- [Clean Solid](https://www.udemy.com/course/solid-clean/?couponCode=MAYO-2024) - para mejores practicas de programación
## Ejercicios recomendados para practicas la programación
### Fáciles
- [Find the Maximum Achievable Number](https://leetcode.com/problems/find-the-maximum-achievable-number)
- [Concatenation of Array](https://leetcode.com/problems/concatenation-of-array)
- [Build Array from Permutation](https://leetcode.com/problems/build-array-from-permutation)
- [Convert the Temperature](https://leetcode.com/problems/convert-the-temperature)
- [Find Minimum Operations to Make All Elements Divisible by Three](https://leetcode.com/problems/find-minimum-operations-to-make-all-elements-divisible-by-three)
- [Final Value of Variable After Performing Operations](https://leetcode.com/problems/final-value-of-variable-after-performing-operations)
- [Defanging an IP Address](https://leetcode.com/problems/defanging-an-ip-address)
- [Number of Good Pairs](https://leetcode.com/problems/number-of-good-pairs)
- [Divisible and Non-divisible Sums Difference](https://leetcode.com/problems/divisible-and-non-divisible-sums-difference)
- [Permutation Difference between Two Strings](https://leetcode.com/problems/permutation-difference-between-two-strings)
- [Jewels and Stones](https://leetcode.com/problems/jewels-and-stones)
- [Find Words Containing Character](https://leetcode.com/problems/find-words-containing-character)
- [Shuffle the Array](https://leetcode.com/problems/shuffle-the-array)
- [Richest Customer Wealth](https://leetcode.com/problems/richest-customer-wealth)
- [Largest Local Values in a Matrix](https://leetcode.com/problems/largest-local-values-in-a-matrix)
- [Design Parking System](https://leetcode.com/problems/design-parking-system)
- [Sum of All Subset XOR Totals](https://leetcode.com/problems/sum-of-all-subset-xor-totals)
- [Add Two Integers](https://leetcode.com/problems/add-two-integers)
- [Smallest Even Multiple](https://leetcode.com/problems/smallest-even-multiple)
- [Minimum Number of Moves to Seat Everyone](https://leetcode.com/problems/minimum-number-of-moves-to-seat-everyone)
- [Number of Employees Who Met the Target](https://leetcode.com/problems/number-of-employees-who-met-the-target)
- [Kids With the Greatest Number of Candies](https://leetcode.com/problems/kids-with-the-greatest-number-of-candies)
- [Widest Vertical Area Between Two Points Containing No Points](https://leetcode.com/problems/widest-vertical-area-between-two-points-containing-no-points)
- [Goal Parser Interpretation](https://leetcode.com/problems/goal-parser-interpretation)
- [Count Pairs Whose Sum is Less than Target](https://leetcode.com/problems/count-pairs-whose-sum-is-less-than-target)
- [Range Sum of BST](https://leetcode.com/problems/range-sum-of-bst)
- [How Many Numbers Are Smaller Than the Current Number](https://leetcode.com/problems/how-many-numbers-are-smaller-than-the-current-number)
- [Running Sum of 1d Array](https://leetcode.com/problems/running-sum-of-1d-array)
- [Left and Right Sum Differences](https://leetcode.com/problems/left-and-right-sum-differences)
- [Find Center of Star Graph](https://leetcode.com/problems/find-center-of-star-graph)
- [Sum of Values at Indices With K Set Bits](https://leetcode.com/problems/sum-of-values-at-indices-with-k-set-bits)
- [Subtract the Product and Sum of Digits of an Integer](https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer)
- [Maximum Number of Words Found in Sentences](https://leetcode.com/problems/maximum-number-of-words-found-in-sentences)
- [Decode XORed Array](https://leetcode.com/problems/decode-xored-array)
- [Find the Number of Good Pairs I](https://leetcode.com/problems/find-the-number-of-good-pairs-i)
- [Reverse Prefix of Word](https://leetcode.com/problems/reverse-prefix-of-word)
- [Split a String in Balanced Strings](https://leetcode.com/problems/split-a-string-in-balanced-strings)
- [Minimum Sum of Four Digit Number After Splitting Digits](https://leetcode.com/problems/minimum-sum-of-four-digit-number-after-splitting-digits)
- [XOR Operation in an Array](https://leetcode.com/problems/xor-operation-in-an-array)
- [Minimum Operations to Exceed Threshold Value I](https://leetcode.com/problems/minimum-operations-to-exceed-threshold-value-i)
- [Create Target Array in the Given Order](https://leetcode.com/problems/create-target-array-in-the-given-order)
- [Minimum Number Game](https://leetcode.com/problems/minimum-number-game)
- [Find a Corresponding Node of a Binary Tree in a Clone of That Tree](https://leetcode.com/problems/find-a-corresponding-node-of-a-binary-tree-in-a-clone-of-that-tree)
- [Decompress Run-Length Encoded List](https://leetcode.com/problems/decompress-run-length-encoded-list)
### Intermedios
- [Reverse String](https://leetcode.com/problems/reverse-string)
- [Merge Nodes in Between Zeros](https://leetcode.com/problems/merge-nodes-in-between-zeros)
- [Binary Search Tree to Greater Sum Tree](https://leetcode.com/problems/binary-search-tree-to-greater-sum-tree)
- [Subrectangle Queries](https://leetcode.com/problems/subrectangle-queries)
- [Find The Original Array of Prefix Xor](https://leetcode.com/problems/find-the-original-array-of-prefix-xor)
- [Strictly Palindromic Number](https://leetcode.com/problems/strictly-palindromic-number)
- [Group the People Given the Group Size They Belong To](https://leetcode.com/problems/group-the-people-given-the-group-size-they-belong-to)
- [Convert an Array Into a 2D Array With Conditions](https://leetcode.com/problems/convert-an-array-into-a-2d-array-with-conditions)
- [Encode and Decode TinyURL](https://leetcode.com/problems/encode-and-decode-tinyurl)
- [Minimum Number of Operations to Make Array XOR Equal to K](https://leetcode.com/problems/minimum-number-of-operations-to-make-array-xor-equal-to-k)
- [Deepest Leaves Sum](https://leetcode.com/problems/deepest-leaves-sum)
- [Queries on Number of Points Inside a Circle](https://leetcode.com/problems/queries-on-number-of-points-inside-a-circle)
- [Count Nodes Equal to Average of Subtree](https://leetcode.com/problems/count-nodes-equal-to-average-of-subtree)
- [Max Increase to Keep City Skyline](https://leetcode.com/problems/max-increase-to-keep-city-skyline)
- [Minimum Number of Operations to Move All Balls to Each Box](https://leetcode.com/problems/minimum-number-of-operations-to-move-all-balls-to-each-box)
- [Number of Laser Beams in a Bank](https://leetcode.com/problems/number-of-laser-beams-in-a-bank)
- [Sum of Nodes with Even-Valued Grandparent](https://leetcode.com/problems/sum-of-nodes-with-even-valued-grandparent)
- [Maximum Binary Tree](https://leetcode.com/problems/maximum-binary-tree)
- [Sort the Students by Their Kth Score](https://leetcode.com/problems/sort-the-students-by-their-kth-score)
- [Minimum Amount of Time to Collect Garbage](https://leetcode.com/problems/minimum-amount-of-time-to-collect-garbage)
- [Partition Array According to Given Pivot](https://leetcode.com/problems/partition-array-according-to-given-pivot)
- [Count Triplets That Can Form Two Arrays of Equal XOR](https://leetcode.com/problems/count-triplets-that-can-form-two-arrays-of-equal-xor)
- [Balance a Binary Search Tree](https://leetcode.com/problems/balance-a-binary-search-tree)
- [Maximum Number of Coins You Can Get](https://leetcode.com/problems/maximum-number-of-coins-you-can-get)
- [Difference Between Ones and Zeros in Row and Column](https://leetcode.com/problems/difference-between-ones-and-zeros-in-row-and-column)
- [Arithmetic Subarrays](https://leetcode.com/problems/arithmetic-subarrays)
- [Find Valid Matrix Given Row and Column Sums](https://leetcode.com/problems/find-valid-matrix-given-row-and-column-sums)
- [Reveal Cards In Increasing Order](https://leetcode.com/problems/reveal-cards-in-increasing-order)
- [Sort the Matrix Diagonally](https://leetcode.com/problems/sort-the-matrix-diagonally)
- [All Possible Full Binary Trees](https://leetcode.com/problems/all-possible-full-binary-trees)
- [Execution of All Suffix Instructions Staying in a Grid](https://leetcode.com/problems/execution-of-all-suffix-instructions-staying-in-a-grid)
- [Encode and Decode TinyURL](https://leetcode.com/problems/encode-and-decode-tinyurl)
- [Minimum Number of Operations to Make Array XOR Equal to K](https://leetcode.com/problems/minimum-number-of-operations-to-make-array-xor-equal-to-k)
- [Queries on a Permutation With Key](https://leetcode.com/problems/queries-on-a-permutation-with-key)
- [Rearrange Array Elements by Sign](https://leetcode.com/problems/rearrange-array-elements-by-sign)
- [Minimum Operations to Make Array Equal](https://leetcode.com/problems/minimum-operations-to-make-array-equal)
- [Construct Binary Search Tree from Preorder Traversal](https://leetcode.com/problems/construct-binary-search-tree-from-preorder-traversal)
- [Minimum Number of Steps to Make Two Strings Anagram](https://leetcode.com/problems/minimum-number-of-steps-to-make-two-strings-anagram)
- [Create Binary Tree From Descriptions](https://leetcode.com/problems/create-binary-tree-from-descriptions)
### Difíciles
- [Maximum Number of Ones](https://leetcode.com/problems/maximum-number-of-ones)
- [Unique Paths III](https://leetcode.com/problems/unique-paths-iii)
- [Reducing Dishes](https://leetcode.com/problems/reducing-dishes)
- [My Calendar III](https://leetcode.com/problems/my-calendar-iii)
- [Earliest Possible Day of Full Bloom](https://leetcode.com/problems/earliest-possible-day-of-full-bloom)
- [N-Queens](https://leetcode.com/problems/n-queens)
- [Put Marbles in Bags](https://leetcode.com/problems/put-marbles-in-bags)
- [Maximum Frequency Stack](https://leetcode.com/problems/maximum-frequency-stack)
- [Shortest Path Visiting All Nodes](https://leetcode.com/problems/shortest-path-visiting-all-nodes)
- [Count All Possible Routes](https://leetcode.com/problems/count-all-possible-routes)
- [Sum of Distances in Tree](https://leetcode.com/problems/sum-of-distances-in-tree)
- [Number of Atoms](https://leetcode.com/problems/number-of-atoms)
## Ejercicios enfocados a JavaScript
### Fáciles de JavaScript
- [Return Length of Arguments Passed](https://leetcode.com/problems/return-length-of-arguments-passed)
- [Add Two Promises](https://leetcode.com/problems/add-two-promises)
- [Chunk Array](https://leetcode.com/problems/chunk-array)
- [Generate Fibonacci Sequence](https://leetcode.com/problems/generate-fibonacci-sequence)
- [Sort By](https://leetcode.com/problems/sort-by)
- [Apply Transform Over Each Element in Array](https://leetcode.com/problems/apply-transform-over-each-element-in-array)
- [Filter Elements from Array](https://leetcode.com/problems/filter-elements-from-array)
- [Array Reduce Transformation](https://leetcode.com/problems/array-reduce-transformation)
- [Function Composition](https://leetcode.com/problems/function-composition)
- [Allow One Function Call](https://leetcode.com/problems/allow-one-function-call)
- [Is Object Empty](https://leetcode.com/problems/is-object-empty)
- [Calculator with Method Chaining](https://leetcode.com/problems/calculator-with-method-chaining)
- [Array Prototype Last](https://leetcode.com/problems/array-prototype-last)
- [To Be Or Not To Be](https://leetcode.com/problems/to-be-or-not-to-be)
- [Counter II](https://leetcode.com/problems/counter-ii)
- [Interval Cancellation](https://leetcode.com/problems/interval-cancellation)
- [Counter](https://leetcode.com/problems/counter)
- [Sleep](https://leetcode.com/problems/sleep)
- [Create Hello World Function](https://leetcode.com/problems/create-hello-world-function)
### Intermedios de JavaScript
- [Debounce](https://leetcode.com/problems/debounce)
- [Promise Pool](https://leetcode.com/problems/promise-pool)
- [Promise Time Limit](https://leetcode.com/problems/promise-time-limit)
- [Group By](https://leetcode.com/problems/group-by)
- [Nested Array Generator](https://leetcode.com/problems/nested-array-generator)
- [Event Emitter](https://leetcode.com/problems/event-emitter)
- [Cache With Time Limit](https://leetcode.com/problems/cache-with-time-limit)
- [Flatten Deeply Nested Array](https://leetcode.com/problems/flatten-deeply-nested-array)
- [Memoize](https://leetcode.com/problems/memoize)
- [Join Two Arrays by ID](https://leetcode.com/problems/join-two-arrays-by-id)
- [Check if Object Instance of Class](https://leetcode.com/problems/check-if-object-instance-of-class)
### Difíciles de JavaScript
- [Design Cancellable Function](https://leetcode.com/problems/design-cancellable-function)
- [Memoize II](https://leetcode.com/problems/memoize-ii)
## Roadmap de backend en JavaScript
- [NodeJS](https://www.udemy.com/course/nodejs-de-cero-a-experto/?couponCode=MAYO-2024) - De cero a experto
- [Nest](https://www.udemy.com/course/nest-framework/?couponCode=MAYO-2024) - framework para Nodejs
Es un framework popular para Nodejs
- [NestJS + Microservicios](https://www.udemy.com/course/nestjs-microservicios/?couponCode=MAYO-2024) - Aplicaciones escalables y modulares
- [(Opcional) Patrones de Diseño en JavaScript y TypeScript](https://www.udemy.com/course/patrones-de-diseno-en-javascript-y-typescript/?couponCode=1MAY2024) - importantisimo para subir muchisimo el valor como programador... Esto es principios de arquitectura de software
- [(Opcional) Nest + GraphQL](https://www.udemy.com/course/nest-graphql/?couponCode=MAYO-2024) - GraphQL es un lenguaje de consultas que es muy popular en la actualidad
## Roadmap de bases de datos
### Database / SQL
- [SQL de cero](https://www.udemy.com/course/sql-de-cero/) - Tu guía práctica con PostgreSQL
#### Ejercicios para Database
- [Reverse String](https://leetcode.com/problems/reverse-string)
- [Build a Matrix With Conditions](https://leetcode.com/problems/build-a-matrix-with-conditions/?envType=daily-question&envId=2024-07-21)
- [Recyclable and Low Fat Products](https://leetcode.com/problems/recyclable-and-low-fat-products)
- [Number of Unique Subjects Taught by Each Teacher](https://leetcode.com/problems/number-of-unique-subjects-taught-by-each-teacher)
- [Warehouse Manager](https://leetcode.com/problems/warehouse-manager)
- [Rearrange Products Table](https://leetcode.com/problems/rearrange-products-table)
- [Invalid Tweets](https://leetcode.com/problems/invalid-tweets)
- [Bank Account Summary II](https://leetcode.com/problems/bank-account-summary-ii)
- [Swap Salary](https://leetcode.com/problems/swap-salary)
- [Product Sales Analysis I](https://leetcode.com/problems/product-sales-analysis-i)
- [The Latest Login in 2020](https://leetcode.com/problems/the-latest-login-in-2020)
- [Reformat Department Table](https://leetcode.com/problems/reformat-department-table)
- [Group Sold Products By The Date](https://leetcode.com/problems/group-sold-products-by-the-date)
- [Combine Two Tables](https://leetcode.com/problems/combine-two-tables)
- [Article Views I](https://leetcode.com/problems/article-views-i)
- [Employee Bonus](https://leetcode.com/problems/employee-bonus)
## Roadmap de DevOps
### Docker
- [Docker](https://www.udemy.com/course/docker-guia-practica/) - Guía práctica de uso para desarrolladores
### Disclaimer
Es importante practicar y crear proyectos en tu propio tiempo para mejorar tus habilidades y conocimientos.
Recomendación personal, por cada curso que veas haz 2 o 3 proyectos que hagan lo que te enseñaron en el curso o mejor.
Ejemplo: el curso te enseña a hacer una api donde gestiones carga de usuarios, sus horarios de entrada y salida
Tu haces un sistema que tenga esas opciones y le agregas plus... Como sueldo, tareas que realiza en la empresa, tareas proyectadas para X días y tareas que realmente realizó... Esto es lo mismo que hicieron en el curso pero con un poco mas de complejidad que te enseñará
### Notas
- Los frameworks y librerías son conjuntos de herramientas y código que pueden facilitar y acelerar el desarrollo
- Todos estos cursos son pagos pero yo tengo una cuenta que los tiene comprados todos
### Recomendaciones
- [Curso de Git y Github](https://www.udemy.com/course/git-github/?couponCode=MAYO-2024) - Git y Github los controladores de versiones mas populares... No los he pagado pero lo podría hacer el próximo mes
## Roadmap de Frontend en JavaScript
- [Vuejs de Cero](https://www.udemy.com/course/vuejs-fh/?couponCode=MAYO-2024) - De cero a experto
- [Vue con TS intermedio](https://www.udemy.com/course/vue-intermedio/?couponCode=MAYO-2024) - Vue con TypeScript intermedio
- [Maquetación con CSS](https://youtu.be/1kNwZbRiVcQ) - Para facilitarte los estilos puedes usar los frameworks para CSS (son los que yo uso)